Talk:Tuple/Archive 1

Latest comment: 1 year ago by Proski in topic Proposal to split article
Archive 1

Alternative definition

an n-tuple can be defined in terms of sets as (a1,a2,...,an)= {a1,{a1,a2},{a1,a2,a3},...,{a1,a2,...an}}

Would that not give the same for (1,2,1) and (1,2,2)? - Patrick 11:01 Mar 30, 2003 (UTC)

Yes it would. At least the inductive definition seems to be able to cope with duplicate elements without losing information.

Anyone notice...

That this article is just a shortened version of this?

Did you notice :"The source of this article is Wikipedia, the free encyclopedia. The text of this article is licensed under the GFDL." at the bottom? --MarSch 1 July 2005 10:14 (UTC)

Move from N-tuple to tuple

The n in the title could just as well have been any other letter. It has no significance. I suggest we move this page to tuple. Unfortunately history exists there so I can't do it. --MarSch 15:28, 19 May 2005 (UTC)

  • Support. James F. (talk) 16:34, 19 May 2005 (UTC)
  • Support. Jitse Niesen 10:32, 20 May 2005 (UTC)
  • Weak oppose. If we're using common names, I've always come across this as an "n-tuple", not a "tuple". Yes, n could have been any other letter, but it is the standard as far as I am aware: no one says "p-tuple" or "g-tuple". Merriam-Webster has no entry for "n-tuple", but lists "tuple" as a suffix, "-tuple", not as an independent word. MathWorld's entry is at "n-tuple". — Knowledge Seeker 13:35, 20 May 2005 (UTC)

This article has been renamed as the result of a move request. violet/riga (t) 14:45, 24 May 2005 (UTC)

suggest change

Am I the only one who thinks, that

if (a1, a2,...) = (a1, (a2,...)) then (1, 2, 2) = (1, (2,2)) = (1, (2), (2)) I really don't understand the reasoning that makes this into

(1,(2,(2,()))) = (1,(2, {{2}, {2, ∅}} )) = (1, {{2}, {2, {{2}, {2, ∅}}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, </nowiki>∅}}}}}} in the "formal definitions" part in the middle. It seems to me like a copy-paste error.

Silencer1981 10:55, 7 September 2006 (UTC)

(1,2,2) = (1,(2,2)) = (1,(2,(2))) = (1,(2,(2,()))). At each stage you take the innermost tuple and separate the first item from the remainder of the tuple. This finishes only when the innermost tuple has no first item i.e. when it is the empty tuple. EdC 22:25, 21 October 2006 (UTC)

100tuple

This is obviously incosequential but I was under the impression that 100-tuple in a joke like manner is called a "hectic". Cetuple is also right as it is just the normal english latin-based multiple word. I currently have not the time to reference that. anyone familiar with it? —Preceding unsigned comment added by Squidonius (talkcontribs) 00:18, 16 November 2007 (UTC)

Singleton

As I understand the formal definition, the 1-tuple (x) is really:

   

This is technically different from the singleton {x} —Preceding unsigned comment added by 68.84.9.196 (talk) 18:29, 7 July 2008 (UTC)

Proposal to Remove "Usage in Computer Science"

This section is not about computer science, rather, it is about computer programming languages. The usage of tuples in computer programming languages itself does not seem notable, since programming languages that support tuples define them in exactly the same way as the mathematical definition. If they don't, then they don't support tuples. That itself may be notable, but there are no sources here to reference. For example, the discussion about "field names" describes a structure called "tuple", but it does not meet the criteria of a tuple according to this article. It is just misleading. Same story for the information modeling "tuple". Merely demonstrating examples of tuples in different programming languages (Eiffel, Python) does not belong on this page, rather, in the articles for those languages. --Beefyt (talk) 22:41, 9 July 2008 (UTC)

I have removed most of this section, retitled it "Relational model", and added a reference. --66.162.32.234 (talk) 16:20, 10 July 2008 (UTC)

Couple, coupling

Term for 2-tuple, relationship? --Fgrose (talk) 20:20, 16 March 2009 (UTC)

Need for a disamb?

Someone recently added to the artcile an "about" template that had a red-link to "tuple (disambiguation)". The editor was apparently planning to create an article on tuple (Python). Without thinking twice, I tried to be a good citizen and created a tuple (disambiguation) page. But now the link has been removed from tuple, so tuple (disambiguation) is an orphan; and tuple (Python) hasn't materialized yet. Should I ask for its deletion? All the best, --Jorge Stolfi (talk) 22:28, 26 June 2009 (UTC)

I'm a huge Python fan, but its tuple datatype doesn't deserve its own article; it and tuples in other languages are essentially the same as the object described in the current article. You can probably WP:CSD the disambiguation page. --Cybercobra (talk) 22:53, 26 June 2009 (UTC)

1-tuple is empty tuple?

From the Formal definitions section, "the 1-tuple (i.e. the empty tuple)" - but in under the heading Names for tuples of specific length, it's a 0-tuple that's called the empty tuple, and the 1-tuple that's (rightly or wrongly) called a singleton. (talk) 14:11, 1 August 2009 (UTC)

Indeed. I hope to have fixed it now. --Jorge Stolfi (talk) 18:15, 1 August 2009 (UTC)

Bold text

Problem with def of tuple

As defined here, a tuple is really a word (mathematics). Whereas n-tuple is commonly defined in set theory books, I have yet to see one that formally defines tuple as a word [1]. Also, the definition of n-tuple in this article is circular, as defining a tuple that way requires the notion of an n-tuple be defined first. Pcap ping 13:18, 17 August 2009 (UTC)

