Ordered Pairs and Cartesian Products

What does it really mean to write (a,b)(a,b)? Why can't we just treat it as the two-element set {a,b}\{a,b\}? This innocent question turns out to matter enormously. The entire edifice of relations, functions, sequences, and coordinate geometry rests on one thing. It rests on being able to distinguish "first" from "second." If ordered pairs collapsed into unordered pairs, (2,3)(2,3) would equal (3,2)(3,2). No function could ever tell inputs from outputs. The resolution, due to Kazimierz Kuratowski in 1921, is a small piece of mathematical engineering. It defines (a,b)(a,b) as a specific set built only from aa, bb, and the axioms of set theory. This is done so that the property we actually care about becomes a theorem. That property is that (a,b)=(c,d)(a,b) = (c,d) exactly when a=ca=c and b=db=d. It becomes a theorem rather than an assumption. This matters because it shows something important about set theory. Set theory has no primitive notion of "order" built in. Yet it is already rich enough to construct order out of nothing but membership. Once ordered pairs are secured, the Cartesian product A×BA \times B becomes well-defined. It is the set of all ordered pairs with first coordinate from AA and second coordinate from BB. It becomes a well-defined set, not just an informal "grid" of dots. This is the single construction that makes several things possible. It lets us define a relation as a set of ordered pairs. It lets us define a function as a special kind of relation. Eventually it lets us define a sequence as a function on the natural numbers. Every later notion in this chapter is built directly on top of A×BA \times B. This article gives the Kuratowski definition. It proves the characterizing theorem rigorously. It defines the Cartesian product and establishes its basic algebraic properties. It shows exactly what goes wrong if the definition is weakened. It closes by placing ordered pairs in their proper role. That role is as the foundation for Relations as Sets of Ordered Pairs.

Key takeaways
  • An ordered pair (a,b)(a,b) must satisfy: (a,b)=(c,d)(a,b)=(c,d) iff a=ca=c and b=db=d — order matters, unlike unordered pairs {a,b}\{a,b\}.
  • Kuratowski's definition: (a,b):={{a},{a,b}}(a,b) := \{\{a\},\{a,b\}\}, built entirely from the existing axioms of set theory.
  • The Coordinate Theorem proves this definition works: it recovers exactly the equality condition we wanted, with no extra assumptions.
  • The Cartesian product A×B={(a,b):a∈A,b∈B}A \times B = \{(a,b) : a \in A, b \in B\} is a genuine set, constructible via the power set and separation axioms.
  • A×BA \times B is generally not commutative: A×B≠B×AA\times B \neq B\times A unless A=BA=B or one of them is empty.
  • Key idea: order is not primitive — it is manufactured from unordered sets by nesting braces so that one element is distinguishable as "the one that repeats."

Where this lives today

The Cartesian product is the literal foundation on which relations and functions are built: a relation from AA to BB is defined as any subset of A×BA\times B, and a function is a relation satisfying an extra existence-and-uniqueness clause — both concepts are meaningless without first having A×BA\times B available as a genuine set, which is exactly what this article establishes. In Relations as Sets of Ordered Pairs this becomes the starting definition. In computer science, ordered pairs and products underlie the type `A × B` (product types) in typed functional languages, tuple data structures, and relational database theory, where a table is literally a finite subset of a Cartesian product of column domains. In cryptography and coding theory, finite Cartesian products {0,1}n\{0,1\}^n (an nn-fold product of the two-element set) are the ambient space for bit-strings. In probability and statistics, joint sample spaces for two random variables are modeled as Ω1×Ω2\Omega_1 \times \Omega_2, with joint distributions as measures on the product. In topology and analysis, the product topology on A×BA\times B (and more generally on infinite products, via Cardinality and Cardinal Arithmetic-adjacent machinery) is defined using exactly this set, and R×R=R2\mathbb{R}\times\mathbb{R} = \mathbb{R}^2 recovers ordinary coordinate geometry as the special case A=B=RA=B=\mathbb{R}.

Ask the tutor: How does the Kuratowski definition of ordered pairs let us define a relation from AA to BB purely as a subset of A×BA \times B?

DefinitionKuratowski Ordered Pair and Cartesian Product

Let aa and bb be sets (or elements of some universe of discourse). The ordered pair of aa and bb, denoted (a,b)(a,b), is defined by

(a,b)  :=  { {a}, {a,b} }.(a,b) \;:=\; \bigl\{\, \{a\},\ \{a,b\} \,\bigr\}.

The element aa is called the first coordinate and bb the second coordinate of (a,b)(a,b). Given sets AA and BB, the Cartesian product of AA and BB is the set

