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:

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.