From the talk history above, this trouble seems to have been caused by the moving of n-tuple to tuple some four years ago. Note however, that MathWorld only defines n-tuple, and say that "tuple" is simply a synonym when n is given from context, not a different concept as the Wikipedia article claims. Pcap ping 13:23, 17 August 2009 (UTC)
(ec with new section below) Yes, I believe that's how we should treat this here. It would be too pedantic to insist on a definition of "tuple" (as opposed to n-tuple), just because that's the title. (If the title was n-tuple, why not k-tuple instead?)
As to word vs. tuple: Yes, they are exactly the same, except they are used in different contexts. For tuples the length is often a fixed parameter, for words that's rarely the case. We imagine the elements of a word to be symbols, while we don't do that for tuples. A tuple and a word of the same length may be formally the same set, but that's just an accident of implementation, in the same way that it's just an accident of implementation if the rational numbers happen to be equivalence classes of pairs of integers. Hans Adler 14:03, 17 August 2009 (UTC)

Revisiting the ordered/unordered issue

First, let me applaud whoever wrote "[a tuple's] purpose is [...] to indicate that an object consists of certain components". This, I believe, is the heart of the matter, and the unifying theme across all the applications of "tuple".

In particular, I contend that the aspect prominently appearing in the first line of the article, that tuples are ordered, is really a side-effect of the way tuples are written down in some disciplines, not intrinsic to their tuple-ness as conceptual (mathematical, database etc) objects. This matter even bubbles up in the intro: "In set theory, an (ordered) n-tuple...". That sentence implies that there's a need to distinguish between an ordered and an unordered tuple, so I'd advocate that the current article start with what's common to tuples in general.

In that vein, I'd like to propose a revision to the introduction which incorporates this idea, something like the following:

The notion of tuple captures the idea of a composite object consisting of several simpler component elements, each element occupying a specific role. An accompanying name or description for each role is part of the overall notion of tuple.
In some disciplines, tuples are assumed to be ordered, superficially similar to an ordered list. However this is usually just a feature of the written form of the tuple, to allow the description to refer to the elements by position: "The first element is the such and such...". In most applications a tuple's elements are not actually manipulated by their position; this contrasts to ordered lists in whichelements are referenced by position, routinely, using an index.
Examples of tuples treated as ordered can be found in algebra, where a ring might be described as a 3-tuple, (E,+,x), and the tuple includes the additional descriptions of the role of each element: "The first position (here containing E) is where we write down a set for the ring. The second and third slots (here containing + and x) are where we write down two binary operators that satisfy two different sets of conditions." Beyond that, the order is not significant: there is no sense that E is "before" +.
In other fields, a tuple is explicitly describe as unordered, and the roles for the elements are named. This is the case in the database discipline, where tuple corresponds to a record (database row) in a relation (table), and where the elements are attributes (field values) which can be accessed by the names of the attributes (field names).
Reference for the database usage: C.J. Date Database in Depth p42: "tuples have no left-to-right ordering of their attributes".

Thoughts? Gwideman (talk) 02:01, 18 December 2009 (UTC)

I am afraid "(ordered) tuple" has misled you. And that's because it is misleading. What you can't know if you haven't read old mathematical literature is that the reason some people write "ordered pair" or (rarely) "ordered triple" is that the meaning of "pair" wasn't clear when people started to do set theory. Before set theory, they would have said "let a, b be a pair of widgets". If they wanted ab, they said so or just assumed it. If they got another pair c, d from somewhere else, they might ask whether "a=c and b=d", or they might ask whether "a=c and b=d up to permutation". This obviously depended on what they had in mind: a pair in the modern sense or a 2-element set.
When things got more formal at some time in the 20th century, it wasn't clear whether the word "pair" referred to a pair in the modern sense or a 2-element set. Therefore people started to talk about ordered pairs and unordered pairs. The ordered tuples won. Nowadays a "pair" is always an ordered pair, and an "unordered pair" is almost always referred to as a "2-element set" or a "set with two elements".
All of this is my "original research". I guess someone will have mentioned this in a set theory text once, but I can't give a reference. I am also not sure how to put this into the article.
I believe the question whether there is a (linear) order on the labels used to identify the elements of the tuple is really a relatively minor one that shouldn't be stressed in the lead. Hans Adler 07:45, 18 December 2009 (UTC)
The "(ordered)" part was meant to be an concise way of expressing the fact that some authors still call it "ordered n-tuple" even in not so ancient books, while others call it just n-tuple, but they both refer to the same ordered notion. See the section above for some references. Pcap ping 08:11, 18 December 2009 (UTC)
Looking back at the references I had surveryed above, only Takeuti and Zaring still used "ordered n-tuple", so we could just remove the optional "(ordered)" qualifier since it causes some confusion. Pcap ping 08:25, 18 December 2009 (UTC)
Regarding tuples in database theory, the Tuple#Relational model section explains that a different definition of "tuple" is used in that field, i.e. a function from names/labels to values, which indeed allows one to consider the tuple unordered if the labels are so. This is explained in the last two sentences of the lead as well. Perhaps it could be made more clear somehow? Pcap ping 08:44, 18 December 2009 (UTC)
Thanks for the comments and interesting background. OK, replying to Hans and myself: Since I posted yesterday, I happened to be reading an algebra book in which (x1,x2,x3...) is referred to as an n-tuple, no explicit "ordered", yet definitely treated as ordered, with elements later referenced by subscript. This is the usage I downplayed in my suggested intro, so today I'm acknowledging that, for some disciplines, this is a, or the, important sense of n-tuple. That said, this same book also uses n-tuple in definitions where the order is only significant to the writing and not to the intrinsic meaning of the object defined.
My motivation here is to assist readers who come to wikipedia for help in interpreting some material they are reading elsewhere, by pointing out alternative meanings for "tuple". Specifically: Don't get stuck trying to figure out why an author is asserting an ordering, when actually they are just describing composition (as in our ring definition example). Conversely, I guess we want readers to be aware that an author might be asserting ordering even when not specifically saying ordered n-tuple. Gwideman (talk) 18:44, 18 December 2009 (UTC)