A×B  :=  { (a,b):a∈A and b∈B }.A \times B \;:=\; \bigl\{\, (a,b) : a \in A \text{ and } b \in B \,\bigr\}.

More generally, for n≥1n \ge 1 an ordered nn-tuple is defined recursively by (a1):=a1(a_1) := a_1 and

(a1,…,an):=((a1,…,an−1), an),(a_1,\dots,a_n) := \bigl( (a_1,\dots,a_{n-1}),\, a_n \bigr),

and the product of nn sets A1×⋯×AnA_1 \times \cdots \times A_n is the set of all such nn-tuples with ai∈Aia_i \in A_i.

Intuition

The unordered pair {a,b}\{a,b\} throws aa and bb into a set and forgets which one came first — {2,3}\{2,3\} and {3,2}\{3,2\} are literally the same set, since a set is determined solely by its members. To encode order, Kuratowski's trick is to build a set that contains a "marked" singleton alongside the full pair. In (a,b)={{a},{a,b}}(a,b) = \{\{a\},\{a,b\}\}, the singleton {a}\{a\} flags aa as the distinguished element, while {a,b}\{a,b\} records both members. Reading the set back, you can tell which element was "first" by finding the element that appears in the smaller piece {a}\{a\} — this is the whole content of the Coordinate Theorem proved below, and the case a=ba=b needs a little extra care, handled in the proof. Once pairs are set up, A×BA \times B is simply the set of every possible pairing of an element of AA with an element of BB, laid out as a rectangular grid when A,B⊆RA, B \subseteq \mathbb{R}. The picture below shows a small concrete product A×BA \times B with A={1,2,3}A=\{1,2,3\} (horizontal) and B={x,y}B=\{x,y\} (vertical), alongside the internal Kuratowski structure of a single pair.

Figure
The grid picture of A×BA\times B for A={1,2,3}A=\{1,2,3\}, B={x,y}B=\{x,y\}, and the nested-set anatomy of the pair (2,y)(2,y)
A × B as a grid 1 2 3 x y (2,y) (2, y) = { {2}, {2, y} } {2} 2 y outer set has two members: the singleton {2} and the pair {2,y}

Basic set-theoretic facts used in the proof

LemmaExistence of A×BA\times B as a set

For any sets AA and BB, the collection A×BA \times B defined above is genuinely a set, not merely a class.

Proof

We use the Axiom of Power Set and the Axiom Schema of Separation, standard tools of Zermelo–Fraenkel set theory assumed as prerequisites. First, if a∈Aa \in A and b∈Bb \in B, then {a}⊆A\{a\} \subseteq A and {a,b}⊆A∪B\{a,b\} \subseteq A \cup B. By the power set axiom, P(A∪B)\mathcal{P}(A\cup B) is a set, and {a},{a,b}∈P(A∪B)\{a\}, \{a,b\} \in \mathcal{P}(A \cup B). Hence (a,b)={{a},{a,b}}⊆P(A∪B)(a,b) = \{\{a\},\{a,b\}\} \subseteq \mathcal{P}(A\cup B), so (a,b)∈P(P(A∪B))(a,b) \in \mathcal{P}(\mathcal{P}(A\cup B)). Therefore every ordered pair (a,b)(a,b) with a∈Aa \in A, b∈Bb \in B is an element of the set P(P(A∪B))\mathcal{P}(\mathcal{P}(A\cup B)), which we call SS. By Separation applied to SS with the formula

φ(p):≡∃a∈A ∃b∈B (p=(a,b)),\varphi(p) :\equiv \exists a \in A\, \exists b \in B\ \bigl(p = (a,b)\bigr),

the collection

A×B={ p∈S:φ(p) }A \times B = \{\, p \in S : \varphi(p)\,\}

is a set. ■\blacksquare

∎

This lemma is what allows us to speak of A×BA \times B as an object we can quantify over, take subsets of (relations!), and apply further set operations to — it is not a mere shorthand for an infinite unwritten list.

TheoremThe Coordinate Theorem (Kuratowski)

Let a,b,c,da,b,c,d be arbitrary sets. Then

(a,b)=(c,d)⟺a=c  and  b=d,(a,b) = (c,d) \quad \Longleftrightarrow \quad a = c \ \text{ and } \ b = d,

where (a,b):={{a},{a,b}}(a,b) := \{\{a\},\{a,b\}\} as above.

Proof

We prove both directions. The technique throughout is direct case analysis on set equality, using extensionality (two sets are equal iff they have the same elements) as the only equality principle for sets.

(⇐\Leftarrow) The easy direction. Suppose a=ca=c and b=db=d. Substituting cc for aa and dd for bb inside the definition,

(c,d)={{c},{c,d}}={{a},{a,b}}=(a,b).(c,d) = \{\{c\},\{c,d\}\} = \{\{a\},\{a,b\}\} = (a,b).

