Tuple#Relational model

{{short description|Finite ordered list of elements}}

{{hatnote group|{{for|the musical term|Tuplet}}{{redirect|Octuple|the boat|Octuple scull}}{{redirect|Duodecuple|the musical technique|Twelve-tone technique}}{{redirect|Sextuple|the sporting achievement of association football|Sextuple (association football)}}

}}

In mathematics, a tuple is a finite sequence or ordered list of numbers or, more generally, mathematical objects, which are called the elements of the tuple. An {{mvar|n}}-tuple is a tuple of {{mvar|n}} elements, where {{mvar|n}} is a non-negative integer. There is only one 0-tuple, called the empty tuple. A 1-tuple and a 2-tuple are commonly called a singleton and an ordered pair, respectively. The term "infinite tuple" is occasionally used for "infinite sequences".

Tuples are usually written by listing the elements within parentheses "{{math|( )}}" and separated by commas; for example, {{math|(2, 7, 4, 1, 7)}} denotes a 5-tuple. Other types of brackets are sometimes used, although they may have a different meaning.{{efn|Square brackets are used for matrices, including row vectors. Braces are used for sets. Each programming language has its own convention for the different brackets.}}

An {{mvar|n}}-tuple can be formally defined as the image of a function that has the set of the {{mvar|n}} first natural numbers as its domain. Tuples may be also defined from ordered pairs by a recurrence starting from an ordered pair; indeed, an {{mvar|n}}-tuple can be identified with the ordered pair of its {{math|(n − 1)}} first elements and its {{mvar|n}}th element, for example,

\left( \left( \left( 1,2 \right),3 \right),4 \right)=\left( 1,2,3,4 \right).

