What does the universe of sets look like?
The axioms of ZFC were written down to avoid paradoxes and to support ordinary mathematics. Two questions remain once they are in place. Is there a picture behind the axioms — a structure they describe? And which natural questions do they settle? The most famous is Cantor's continuum problem: is ? It was the first of Hilbert's problems in 1900.
The answer to the first question is the cumulative hierarchy: start from nothing, form all subsets, and repeat transfinitely. The second question has a two-part answer. ZFC proves some striking restrictions on the function — for instance — but Gödel (1938) built a model, the constructible universe , in which for every infinite , and Cohen (1963) built models where is as large as one likes, subject to König's restriction. This lesson develops the hierarchy, the cardinal arithmetic that ZFC does decide, the reflection principle, and Gödel's ; forcing supplies the other half.
Building the universe in stages
At stage there is nothing. At each successor stage, form every subset of what exists so far. At limit stages, gather everything built so far. The sets are exactly the things that appear at some stage. Foundation says there is nothing else: no set is built from itself, and every chain ends.
Gödel's is a thinner universe built the same way, except that at each successor stage we keep only the subsets that are definable from what exists so far. It contains every ordinal — the "spine" of — but as few subsets as possible.
Definitions
We work in ZF, adding choice where stated, and use von Neumann ordinals and cardinals as initial ordinals (see ordinals and cardinals and the axiom of choice). Recall transfinite recursion: for every class function there is a unique class function on the ordinals with for all .
Definition— cumulative hierarchy and rank
By transfinite recursion, , , and for limit . The rank of a set that lies in some is the least with (equivalently ). One checks that .
Definition— cofinality; regular and singular
A subset of a limit ordinal is cofinal if it is unbounded in . The cofinality is the least order type of a cofinal subset of ; it is always a regular cardinal. An infinite cardinal is regular if and singular otherwise.
Definition— cardinal exponentiation, GCH
For cardinals, , the number of functions ; is the least cardinal above . The continuum hypothesis CH says ; the generalised continuum hypothesis GCH says for every infinite cardinal .
Definition— relativisation and absoluteness
For a class and formula , the relativisation is obtained by bounding every quantifier by . A formula is absolute for if for all . Every formula (all quantifiers bounded, ) is absolute for every transitive class. " is an ordinal", "", " is a function" are absolute for transitive models of ZF; " is uncountable" and "" are not.
Definition— the constructible universe
For a set , is the set of definable over the structure by a first-order formula with parameters from . Then , , for limit , and . The axiom of constructibility is the statement , that is, .
Examples
Example— The first stages
, since . The set consists of the hereditarily finite sets; with the inherited membership it satisfies every axiom of ZFC except infinity. satisfies Zermelo's axioms (ZC) but not replacement: the function on is definable there, but its range has rank , so it is not in . All the usual objects of analysis — , , Lebesgue measure on — have codings of rank below . If is strongly inaccessible, (see large cardinals).
Example— Cofinalities
. With choice, every successor cardinal is regular, since a union of at most sets each of size at most has size at most . But is singular with , and . In general for limit .
Example— Ranks
Each ordinal has rank equal to itself; ; the Kuratowski pair has rank . for all finite (every subset of a finite set is definable with parameters) and , but is countable — there are only countably many formulas and finite parameter lists — while is uncountable.
Every set has a rank
Theorem— Theorem 1
(a) Each is transitive, and implies . (b) (ZF) Every set belongs to some .
Proof
(a) By induction on we show that is transitive and contains every , , as a subset. Limits are clear, since unions of transitive sets are transitive. For : transitivity of means each satisfies , i.e. ; so . And if then , so is transitive.
(b) Suppose some set lies in no . Let be the transitive closure of (it exists by replacement and union: with , ). The set is non-empty, so by foundation it has an -minimal element . Every lies in (transitivity) and not in (minimality), so for a least ordinal . By replacement, is a set, so is an ordinal. By (a), every lies in ; so and — a contradiction.
∎
So , and the rank function is defined everywhere. Since implies , there are no -cycles. Over the other axioms, foundation is in fact equivalent to : (b) gives one direction, and for the other, an element of least rank in a non-empty set is -minimal. Rank is the standard tool for proofs by -induction and for cutting proper classes down to sets ("Scott's trick": replace an equivalence class by its elements of least rank).
Cofinality and König's theorem
What does ZFC decide about ? Cantor: . Monotonicity: implies . And one more restriction, due to Julius König (1905).
Theorem— König's theorem
(ZFC) For every infinite cardinal : (i) ; (ii) . In particular .
Proof
(i) Let and fix an increasing sequence cofinal in . Then with . Let be any -sequence of functions ; we find a function not in it. For each , the set has size at most , so let be the least element of not in it. If , choose with ; then . So no map is onto, and (clearly ).
(ii) Let and suppose . By (i) applied to ,
a contradiction. Finally , while .
∎
Remarkably, this is essentially all that ZFC proves about for regular : by Easton's theorem (1970), any class function on regular cardinals that is non-decreasing and satisfies can be the function in some forcing extension. For singular cardinals ZFC proves much more — Silver's theorem (1974) that GCH cannot first fail at a singular cardinal of uncountable cofinality, and Shelah's pcf bound when is a strong limit.
Reflection
Theorem— Reflection principle (Montague 1961; Lévy 1960)
For any finitely many formulas , ZF proves: for every ordinal there is a limit ordinal such that each is absolute between and .
Proof
Close the list under subformulas; it suffices to handle formulas built from atomic ones by , and . For each formula in the list define a class function on finite tuples: is the least ordinal such that, if some satisfies , then some does (it exists by Theorem 1). Put and let be greater than and than every with in — a set of ordinals, by replacement. Let , a limit ordinal. Now show by induction on formulas that each one is absolute for : atomic formulas are absolute, the cases and are immediate, and for : if , then for some , so if some satisfies then one lies in , and by the induction hypothesis ; the converse direction is immediate from the induction hypothesis. (This is the Tarski–Vaught criterion.)
∎
Since is equivalent to "" for the formalised satisfaction relation of set-sized structures, reflection gives: for every finite set of axioms of ZF, ZF proves " has a model", hence . If ZF were finitely axiomatisable, it would prove its own consistency, contradicting Gödel's second theorem. So, if ZF is consistent, it is not finitely axiomatisable (Montague 1961). Reflection is also the key to showing that satisfies separation.
Gödel's constructible universe
Theorem— Gödel (1938)
(ZF) is a transitive proper class containing all ordinals, and satisfies . Moreover proves AC and GCH. Consequently, if ZF is consistent, so is .
We outline the proof; Jech (2003, chapter 13) and Kunen (1980, chapters V–VI) give it in full.
- is a transitive class model. Each is transitive, , and (the ordinals of form a definable subset). Extensionality and foundation hold in any transitive class; pairing, union and infinity are routine.
- Separation and replacement in use reflection: given and , reflect to some with (the reflection principle holds for the hierarchy as for ); then is definable over , so it lies in . Power set: for , the set is contained in some by replacement, and serves as the power set of inside .
- Absoluteness. The operation , and hence , is defined by a formula that is absolute for transitive models of ZF. So computing inside gives again: .
- implies AC. Define a well-order : if appears at an earlier stage , or at the same stage via an earlier pair (formula, parameters), using the well-order of already defined. It is a definable global well-order.
- implies GCH. The heart is the condensation lemma: if with a limit ordinal, the transitive (Mostowski) collapse of is some with . Given , pick a limit with and, by Löwenheim–Skolem, of size with . The collapse fixes each element of , hence fixes , and has the form with . So . Thus , which has cardinality , and .
- Relative consistency. Steps 1–5 are proofs in ZF of each axiom of relativised to . So a proof of a contradiction from would relativise to a proof of a contradiction from ZF. This argument is purely syntactic: it needs no set model of ZF.
Note
Relative versus absolute. Gödel's theorem proves , for instance in . It does not prove outright — and nothing formalisable in ZFC can (by Gödel's second theorem), unless ZFC is inconsistent.
The hierarchy and König's theorem in Lean
Mathlib models ZFC sets as the type ZFSet, built from well-founded trees; foundation is therefore a theorem, and Mathlib defines the von Neumann hierarchy and the rank function. The recursion equations of the hierarchy:
/-- The successor step of the cumulative hierarchy: `V_{α+1} = 𝒫(V_α)`.
This applies Mathlib's `ZFSet.vonNeumann_add_one`. -/
theorem vonNeumann_succ (α : Ordinal) :
ZFSet.vonNeumann (α + 1) = ZFSet.powerset (ZFSet.vonNeumann α) :=
ZFSet.vonNeumann_add_one α/-- The limit step: for a limit ordinal `λ` (or `0`), `V_λ = ⋃_{α<λ} V_α`.
This applies Mathlib's `ZFSet.vonNeumann_of_isSuccPrelimit`. -/
theorem vonNeumann_limit {l : Ordinal} (h : Order.IsSuccPrelimit l) :
ZFSet.vonNeumann l = ZFSet.iUnion fun α : Set.Iio l => ZFSet.vonNeumann α :=
ZFSet.vonNeumann_of_isSuccPrelimit hEvery set appears in the hierarchy (Theorem 1(b)) — the one-line proof shows how much work the rank function does:
/-- **Every set appears in the hierarchy**, at the stage after its rank: `x ∈ V_{rank(x)+1}`.
Here `rank` is defined by ∈-recursion, `rank x = sup {rank y + 1 | y ∈ x}`, which is possible
because membership is well founded (the axiom of foundation); Mathlib shows `x ∈ V_α` iff
`rank x < α` (`ZFSet.mem_vonNeumann`). -/
theorem mem_vonNeumann_succ_rank (x : ZFSet) :
x ∈ ZFSet.vonNeumann (Order.succ (ZFSet.rank x)) :=
ZFSet.mem_vonNeumann.mpr (Order.lt_succ (ZFSet.rank x))/-- `V = ⋃_α V_α`: every set lies in some `V_α`. This applies `ZFSet.exists_mem_vonNeumann`. -/
theorem exists_mem_vonNeumann (x : ZFSet) : ∃ α, x ∈ ZFSet.vonNeumann α :=
ZFSet.exists_mem_vonNeumann x/-- No set is a member of itself. Proof via rank: `y ∈ x` implies `rank y < rank x`, so `x ∈ x`
would give `rank x < rank x`. (Mathlib proves the same as `ZFSet.mem_irrefl`.) -/
theorem not_mem_self (x : ZFSet) : x ∉ x := fun h =>
lt_irrefl _ (ZFSet.rank_lt_of_mem h)/-- There are no membership 2-cycles `x ∈ y ∈ x`: their ranks would satisfy
`rank x < rank y < rank x`. The same argument excludes cycles of every length. -/
theorem no_mem_two_cycle (x y : ZFSet) : ¬ (x ∈ y ∧ y ∈ x) := fun ⟨hxy, hyx⟩ =>
lt_irrefl _ ((ZFSet.rank_lt_of_mem hxy).trans (ZFSet.rank_lt_of_mem hyx))/-- The size of the hierarchy: `|V_α| = ℶ'_α` (Mathlib's `preBeth`: `0, 1, 2, 4, 16, …` for
finite `α`, and `ℶ_α` from `ω` on, since `V_{α+1} = 𝒫(V_α)` has `2^|V_α|` elements). This applies
`ZFSet.card_vonNeumann`. -/
theorem card_vonNeumann (α : Ordinal) : (ZFSet.vonNeumann α).card = preBeth α :=
ZFSet.card_vonNeumann αKönig's inequality is in Mathlib; its corollary is proved here by the same calc chain as in part (ii) of the proof above. In Mathlib, c.ord.cof is the cofinality of the initial ordinal of the cardinal c.
/-- **König's theorem**, in the form `κ < κ^cf(κ)` for infinite `κ`: an infinite cardinal is
smaller than the number of `cf(κ)`-sequences from it. (It follows from `∑ᵢ κᵢ < ∏ᵢ λᵢ` when
`κᵢ < λᵢ`, Mathlib's `Cardinal.sum_lt_prod`.) This applies `Cardinal.lt_power_cof_ord`; here
`c.ord.cof` is the cofinality of the initial ordinal of `c`. -/
theorem koenig_power_cof {κ : Cardinal} (hκ : ℵ₀ ≤ κ) : κ < κ ^ κ.ord.cof :=
lt_power_cof_ord hκ/-- **König's corollary: `cf(2^κ) > κ`** for every infinite cardinal `κ`. Proof as in the lesson:
put `λ = 2^κ` and suppose `cf(λ) ≤ κ`. Then
`λ < λ^cf(λ) ≤ λ^κ = 2^(κ·κ) = 2^κ = λ`, a contradiction. -/
theorem koenig_cof_two_power {κ : Cardinal} (hκ : ℵ₀ ≤ κ) :
κ < ((2 : Cardinal) ^ κ).ord.cof := by
by_contra h
push Not at h
have hl : ℵ₀ ≤ (2 : Cardinal) ^ κ := hκ.trans (cantor κ).le
have hne : (2 : Cardinal) ^ κ ≠ 0 := power_ne_zero κ two_ne_zero
have hle : ((2 : Cardinal) ^ κ) ^ ((2 : Cardinal) ^ κ).ord.cof ≤ (2 : Cardinal) ^ κ :=
calc ((2 : Cardinal) ^ κ) ^ ((2 : Cardinal) ^ κ).ord.cof
≤ ((2 : Cardinal) ^ κ) ^ κ := power_le_power_left hne h
_ = (2 : Cardinal) ^ (κ * κ) := power_mul.symm
_ = (2 : Cardinal) ^ κ := by rw [mul_eq_self hκ]
exact absurd (koenig_power_cof hl) (not_lt.mpr hle)/-- The same corollary from Mathlib, for any base `b > 1`: `κ < cf(b^κ)`.
This applies `Cardinal.lt_cof_ord_power`. -/
theorem koenig_cof_two_power_library {κ : Cardinal} (hκ : ℵ₀ ≤ κ) :
κ < ((2 : Cardinal) ^ κ).ord.cof :=
lt_cof_ord_power hκ one_lt_two/-- **The continuum is not `ℵ_ω`.** The cardinal `ℵ_ω = sup {ℵₙ | n < ω}` has cofinality `ℵ₀`,
while König gives `cf(2^ℵ₀) > ℵ₀`. Here `ℵ_ω` is `ℵ_ ω` and its initial ordinal is `ω_ ω`, whose
cofinality equals that of `ω` (Mathlib's `Ordinal.cof_omega`). -/
theorem two_power_aleph0_ne_aleph_omega : (2 : Cardinal) ^ ℵ₀ ≠ ℵ_ ω := by
intro h
have hk := koenig_cof_two_power (le_refl ℵ₀)
rw [h, ord_aleph, cof_omega isSuccLimit_omega0, cof_omega0] at hk
exact lt_irrefl _ hkThe statement of GCH, and the fact that it implies CH:
/-- The **generalised continuum hypothesis**: `2^κ = κ⁺` for every infinite cardinal `κ`, where
`κ⁺ = Order.succ κ` is the next cardinal. Gödel showed that it holds in `L`, so it is consistent
with ZFC (if ZF is); Cohen showed that its negation is consistent too. -/
def GCH : Prop :=
∀ κ : Cardinal.{u}, ℵ₀ ≤ κ → 2 ^ κ = Order.succ κ/-- GCH implies CH: `2^ℵ₀ = ℵ₁`, since the successor cardinal of `ℵ₀` is `ℵ₁`
(`Cardinal.succ_aleph0`). -/
theorem gch_continuum (h : GCH.{u}) : (2 : Cardinal.{u}) ^ ℵ₀ = ℵ₁ := by
rw [h ℵ₀ le_rfl, succ_aleph0]Not formalised: , absoluteness, reflection and condensation — Mathlib has no formalised satisfaction relation for formulas of set theory inside ZFSet, and so neither Gödel's nor Cohen's theorem. A remark on foundations: Lean can construct a model of ZFC (the type ZFSet) without contradicting Gödel's second theorem because Lean's type theory, with its hierarchy of universes, is stronger than ZFC — its strength is roughly that of ZFC with inaccessible cardinals (Carneiro, 2019).
The finite stages, computed
Ackermann's coding identifies hereditarily finite sets with natural numbers: if and only if bit number of is . In this coding is exactly the set of numbers below , and the experiment checks the rank characterisation , transitivity and foundation exhaustively for the sets of .
"""The first stages of the cumulative hierarchy, computed exactly.
The hereditarily finite sets - the members of V_omega - can be coded by natural
numbers (Ackermann 1937): the code of a set x is the sum of 2^code(y) over its
members y, so "y is a member of x" means "bit number code(y) of code(x) is 1".
The empty set has code 0, and every natural number codes exactly one set.
In this coding V_{k+1} = P(V_k) becomes a statement about numbers: the stage
V_k consists exactly of the codes below |V_k|, and |V_{k+1}| = 2^|V_k|. We
compute the stages up to V_5 (65536 sets), compute the rank of each set by the
recursion rank(x) = sup{rank(y) + 1 : y in x}, and check exhaustively that
x is in V_k iff rank(x) < k, that every stage is transitive, and that every
non-empty set in V_5 has an element disjoint from it (the axiom of foundation).
Runs unchanged in the browser (Pyodide) using only the standard library.
"""
from collections import Counter
from functools import lru_cache
import textwrap
def members(code):
"""Codes of the members of the set with this code (its 1-bits)."""
if code < 0:
raise ValueError("codes are natural numbers")
return [y for y in range(code.bit_length()) if code >> y & 1]
def from_members(codes):
"""Code of the set whose members have the given codes."""
return sum(1 << y for y in set(codes))
@lru_cache(maxsize=None)
def rank(code):
"""rank(x) = sup{rank(y) + 1 : y in x}, by recursion on membership."""
return max((rank(y) + 1 for y in members(code)), default=0)
def stage_sizes(k):
"""|V_0|, ..., |V_k|, using |V_0| = 0 and |V_{j+1}| = 2^|V_j|."""
sizes = [0]
for _ in range(k):
sizes.append(2 ** sizes[-1])
return sizes
def stage(k):
"""The codes in V_k, built by iterating the power set from V_0 = {}.
Each subset of the current stage (a bitmask s over its members) is coded
incrementally: removing the lowest member of s gives a smaller subset.
"""
current = []
for _ in range(k):
codes = [0] * (1 << len(current))
for s in range(1, len(codes)):
low = s & -s
codes[s] = codes[s ^ low] + (1 << current[low.bit_length() - 1])
current = sorted(codes)
return current
def ranks_below(n):
"""rank(x) for every code x < n, by the same recursion: the rank of x is the
larger of rank(x minus its least member y) and rank(y) + 1."""
ranks = [0] * n
for x in range(1, n):
low = x & -x
ranks[x] = max(ranks[x ^ low], ranks[low.bit_length() - 1] + 1)
return ranks
def is_transitive(code):
"""Is every member of a member also a member?"""
return all(y & ~code == 0 for y in members(code))
def has_minimal_member(code):
"""Foundation: a non-empty set has a member y with y and x disjoint."""
return any(y & code == 0 for y in members(code))
def von_neumann(n):
"""Code of the von Neumann ordinal n = {0, 1, ..., n - 1}."""
code = 0
for _ in range(n):
code += 1 << code
return code
def show(code):
"""The set as nested braces, with 0 written as the empty set {}."""
return "{" + ", ".join(show(y) for y in members(code)) + "}"
def main():
sizes = stage_sizes(5)
print(f"|V_0|, ..., |V_5| = {sizes}")
v5 = stage(5)
print(f"V_5 built by iterating the power set: {len(v5)} sets; "
f"equal to codes 0..{sizes[5] - 1}: {v5 == list(range(sizes[5]))}")
ranks = ranks_below(sizes[5])
ok = all((ranks[c] < k) == (c < sizes[k]) for k in range(6)
for c in range(sizes[5]))
print(f"x in V_k <=> rank(x) < k, for all x in V_5 and k <= 5: {ok}")
print(f"sets in V_5 by rank: {dict(sorted(Counter(ranks).items()))}")
# The set V_k has the codes 0..|V_k|-1 as members, so its code is 2^|V_k| - 1.
trans = all(is_transitive(2 ** sizes[k] - 1) for k in range(5))
print(f"the sets V_0, ..., V_4 are transitive: {trans}")
found = all(has_minimal_member(c) for c in range(1, sizes[5]))
print(f"every non-empty x in V_5 has a member disjoint from x: {found}")
print()
print("Some codes:")
for name, code in [("ordinal 2", von_neumann(2)), ("ordinal 3", von_neumann(3)),
("ordinal 4", von_neumann(4)),
("pair (0, 1)", from_members([from_members([0]),
from_members([0, 1])]))]:
text = show(code) if len(show(code)) <= 40 else "(too long to print)"
print(f" {name:<11} code {code:>4} rank {rank(code)} {text}")
print(f" V_3 as a set: code {2 ** sizes[3] - 1}, {show(2 ** sizes[3] - 1)}")
print()
print(textwrap.fill(
"Epistemic status: exact and exhaustive for the 65536 sets of V_5. It "
"illustrates the theorems V_(k+1) = P(V_k) and 'x is in V_alpha iff "
"rank(x) < alpha' at finite stages only; the infinite stages, and the "
"fact that every set appears at some stage, are proved in the lesson "
"from the axioms of replacement and foundation.",
width=78,
))
if __name__ == "__main__":
main()This is exact evidence about finite stages only: the transfinite stages, and the fact that every set appears at some stage, are the theorems proved above.
Explore: building sets from nothing
The widget builds hereditarily finite sets — the members of — as nested boxes. Start from the empty box and repeatedly form new sets from those on the shelf. Try to build all four elements of : , , and . What is the rank of each? Which of them are ordinals?
Boxes inside boxes
Start with one empty box. Build new collections by putting boxes into boxes.
Select one box to wrap, or several to put together.
Exercises
1. Axiomatic set theory: hierarchy, cardinal arithmetic and L
Warm-upHumanHow many elements does have? (Recall and .)
2. Axiomatic set theory: hierarchy, cardinal arithmetic and L
CoreHumanAssuming ZFC, which of these cardinals are singular? Choose all that apply.
3. Axiomatic set theory: hierarchy, cardinal arithmetic and L
CoreHumanWhich of these values of does ZFC rule out? Choose all that apply.
4. Axiomatic set theory: hierarchy, cardinal arithmetic and L
CoreHumanIn the proof that every set lies in some , we form . Which axiom guarantees that this supremum exists?
5. Axiomatic set theory: hierarchy, cardinal arithmetic and L
CoreHumanWhat exactly did Gödel's work on establish?
6. Axiomatic set theory: hierarchy, cardinal arithmetic and L
StretchHumanWhich axioms hold in ? Choose all that apply.
7. Axiomatic set theory: hierarchy, cardinal arithmetic and L
Warm-upFormalWhich Lean statement correctly formalises the generalised continuum hypothesis?
8. Axiomatic set theory: hierarchy, cardinal arithmetic and L
CoreFormalThe Lean proof of two_power_aleph0_ne_aleph_omega rewrites the inequality using ord_aleph, cof_omega isSuccLimit_omega0 and cof_omega0. Which mathematical fact does this chain of rewrites establish?
9. Axiomatic set theory: hierarchy, cardinal arithmetic and L
StretchComputationalIn Ackermann's coding, the natural number codes the set whose members are the numbers with bit of equal to . Write rank(x), computing (and for ).
Common misconceptions
Misconception
" is the universe of all sets." is an inner model. The axiom is consistent with ZFC (if ZF is) but not provable from it: by forcing, if ZF is consistent so is ZFC + . Large cardinal axioms such as the existence of a measurable cardinal even imply (Scott, 1961).
Misconception
"Gödel proved that GCH is consistent." He proved it is consistent relative to ZF: . An absolute consistency proof is impossible within ZFC, by the second incompleteness theorem.
Misconception
"The continuum must be a regular cardinal." König forbids only cofinality . , a singular cardinal of cofinality , is consistent with ZFC.
Misconception
"Foundation is needed for ordinary mathematics." Almost nothing in ordinary mathematics uses it: one can work in ZFC without foundation, inside which the well-founded sets form a model of full ZFC. Foundation's role is to make the universe exactly the cumulative hierarchy.
Many ways of seeing
Topology— Cofinality as a topological invariant
Give an ordinal the order topology. A limit ordinal is the limit of a sequence with exactly when ; more generally is the least cardinality of a set with in its closure. The space is sequentially compact but not compact, because : every countable subset is bounded. Closed unbounded ("club") subsets of a regular uncountable are closed in this topology, and the club filter and stationary sets are basic tools of combinatorial set theory. See point-set topology.
Analysis— Where transfinite recursion came from
Cantor invented the transfinite ordinals in analysis. Studying sets of uniqueness for trigonometric series (1872), he iterated the derived set operation (remove isolated points): — a transfinite recursion of exactly the kind that defines . For a closed set of reals the sequence stabilises at a countable ordinal (the Cantor–Bendixson rank), which leads to the perfect set theorem of descriptive set theory. In the other direction, decides questions of analysis that ZFC leaves open: in there is a non-Lebesgue-measurable set of reals that is , a projection of the complement of a projection of a closed set.
Algebra— Whitehead's problem
An abelian group is a Whitehead group if every surjective homomorphism with kernel splits (). Free abelian groups are Whitehead, and Stein showed that countable Whitehead groups are free. Is every Whitehead group free? Shelah (1974) proved that this is independent of ZFC: under every Whitehead group is free, while under Martin's axiom with there is a non-free Whitehead group of cardinality . A question of pure algebra turned out to depend on the shape of the universe of sets (see homological algebra).
Category theory— Universes and structural set theory
Category theorists need "large" collections such as the category of all groups. Grothendieck's solution was a universe: a set closed under the ZFC operations. The uncountable Grothendieck universes are exactly the sets with strongly inaccessible, so "every set lies in a universe" is a large cardinal axiom. Lawvere's ETCS describes sets structurally, by the category of sets and functions (see elementary topoi); it captures much of ordinary mathematics but has no counterpart of the global membership tree, and is equiconsistent with a weak fragment of ZFC (bounded Zermelo set theory with choice). The cumulative hierarchy is a specifically material picture of sets.
Logic— Inner models
is the smallest inner model: any transitive proper class model of ZF contains it. Inner model theory builds larger canonical models, for a measurable cardinal and beyond, that can accommodate large cardinals while keeping 's fine structure (Jensen, 1972). In itself Jensen's principle holds, giving a Suslin line — so Suslin's hypothesis fails in , another statement whose independence the forcing lesson completes.
Wonder Trail
The same tower of sets, built from empty boxes, is explored for young learners in this trail — useful if you ever explain to a child.
Wonder Trail · Optional · never gradedBoxes inside boxesWhat is inside a box that contains only an empty box? Is it empty? And can every description you can think of make a collection?Follow the trailHistory and context
- Georg Cantor created the theory of ordinals and cardinals (1872–1897) and posed the continuum hypothesis (1878). Julius König (Hungary) presented his result on cofinality in 1904–05, in a lecture that also claimed — wrongly — that the continuum cannot be well-ordered.
- Felix Hausdorff introduced cofinality and singular and regular cardinals (1908) and stated GCH in terms of alephs. Ernst Zermelo axiomatised set theory in 1908; Abraham Fraenkel and Thoralf Skolem added replacement (1922); John von Neumann formulated foundation and the rank hierarchy (1925–29), and Zermelo's 1930 paper described the cumulative hierarchy and its levels as models.
- Kurt Gödel announced the consistency of AC and GCH relative to ZF in 1938 and published the full proof in 1940. Wacław Sierpiński showed in 1947 that GCH implies AC over ZF.
- Azriel Lévy (1960) and Richard Montague (1961) proved the reflection principle. Paul Cohen (1963) proved the independence of CH and AC; William Easton (1970) determined the possible behaviour of at regular cardinals.
- Jack Silver (1974) and Saharon Shelah (from the 1970s) proved deep ZFC theorems about singular cardinals; Ronald Jensen (1972) developed the fine structure of .
Further reading
- Thomas Jech, Set Theory (Third Millennium Edition, 2003) — chapters 3, 5 and 12–13 for the hierarchy, cardinal arithmetic, reflection and .
- Kenneth Kunen, Set Theory: An Introduction to Independence Proofs (1980; revised edition Set Theory, 2011) — chapters III–VI.
- Keith J. Devlin, Constructibility (1984) — and its fine structure.
- Akihiro Kanamori, The Higher Infinite (1994; 2nd edition 2003) — the large cardinal and inner model landscape.
- Karel Hrbacek and Thomas Jech, Introduction to Set Theory (3rd edition, 1999) — background on ordinals and cardinals.