This direction uses only the substitution of equals for equals, which is valid since == is a congruence for the set-builder notation.

(⇒\Rightarrow) The substantive direction. Suppose (a,b)=(c,d)(a,b) = (c,d), i.e.

{{a},{a,b}}={{c},{c,d}}.(∗)\{\{a\},\{a,b\}\} = \{\{c\},\{c,d\}\}. \tag{$\ast$}

We split into two cases according to whether a=ba = b. Case 1: a=ba = b. Then {a,b}={a,a}={a}\{a,b\} = \{a,a\} = \{a\}, so the left side of (∗)(\ast) collapses:

{{a},{a,b}}={{a}}.\{\{a\},\{a,b\}\} = \{\{a\}\}.

Thus (∗)(\ast) says {{a}}={{c},{c,d}}\{\{a\}\} = \{\{c\},\{c,d\}\}. The set {{c},{c,d}}\{\{c\},\{c,d\}\} has exactly one element, namely {a}\{a\}; since a set with one listed element name can have at most two distinct members {c}\{c\} and {c,d}\{c,d\}, and here there is only one member total, we must have {c}={c,d}={a}\{c\} = \{c,d\} = \{a\}. From {c}={a}\{c\} = \{a\} we get c=ac = a (a singleton determines its unique element by extensionality: the only element of {c}\{c\} is cc, and the only element of {a}\{a\} is aa, and these sets are equal, so their unique elements coincide). From {c,d}={a}\{c,d\} = \{a\}, every element of {c,d}\{c,d\} equals aa; in particular d=ad = a. So c=ac = a and d=a=bd = a = b, giving a=ca=c and b=db=d, as required. (Since a=ba=b in this case, b=db=d follows from d=a=bd=a=b.) Case 2: a≠ba \neq b. Then {a}≠{a,b}\{a\} \neq \{a,b\} (the right set has an element b∉{a}b \notin \{a\}, since b≠ab\ne a), so the left side of (∗)(\ast), namely {{a},{a,b}}\{\{a\},\{a,b\}\}, has exactly two distinct elements. Since (∗)(\ast) equates this to {{c},{c,d}}\{\{c\},\{c,d\}\}, the right side must also have exactly two distinct elements, and by extensionality the two sides have the same two elements. There are only two ways to match them up: Sub-case 2a: {a}={c}\{a\} = \{c\} and {a,b}={c,d}\{a,b\} = \{c,d\}. From {a}={c}\{a\}=\{c\}, as before, a=ca = c. Substituting into {a,b}={c,d}={a,d}\{a,b\}=\{c,d\} = \{a,d\}, so {a,b}={a,d}\{a,b\}=\{a,d\}. Since b∈{a,b}={a,d}b \in \{a,b\} = \{a,d\}, either b=ab=a or b=db=d. But b≠ab \ne a by the case hypothesis, so b=db = d. Hence a=ca=c and b=db=d, as required. Sub-case 2b: {a}={c,d}\{a\} = \{c,d\} and {a,b}={c}\{a,b\} = \{c\}. From {a}={c,d}\{a\} = \{c,d\}: this is a singleton equal to a set listed with (possibly repeated) elements c,dc,d; every element of {c,d}\{c,d\} must equal aa (since {a}={c,d}\{a\}=\{c,d\} has all elements equal to aa), so c=ac = a and d=ad = a. From {a,b}={c}={a}\{a,b\}=\{c\} = \{a\} (using c=ac=a): so {a,b}\{a,b\} is a singleton, meaning b=ab = a. But this contradicts the standing hypothesis a≠ba \neq b of Case 2. Hence sub-case 2b is impossible under Case 2, and only sub-case 2a can occur. In both cases we conclude a=ca=c and b=db=d. This completes the proof of (⇒\Rightarrow), and hence of the theorem. ■\blacksquare

∎

The case split above is exactly why the naive guess "(a,b):={a,b}(a,b) := \{a,b\}" fails and why the nested structure {{a},{a,b}}\{\{a\},\{a,b\}\} is needed: it is precisely engineered so that when a=ba=b the outer set degenerates to a singleton in a way that still lets us recover aa, while when a≠ba \ne b the asymmetry between the singleton branch and the pair branch pins down which element was first.

CorollaryPairs determine and are determined by their coordinates

The map (a,b)↦(a,b)(a,b) \mapsto (a,b) is a well-defined injective assignment: distinct coordinate pairs (a,b)≠(c,d)(a,b) \ne (c,d) (as pairs of sets in the ambient sense of "not both coordinates equal") always produce distinct Kuratowski sets (a,b)≠(c,d)(a,b) \ne (c,d).