Is this right??

The number prefix article says that quadruple is a word made from Latin elements quadru-ple and that quadru- is merely a version of quadri- before p. It also says that the -uple suffix in English is from the word quadruple and that quintuple is merely a coined word from the suffix. This article, however, says that quintuple has the same elements as quadruple. Anyone know which article is right?? Georgia guy (talk) 18:46, 21 January 2010 (UTC)

This article gives a nice summary of the different types of Latin numbers. My take on your question is that quintuple is derived from Latin, quintus, but quadruple is only derived from a corrupted form of Latin quartus and thus neither article is right. -- Derek Ross | Talk 00:57, 28 January 2010 (UTC)
Quartus is Latin for fourth. The Latin prefix for 4 is quadri-. Do we say four fold or fourth fold?? Georgia guy (talk) 14:20, 28 January 2010 (UTC)
Breaking out the online OED (thank you university library):

Anglo-Norman and Old French, Middle French quadruple, Middle French quadruble (French quadruple) fourfold, (as noun) fourfold amount (both 13th cent.), lateral incisor tooth (1480), type of gold coin, either a Spanish double pistole or a French coin worth four écus (1594) and its etymon classical Latin quadruplus (adjective) four times as great or as much, also quadruplum (noun) quantity four times as great or as much, fourfold penalty (use as noun of neuter of quadruplus)

So it seems it's irregular in the Latin itself. --Cybercobra (talk) 06:21, 31 January 2010 (UTC)
Now, the reason the word is quadruple and not quadriple is, according to number prefix, because quadru- is a form of quadri- used before p. Georgia guy (talk) 14:12, 31 January 2010 (UTC)
But, what about quintuple. What is the reason this word is quintuple and not quinqueple?? The prefix for 5 is quinque-. Georgia guy (talk) 14:41, 31 January 2010 (UTC)
OED on "quintuple":

Middle French, French quintuple (1484) < post-classical Latin quintuplex fivefold (4th cent.) < classical Latin quintus fifth (see QUINT n.1) + -plex -PLEX suffix1. Compare post-classical Latin quintuplus fivefold (c1267, c1615 in British sources). Compare earlier QUADRUPLE adj. and also SEXTUPLE adj.

--Cybercobra (talk) 23:18, 31 January 2010 (UTC)
You say "(see QUINT n.1)" so can you expand to include what the dictionary says about "quint"?? Georgia guy (talk) 23:22, 31 January 2010 (UTC)
Oh, I see. The word was coined by mistake in post classical Latin from quint (fifth) rather than quinque- (5). Any info you have on the subject of quinque- vs. quint-?? Georgia guy (talk) 23:24, 31 January 2010 (UTC)
No, the use of the ordinal rather than the cardinal is quite regular; compare triplex, "triple", which is from tris "third". The mediaeval change is the use of plus "more", imitating Greek plous, in place of classical plex "folded". "Mistake" is very doubtful, especially since the Hellenism is more learned - presumably a fruit of the reception of Aristotle. What we should say is the suffix is -ple, not -tuple, as in "decuple". Septentrionalis PMAnderson 05:05, 5 February 2010 (UTC)
I thought Latin for third was tertius. Georgia guy (talk) 14:10, 5 February 2010 (UTC)
tris may be closer to "three-fold", but the exact force of these words - especially in Latin as it emerged from PIE, before Greek influence - is uncertain, and (insofar as it is certain) difficult to render in English without paraphrase. Septentrionalis PMAnderson 19:15, 7 February 2010 (UTC)

Too many braces?

Also, is it just my eyes, or is there one pair of curly brackets too many in this?

{ { {{1}, {1,2}} }, { {{1}, {1,2}}, 2 } }

Aren't the second pair of brackets to open superfluous? Dependent Variable (talk) 14:11, 1 August 2009 (UTC)

It seems the example was wrong. I have rewritten that paragraph; now there are *lots* of braces, but hopefully none is superfluous! All the best, --Jorge Stolfi (talk) 18:15, 1 August 2009 (UTC)
Thanks. The article Tuple says that this definition uses "the usual set-theoretic definition of an ordered pair", but the article Ordered pair offers several ways of defining an ordered pair using set notation. One of them, Kuratowski's, is there called "the now-accepted definition", so this seems the most obvious candidate for being "the usual ... definition": (a,b) = { {a}, {a,b} }. This matches the definition in Bowen & Wang's Introduction to Vectors and Tensors (which is what brought me here). Generalising to a 3-tuple, using the recipe "{ {x}, {x,a} } is an (n + 1)-tuple", I'd have expected: { { {a},{a,b} }, { { {a},{a,b} }, {c} } }. But your many-bracketed definition of a 3-tuple looks to me more like that attributed to Wiener in Ordered pair, with the null set made explicit, except perhaps with the elements written in a different order, but I don't fully understand yet, so I don't know if the similarity is only superficial. Would it be possible to make clear which of the definitions of an ordered pair the article Tuple is referring to here. And if you've used a different convention, not quite matching any of those detailed in the Ordered pair article, maybe it would be helpful to show how an ordered pair would look in this notation, as a first step, before generalising to n-tuples. Dependent Variable (talk) 10:00, 2 August 2009 (UTC)
Indeed. Actually the bug was in the "definiton of tuple as nested ordered pairs", which did not define a 0-tuple (and hence did not work for any tuple). Hopefully, that section is fixed now. The set-theoretic definition of ordered pair that is used in the last subsection is indeed Kuratowski's; the empty sets arise from the definition of 0-tuple, not from the definition of ordered pair. But please do check it --- it is confusing to me, too! Thanks, and all the best, --Jorge Stolfi (talk) 23:48, 2 August 2009 (UTC)
PS. Reminds me of Goethe's quip: "Mathematicians are like Frenchmen --- whatever you tell them, they translate into their language, and no one understands it any more." 8-) --Jorge Stolfi (talk) 23:48, 2 August 2009 (UTC)