In computer science, tuples come in many forms. Most typed functional programming languages implement tuples directly as product types,{{cite web|url=https://wiki.haskell.org/Algebraic_data_type|title=Algebraic data type - HaskellWiki|website=wiki.haskell.org}} tightly associated with algebraic data types, pattern matching, and destructuring assignment.{{cite web|url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment|title=Destructuring assignment|website=MDN Web Docs|date=18 April 2023 }} Many programming languages offer an alternative to tuples, known as record types, featuring unordered elements accessed by label.{{cite web|url=https://stackoverflow.com/q/5525795 |title=Does JavaScript Guarantee Object Property Order?|website=Stack Overflow}} A few programming languages combine ordered tuple product types and unordered record types into a single construct, as in C structs and Haskell records. Relational databases may formally identify their rows (records) as tuples.

Tuples also occur in relational algebra; when programming the semantic web with the Resource Description Framework (RDF); in linguistics;{{cite encyclopedia|url= http://www.oxfordreference.com/view/10.1093/acref/9780199202720.001.0001/acref-9780199202720-e-2276|title= N-tuple|encyclopedia=The Concise Oxford Dictionary of Linguistics|date= January 2007|publisher= Oxford University Press|isbn= 9780199202720|editor-first=P. H.|editor-last=Matthews|access-date= 1 May 2015}} and in philosophy.

{{cite book

| last1 = Blackburn

| first1 = Simon

| author-link1 = Simon Blackburn

| year = 1994

| chapter = ordered n-tuple

| title = The Oxford Dictionary of Philosophy

| url = https://books.google.com/books?id=Mno8CwAAQBAJ

| edition = 3

| location = Oxford

| publisher = Oxford University Press

| publication-date = 2016

| page = 342

| series = Oxford guidelines quick reference

| isbn = 9780198735304

| access-date = 2017-06-30

| quote = ordered n-tuple[:] A generalization of the notion of an [...] ordered pair to sequences of n objects.

}}

Etymology

The term originated as an abstraction of the sequence: single, couple/double, triple, quadruple, quintuple, sextuple, septuple, octuple, ..., {{math|n}}‑tuple, ..., where the prefixes are taken from the Latin names of the numerals. The unique 0-tuple is called the null tuple or empty tuple. A 1‑tuple is called a single (or singleton), a 2‑tuple is called an ordered pair or couple, and a 3‑tuple is called a triple (or triplet). The number {{math|n}} can be any nonnegative integer. For example, a complex number can be represented as a 2‑tuple of reals, a quaternion can be represented as a 4‑tuple, an octonion can be represented as an 8‑tuple, and a sedenion can be represented as a 16‑tuple.

Although these uses treat ‑tuple as the suffix, the original suffix was ‑ple as in "triple" (three-fold) or "decuple" (ten‑fold). This originates from medieval Latin plus (meaning "more") related to Greek ‑πλοῦς, which replaced the classical and late antique ‑plex (meaning "folded"), as in "duplex".OED, s.v. "triple", "quadruple", "quintuple", "decuple"{{efn|Compare the etymology of ploidy, from the Greek for -fold.}}

Properties

The general rule for the identity of two {{math|n}}-tuples is

: (a_1, a_2, \ldots, a_n) = (b_1, b_2, \ldots, b_n) if and only if a_1=b_1,\text{ }a_2=b_2,\text{ }\ldots,\text{ }a_n=b_n.

Thus a tuple has properties that distinguish it from a set:

  1. A tuple may contain multiple instances of the same element, so
    tuple (1,2,2,3) \neq (1,2,3); but set \{1,2,2,3\} = \{1,2,3\}.
  2. Tuple elements are ordered: tuple (1,2,3) \neq (3,2,1), but set \{1,2,3\} = \{3,2,1\}.
  3. A tuple has a finite number of elements, while a set or a multiset may have an infinite number of elements.

Definitions

There are several definitions of tuples that give them the properties described in the previous section.

=Tuples as functions=

The 0-tuple may be identified as the empty function. For n \geq 1, the n-tuple \left(a_1, \ldots, a_n\right) may be identified with the (surjective) function

:F ~:~ \left\{ 1, \ldots, n \right\} ~\to~ \left\{ a_1, \ldots, a_n \right\}

with domain

:\operatorname{domain} F = \left\{ 1, \ldots, n \right\} = \left\{ i \in \N : 1 \leq i \leq n\right\}

and with codomain

:\operatorname{codomain} F = \left\{ a_1, \ldots, a_n \right\},

that is defined at i \in \operatorname{domain} F = \left\{ 1, \ldots, n \right\} by

:F(i) := a_i.

That is, F is the function defined by

:\begin{alignat}{3}

1 \;&\mapsto&&\; a_1 \\

\;&\;\;\vdots&&\; \\

n \;&\mapsto&&\; a_n \\

\end{alignat}

in which case the equality

:\left(a_1, a_2, \dots, a_n\right) = \left(F(1), F(2), \dots, F(n)\right)

necessarily holds.

;Tuples as sets of ordered pairs

Functions are commonly identified with their graphs, which is a certain set of ordered pairs.

Indeed, many authors use graphs as the definition of a function.

Using this definition of "function", the above function F can be defined as:

:F ~:=~ \left\{ \left(1, a_1\right), \ldots, \left(n, a_n\right) \right\}.

=Tuples as nested ordered pairs=

Another way of modeling tuples in set theory is as nested ordered pairs. This approach assumes that the notion of ordered pair has already been defined.

  1. The 0-tuple (i.e. the empty tuple) is represented by the empty set \emptyset.
  2. An {{math|n}}-tuple, with {{math|n > 0}}, can be defined as an ordered pair of its first entry and an {{math|(n − 1)}}-tuple (which contains the remaining entries when {{math|n > 1)}}:
  3. : (a_1, a_2, a_3, \ldots, a_n) = (a_1, (a_2, a_3, \ldots, a_n))

This definition can be applied recursively to the {{math|(n − 1)}}-tuple:

: (a_1, a_2, a_3, \ldots, a_n) = (a_1, (a_2, (a_3, (\ldots, (a_n, \emptyset)\ldots))))

Thus, for example:

:

\begin{align}

(1, 2, 3) & = (1, (2, (3, \emptyset))) \\

(1, 2, 3, 4) & = (1, (2, (3, (4, \emptyset)))) \\

\end{align}

A variant of this definition starts "peeling off" elements from the other end:

  1. The 0-tuple is the empty set \emptyset.
  2. For {{math|n > 0}}:
  3. : (a_1, a_2, a_3, \ldots, a_n) = ((a_1, a_2, a_3, \ldots, a_{n-1}), a_n)

This definition can be applied recursively:

: (a_1, a_2, a_3, \ldots, a_n) = ((\ldots(((\emptyset, a_1), a_2), a_3), \ldots), a_n)

Thus, for example:

:

\begin{align}

(1, 2, 3) & = (((\emptyset, 1), 2), 3) \\

(1, 2, 3, 4) & = ((((\emptyset, 1), 2), 3), 4) \\

\end{align}

=Tuples as nested sets=

Using Kuratowski's representation for an ordered pair, the second definition above can be reformulated in terms of pure set theory:

  1. The 0-tuple (i.e. the empty tuple) is represented by the empty set \emptyset;
  2. Let x be an {{math|n}}-tuple (a_1, a_2, \ldots, a_n), and let x \rightarrow b \equiv (a_1, a_2, \ldots, a_n, b). Then, x \rightarrow b \equiv \{\{x\}, \{x, b\}\}. (The right arrow, \rightarrow, could be read as "adjoined with".)

In this formulation:

:

\begin{array}{lclcl}

() & & &=& \emptyset \\

& & & & \\

(1) &=& () \rightarrow 1 &=& \{\{()\},\{(),1\}\} \\

& & &=& \{\{\emptyset\},\{\emptyset,1\}\} \\

& & & & \\

(1,2) &=& (1) \rightarrow 2 &=& \{\{(1)\},\{(1),2\}\} \\

& & &=& \{\{\{\{\emptyset\},\{\emptyset,1\}\}\}, \\

& & & & \{\{\{\emptyset\},\{\emptyset,1\}\},2\}\} \\

& & & & \\

(1,2,3) &=& (1,2) \rightarrow 3 &=& \{\{(1,2)\},\{(1,2),3\}\} \\

& & &=& \{\{\{\{\{\{\emptyset\},\{\emptyset,1\}\}\}, \\

& & & & \{\{\{\emptyset\},\{\emptyset,1\}\},2\}\}\}, \\

& & & & \{\{\{\{\{\emptyset\},\{\emptyset,1\}\}\}, \\

& & & & \{\{\{\emptyset\},\{\emptyset,1\}\},2\}\},3\}\} \\

\end{array}

{{anchor|n-tuple}}{{math|''n''}}-tuples of {{math|''m''}}-sets

In discrete mathematics, especially combinatorics and finite probability theory, {{math|n}}-tuples arise in the context of various counting problems and are treated more informally as ordered lists of length {{math|n}}.{{harvnb|D'Angelo|West|2000|p=9}} {{math|n}}-tuples whose entries come from a set of {{math|m}} elements are also called arrangements with repetition, permutations of a multiset and, in some non-English literature, variations with repetition. The number of {{math|n}}-tuples of an {{math|m}}-set is {{math|mn}}. This follows from the combinatorial rule of product.{{harvnb|D'Angelo|West|2000|p=101}} If {{math|S}} is a finite set of cardinality {{math|m}}, this number is the cardinality of the {{math|n}}-fold Cartesian power {{math|S × S × ⋯ × S}}. Tuples are elements of this product set.

Type theory

{{main|Product type}}

In type theory, commonly used in programming languages, a tuple has a product type; this fixes not only the length, but also the underlying types of each component. Formally:

: (x_1, x_2, \ldots, x_n) : \mathsf{T}_1 \times \mathsf{T}_2 \times \ldots \times \mathsf{T}_n

and the projections are term constructors:

: \pi_1(x) : \mathsf{T}_1,~\pi_2(x) : \mathsf{T}_2,~\ldots,~\pi_n(x) : \mathsf{T}_n

The tuple with labeled elements used in the relational model has a record type. Both of these types can be defined as simple extensions of the simply typed lambda calculus.{{cite book|last=Pierce|first=Benjamin|title=Types and Programming Languages|url=https://archive.org/details/typesprogramming00pier_207|url-access=limited|publisher=MIT Press|year=2002|isbn=0-262-16209-1|pages=[https://archive.org/details/typesprogramming00pier_207/page/n149 126]–132}}

The notion of a tuple in type theory and that in set theory are related in the following way: If we consider the natural model of a type theory, and use the Scott brackets to indicate the semantic interpretation, then the model consists of some sets S_1, S_2, \ldots, S_n (note: the use of italics here that distinguishes sets from types) such that:

: [\![\mathsf{T}_1]\!] = S_1,~[\![\mathsf{T}_2]\!] = S_2,~\ldots,~[\![\mathsf{T}_n]\!] = S_n

and the interpretation of the basic terms is:

: [\![x_1]\!] \in [\![\mathsf{T}_1]\!],~[\![x_2]\!] \in [\![\mathsf{T}_2]\!],~\ldots,~[\![x_n]\!] \in [\![\mathsf{T}_n]\!].

The {{math|n}}-tuple of type theory has the natural interpretation as an {{math|n}}-tuple of set theory:Steve Awodey, [http://www.andrew.cmu.edu/user/awodey/preprints/stcsFinal.pdf From sets, to types, to categories, to sets], 2009, preprint

: [\![(x_1, x_2, \ldots, x_n)]\!] = (\,[\![x_1]\!], [\![x_2]\!], \ldots, [\![x_n]\!]\,)

The unit type has as semantic interpretation the 0-tuple.

See also

Notes

{{notelist}}

References

{{Reflist}}

Sources

  • {{citation|first1=John P.|last1=D'Angelo|first2=Douglas B.|last2=West|title=Mathematical Thinking/Problem-Solving and Proofs|year=2000|edition=2nd|publisher=Prentice-Hall|isbn=978-0-13-014412-6}}
  • Keith Devlin, The Joy of Sets. Springer Verlag, 2nd ed., 1993, {{isbn|0-387-94094-4}}, pp. 7–8
  • Abraham Adolf Fraenkel, Yehoshua Bar-Hillel, Azriel Lévy, [https://books.google.com/books?id=ah2bwOwc06MC Foundations of school Set Theory], Elsevier Studies in Logic Vol. 67, 2nd Edition, revised, 1973, {{isbn|0-7204-2270-1}}, p. 33
  • Gaisi Takeuti, W. M. Zaring, Introduction to Axiomatic Set Theory, Springer GTM 1, 1971, {{isbn|978-0-387-90024-7}}, p. 14
  • George J. Tourlakis, [https://books.google.com/books?as_isbn=9780521753746 Lecture Notes in Logic and Set Theory. Volume 2: Set Theory], Cambridge University Press, 2003, {{isbn|978-0-521-75374-6}}, pp. 182–193