Lebesgue's mistake
In 1905 Henri Lebesgue, studying functions "representable analytically", asserted in passing that the projection of a Borel subset of the plane onto a line is again Borel. The proof looked routine: projection commutes with unions. It does not commute with intersections, and around 1916 Mikhail Suslin, a student of Nikolai Lusin in Moscow, found the error. He defined the class of analytic sets — projections of Borel sets — and proved that it is strictly larger than the class of Borel sets, while still behaving well: every uncountable analytic set has the cardinality of the continuum.
This launched descriptive set theory: the study of definable sets of reals and of other Polish spaces, organised by the complexity of their definitions. Its guiding theme is that definable sets are well behaved — no definable set should be a counterexample to the continuum hypothesis, or non-measurable — and its methods combine point-set topology, set theory and logic. Today it is also a tool: it measures the complexity of classification problems in algebra and dynamics, and it explains which constructions in analysis need the axiom of choice.
Complexity as quantifiers
Membership in an open subset of is witnessed by finite information: because some rational interval around lies in — an existential quantifier over . A closed set is the complement: if no finite approximation refutes it — a universal quantifier over . Each further alternation of quantifiers over climbs a level of the Borel hierarchy: sets are "", sets are "", and so on transfinitely.
A projection adds a quantifier over a whole real: iff there exists with . That is a different kind of quantifier — a search through uncountably many candidates — and it is why projections escape the Borel sets. In Baire space such a search is a search for an infinite branch through a tree.
Polish spaces, trees and hierarchies
Definition— Polish space
A topological space is Polish if it is separable and completely metrisable. Examples: , , , every separable Banach space, Baire space and Cantor space (product topologies), and the irrationals , which are homeomorphic to via continued fractions. Countable products and subspaces of Polish spaces are Polish. is not Polish (by the Baire category theorem).
Definition— trees
A tree on a set is a set of finite sequences from closed under initial segments; its body is the set of infinite sequences all of whose initial segments lie in . is pruned if every node has a proper extension in , and well-founded if . The basic open sets of are . The closed subsets of are exactly the bodies of (pruned) trees: with .
Definition— the Borel hierarchy
In a metrisable space , let be the open sets; for let be the complements of sets, and let (for ) consist of countable unions of sets in . Put . So = closed, , . The Borel sets — the smallest -algebra containing the open sets — are . (These are the classical "boldface" classes, often printed in bold.)
Definition— analytic, coanalytic, projective
A subset of a Polish space is analytic () if it is empty or a continuous image of ; equivalently, the projection of a closed subset of , or of a Borel subset of for some Polish . It is coanalytic () if its complement is analytic, and . The projective hierarchy continues: sets are projections of sets, their complements.
Definition— perfect set property
A set is perfect if it is closed, non-empty and has no isolated points. A set has the perfect set property if it is countable or contains a perfect subset. A non-empty perfect subset of a Polish space contains a homeomorphic copy of , so it has cardinality ; hence no set with the perfect set property is a counterexample to CH.
The hierarchy at a glance
Hooked arrows are inclusions, all proper in any uncountable Polish space (Lebesgue, using universal sets). The Borel hierarchy has levels; above it come the projective classes, starting with the analytic and coanalytic sets, whose intersection is exactly the Borel sets by Suslin's theorem.
Try placing sets on the diagram as you read: a closed interval, , the irrationals, the set of sequences in with infinitely many s, the set of everywhere-differentiable functions in .
Locating sets
Example— Rationals and irrationals
is a countable union of closed singletons, so it is . It is not : the irrationals are a dense , and if were a too, the Baire category theorem would make the empty set dense. Dually the irrationals are but not . (The formal section proves this in Lean.)
Example— Sets of sequences
In : is clopen; is open, not closed; is , and by the same Baire category argument not ; the set of whose averages converge to is ("for every there is such that for all the average is within ").
Example— Beyond Borel
Coding trees on by points of , the set of ill-founded trees (those with an infinite branch) is analytic: iff . The set of well-founded trees is coanalytic. Neither is Borel; they are complete for their classes. Mazurkiewicz (1936) showed that the set of everywhere-differentiable functions in is coanalytic but not Borel — a natural set of analysis beyond the Borel hierarchy.
The perfect set theorem and Suslin's theorem
Throughout, is a Polish space with a compatible complete metric .
Theorem— Perfect set theorem for analytic sets (Suslin 1917)
Every uncountable analytic set contains a homeomorphic copy of . In particular it contains a perfect set and has cardinality .
Proof
Let with continuous. Let be the union of all basic open sets with countable; is countable, being a countable union of countable sets. Put , a closed set, non-empty since is uncountable.
Key property: if then is uncountable. Otherwise would be countable, so , contradicting .
We assign to each finite binary string a finite sequence with . Let . Given , the key property gives with . Choose disjoint closed balls and of radius at most . By continuity of at there is a proper extension of with and .
For , the sequences extend one another and their lengths increase, so they converge to a point ; since each meets the closed set , . The map is continuous. It is injective: if first differ at place , then and lie in the two disjoint balls chosen at stage . As is compact, is a homeomorphism onto , a compact set without isolated points.
∎
So no analytic set is a counterexample to CH. For closed sets this is the Cantor–Bendixson theorem; for Borel sets it was proved by Alexandrov and by Hausdorff (1916).
Two sets are Borel-separated if some Borel set satisfies and .
Theorem— Lemma (separation is countably additive)
If , , and each is Borel-separated from each , then is Borel-separated from .
Proof
If separates from , then is Borel, contains every , and is disjoint from every .
∎
Theorem— Lusin separation theorem (1927)
If and are disjoint analytic subsets of , there is a Borel set with and .
Proof
We may assume and with continuous. Suppose and are not Borel-separated. Since and , the lemma shows: if and are not Borel-separated, then neither are and for some . Starting from we obtain such that and are not Borel-separated for any . But and are distinct, so they have disjoint open neighbourhoods and ; by continuity, for large , and , and the open set separates them — a contradiction.
∎
Theorem— Suslin's theorem (1917)
A subset of a Polish space is Borel if and only if it is both analytic and coanalytic: Borel.
Proof
Borel sets are analytic (the formal section cites Mathlib's proof: a Borel set is closed in a finer Polish topology, hence a continuous image of ), and so are their complements. Conversely, if and are analytic, the Lusin separation theorem gives a Borel with and , i.e. .
∎
Theorem— Theorem (Suslin): an analytic set that is not Borel
There is an analytic subset of that is not coanalytic, hence not Borel.
Proof
(Sketch.) There is a universal analytic set : every analytic subset of is a section . (Code closed subsets of by trees, and trees by points of ; then project.) The diagonal is analytic. If its complement were analytic, it would be for some , and then .
∎
The same diagonal argument as in Cantor's and Gödel's theorems. Lebesgue's claim fails because projections can produce any analytic set — for instance, is the projection of a closed subset of — while injective continuous images of Borel sets are Borel (the Lusin–Souslin theorem).
Projective sets and the limits of ZFC
The good behaviour of analytic sets does not continue up the projective hierarchy in ZFC alone.
- What ZFC proves. sets have the perfect set property (above), and and sets are Lebesgue measurable and have the property of Baire (Lusin, Sierpiński). Every uncountable set has cardinality or (a consequence of Shoenfield absoluteness and the analysis of sets as unions of Borel sets).
- What gives. In Gödel's there is a well-order of the reals, hence a set that is not Lebesgue measurable, and an uncountable set with no perfect subset. So ZFC cannot prove that sets have the perfect set property, nor that sets are measurable (if ZFC is consistent).
- What large cardinals give. Determinacy of infinite games is the unifying principle. Gale and Stewart (1953) showed open games are determined; Martin (1975) proved Borel determinacy in ZFC. Martin and Steel (1989) proved that if there are infinitely many Woodin cardinals then every projective set is determined (projective determinacy), and determinacy implies the perfect set property, Lebesgue measurability and the Baire property for all projective sets.
So the regularity of definable sets of reals, which ZFC establishes at the first level, is settled at all projective levels by large cardinal axioms — one of the strongest arguments for adopting them (see large cardinals).
Polish spaces and analytic sets in Lean
Mathlib has substantial descriptive set theory. Baire space is Polish, and closed sets in a metric space are :
/-- **Baire space** `𝒩 = ℕ^ℕ`, with the product of discrete topologies, is Polish (separable
and completely metrisable): a countable product of Polish spaces is Polish. Mathlib provides the
instance. -/
theorem baire_space_polish : PolishSpace (ℕ → ℕ) :=
inferInstance/-- In a metric space every closed set `F` is `G_δ` (`Π⁰₂`): `F = ⋂ₙ {x | d(x, F) < 1/(n+1)}`.
So `Σ⁰₁ ∪ Π⁰₁ ⊆ Δ⁰₂`, the first step of the Borel hierarchy. This applies Mathlib's
`IsClosed.isGδ` (metric spaces are perfectly normal). -/
theorem closed_isGδ {s : Set ℝ} (hs : IsClosed s) : IsGδ s :=
hs.isGδThe Baire category argument that is not , proved here from Mathlib's Dense.inter_of_Gδ:
/-- **`ℚ` is not a `G_δ` subset of `ℝ`** (so it is `Σ⁰₂` but not `Π⁰₂`). Proof by the Baire
category theorem: the irrationals are a dense `G_δ` (intersection of the open dense sets
`ℝ ∖ {q}`); if `ℚ` were a `G_δ` too, the intersection of these two dense `G_δ` sets would be
dense — but it is empty. -/
theorem rat_not_isGδ : ¬ IsGδ (Set.range ((↑) : ℚ → ℝ)) := by
intro h
have hd := Dense.inter_of_Gδ h IsGδ.setOfPred_irrational Rat.denseRange_cast dense_irrational
have hempty : Set.range ((↑) : ℚ → ℝ) ∩ {x | Irrational x} = ∅ := by
ext x
simp only [mem_inter_iff, mem_range, mem_empty_iff_false, iff_false, not_and]
rintro ⟨q, rfl⟩ hq
exact hq.ne_rat q rfl
rw [hempty] at hd
exact Set.not_nonempty_empty hd.nonemptyMathlib defines MeasureTheory.AnalyticSet as "empty or a continuous image of ℕ → ℕ". Borel sets are analytic, continuous images of analytic sets are analytic, and so projections of Borel sets are analytic:
/-- Every Borel subset of a Polish space is **analytic** (a continuous image of `ℕ^ℕ`, or empty).
This applies Mathlib's `MeasurableSet.analyticSet`. -/
theorem borel_analytic {X : Type*} [TopologicalSpace X] [PolishSpace X] [MeasurableSpace X]
[BorelSpace X] {s : Set X} (hs : MeasurableSet s) : AnalyticSet s :=
hs.analyticSet/-- Continuous images of analytic sets are analytic. This applies Mathlib's
`AnalyticSet.image_of_continuous`. -/
theorem analytic_image {X Y : Type*} [TopologicalSpace X] [TopologicalSpace Y] {s : Set X}
(hs : AnalyticSet s) {f : X → Y} (hf : Continuous f) : AnalyticSet (f '' s) :=
hs.image_of_continuous hf/-- **Projections of Borel sets are analytic.** If `B ⊆ X × Y` is Borel (with `X`, `Y` Polish),
its projection `{x | ∃ y, (x, y) ∈ B}` is analytic: `B` is analytic and the projection is
continuous. Lebesgue (1905) claimed such projections are always Borel; Suslin (1917) found the
error — they need not be. -/
theorem projection_analytic {X Y : Type*} [TopologicalSpace X] [PolishSpace X]
[MeasurableSpace X] [BorelSpace X] [TopologicalSpace Y] [PolishSpace Y]
[MeasurableSpace Y] [BorelSpace Y] {B : Set (X × Y)} (hB : MeasurableSet B) :
AnalyticSet (Prod.fst '' B) :=
analytic_image (borel_analytic hB) continuous_fstThe lemma that separation is countably additive, proved here with the separating set of the lesson; then Suslin's theorem, derived from Mathlib's Lusin separation theorem exactly as in the proof above, and Mathlib's own statement of it:
/-- **Separation is countably additive** (the lemma behind Lusin's separation theorem). If each
`P m` is separated from each `Q n` by a measurable (Borel) set `C m n`, then `⋃ₘ P m` is
separated from `⋃ₙ Q n` by `C = ⋃ₘ ⋂ₙ C m n`: it contains every `P m`, and a point of `Q n`
in `C` would lie in some `C m n`. (Mathlib's version is `MeasurablySeparable.iUnion`.) -/
theorem separation_iUnion {α : Type*} [MeasurableSpace α] {P Q : ℕ → Set α}
(h : ∀ m n, MeasurablySeparable (P m) (Q n)) :
MeasurablySeparable (⋃ m, P m) (⋃ n, Q n) := by
choose C hPC hQC hC using h
refine ⟨⋃ m, ⋂ n, C m n, ?_, ?_, ?_⟩
· -- every `P m` lies in `⋂ n, C m n`
exact Set.iUnion_mono fun m => Set.subset_iInter fun n => hPC m n
· -- no point of `Q n` lies in any `⋂ n', C m n'`
rw [Set.disjoint_iUnion_left]
intro n
rw [Set.disjoint_iUnion_right]
intro m
exact (hQC m n).mono_right (Set.iInter_subset _ n)
· exact MeasurableSet.iUnion fun m => MeasurableSet.iInter fun n => hC m n/-- **Suslin's theorem, from the Lusin separation theorem.** If `A` and its complement are both
analytic, then `A` is Borel. Proof: `A` and `Aᶜ` are disjoint analytic sets, so by Lusin's
separation theorem (Mathlib's `AnalyticSet.measurablySeparable`) some Borel set `B` satisfies
`A ⊆ B` and `B ∩ Aᶜ = ∅`; the second condition says `B ⊆ A`, so `A = B` is Borel. -/
theorem suslin_from_lusin {X : Type*} [TopologicalSpace X] [T2Space X] [MeasurableSpace X]
[OpensMeasurableSpace X] {A : Set X} (hA : AnalyticSet A) (hAc : AnalyticSet Aᶜ) :
MeasurableSet A := by
obtain ⟨B, hAB, hdisj, hB⟩ := hA.measurablySeparable hAc disjoint_compl_right
have hBA : B ⊆ A := fun x hxB => by
by_contra hxA
exact Set.disjoint_left.mp hdisj hxA hxB
rwa [Set.Subset.antisymm hAB hBA]/-- **Suslin's theorem** (Mathlib's version): Borel = analytic ∩ coanalytic. This applies
`AnalyticSet.measurableSet_of_compl`; the converse direction is `borel_analytic` applied to
`A` and to its (Borel) complement. -/
theorem suslin {X : Type*} [TopologicalSpace X] [T2Space X] [MeasurableSpace X]
[OpensMeasurableSpace X] {A : Set X} (hA : AnalyticSet A) (hAc : AnalyticSet Aᶜ) :
MeasurableSet A :=
hA.measurableSet_of_compl hAc/-- **Lusin–Souslin**: the image of a Borel set under an injective continuous map from a Polish
space is Borel — injectivity is exactly what fails in Lebesgue's projection argument. This
applies Mathlib's `MeasurableSet.image_of_continuousOn_injOn`. -/
theorem lusin_souslin {X Y : Type*} [TopologicalSpace X] [PolishSpace X] [MeasurableSpace X]
[BorelSpace X] [TopologicalSpace Y] [T2Space Y] [MeasurableSpace Y] [OpensMeasurableSpace Y]
{s : Set X} (hs : MeasurableSet s) {f : X → Y} (hf : Continuous f) (hinj : Set.InjOn f s) :
MeasurableSet (f '' s) :=
hs.image_of_continuousOn_injOn hf.continuousOn hinjThe perfect set property for closed sets (via Cantor–Bendixson):
/-- **Cantor–Bendixson**: every closed set in a second-countable space is the union of a countable
set and a perfect set. This applies Mathlib's `exists_countable_union_perfect_of_isClosed`. -/
theorem cantor_bendixson {X : Type*} [TopologicalSpace X] [SecondCountableTopology X]
{C : Set X} (hC : IsClosed C) : ∃ V D : Set X, V.Countable ∧ Perfect D ∧ C = V ∪ D :=
exists_countable_union_perfect_of_isClosed hC/-- **The perfect set property for closed sets**: an uncountable closed subset of a Polish space
contains a continuous injective image of Cantor space `2^ℕ`, hence has cardinality `2^ℵ₀`. So
no closed set is a counterexample to CH. This applies Mathlib's
`IsClosed.exists_nat_bool_injection_of_not_countable`. -/
theorem perfect_set_closed {X : Type*} [TopologicalSpace X] [PolishSpace X] {C : Set X}
(hC : IsClosed C) (hunc : ¬ C.Countable) :
∃ f : (ℕ → Bool) → X, Set.range f ⊆ C ∧ Continuous f ∧ Function.Injective f :=
hC.exists_nat_bool_injection_of_not_countable huncNot formalised (here or, as far as we know, in Mathlib): the Borel hierarchy itself (Mathlib has a related transfinite construction, MeasurableSpace.generateMeasurableRec, used to count Borel sets), the perfect set theorem for analytic sets proved above, universal sets and the existence of an analytic non-Borel set, and determinacy. Mathlib's Mathlib.SetTheory.Descriptive.Tree provides trees on a type as a starting point.
What finite trees can and cannot see
The experiment studies four closed subsets of through their trees, truncated at finite depths: the full tree, the "golden" tree of strings with no two adjacent s (perfect), the tree of strings with at most two s (countable), and a "staircase" tree whose branches all have finitely many s (countable). For each it counts nodes and computes the splitting height — the height of the largest full binary tree embedded in the branching nodes.
"""Closed sets of Cantor space as trees: what finite information can and cannot see.
Every closed subset of Cantor space 2^N is the set [T] of infinite branches of
a pruned tree T of finite binary strings. The perfect set theorem for closed
sets (Cantor-Bendixson) says [T] is either countable or contains a perfect
set - equivalently, T contains a copy of the full binary tree - and then has
cardinality 2^aleph_0.
We look at four trees, truncated at depth N:
full all strings [T] = 2^N, perfect
golden no two adjacent 1s perfect, uncountable
at most 2 at most two 1s countable (Cantor-Bendixson rank 3)
staircase if the first 1 is at place j, countable (every branch has
at most j further 1s finitely many 1s)
For each we count the nodes at depth N, compute the splitting height (the
height of the largest full binary tree whose branching nodes are branching
nodes of T), and test whether every node branches somewhere above it.
The staircase tree is the point: its node counts and splitting heights are
exactly those of the golden tree, yet it has only countably many branches.
Finite truncations cannot tell a countable closed set from a perfect one.
Runs unchanged in the browser (Pyodide) using only the standard library.
"""
from functools import lru_cache
import textwrap
def full(s):
"""Every binary string."""
return True
def golden(s):
"""No two adjacent 1s (the golden-mean shift)."""
return "11" not in s
def at_most_two(s):
"""At most two 1s."""
return s.count("1") <= 2
def staircase(s):
"""If the first 1 is at position j, at most j further 1s follow it."""
j = s.find("1")
return j < 0 or s[j + 1:].count("1") <= j
TREES = [("full", full), ("golden", golden), ("at most 2", at_most_two),
("staircase", staircase)]
def level(tree, n):
"""The nodes of the tree at depth n (strings of length n)."""
nodes = [""]
for _ in range(n):
nodes = [t + b for t in nodes for b in "01" if tree(t + b)]
return nodes
def splitting_height(tree, n, node=""):
"""Height of the largest full binary tree embedded in the tree's branching
nodes above ``node``, within depth n."""
@lru_cache(maxsize=None)
def height(t):
if len(t) == n:
return 0
kids = [t + b for b in "01" if tree(t + b)]
best = max(height(c) for c in kids)
if len(kids) == 2:
best = max(best, 1 + min(height(kids[0]), height(kids[1])))
return best
if not tree(node):
raise ValueError("node is not in the tree")
return height(node)
def every_node_branches(tree, n):
"""Does every node of depth <= n - 2 have a branching node above it within
depth n? (A finite test of perfectness.)"""
for depth in range(n - 1):
for t in level(tree, depth):
if splitting_height(tree, n, t) == 0:
return False
return True
def main():
depths = (4, 8, 12, 16)
print("Pruned trees T on {0,1}, truncated at depth N")
print(" nodes at depth N splitting height every node")
print("tree " + "".join(f"{f'N={d}':>7}" for d in depths)
+ " " + "".join(f"{d:>4}" for d in depths) + " branches")
for name, tree in TREES:
counts = "".join(f"{len(level(tree, d)):>7}" for d in depths)
heights = "".join(f"{splitting_height(tree, d):>4}" for d in depths)
print(f"{name:<12}{counts} {heights} {every_node_branches(tree, 10)}")
same = all(len(level(golden, d)) == len(level(staircase, d)) and
splitting_height(golden, d) == splitting_height(staircase, d)
for d in range(1, 17))
print()
print(f"golden and staircase agree on both statistics for N = 1..16: {same}")
print("but [golden] is perfect (uncountable) while [staircase] is countable.")
print()
print(textwrap.fill(
"Epistemic status: exact counts for finite truncations. The finite branch "
"test detects that the 'at most 2' and staircase trees are not perfect, "
"but neither statistic can decide whether a tree has uncountably many "
"branches: that is a theorem about the infinite tree (here, every "
"staircase branch has finitely many 1s). Hurewicz showed that the codes "
"of countable closed sets form a coanalytic, non-Borel set.",
width=78,
))
if __name__ == "__main__":
main()The staircase tree has exactly the same node counts and splitting heights as the golden tree at every depth checked, yet one body is countable and the other is perfect. Countability of is a property of the infinite tree that finite information cannot decide — indeed (Hurewicz) the set of codes of countable closed sets is coanalytic but not Borel.
Exercises
1. Descriptive set theory
Warm-upHumanWhere does sit in the Borel hierarchy of ?
2. Descriptive set theory
CoreHumanWhich of these spaces (with their usual topologies) are Polish? Choose all that apply.
3. Descriptive set theory
CoreHumanWhich kind of subset of can have a projection onto the -axis that is not Borel?
4. Descriptive set theory
CoreHumanIn the proof that an uncountable analytic set contains a perfect set, why do we first remove the open set (the union of the with countable)?
5. Descriptive set theory
CoreHumanLet , a closed subset of . The derived set removes the isolated points. How many times must the derivative be applied before the empty set is reached (the Cantor–Bendixson rank of )?
6. Descriptive set theory
StretchHumanMazurkiewicz (1936) studied , where has the sup norm. Which statement is correct?
7. Descriptive set theory
CoreFormalWhich Lean statement formalises (one direction of) Suslin's theorem in a Hausdorff space with Borel σ-algebra?
8. Descriptive set theory
CoreFormalThe Lean proof of rat_not_isGδ applies Dense.inter_of_Gδ to two sets. What does it conclude, and why is that a contradiction?
9. Descriptive set theory
StretchComputationalA tree on is given by a predicate tree(s) on binary strings. Write split_height(tree, n): the height of the largest full binary tree whose branching nodes are branching nodes of the tree, within depth . Recursively, at a node of length the height is ; otherwise it is the maximum of the children's heights and, if both children are in the tree, of their heights.
Common misconceptions
Misconception
"The projection of a Borel set is Borel." This was Lebesgue's error. Projections of Borel sets are analytic, and every analytic set arises this way, including non-Borel ones. (Projections of closed subsets of happen to be Borel, because closed subsets of are -compact; projections of subsets of already give every analytic set.)
Misconception
"Definable means computable." The classical (boldface) classes allow arbitrary real parameters: every singleton, and so every countable set, is or , however uncomputable its points. The effective (lightface) hierarchies of Kleene — for computably enumerable, for hyperarithmetic — refine the classical ones, and the classical classes are their relativisations to all parameters.
Misconception
"Every uncountable set of reals has cardinality ." That is CH. What is true is that every uncountable analytic set (in particular every uncountable Borel or closed set) does.
Misconception
"Analytic sets are related to analytic functions." The name comes from Lebesgue's functions "représentables analytiquement"; Mathlib places them in the MeasureTheory namespace for this reason, with a warning in the documentation.
Many ways of seeing
Topology— Baire space is universal
Every non-empty Polish space is a continuous image of , and every uncountable Polish space contains a homeomorphic copy of . Kuratowski's isomorphism theorem says that any two uncountable Polish spaces are Borel isomorphic: up to Borel bijections there is exactly one uncountable standard Borel space. So from the measurable point of view , and are the same, and topology is a tool for choosing convenient representatives — for example, every Borel set becomes clopen in a finer Polish topology with the same Borel sets. The Baire category theorem is the basic tool for proving that sets are not in a given class (see point-set topology).
Analysis— Measurability and uniformisation
Lusin proved that analytic sets are universally measurable: measurable for the completion of every -finite Borel measure. So measure theory extends beyond Borel sets in a controlled way (see measure theory). The Jankov–von Neumann uniformisation theorem says that an analytic subset of has a uniformising function measurable with respect to the -algebra generated by analytic sets; this measurable selection principle underpins dynamic programming, stochastic control and optimal transport. And descriptive set theory returns to Cantor's original question: Kechris and Louveau's work on sets of uniqueness for trigonometric series uses exactly these tools.
Probability— Classifying measure-preserving systems
Ergodic theory classifies measure-preserving transformations up to isomorphism. Ornstein (1970) classified Bernoulli shifts completely by entropy. In general the problem is intractable, and descriptive set theory makes this precise: Foreman, Rudolph and Weiss (2011) proved that the isomorphism relation on ergodic measure-preserving transformations of the unit interval is a complete analytic set, in particular not Borel — no countable Borel procedure can decide isomorphism, unlike the Bernoulli case.
Algebra— How hard is a classification problem?
An equivalence relation on a Polish space is Borel reducible to if a Borel map sends -classes to -classes injectively; this measures the complexity of classification problems. Countable structures (groups, graphs, fields) are coded by points of Polish spaces, and isomorphism becomes an analytic equivalence relation. Torsion-free abelian groups of rank are classified by "types" (Baer), but Hjorth (1999) showed rank is strictly harder, and Thomas (2003) showed that the classification problems for torsion-free abelian groups of rank strictly increase in complexity with . The Glimm–Effros dichotomy (Harrington, Kechris and Louveau, 1990) says that a Borel equivalence relation either admits countable invariants of a concrete kind or is at least as complex as eventual equality of binary sequences.
Logic— Effective descriptive set theory
Replacing "open" by "computably enumerable union of basic open sets" gives Kleene's lightface hierarchies: the arithmetical sets are the effective Borel sets of finite rank, and Kleene's theorem (1955) — the effective Suslin theorem — says that the lightface sets of natural numbers are exactly the hyperarithmetic ones. Classical theorems follow by relativising effective ones to arbitrary parameters, an approach developed by Addison and Moschovakis. Set-theoretically, the regularity of projective sets is independent of ZFC and decided by determinacy axioms, as described above.
History and context
- Émile Borel (1898) introduced the sets now named after him while developing measure; René Baire (1899) classified functions by iterated pointwise limits; Henri Lebesgue (1905) studied Baire's classes, proved that the Borel hierarchy is proper, and made the error about projections.
- Pavel Alexandrov and Felix Hausdorff (1916) proved that uncountable Borel sets have cardinality . Mikhail Suslin (1917), in Moscow, introduced analytic sets, proved that they have the perfect set property and that Borel = analytic ∩ coanalytic; he died of typhus in 1919, aged 24. Nikolai Lusin developed the theory and the separation theorem (1927) and defined the projective sets with Wacław Sierpiński (1925).
- Polish spaces are named in honour of the Polish school of topology — Sierpiński, Kazimierz Kuratowski, Stefan Mazurkiewicz and others. Kurt Gödel (1938) observed that yields definable pathological sets.
- Stephen Kleene (1955), John Addison and Yiannis Moschovakis built the effective theory; Donald A. Martin proved Borel determinacy (1975), and Martin and John Steel projective determinacy from Woodin cardinals (1989).
- Since the 1990s, Alexander Kechris, Alain Louveau, Leo Harrington, Greg Hjorth, Simon Thomas and others have developed invariant descriptive set theory and its applications to classification in algebra and dynamics.
Further reading
- Alexander S. Kechris, Classical Descriptive Set Theory (1995) — the standard graduate text; the proofs above follow its chapters 3, 14 and 29.
- Yiannis N. Moschovakis, Descriptive Set Theory (1980; 2nd edition 2009) — the effective approach and determinacy.
- S. M. Srivastava, A Course on Borel Sets (1998) — a gentle, complete route through Borel and analytic sets.
- Su Gao, Invariant Descriptive Set Theory (2009) — Borel equivalence relations and classification.
- Thomas Jech, Set Theory (Third Millennium Edition, 2003), chapters 11 and 25 — the set-theoretic side.