Heh, heh. So does this mean that it's actually, counterintuitively, a 1-tuple (rather than a 2-tuple) that's an "ordered pair", according to this definition? A Kuratowski-style ordered pair is { {a}, {a, b} }, and - if I've understood this right - a 1-tuple has exactly that form: (a) = { {Ø}, { {Ø, a} }, in contrast to a 2-tuple: (a, b) = { { { {Ø}, { {Ø, a} } }, { { {Ø}, { {Ø, a} }, b} }. This seems to differ from the way the idea is introduced by Bowen and Wang, who define an ordered pair simply as (a, b) = { {a}, {a, b} }, and an ordered triple (a, b, c) = ( (a, b), c ). They just call an N-tuple "an ordered set". In no case, as far as I've read, do they specifying that the first element of any of these entities has to be a set whose only member is the empty set. Just a different formalism, I guess? Dependent Variable (talk) 11:04, 3 August 2009 (UTC)

The formal definitions given in "ordered pair" (Kuratowsi's, Wiener's etc.) assume that one wants to define only pairs (2-tuples), not general n-tuples. The Bowen and Wang definition, as you quote it, assumes that one wants to define n-tuples only for n ≥ 2, and that "ordered pair" is a special case of tuple. However, in order to smoothly extend the nested-pair definition to 0-tuples and 1-tuples (assuming, as many mathemticians apparently do, that the 1-tuple (a) is distinct from the element a), it seems necessary to assume that "ordered pair" is a primitive concept while "2-tuple" is defined recursively as an ordered pair of a 1-tuple and an element; and ditto for 1-tuple. Indeed, in this approach it would be wiser to use distinct notations for "ordered pair" and "tuple", say '()' and '[]'. Then the 2-tuple [a,b] is the ordered pair ([a], b), the 1-tuple [a] is the ordered pair ([], a), and the 0-tuple [] is the empty set Ø; and all would be crystal clear, hopefully. 8-)
By the way, the LISP programming language does make such a distinction: an ordered pair is written "(A . B)" while a 2-element list is written "(A B)" and defined as equivalent to "(A . (B . ()))" where "()" is a special element that represents the 0-element list.
I suppose that there are alternative approaches where 0-tuple and 1-tuple are defined in some ad-hoc way, 2-tuple is defined as the same as ordered pair, and the recursive nested-pair definition is used only for n ≥ 3. If this approach is mildly popular, it deserves to be given in the article, too. All the best, --Jorge Stolfi (talk) 14:13, 3 August 2009 (UTC)
  • The 1-tuple (a) cannot be identical with a itself, although there is a trivial relationship between them. a is an element of (a), indeed the only element; it is not in general (and in most set theories, cannot be) an element of itself. Septentrionalis PMAnderson 19:19, 7 February 2010 (UTC)

Function parameters

Isn't a list of function parameters/arguments also an example of a tuple (in both math and computer science)? Stellarvortex (talk) 07:33, 29 April 2010 (UTC)

Yes! in mathematics you define a function type as   and int f(int x,int y); in the C programming language. The notation is closer to the mathematical notation in Haskell f :: (Integer,Integer) -> Integer which is the same as the above, many beginners confuse with the curried version f :: Integer -> (Integer -> Integer) in which f returns an integer function, for that reason function application is left associative f x y = (f x) y. The same concept holds in mathematics, although it is rarely used in the more popular mathematics like calculus, high school algebra, statistics, geometry, etc.
Tuples are involved in the definition of what mathematical functions are, but as far as I know (especially with respect to computing), No. There are some vaguely similar terms in computing, but they don't involve the word "tuple". --Cybercobra (talk) 07:54, 29 April 2010 (UTC)

Nested Pair Rubbish

Hi. The nested ordered pair definition seems common. For example, Moschovakis uses it. He writes, in Notes on Set Theory Pg 35, that "a tuple of length n+1 is a pair with second member a tuple of length n". But consider

({ {0} },0,0) = ({ {0} },(0,0))
= ({ {0} },{ {0},{0,0} }) by Kuratowski
= ({ {0} },{ {0},{0} })
= ({ {0} },{ {0} })

A faithful representation of the Naturals is to make 0 the emptyset, and make 1={0}, 2={1} etc. Then we have

(2,0,0) = (2,2)

which is absurd. In my opinion, a tuple must be defined as a sequence. Of course, this probably counts as original research and can't be included in the article...
Tinos (talk) 10:59, 4 October 2010 (UTC)

