Definitions

# Tuple

In mathematics, a tuple is a sequence (also known as an "ordered list") of values, called the components of the tuple. These components can be any kind of mathematical objects, where each component of a tuple is a value of a specified type. A tuple containing n components is known as an "n-tuple". For example, the 4-tuple (or "quadruple"), with components of respective types PERSON, DAY, MONTH and YEAR, could be used to record that a certain person was born on a certain day of a certain month of a certain year.

Tuples are used to describe mathematical objects that consist of specified components. For example, a directed graph is defined as a tuple (V, E) where V is the set of nodes and E is a subset of V × V that denotes the edges. The type of the first object is "set of nodes" and the type of the second is "set of edges".

In type theory, tuples are associated with product types.

## Names of tuples

The term originated as an abstraction of the sequence: single, double, triple, quadruple, quintuple, n-tuple. A tuple of length n is usually described as an n-tuple. A 2-tuple is called a pair; a 3-tuple is a triple or triplet. The n can be any nonnegative integer. For example, a complex number can be represented as a 2-tuple, and a quaternion can be represented as a 4-tuple. Further constructed names are possible, such as octuple, but many mathematicians find it quicker to write "8-tuple", even if still pronouncing this "octuple".

Although the word tuple was taken as an apparent suffix of some of the names for tuples of specific length, such as quintuple, this is based on a false analysis. The word quintuple comes from Latin quintuplex, which should be analyzed as quintu-plex, in which the suffix plex comes from plicare "to fold", from which also English ply (and hence also the calque fivefold).

## Formal definitions

The main properties that distinguish a tuple from, for example, a set are that

1. it can contain an object more than once;
2. the objects appear in a certain order;
3. it has finite size.

Note that (1) distinguishes it from an ordered set and that (2) distinguishes it from a multiset. This is often formalized by giving the following rule for the identity of two n-tuples:

(a1, a2, …,an) = (b1, b2, …, bn) ↔ a1 = b1, a2 = b2, …, an = bn.

Since a n-tuple is indexed by the numbers 1…n (or 0…n-1), it can be regarded as a function from a subset of :

(a1, a2, …,an) ≡ fa: ℕn → A: iai.

Another way of formalizing tuples is by mapping them to more primitive constructs in set theory such as ordered pairs. For example, an n-tuple (with n > 2) can be defined as an ordered pair of its first entry and an (n−1)-tuple containing the remaining entries:

(a1, a2, …, an) = (a1, (a2, …, an)).

Using the usual set-theoretic definition of an ordered pair and letting the empty set represent the empty tuple, this results in the following inductive definition:

1. the 0-tuple (i.e. the empty tuple) is represented by ∅
2. if x is an n-tuple then {{a}, {a, x}} is an (n + 1)-tuple.

Using this definition, (1,2,2) would be

(1,(2,(2,∅))) = (1,(2, {{2}, {2, ∅}} )) = (1, {{2}, {2, {{2}, {2, ∅}}}} ) = {{1}, {1, {{2}, {2, {{2}, {2, ∅}}}}}}

There is an important similarity here with the way Lisp originally used the ordered pair abstraction to inductively create all of its n-tuple and list structures:

1. a special symbol NIL represents the empty list;
2. if X is a list and A an arbitrary value then the pair (A X) represents a list with the head (i.e. first element) A and the tail (i.e. the remainder of the list without the head) X.

## Relational model

In database theory, the relational model extends the definition of a tuple to associate a distinct name with each component. A tuple in the relational model is formally defined as a finite function that maps field names to values, rather than a sequence, so its components may appear in any order.

Its purpose is the same as in mathematics, that is, to indicate that an object consists of certain components, but the components are identified by name instead of position, which often leads to a more user-friendly and practical notation, for example:

(player : "Harry", score : 25 )

Tuples are typically used to represent a row in a database table or a proposition; in this case, there exists a player "Harry" with a score of 25.