# Cartesian product

In mathematics, specifically set theory, the **Cartesian product** of two sets *A* and *B*, denoted *A* × *B*, is the set of all ordered pairs (*a*, *b*) where *a* is in *A* and *b* is in *B*.^{[1]} In terms of set-builder notation, that is

A table can be created by taking the Cartesian product of a set of rows and a set of columns. If the Cartesian product *rows* × *columns* is taken, the cells of the table contain ordered pairs of the form (row value, column value).^{[4]}

One can similarly define the Cartesian product of *n* sets, also known as an ** n-fold Cartesian product**, which can be represented by an

*n*-dimensional array, where each element is an

*n*-tuple. An ordered pair is a 2-tuple or couple. More generally still, one can define the Cartesian product of an indexed family of sets.

The Cartesian product is named after René Descartes,^{[5]} whose formulation of analytic geometry gave rise to the concept, which is further generalized in terms of direct product.

The main historical example is the Cartesian plane in analytic geometry. In order to represent geometrical shapes in a numerical way, and extract numerical information from shapes' numerical representations, René Descartes assigned to each point in the plane a pair of real numbers, called its coordinates. Usually, such a pair's first and second components are called its *x* and *y* coordinates, respectively (see picture). The set of all such pairs (i.e., the Cartesian product ℝ×ℝ, with ℝ denoting the real numbers) is thus assigned to the set of all points in the plane.^{[citation needed]}

because the ordered pairs are reversed unless at least one of the following conditions is satisfied:^{[6]}

Strictly speaking, the Cartesian product is not associative (unless one of the involved sets is empty).

The Cartesian product satisfies the following property with respect to intersections (see middle picture).

In most cases, the above statement is not true if we replace intersection with union (see rightmost picture).

Here are some rules demonstrating distributivity with other operators (see leftmost picture):^{[6]}

where each element of *A* is paired with each element of *B*, and where each pair makes up one element of the output set.
The number of values in each element of the resulting set is equal to the number of sets whose Cartesian product is being taken; 2 in this case.
The cardinality of the output set is equal to the product of the cardinalities of all the input sets. That is,

The set *A* × *B* is infinite if either *A* or *B* is infinite, and the other set is not the empty set.^{[9]}

The Cartesian product can be generalized to the ** n-ary Cartesian product** over

*n*sets

*X*

_{1}, ...,

*X*as the set

_{n}The **Cartesian square** of a set *X* is the Cartesian product *X*^{2} = *X* × *X*.
An example is the 2-dimensional plane **R**^{2} = **R** × **R** where **R** is the set of real numbers:^{[1]} **R**^{2} is the set of all points (*x*,*y*) where *x* and *y* are real numbers (see the Cartesian coordinate system).

An example of this is **R**^{3} = **R** × **R** × **R**, with **R** again the set of real numbers,^{[1]} and more generally **R**^{n}.

The *n*-ary Cartesian power of a set *X* is isomorphic to the space of functions from an *n*-element set to *X*. As a special case, the 0-ary Cartesian power of *X* may be taken to be a singleton set, corresponding to the empty function with codomain *X*.

that is, the set of all functions defined on the index set such that the value of the function at a particular index *i* is an element of *X _{i}*. Even if each of the

*X*is nonempty, the Cartesian product may be empty if the axiom of choice, which is equivalent to the statement that every such product is nonempty, is not assumed.

_{i}**Cartesian power** is a Cartesian product where all the factors *X _{i}* are the same set

*X*. In this case,

If several sets are being multiplied together (e.g., *X*_{1}, *X*_{2}, *X*_{3}, …), then some authors^{[10]} choose to abbreviate the Cartesian product as simply ×*X*_{i}.

If *f* is a function from *X* to *A* and *g* is a function from *Y* to *B*, then their Cartesian product *f* × *g* is a function from *X* × *Y* to *A* × *B* with

This can be extended to tuples and infinite collections of functions. This is different from the standard Cartesian product of functions considered as sets.

Although the Cartesian product is traditionally applied to sets, category theory provides a more general interpretation of the product of mathematical structures. This is distinct from, although related to, the notion of a Cartesian square in category theory, which is a generalization of the fiber product.

Exponentiation is the right adjoint of the Cartesian product; thus any category with a Cartesian product (and a final object) is a Cartesian closed category.

In graph theory, the Cartesian product of two graphs *G* and *H* is the graph denoted by *G* × *H*, whose vertex set is the (ordinary) Cartesian product *V*(*G*) × *V*(*H*) and such that two vertices (*u*,*v*) and (*u*′,*v*′) are adjacent in *G* × *H*, if and only if *u* = *u*′ and *v* is adjacent with *v*′ in *H*, *or* *v* = *v*′ and *u* is adjacent with *u*′ in *G*. The Cartesian product of graphs is not a product in the sense of category theory. Instead, the categorical product is known as the tensor product of graphs.