Proof

This is the contrapositive of the Coordinate Theorem: if a≠ca \ne c or b≠db \ne d, then it is not the case that (a=ca=c and b=db=d), so by the theorem it is not the case that (a,b)=(c,d)(a,b)=(c,d), i.e. (a,b)≠(c,d)(a,b) \ne (c,d). ■\blacksquare

∎

Basic properties of the Cartesian product

TheoremAlgebraic properties of ×\times

Let A,B,C,DA,B,C,D be sets. Then: 1. A×∅=∅×A=∅A \times \varnothing = \varnothing \times A = \varnothing. 2. A×(B∪C)=(A×B)∪(A×C)A \times (B \cup C) = (A\times B) \cup (A \times C), and symmetrically for the second factor. 3. A×(B∩C)=(A×B)∩(A×C)A \times (B \cap C) = (A\times B) \cap (A \times C), and symmetrically for the second factor. 4. A×(B∖C)=(A×B)∖(A×C)A \times (B \setminus C) = (A \times B) \setminus (A \times C). 5. If A⊆BA \subseteq B then A×C⊆B×CA \times C \subseteq B \times C and C×A⊆C×BC \times A \subseteq C \times B, for any set CC. 6. A×B=∅A \times B = \varnothing if and only if A=∅A = \varnothing or B=∅B = \varnothing. 7. If A,BA, B are both nonempty, then A×B=B×AA\times B = B \times A if and only if A=BA = B.

Proof

Each part is proved directly from the definition of ×\times and set-builder logic (extensionality plus first-order reasoning about the defining property "p=(a,b)p=(a,b) with a∈∙,b∈∙a\in \bullet, b\in \bullet").

(1) By definition, A×∅={(a,b):a∈A,b∈∅}A \times \varnothing = \{(a,b): a\in A, b \in \varnothing\}. Since there is no bb with b∈∅b \in \varnothing, the defining condition is never satisfied by any pair, so A×∅=∅A\times \varnothing = \varnothing. Symmetrically for ∅×A\varnothing \times A, using that there is no a∈∅a \in \varnothing.

(2) We show both inclusions. (⊆\subseteq) Let p∈A×(B∪C)p \in A\times(B\cup C). Then p=(a,x)p=(a,x) for some a∈Aa\in A and x∈B∪Cx \in B\cup C. If x∈Bx \in B then p∈A×Bp \in A\times B; if x∈Cx\in C then p∈A×Cp\in A\times C. Either way p∈(A×B)∪(A×C)p \in (A\times B)\cup(A\times C). (⊇\supseteq) Let p∈(A×B)∪(A×C)p \in (A\times B)\cup (A\times C). If p∈A×Bp \in A \times B, write p=(a,x)p=(a,x) with a∈A,x∈B⊆B∪Ca\in A, x\in B \subseteq B\cup C, so p∈A×(B∪C)p \in A\times(B\cup C). If instead p∈A×Cp\in A\times C, the same argument with C⊆B∪CC \subseteq B \cup C applies. So in both cases p∈A×(B∪C)p \in A\times(B\cup C). Since both inclusions hold, the sets are equal by extensionality. The symmetric identity (B∪C)×A=(B×A)∪(C×A)(B\cup C)\times A = (B\times A)\cup(C\times A) is proved identically with the roles of coordinates swapped.

(3) Similarly, p=(a,x)∈A×(B∩C)p = (a,x) \in A\times(B\cap C) iff a∈Aa\in A and x∈Bx\in B and x∈Cx \in C, iff (a∈A,x∈Ba\in A, x\in B) and (a∈A,x∈Ca\in A, x\in C) — using that "a∈Aa \in A" can be freely duplicated in a conjunction — iff p∈A×Bp \in A\times B and p∈A×Cp \in A\times C, iff p∈(A×B)∩(A×C)p \in (A\times B)\cap(A\times C). Every step is an "iff," so equality follows by extensionality. The second-factor version is symmetric.

(4) p=(a,x)∈A×(B∖C)p=(a,x) \in A\times(B\setminus C) iff a∈Aa \in A and x∈Bx \in B and x∉Cx \notin C. Meanwhile p∈(A×B)∖(A×C)p \in (A\times B)\setminus(A\times C) iff [a∈Aa\in A and x∈Bx \in B] and NOT[a∈Aa \in A and x∈Cx\in C]. Since we are already assuming a∈Aa \in A in the first conjunct, "NOT[a∈Aa\in A and x∈Cx \in C]" simplifies (given a∈Aa\in A) to "x∉Cx \notin C." Hence the two conditions on pp coincide, giving equality.

