Tuple
- العربية
- Български
- Català
- Čeština
- Чӑвашла
- Deutsch
- Ελληνικά
- Esperanto
- Español
- Eesti
- Euskara
- فارسی
- Suomi
- Français
- Galego
- עברית
- Hrvatski
- Magyar
- Interlingua
- Bahasa Indonesia
- Italiano
- 日本語
- Қазақша
- 한국어
- Latina
- Lombard
- Latviešu
- Mirandés
- Nederlands
- Norsk bokmål
- Polski
- Português
- Русский
- Simple English
- Svenska
- ไทย
- Türkçe
- Українська
- 粵語
- 中文
In mathematics, a tuple is a finite sequence (or ordered list) of numbers. More generally, it is a sequence of mathematical objects, called the elements of the tuple. An n-tuple is a tuple of n elements, where 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 "( )" and separated by commas; for example, (2, 7, 4, 1, 7) denotes a 5-tuple. Other types of brackets are sometimes used, although they may have a different meaning.[a]
An n-tuple can be formally defined as the image of a function that has the set of the first n natural numbers as its domain (1, 2, ..., n). Tuples may be also defined from ordered pairs by a recurrence starting from an ordered pair; indeed, an n-tuple can be identified with the ordered pair of its (n − 1) first elements and its nth element, for example, {\displaystyle \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,[1] tightly associated with algebraic data types, pattern matching, and destructuring assignment.[2] Many programming languages offer an alternative to tuples, known as record types, featuring unordered elements accessed by label.[3] 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;[4] and in philosophy.[5]
Etymology
[edit ]The term originated as an abstraction of the sequence: single, couple/double, triple, quadruple, quintuple, sextuple, septuple, octuple, ..., 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 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".[6] [b]
Properties
[edit ]The general rule for the identity of two n-tuples is
- {\displaystyle (a_{1},a_{2},\ldots ,a_{n})=(b_{1},b_{2},\ldots ,b_{n})} if and only if {\displaystyle 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:
- A tuple may contain multiple instances of the same element, so
tuple {\displaystyle (1,2,2,3)\neq (1,2,3)}; but set {\displaystyle \{1,2,2,3\}=\{1,2,3\}}. - Tuple elements are ordered: tuple {\displaystyle (1,2,3)\neq (3,2,1)}, but set {\displaystyle \{1,2,3\}=\{3,2,1\}}.
- A tuple has a finite number of elements, while a set or a multiset may have an infinite number of elements.
Definitions
[edit ]There are several definitions of tuples that give them the properties described in the previous section.
Tuples as functions
[edit ]The {\displaystyle 0}-tuple may be identified as the empty function. For {\displaystyle n\geq 1,} the {\displaystyle n}-tuple {\displaystyle \left(a_{1},\ldots ,a_{n}\right)} may be identified with the surjective function
- {\displaystyle F~:~\left\{1,\ldots ,n\right\}~\to ~\left\{a_{1},\ldots ,a_{n}\right\}}
with domain
- {\displaystyle \operatorname {domain} F=\left\{1,\ldots ,n\right\}=\left\{i\in \mathbb {N} :1\leq i\leq n\right\}}
and with codomain
- {\displaystyle \operatorname {codomain} F=\left\{a_{1},\ldots ,a_{n}\right\},}
that is defined at {\displaystyle i\in \operatorname {domain} F=\left\{1,\ldots ,n\right\}} by
- {\displaystyle F(i):=a_{i}.}
That is, {\displaystyle F} is the function defined by
- {\displaystyle {\begin{alignedat}{3}1\;&\mapsto &&\;a_{1}\\\;&\;\;\vdots &&\;\\n\;&\mapsto &&\;a_{n}\\\end{alignedat}}}
in which case the equality
- {\displaystyle \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 {\displaystyle F} can be defined as:
- {\displaystyle F~:=~\left\{\left(1,a_{1}\right),\ldots ,\left(n,a_{n}\right)\right\}.}
Tuples as nested ordered pairs
[edit ]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.
- The 0-tuple (i.e. the empty tuple) is represented by the empty set {\displaystyle \emptyset }.
- An n-tuple, with n> 0, can be defined as an ordered pair of its first entry and an (n − 1)-tuple (which contains the remaining entries when n> 1):
- {\displaystyle (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 (n − 1)-tuple:
- {\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=(a_{1},(a_{2},(a_{3},(\ldots ,(a_{n},\emptyset )\ldots ))))}
Thus, for example:
- {\displaystyle {\begin{aligned}(1,2,3)&=(1,(2,(3,\emptyset )))\\(1,2,3,4)&=(1,(2,(3,(4,\emptyset ))))\\\end{aligned}}}
A variant of this definition starts "peeling off" elements from the other end:
- The 0-tuple is the empty set {\displaystyle \emptyset }.
- For n> 0:
- {\displaystyle (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:
- {\displaystyle (a_{1},a_{2},a_{3},\ldots ,a_{n})=((\ldots (((\emptyset ,a_{1}),a_{2}),a_{3}),\ldots ),a_{n})}
Thus, for example:
- {\displaystyle {\begin{aligned}(1,2,3)&=(((\emptyset ,1),2),3)\\(1,2,3,4)&=((((\emptyset ,1),2),3),4)\\\end{aligned}}}
Tuples as nested sets
[edit ]Using Kuratowski's representation for an ordered pair, the second definition above can be reformulated in terms of pure set theory:
- The 0-tuple (i.e. the empty tuple) is represented by the empty set {\displaystyle \emptyset };
- Let {\displaystyle x} be an n-tuple {\displaystyle (a_{1},a_{2},\ldots ,a_{n})}, and let {\displaystyle x\rightarrow b\equiv (a_{1},a_{2},\ldots ,a_{n},b)}. Then, {\displaystyle x\rightarrow b\equiv \{\{x\},\{x,b\}\}}. (The right arrow, {\displaystyle \rightarrow }, could be read as "adjoined with".)
In this formulation:
- {\displaystyle {\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}}}
n-tuples of m-sets
[edit ]In discrete mathematics, especially combinatorics and finite probability theory, n-tuples arise in the context of various counting problems and are treated more informally as ordered lists of length n.[7] n-tuples whose entries come from a set of m elements are also called arrangements with repetition, permutations of a multiset and, in some non-English literature, variations with repetition. The number of n-tuples of an m-set is mn. This follows from the combinatorial rule of product.[8] If S is a finite set of cardinality m, this number is the cardinality of the n-fold Cartesian power S ×ばつ S ×ばつ ⋯ ×ばつ S. Tuples are elements of this product set.
Type theory
[edit ]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:
- {\displaystyle (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:
- {\displaystyle \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.[9]
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 {\displaystyle S_{1},S_{2},\ldots ,S_{n}} (note: the use of italics here that distinguishes sets from types) such that:
- {\displaystyle [\![{\mathsf {T}}_{1}]\!]=S_{1},~[\![{\mathsf {T}}_{2}]\!]=S_{2},~\ldots ,~[\![{\mathsf {T}}_{n}]\!]=S_{n}}
and the interpretation of the basic terms is:
- {\displaystyle [\![x_{1}]\!]\in [\![{\mathsf {T}}_{1}]\!],~[\![x_{2}]\!]\in [\![{\mathsf {T}}_{2}]\!],~\ldots ,~[\![x_{n}]\!]\in [\![{\mathsf {T}}_{n}]\!]}.
The n-tuple of type theory has the natural interpretation as an n-tuple of set theory:[10]
- {\displaystyle [\![(x_{1},x_{2},\ldots ,x_{n})]\!]=(,円[\![x_{1}]\!],[\![x_{2}]\!],\ldots ,[\![x_{n}]\!],円)}
The unit type has as semantic interpretation the 0-tuple.
For a list of tuple types in programming languages, see Product type#Product types in programming languages.
See also
[edit ]Notes
[edit ]- ↑ 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.
- ↑ Compare the etymology of ploidy, from the Greek for -fold.
References
[edit ]- ↑ "Algebraic data type - HaskellWiki". wiki.haskell.org.
- ↑ "Destructuring assignment". MDN Web Docs. 18 April 2023.
- ↑ "Does JavaScript Guarantee Object Property Order?". Stack Overflow.
- ↑ Matthews, P. H., ed. (January 2007). "N-tuple". The Concise Oxford Dictionary of Linguistics. Oxford University Press. ISBN 9780199202720 . Retrieved 1 May 2015.
- ↑
Blackburn, Simon (1994). "ordered n-tuple". The Oxford Dictionary of Philosophy. Oxford guidelines quick reference (3 ed.). Oxford: Oxford University Press (published 2016). p. 342. ISBN 9780198735304 . Retrieved 2017年06月30日.
ordered n-tuple[:] A generalization of the notion of an [...] ordered pair to sequences of n objects.
- ↑ OED, s.v. "triple", "quadruple", "quintuple", "decuple"
- ↑ D'Angelo & West 2000 , p. 9
- ↑ D'Angelo & West 2000 , p. 101
- ↑ Pierce, Benjamin (2002). Types and Programming Languages . MIT Press. pp. 126–132. ISBN 0-262-16209-1.
- ↑ Steve Awodey, From sets, to types, to categories, to sets, 2009, preprint
Sources
[edit ]- D'Angelo, John P.; West, Douglas B. (2000), Mathematical Thinking/Problem-Solving and Proofs (2nded.), 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, 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, Lecture Notes in Logic and Set Theory. Volume 2: Set Theory , Cambridge University Press, 2003, ISBN 978-0-521-75374-6, pp. 182–193
External links
[edit ]- Wiktionary logo The dictionary definition of tuple at Wiktionary