Ordinal Numbers
You already know how to count: 1, 2, 3, \dots. But what comes
after you have counted all the natural numbers? Ordinary counting has no
answer — you never finish. Ordinal numbers do: they let you keep counting past infinity,
into \omega, \omega+1, \omega+2, \dots and far beyond. Ordinals are the
numbers that measure the order type of a
well-ordered set: not just "how
many" but "in what arrangement."
The genius encoding is due to von Neumann: every ordinal simply is the set of all the
ordinals below it.
0 = \varnothing,\qquad 1 = \{0\},\qquad 2 = \{0, 1\},\qquad 3 = \{0, 1, 2\},\qquad \dots
So the number n literally is the set \{0, 1, \dots, n-1\}
of its predecessors, and "\alpha < \beta" means exactly
"\alpha \in \beta". Order is membership.
The first infinite ordinal, ω
Collect all the finite ordinals into one set and you get the first infinite ordinal:
\omega = \{0, 1, 2, 3, \dots\}.
It is the smallest ordinal bigger than every natural number — the order type of
(\mathbb{N}, <). And crucially, counting doesn't stop
there. Add one more:
\omega + 1 = \omega \cup \{\omega\} = \{0, 1, 2, \dots, \omega\},
then \omega+2, and eventually another whole copy
\omega \cdot 2 = \{0, 1, \dots, \omega, \omega+1, \dots\}, then
\omega^2, \omega^\omega, and on and on. Every
ordinal is one of exactly two kinds:
- A successor ordinal has an immediate predecessor:
\alpha + 1 = \alpha \cup \{\alpha\} (e.g.
1, 2, \dots, \omega+1).
- A limit ordinal is non-zero with no immediate predecessor — it is the
union of everything below it (e.g. \omega, \omega\cdot 2, \omega^2).
- Every ordinal is 0, a successor, or a limit — and every ordinal is itself a
well-ordered set whose members are exactly the smaller ordinals.
Climb the ordinal staircase
Watch the numbers march: first the finite steps, then the leap to
\omega that gathers all of them, then off again into
\omega+1, \omega+2, \dots and a second copy at
\omega\cdot 2. Each limit ordinal is a place where you "jump" only after
infinitely many steps.
Notice the shape: a limit ordinal (marked at each big leap) has no step immediately before it
— you cannot reach \omega by adding one to anything. That is precisely what
makes ordinals richer than ordinary numbers, and why induction on them needs a
special limit
case.
Order matters, not just size
Here is the difference between ordinals and plain sizes. As a set,
\omega+1 is still countable — the same size as
\omega. But as an ordering it is genuinely different: it has a
greatest element (namely \omega), whereas \omega
has none. Ordinals record the shape of the arrangement; different ordinals can
measure sets of the same
cardinality.
// 0,1,-1,2,-2,... orders Z with type omega. Append a "top" element to get type omega+1.
const omegaPart: string[] = [];
for (let r = 0; r < 6; r++) {
const z = r % 2 === 1 ? (r + 1) / 2 : -r / 2;
omegaPart.push(String(z));
}
console.log("type omega: " + omegaPart.join(", ") + ", ... (no greatest element)");
console.log("type omega+1: " + omegaPart.join(", ") + ", ..., TOP (TOP is greatest)");
console.log("Same cardinality (countable), different order type.");
There is no largest ordinal. Given any set of ordinals, their union is an ordinal bigger than all of
them — so the ordinals cannot themselves form a set (that would be the
Burali-Forti paradox: the "set of all ordinals" would be an ordinal larger than every
ordinal, including itself). Instead they form a proper class, marching upward
without end: \omega, \omega^\omega, \varepsilon_0, \dots and unimaginably
far beyond, a scaffold tall enough to index every well-ordering there could ever be.
-
Ordinal addition is not commutative. 1 + \omega = \omega
(one extra step in front of an endless line changes nothing), but
\omega + 1 > \omega (a step tacked on the end is a genuinely
new, larger order type). Order matters!
-
Ordinals ≠ cardinals. An ordinal measures arrangement (order type); a cardinal
measures raw size. \omega, \omega+1, \omega\cdot 2, \omega^2 are all
different ordinals but all the same cardinality
(\aleph_0).