(5) Suppose A⊆BA \subseteq B. Let p=(a,c)∈A×Cp=(a,c) \in A\times C, so a∈A⊆Ba \in A \subseteq B and c∈Cc\in C. Then a∈Ba \in B and c∈Cc \in C, so p∈B×Cp \in B \times C. Hence A×C⊆B×CA\times C \subseteq B\times C. The argument for C×A⊆C×BC\times A \subseteq C\times B is identical with coordinates swapped.

(6) (⇐\Leftarrow) is part (1). (⇒\Rightarrow, by contrapositive) Suppose A≠∅A\ne\varnothing and B≠∅B\ne\varnothing. Then there exist a∈Aa\in A and b∈Bb\in B, so (a,b)∈A×B(a,b) \in A\times B, so A×B≠∅A\times B \ne \varnothing.

(7) (⇐\Leftarrow) If A=BA=B then trivially A×B=A×A=B×AA\times B = A\times A = B\times A. (⇒\Rightarrow) Suppose A,B≠∅A,B \ne \varnothing and A×B=B×AA\times B = B\times A. We show A⊆BA \subseteq B; the reverse inclusion B⊆AB\subseteq A follows by the symmetric argument, giving A=BA=B by extensionality. Let a∈Aa \in A. Since B≠∅B \ne \varnothing, pick some b0∈Bb_0 \in B. Then (a,b0)∈A×B=B×A(a,b_0) \in A \times B = B\times A, so by definition of B×AB\times A there exist b′∈B,a′∈Ab'\in B, a' \in A with (a,b0)=(b′,a′)(a,b_0) = (b', a'). By the Coordinate Theorem, a=b′a = b' and b0=a′b_0 = a'. Since b′∈Bb' \in B and a=b′a=b', we conclude a∈Ba \in B. As a∈Aa\in A was arbitrary, A⊆BA \subseteq B. ■\blacksquare

∎

Worked examples

Example 1 (computing a concrete Kuratowski pair and unwinding it). Let A={1,2}A = \{1,2\} and B={2,3}B=\{2,3\}, both finite sets of natural numbers, and consider the pair (2,3)∈A×B(2,3) \in A\times B where the coordinate 22 happens to be shared with the "wrong" set BB as well — a deliberately asymmetric, easily-confused case. By definition,

(2,3)={{2},{2,3}}.(2,3) = \{\{2\}, \{2,3\}\}.

This is a set with two elements: the singleton {2}\{2\} and the pair-set {2,3}\{2,3\}. Let us verify by hand, using only the Coordinate Theorem, that this is genuinely different from (3,2)={{3},{3,2}}={{3},{2,3}}(3,2) = \{\{3\},\{3,2\}\} = \{\{3\},\{2,3\}\}. Suppose toward showing they're unequal we directly compare the two representations:

{{2},{2,3}}vs.\quatd{{3},{2,3}}.\{\{2\},\{2,3\}\} \quad \text{vs.} \quatd \{\{3\},\{2,3\}\}.

The first has {2}\{2\} as a member; does the second? The second's members are {3}\{3\} and {2,3}\{2,3\}. Is {2}={3}\{2\} = \{3\}? No, since 2≠32 \ne 3 (as elements) means these singletons have different unique elements. Is {2}={2,3}\{2\} = \{2,3\}? No, since 3∈{2,3}3 \in \{2,3\} but 3∉{2}3 \notin \{2\} (as 3≠23 \ne 2). So {2}\{2\} is a member of the first set but not the second, hence the two outer sets are unequal by extensionality: (2,3)≠(3,2)(2,3) \ne (3,2). This matches the Coordinate Theorem's prediction directly: (2,3)=(3,2)(2,3)=(3,2) would require 2=32=3 (comparing first coordinates), which is false, so the theorem guarantees inequality without any set manipulation — the hand computation above is simply that guarantee unpacked. Now let us list A×BA \times B in full, to see the "grid," including the coincidence that 22 appears in both AA and BB:

A×B={1,2}×{2,3}={(1,2),(1,3),(2,2),(2,3)}.A\times B = \{1,2\}\times\{2,3\} = \{(1,2),(1,3),(2,2),(2,3)\}.

Each of these four is a distinct Kuratowski set:

(1,2)={{1},{1,2}},(1,3)={{1},{1,3}},(2,2)={{2}},(2,3)={{2},{2,3}}.(1,2)=\{\{1\},\{1,2\}\},\quad (1,3)=\{\{1\},\{1,3\}\},\quad (2,2)=\{\{2\}\},\quad (2,3)=\{\{2\},\{2,3\}\}.