I think you went wrong when you wrote (0,0) = {{0},{0,0}}.
Consider this: (0,0) is a 2-tuple. Using the nested ordered pair definition the 2-tuple (a,b) is equal to the ordered pair <a,(b)>, where (b) is a 1-tuple which again is equal to the ordered pair <b,()>, where () is the 0-tuple and is represented by the empty set Ø. That is,
(b) = <b,()> = <b,Ø>.
Using the Kuratowski definition of the ordered pair, <x,y> = {{x},{x,y}}, I get
(b) = {{b},{b,Ø}}.
Similarly,
(a,b) = <a,(b)> = {{a},{a,(b)}} = {{a},{a,{{b},{b,Ø}}}.
Setting a = b = 0, I get
(0,0) = {{0},{0,{{0},{0,Ø}}}.
Using the empty set Ø to represent the natural number 0, I get
(0,0) = {{Ø},{Ø,{{Ø},{Ø,Ø}}} = {{Ø},{Ø,{{Ø},{Ø}}} = {{Ø},{Ø,{{Ø}}} = {1,{0,2}},
and not {{Ø}} = 2. However, I may well have made a mistake somewhere. — Tobias Bergemann (talk) 12:13, 4 October 2010 (UTC)
Regardless of the details of this example's implementation, it's clear that the current set theoretical convention is asking for trouble. It's like programming a computer in machine code when you could just as well use a higher language. A possible solution could be set theory with atoms and additional primitive symbols for certain relations between sets. For example things would already get a lot cleaner if we merely allowed atoms (i.e. many different empty "sets" along with the standard empty set) and a pairing function p that takes two arbitrary sets and gives us an atom that represents the pair. This function would be subject to some obvious axioms, such as: p(x,y) is always an atom (i.e. never a set with elements, and never the standard empty set). p(x,y) = p(u,v) iff x=y and u=v. I am sure one can prove that this modified set theory is not stronger than ordinary set theory. But all of this is of course original research. I have not seen this in the literature anywhere. Hans Adler 12:43, 4 October 2010 (UTC)

Tobias: Sorry, I didn't realise there's a difference between Moschovakis and this Wiki page (he doesn't define 0 and 1-tuples). My counter-example only applies to him. Further, it's easy to show a 3-tuple and 2-tuple can never be equal by the nested pair definition used here. However note that

(4,2,0) = 6
(2,0) = 4

These examples show that 2 and 3-tuples can be *exactly identical* with regular numbers. I believe this means the nested pair definition does not faithfully represent tuples, at least how a physicist or applied mathematician would use them. e.g. it makes no sense to say "that point in 3D space over there is 6".
I think Moschovakis may not have liked the approach taken here because it means that a 2-tuple is fundamentally different from an ordered pair. For example:

(2,0) = <2,2>

Thus one must re-define the Cartesian product in terms of 2-tuples rather than ordered pairs. This is important because in applications we'd say that 2D space is RxR. However one obvious side-effect is that a function from A to B is no longer a subset of AxB, because functions use ordered pairs, not 2-tuples.
My preferred solution is to define them as sequences, as in the "Tuples as Functions" section of the article. Note that one must still re-define the Cartesian product in this case. If the Cartesian product isn't changed, then some points in 3-D space are exactly identical to ones in 2D space, some of which are exactly identical to plain numbers.
Hans: I like the purist idea of reducing as much as possible solely to sets. I think this issue can be resolved without resort to atoms.
Tinos (talk) 07:42, 5 October 2010 (UTC)

It just occurred to me today that the sequence definition doesn't solve anything. For example:

(0,1) = {<0,0>,<1,1>} = {2,3}

But I can construct the naturals such that 0 is emptyset, 1={0}, 2={1}, 3={2}, 4={2,3}, 5={4}, etc. So

(0,1) = 4

Hans was right, pure set theory is a lost cause! We have:
Moschovakis: Some ordered triples equal ordered pairs as well as numbers. Tuple length is undefined.
Wikipedia: Some tuples equal numbers, but triples still equal doubles (in space) if we use the usual Cartesian product. Furthermore, 2-tuples and ordered pairs are fundamentally different things.
I should have stuck to physics.
Tinos (talk) 05:17, 6 October 2010 (UTC)

multiset and ordered set

Proposed rewrite of section Tuple#Characteristic_properties:

The general rule for the identity of two  -tuples is

  if and only if  

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

  1. A tuple may contain multiple instances of the same element, so
    tuple  ; but multiset   set  .
  2. Tuple elements are ordered: tuple  , but set  .
  3. A tuple may only have a finite number of elements, while a set or a multiset may have an infinite number of elements.

In the original, I don't see how {1,2,2,3}={1,2,3} because of the concept of "ordered set". Because this is a start class, with a respectable 76 watchers, I won't wait long before becoming bold. — CpiralCpiral 02:03, 28 September 2011 (UTC)


The reasoning given for {1,2,2,3}={1,2,3} isn't the concept of "ordered sets", it's the concept of "multisets", 'a generalization of the notion of set in which members are allowed to appear more than once.' 21:23, 13/01/2012

Tuples are tuples, and sets are sets, two different concepts. You can represent tuples with sets, (no need to use multisets, vgr.  

Lisp's linked-lists

The computational aspects are one sentence "This definition mirrors the most common representation of tuples as linked lists....in Lisp.", and and one section Relational model pertaining to, as the lead sentence says, "computer science". The section fits nicely into the level of abstraction of the rest of the article. The sentence I removed does not fit in so well because a sequence—the term describing a tuple, used in the lead sentence—to a mathematician, M, is different from a sequence that is a linked list is to a computer scientist, CS. (The CS in programmer mode has the pointer-element abstractions in between the otherwise organic "blocking" that the M person conceptualizes the data in tuple, which is some fixed number of elements not some fixed number of elements plus pointers.) I did try to reword the phrase 'linked-list' out of the sentence. To be more clear to the reader, "representation" should be rephrased "machine format" but this is precisely why it is out of style with the rest of the article. Trying to reword, I ran into another problem: Lisp does not have 'tuples' per say. Also, the Lisp list does not use NIL as an anchor like the "mirror" the math expression might lead the reader to believe. Cheers. — CpiralCpiral 22:50, 29 September 2011 (UTC)

"Up tuples" and "down tuples"

There's a book called "The Structure and Interpretation of Classical Mechanics," which proposes that there are two kinds of tuples: "up" tuples, and "down" tuples. The only explanation provided about the difference between them is that one of them is surrounded by parentheses, while the other is surrounded by square brackets.

Has anyone ever heard of "up tuples" and "down tuples"?

The book is strongly associated with a computer algebra system called SCMUTILS, which returned a "down tuple" of the following expressions when I took a derivative:

 

98.31.14.215 (talk) 03:54, 31 August 2008 (UTC)

There is more information in the notation appendix at the back of the book. Basically, up and down determines what (if any) contraction/reduction operation is performed during multiplication. My understanding (see pp. 478--482) is

  1. addition, subtraction, and multiplication by a scalar distributed to all elements
  2. addition and subtraction is done element wise when they are both of the same type (up/up or down/down)
  3. multiplication distributes the first to the elements of the second if they are both of the same type (up/up or down/down)
  4. multiplication sums the product of their elements if they are of opposite types (up/down or down/up)

As tuples can contain tuples, these rules are applied recursively. For example

 

 

 

 

 

where we have written up tuples vertically, down tuples horizontally, and only inserting ',' when required to disambiguate elements. The first step does a distributive multiplication as the outer tuples are of the same type, the second step does a contraction/reduction multiplication as the inner tuples are of opposite types, and the third step does a scalar multiplication and a elementwise addition. — Preceding unsigned comment added by 129.100.171.100 (talk) 16:22, 16 April 2012 (UTC)

That is not a standard notation, just a notational convention in that book. Read it carefully!

2. Properties

Within this section the following assertion is made:

"Thus a tuple has properties that distinguish it from a set."

under which it is further asserted:

"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\}."

Suggestion for Improvement #1: The example here can be made more cogent by altering the sequence of the example terms as such:

"1.A tuple may contain multiple instances of the same element, so

tuple (1,2,3,2) \neq (1,2,3); but set \{1,2,3,2\} = \{1,2,3\}."

However I believe this example suffers from a greater deficiency as the cardinality of the set examples are not the same and thus the equivalence posited between them is confusing (without further amplification).

Suggestion for Improvement #2: I propose the following, which is more elaborated than the present formulation, but I believe less susceptible to confusion or misdirection as to the concept being illustrated:

"n-tuples delineate R n space such that tuples�of disparate n-order: ( 1, 2, 3, 2 ) ≠ ( 1, 2, 3 )�are not equal as the same sequence expressed �as elements of a set { 1, 2, 3, 2 } = { 1, 2, 3 }

Hubbligart (talk) 01:22, 6 October 2013 (UTC)hubbligart

Computer science meaning

The usage of tuples in computer science, as described in the article (where "components are identified by a unique field name and not by a position"), is not entirely correct. The Python programming language, for example, has a tuple datatype where components are referenced by their position. It also has a datatype where components are referenced by a unique name, however this is called dictionary. In other languages such a structure is also known as an associative array or a hashtable.


True. But note that it doesn't say that this is how the term is always used in computer science. Guido, being the mathematician that he is, uses the term in its mathematical meaning and I as a computer scientist also very often do. However, if you look into the scientific literature on the theory of programming languages and database theory you will see that this is the standard definition. And of course, as is usual in computer science, people will give it their own meaning as they see fit. Even so, you are right that these usages should be reflected in the article. Note, btw, that associative arrays are not always the same as tuples because in PHP, for example, they do have a notion of position. And a hash table says something about how it is implemented, and is therefore also not exactly equivalent. -- Jan Hidders 09:18, 17 Feb 2004 (UTC)
This definition indeed doesn't seem right. Here's the one on Foldoc: http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?tuple Fredrik 18:04, 27 Feb 2004 (UTC)
What I find disturbing, is the example. In particular "Note that the order of the components is not relevant" ... in Python, the order is very important ... does this show up in computer science literature as a definition? If not I highly recommend removing someone's opionion of what a tuple is as shown in the example. -- Mwtoews Tuesday, April 11, 2006 at 20:14:01
Can I just say that as someone who came across the word tuple trying to learn database programming, it's pretty confusing that this article begins "In mathematics and computer science a tuple is an ordered list of elements," when http://en.wikipedia.org/wiki/Relational_model says: "A tuple is an unordered set of attribute values. An attribute is an ordered pair of attribute name and type name." So, who is right? Tacitdynamite (talk) 11:51, 12 June 2010 (UTC)
The text on relational model now reads "A tuple is an ordered set of attribute values." AFAIK, it's generally accepted that tuples are always ordered. Jeskeca (talk) 20:19, 12 May 2017 (UTC)
They are equivalent, instead to project with position in the tuple, the attribute name is used to project the value. A data base should have that abstract representation, because it a record structure may change in time, adding or removing attributes (fields), with no need to restructure everything. It is just a more abstract way to do it, but perfectly equivalent. Moreover, a good programmer should make use of abstraction to write more maintainable programs, writing projection functions.
For example:

  // use alias to hide representation
  typedef struct {char *name; char *id;} Person;
  // constructor
  Person mkPerson(char *name, char* id)
  { Person r;
    r.name=name;
    r.id=id;
    return r;
  }
  // selectors (projections)
  char *name(Person p){ return p.name; }
  char *id(Person p){ return p.id; }
  /* later used with hiding the actual representation */
  Person agent;
  agent = mkPerson("James Bond","007");
  /* instead of:
     agent.name = "James Bond";
     agent.id   = "007";
  */
  char *aname;
  char *aid;
  aname = name(agent); // instead of agent.name;
  aid = id(agent);     // instead of agent.id
  // is just an abstraction layer to ease programming.

A relational data base management language like SQL use abstraction to hide the actual structure of the files. That's all!

Usage in computer science

The section says tuples have "three distinct meanings". I'm having difficulty finding more than two. Are the records defined in the first paragraph distinct from the sort of tuples Eiffel has? Those two are clearly distinct from the associative array usage.

Also, I'm not exactly clear on how the Python notion of tuples as immutable lists is related to the notion of records here. If anyone can clarify these points, I'd appreciate it.Chris Johnson 23:43, 10 March 2007 (UTC)

I've clarified some of the language in the section on computer science tuples. Python Tuples are a specific construct in the language which are sometimes used as tuple product types, and sometimes used as immutable monomorphic lists. Jeskeca (talk) 20:25, 12 May 2017 (UTC)

A Tuple in an Oracle databse would be the equivalent of a row in a Microsoft database.

Pronunciation of Tuple

In 'Beginning Database Design Solutions' Rod Stephens says "The formal term for a row is tuple (rhymes with 'scruple')...", yet elsewhere I read that tuple is pronounced to rhyme with words like 'bubble'. Is there a correct version and, if so, what is the source of the definitive pronunciation? Could this be added to the article? —Preceding unsigned comment added by JohnN195.27.12.230 (talk) 12:54, 5 May 2010 (UTC)

In my experience, both the "rhymes with scruple" and "rhymes with couple" pronunciations are common among mathematicians. Jim (talk) 22:14, 5 May 2010 (UTC)
It obviously rhymes with quadruple, quintuple, sextuple...'. The problem comes when Americans mispronounce these words as sextupple, etc., and thus carry that over to "tuple". Correctrix (talk) 05:39, 1 June 2017 (UTC)
Interesting discussion. Here's another discussion that I think is working looking at. Shimmy (talk) 12:59, 27 September 2017 (UTC)


Difference between Tuple and Vector

Having read this article as a physicist looking to understand the usage of the term in Python (computer language), I am now wondering whether you mathematicians would care to include a discussion of the distinctions among tuple, vector, and tensors of rank 1. All share the common feature of being ordered lists, though I suppose the vector would include a presumed reference to set of basis vectors or functions. I seem often to see these terms used interchangeably, especially by the computer science community. (Sloughin (talk) 18:46, 9 June 2011 (UTC))

An n-tuple is an element of the set cross product among n sets (a relation). A vector may be represented by a tuple, but is part of an algebraic system which includes the relation and operations among vectors like sum which is closed or dot product which produce an scalar (1-tuple).
in synthesis, you may represent vectors with tuples but you must also the have operations to form an algebra, like a vector space or a linear algebra.
the same concept is used in programming languages. It is more obvious in static typed languages than in dynamic typed languages like Python. — Preceding unsigned comment added by 2806:106E:B:519D:954D:6133:A78B:8695 (talk) 10:31, 26 April 2021 (UTC)

In references

I'm going to add the names/def from some refs in this subsection, so we can come to a conclusion, hopefully.

  • Takeuti and Zaring, Introduction to axiomatic set theory, p.14 (sorry, not available on google books) define ordered and unordered n-tuples. No mention of what unqualified "tuple" would mean.
  • Blumensath calls it a "tuple of length n", and lists is just as "tuple" in the book's index.
  • Jech, Set theory, 3rd ed., p.7 (also not on google books, but 1st ed. is there) only defines n-tuple as the ordered one. He never uses it as unqualified "tuple".
  • Tourlakis, Lecture Notes in Logic and Set Theory. Volume 2: Set theory, p. 185 (not on gbooks either) defines an n-tuple as ordered, and the says: "We adopt this practice henceforth and call (x1,...,xn) an n-tuple, or n-vector, or just vector if n is understood or unimportant." Although he doesn't say it explicitly, he also uses tuple a few times when n is understood from context.
  • Fraenkel, Bar-Hillel, Lévy, Foundations of set theory also define and use only n-tuple.

On the other hand, the unqualified tuple is common in computer science books. E.g.

  • B.C. Pierce's Types and programming languages, p. 128, simply calls an n-tuple a tuple. In a typed universe, the type of a tuple is a product type, so not only is the length fixed, but also the type of each component is fixed.


The OED entry is under the suffix "-tuple", and its definition immediately suggests n-tuple:

-tuple With preceding algebraic symbol: (an entity or set) consisting of as many parts or elements as indicated by the symbol.

CRGreathouse (t | c) 18:16, 17 August 2009 (UTC)

  • This definition seems incorrect and misleading. Are there examples of "n-tuple" being used to mean "a *set* with n elements"? --Jorge Stolfi (talk) 14:56, 18 August 2009 (UTC)
    • I believe it's simply obsolete. Early set theory books disginguished between "pairs", i.e. two-element sets, and "ordered pairs". By extension, a triple would have been a three-element set etc. Another view would be that the author (who was probably not a mathematician) used "set" in a non-standard sense. Hans Adler 15:58, 18 August 2009 (UTC)

Update

I've updated the article to reflect the different flavors of tuple as used in set theory vs. type theory. I think this distinction is important because of the computer science use of tuple from type theory. Let me know what you think. Pcap ping 19:00, 17 August 2009 (UTC)

Those formal definitions are fine in the "Formal definitions" section, but mentioning them in the lead section does not add any concrete information; it only makes the lead incomprehensible for non-mathematicians (and for many mathematicians too, I am afraid).
Mathematics is not formalism. The concept of tuple transcends all its formal definitions, and can be understood and used, effectively and rigorously, without ever choosing or mentioning a formal definition. The purpose of a formal "definition" of tuple in terms of some axiomatic theory (of sets, functions, ordered pairs, whatever) is not to explain what a tuple is, but only to show that the theory needs not include "tuple" as a separate primitive concept.
Indeed, depending on the formal definiton, the product A×B×C may be the same as (A×B)×C, or A×(B×C), or both, or neither; but these details are not properties of tuples, they are only spurious features (if not defects) of the formal definitions.
For all mathematical uses, there is no difference between a tuple, a list, a word, or a string: they are all the same concept, namely a finite sequence.
Depending on the subject area or context, it is customary to use one word in preference to the others, and sometimes a different notation. As it has been observed, the term "n-tuple" (and also "pair", "triple", "quadruple", etc.) is used to refer to a list of specific length; the unqualified word "tuple" is generally used when the length of the sequence is obvious (as in "let S be the tuple (a,b,c,d,e)") or fixed by the context (as in "let S be any tuple in A×B×C"). When the length is variable or uspecified, the terms "list" and "finite sequence" are generally used in preference to "tuple" (as in "let S be a list of integers"). In all these contexts a tuple/list/sequence is usually written (a,b,c). On the other hand, in formal language theory it is customary to call finite sequences "strings" or "words", and to use the notation "abc" for the sequence (a,b,c). These notes about mathematical *customs* should definitely be explained in the lead. All the best, --Jorge Stolfi (talk) 14:37, 18 August 2009 (UTC)
P.S. As observed in a previous section, the terms "vector" and "n-vector" are also often used as synonyms of "tuple" and "n-tuple". (But they are also used in linear algebra to refer to the abstract elements of a vector space, which are never called "tuples" or anything else.) --Jorge Stolfi (talk) 14:51, 18 August 2009 (UTC)
No, they are not "the same" in the unqualified manner in which you describe this sameness. You want them to be the same (for an obvious reason to me), but they are not. The are the same as described here. As for what should be included in the lead, I think this article follows MOS:INTRO. Pcap ping 17:19, 18 August 2009 (UTC)
By the way, the article on ordered pair is just if not even more technical than this (actually gives the type theory constructions, someting I've only blurbed about here and deferred to the reference), but its true that the lead there does not to summarize any of those issues, which fails MOS:INTRO in my opinion. (I didn't write a word in that article.) People will not come here to read an article that simply reads "an ordered pair is, well, an ordered pair, carry on", and similarly for tuple. Pcap ping 17:33, 18 August 2009 (UTC)
I haven't looked at the article on "ordered pair", but math articles in general seem rather poorly written, compared to other fields. Perhaps because math . The original defintion of "tuple" as an ordered finite sequence was quite informative; I cannot imagine anyone who would have failed to understand it. On the other hand, defining a tuple as a member of a product type, which is then defined as a set of tuples (saying it simply; the actual defintion is almost impossible to understand) --- how can that be considered informative? All the best, --Jorge Stolfi (talk) 00:10, 19 August 2009 (UTC)
PS. Concluding the truncated phrase above: "perhaps because math deals only with abstractions, and so it is hard to keep the exposition `down to earth'?". All the best,--Jorge Stolfi (talk) 00:58, 19 August 2009 (UTC)
Really? Personally I've been quite pleased with the quality of math articles on Wikipedia. But feel free to post articles needing cleanup to Wikipedia talk:WikiProject Mathematics so they can be fixed. CRGreathouse (t | c) 05:24, 20 August 2009 (UTC)

Proposal to split article

Would anyone object if I would split the article in tuple (mathematics) and tuple (computer science)? I believe their usage is different enought to warrant that. Apart from that I find the term n-tupel a bit odd, and it is one I have not heard as such very often. -- Jan Hidders 01:07, 17 Feb 2004 (UTC)

There is no need to split the article, because it is the same concept in maths and computer science, just slightly different notations. Declarative languages are closer to specification languages, which tend to be closer to the abstract mathematical notation. Compare Haskell records with COBOL records. the first declarative language is closer to the mathematical notation, while the later non-declarative language is too verbose. But the concept is the same originated in mathematics as labelled products.

I've a step in this direction, separating computer science related tuple facts into their own paragraph, and clarifying the distinction between un-ordered non-tuple records, and combined constructs that are ordered tuples with field names (such as C structs). I think splitting them into their own pages would be good, as a tuple (computer science) page could contain examples that are not appropriate on the current page. Jeskeca (talk) 20:16, 12 May 2017 (UTC)

When I hovered over "Tuples" on the Typescript page and saw mathematical text, it looked wrong to me. I was about to add a direct link to the tuple when I found that there is in fact one page. A link to Product type won't be a good idea, as tuples don't have predefined types, at least in some programming languages. Please make a page and you'll see how it will grow and accumulate data about different programming languages. Software developers may be hesitant to edit a page that is primarily mathematical. Proski (talk) 05:59, 26 June 2022 (UTC)

It would be nice if definitions of tuple were attributed to specific authors

Although a few different definitions of tuple are offered, only one definition is attributed to a specific author: the definition by Kuratowski. It would be nice if the other definitions of tuple were also attributed. As it is now, the other definitions don't even have footnotes. The definition of tuple as a function from the natural numbers to the elements of the tuple is reminiscent of a definition given by Felix Hausdorff in a 1967 paper. I'm not sure if that would be a reasonable attribution or not. — Preceding unsigned comment added by 67.174.176.71 (talk) 16:46, 18 December 2018 (UTC)

Dyad?

Is dyad legit terminology for a 2-tuple? — Preceding unsigned comment added by 96.40.48.159 (talk) 01:40, 12 July 2020 (UTC)

Sure. Monad, dyad, triad are valid words for 1-tuple, 2-tuple, and 3-tuple. "Pair" is much more common than "dyad", but that doesn't make dyad wrong. —David Eppstein (talk) 05:32, 12 July 2020 (UTC)