Note (2,2)(2,2) collapses to the singleton {{2}}\{\{2\}\}, exactly as in Case 1 of the Coordinate Theorem's proof — this is the only pair here with equal coordinates, and it is the only one whose Kuratowski set has just one element rather than two. Compare with B×A={2,3}×{1,2}={(2,1),(2,2),(3,1),(3,2)}B \times A = \{2,3\}\times\{1,2\} = \{(2,1),(2,2),(3,1),(3,2)\}; the two products share the single element (2,2)(2,2) but are otherwise disjoint as sets of pairs, illustrating Theorem 7 above: since A≠BA\ne B (as 1∈A∖B1\in A\setminus B), we must have A×B≠B×AA\times B \ne B\times A, which indeed holds since e.g. (1,2)∈A×B(1,2) \in A\times B but (1,2)∉B×A(1,2)\notin B\times A (as 1∉B1 \notin B, so no pair in B×AB\times A has first coordinate 11).

Example 2 (an infinite, asymmetric product and a subtlety about "diagonal" elements). Let A=N={0,1,2,… }A = \mathbb{N} = \{0,1,2,\dots\} and B={0,1}B = \{0,1\}. Consider A×BA \times B, an infinite set of ordered pairs — this models, for instance, the graph of a function N→{0,1}\mathbb{N} \to \{0,1\} once we restrict to pairs forming a valid function, foreshadowing Relations as Sets of Ordered Pairs. We compute a specific pair with a repeated numeral to stress-test the definition: take a=1∈Aa=1 \in A and b=1∈Bb=1 \in B (the same natural number 11 used in two different roles, as an element of AA and as an element of BB). Then

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

using that {1,1}={1}\{1,1\}=\{1\} as sets (repetition in listing notation does not create new elements). So (1,1)(1,1) is a singleton set containing a singleton set. Contrast this with (1,0)={{1},{1,0}}(1,0) = \{\{1\},\{1,0\}\}, which has two distinct elements since {1}≠{1,0}\{1\}\ne\{1,0\} (because 0∈{1,0}0 \in \{1,0\} but 0∉{1}0\notin\{1\}). Now here is the subtlety: is (1,1)∈A×B(1,1) \in A\times B actually equal to the number 11, or to the singleton {1}\{1\}, under some encodings of natural numbers as sets (e.g. the von Neumann encoding where 1:={0}1 := \{0\}, 2:={0,1}2:=\{0,1\}, etc.)? This is worth checking carefully because a careless reader might worry the Kuratowski pair collides with a "coincidental" von Neumann numeral. Under the von Neumann encoding, 0:=∅0 := \varnothing and 1:={∅}={0}1 := \{\varnothing\} = \{0\}. Then {1}={{0}}\{1\} = \{\{0\}\}, a set whose unique element is itself a singleton (namely 11). So (1,1)={{1}}={{{0}}}(1,1) = \{\{1\}\} = \{\{\{0\}\}\}, while the numeral 2:={0,1}={∅,{∅}}2 := \{0,1\} = \{\varnothing, \{\varnothing\}\}, a two-element set. These are visibly different sets (one has one element, the other has two), so no collision occurs — but the exercise shows why one must always unwind definitions explicitly rather than trust intuition when several set-theoretic constructions (N\mathbb{N} as von Neumann ordinals, and (a,b)(a,b) as Kuratowski pairs) are stacked together. This is exactly the kind of verification the Coordinate Theorem is designed to make routine: no matter what aa and bb "secretly" are as sets, (a,b)=(c,d)(a,b)=(c,d) reduces purely to a=c∧b=da=c \wedge b=d, so no accidental collision between differently-motivated set constructions can ever corrupt the coordinate-recovery property.

Counterexample

CounterexampleWhy the nested Kuratowski structure is needed — the naive "unordered" definition fails

Suppose we weaken the definition and instead try the naive candidate

(a,b)naive:={a,b},(a,b)_{\text{naive}} := \{a,b\},

dropping the requirement that one coordinate be additionally marked as a singleton. We claim the analogue of the Coordinate Theorem fails: there exist a,b,c,da,b,c,d with (a,b)naive=(c,d)naive(a,b)_{\text{naive}} = (c,d)_{\text{naive}} but not (a=ca=c and b=db=d). Take a=2a=2, b=3b=3, c=3c=3, d=2d=2. Then

(2,3)naive={2,3}={3,2}=(3,2)naive,(2,3)_{\text{naive}} = \{2,3\} = \{3,2\} = (3,2)_{\text{naive}},

since {2,3}\{2,3\} and {3,2}\{3,2\} list the same two elements and a set is determined solely by its membership (extensionality does not see listing order). So (2,3)naive=(3,2)naive(2,3)_{\text{naive}} = (3,2)_{\text{naive}}. But it is not true that 2=32=3 and 3=23=2; indeed 2≠32\ne 3. So the biconditional

(a,b)naive=(c,d)naive  ⟺  a=c and b=d(a,b)_{\text{naive}} = (c,d)_{\text{naive}} \iff a=c \text{ and } b=d

fails for a=2,b=3,c=3,d=2a=2,b=3,c=3,d=2: the left side holds while the right side does not.

Diagnosis. The failure traces to dropping exactly one structural feature of the Kuratowski definition: the presence of the extra singleton {a}\{a\} that marks the first coordinate. Without it, {a,b}\{a,b\} retains only the information of membership, which is symmetric in a,ba,b by the very definition of a set, and no amount of clever notation recovers "which one was first" once that information has been discarded. This is precisely why every rigorous foundational treatment insists on the asymmetric nested form {{a},{a,b}}\{\{a\},\{a,b\}\} (or some equally asymmetric alternative, such as Norbert Wiener's or the type-theoretic pair) rather than the naive unordered pairing. It also shows the hypothesis "a≠ba \ne b built asymmetrically into the definition" is not optional window-dressing — it is load-bearing for the entire theory of relations and functions that follows, since a function's graph must distinguish input from output.

Scope, edge cases & common traps

SituationWhat holdsWhat fails / must be checked
a=ba = b(a,a)={{a}}(a,a) = \{\{a\}\}, a singleton, not a pair-looking two-element setDo not assume (a,b)(a,b) always has exactly two elements as a set — Case 1 of the theorem handles this
AA or BB emptyA×B=∅A\times B = \varnothingStudents sometimes forget ∅×∅=∅\varnothing \times \varnothing = \varnothing, not "the pair of empty sets"
A,BA, B both nonempty, A≠BA\ne BA×B≠B×AA\times B \ne B \times A alwaysCommon trap: assuming ×\times is commutative "because multiplication is"
Associativity of tuples(A×B)×C≠A×(B×C)(A\times B)\times C \ne A\times (B\times C) as literal sets (elements are pairs-of-pairs vs. pairs, differently nested)One must fix a convention (e.g. the recursive nn-tuple definition given above) rather than assume literal set equality
Infinite A,BA,BA×BA\times B still exists as a set, by Power Set + SeparationDo not need Choice for a binary product; Choice becomes relevant only for infinite products ∏i∈IAi\prod_{i\in I} A_i

The mathematician behind it

Origins · 1 minKazimierz Kuratowski and how this was discovered
KK
Kazimierz Kuratowski
1896–1980 · Warsaw School of Mathematics, Poland, early-to-mid 20th century

Kuratowski was a leading figure of the Warsaw School of Mathematics, working in point-set topology, set theory, and the foundations of mathematics during the interwar period. His 1921 definition of the ordered pair, published while he was still a young researcher, resolved a foundational gap: earlier treatments (including Norbert Wiener's 1914 definition and informal usage before that) either lacked full rigor or were more cumbersome. Kuratowski's version, (a,b)={{a},{a,b}}(a,b) = \{\{a\},\{a,b\}\}, became the standard because of its economy — it uses only the pairing and union operations already available in set theory, with no extra primitive notions. Kuratowski also made major contributions to topology (Kuratowski's closure axioms, the Kuratowski–Zorn lemma formulation related to the Axiom of Choice) and to graph theory (Kuratowski's theorem characterizing planar graphs via forbidden K5K_5 and K3,3K_{3,3} subdivisions).

History
- 1914 — Norbert Wiener gives an early set-theoretic definition of the ordered pair using nested singletons and the empty set, showing pairs can be reduced to sets in principle.
- 1921 — Kazimierz Kuratowski publishes the definition (a,b):={{a},{a,b}}(a,b) := \{\{a\},\{a,b\}\}, simpler than Wiener's and not requiring reference to ∅\varnothing.
- 1920s–1930s — The Warsaw School of Mathematics, including Kuratowski, Sierpiński, and Tarski, develops rigorous foundations for set theory and topology built on such constructions.
- 1950s — Kuratowski's pair becomes the standard textbook definition as axiomatic set theory (ZF/ZFC) is consolidated as the common foundation for mathematics.
- Present — The Kuratowski pair (or definitionally equivalent variants) underlies formalized mathematics libraries (e.g. in proof assistants) whenever ordered pairs must be built from sets alone.
Why can't we just use {a,b}\{a,b\} as the ordered pair, since we already have unordered pairs from set theory?

Because {a,b}={b,a}\{a,b\} = \{b,a\} always, by extensionality — a set is completely determined by which elements it contains, with no notion of "first" or "second" built in. If we defined (a,b):={a,b}(a,b):=\{a,b\}, then (2,3)(2,3) and (3,2)(3,2) would be the literal same object, which destroys the entire purpose of an ordered pair: distinguishing input from output in a function, or xx from yy in a coordinate. The Kuratowski trick fixes this by adding an extra singleton {a}\{a\} that marks which element is "first," making the outer set asymmetric between its two roles even though sets themselves have no order.

Does it matter which specific set we use to define (a,b)(a,b), as long as some encoding works?

Not for the purposes of ordinary mathematics — what matters is only that the encoding satisfies the Coordinate Theorem: (a,b)=(c,d)(a,b)=(c,d) iff a=ca=c and b=db=d. Kuratowski's {{a},{a,b}}\{\{a\},\{a,b\}\} and Wiener's earlier, more complicated encoding both work, and any bijective re-encoding satisfying the same characterizing property would serve equally well as a foundation. In practice almost everyone uses Kuratowski's version because it is the simplest, but all subsequent theorems about relations and functions are stated in terms of the behavior (the Coordinate Theorem), not the specific internal set, so switching encodings changes nothing about the mathematics built on top.

Is the Cartesian product A×BA \times B the same size as A×AA\times A when ∣A∣=∣B∣|A|=|B|?

Yes, if AA and BB are finite with ∣A∣=m|A|=m and ∣B∣=n|B|=n, then ∣A×B∣=mn|A\times B| = mn, by a direct counting argument: each of the mm choices for the first coordinate can be paired with each of the nn choices for the second, giving mnmn distinct pairs by the Coordinate Theorem (distinct coordinate choices always give distinct pairs). For infinite sets, cardinal arithmetic shows ∣A×B∣|A\times B| depends only on ∣A∣|A| and ∣B∣|B| as cardinals, which is developed further under Cardinality and Cardinal Arithmetic.

Why is the Cartesian product not commutative, even though multiplication of numbers is?

The notation "×\times" is suggestive but the Cartesian product is a fundamentally different operation from numeric multiplication: it produces a set of pairs, not a number, and the identity of a pair depends on coordinate order by design (that is the entire point of the Coordinate Theorem). As shown in the algebraic properties theorem, A×B=B×AA\times B = B\times A holds only in the degenerate cases A=BA=B or one of A,BA,B empty. The sizes ∣A×B∣|A\times B| and ∣B×A∣|B\times A| do coincide (both equal ∣A∣⋅∣B∣|A|\cdot|B|), which is likely the source of the intuition that ×\times "should" commute — but equality of cardinality is much weaker than equality of the sets themselves.

How does the ordered pair definition extend to triples and longer tuples?

The standard approach, given in the definition above, is recursive: define (a,b,c):=((a,b),c)(a,b,c) := ((a,b),c), treating a triple as a pair whose first coordinate is itself a pair. More generally (a1,…,an):=((a1,…,an−1),an)(a_1,\dots,a_n) := ((a_1,\dots,a_{n-1}),a_n). One can then prove, by induction using the Coordinate Theorem at each step, that nn-tuples are equal iff all corresponding coordinates are equal — the natural generalization of the binary case. This recursive definition is what allows A1×⋯×AnA_1\times \cdots \times A_n to be built up as (A1×⋯×An−1)×An(A_1\times\cdots\times A_{n-1})\times A_n, consistent with how sequences and finite lists are later formalized.

Does defining (a,b)(a,b) as a set create any circularity, since aa and bb might themselves be sets built from pairs?

No circularity arises, because the definition (a,b):={{a},{a,b}}(a,b):=\{\{a\},\{a,b\}\} only uses the pairing and union operations of set theory applied to whatever sets aa and bb already are — it never needs to "look inside" aa or bb to know they are, say, pairs themselves. The construction is purely extensional: it treats aa and bb as opaque sets and builds a new set around them. This is why Example 2 in this article could safely nest natural-number encodings inside pair encodings without any paradox: each layer of construction (numbers as von Neumann ordinals, pairs as Kuratowski sets) is independent and composes without circular reference.

Why do we need the Axiom of Power Set to show A×BA\times B is a set, rather than just using Pairing and Union?

Pairing and Union alone let us build each individual pair (a,b)={{a},{a,b}}(a,b) = \{\{a\},\{a,b\}\} as a set. But to collect all such pairs (ranging over all a∈A,b∈Ba\in A, b\in B) into a single set A×BA\times B, we need Separation, which requires a starting "superset" to carve A×BA\times B out of — otherwise Separation has nothing to work inside. The proof given above shows every pair (a,b)(a,b) with a∈A,b∈Ba\in A,b\in B lives inside P(P(A∪B))\mathcal{P}(\mathcal{P}(A\cup B)), and Power Set is exactly what guarantees that this bounding set exists, after which Separation extracts precisely A×BA\times B from it.

Where this leads