Mycielski's theorem for Cantor space #
mycielski_cantor: for a meager set M ⊆ (ℕ → Bool) × (ℕ → Bool) there is a continuous
ψ : (ℕ → Bool) → (ℕ → Bool) with (ψ a, ψ b) ∉ M for all a ≠ b. This is Mycielski's
independent-set theorem (Kechris, CDST 19.1) specialized to Cantor space and binary relations
— step 4 of the classical category route to Silver's theorem (see
InfinitaryLogic/Conditional/SilverCategoryRoute.lean and docs/silver-phase2-route.md).
Construction #
Write the complement of M over a countable family of dense open sets U k. Build, by
recursion on levels, a family of pointed cylinders (anchor, depth) indexed by List Bool
nodes:
- split: each node
lof levelmgets two childrenb :: lwhose anchors differ at the parent's depth coordinate; - pair-killing fold: all (finitely many) pairs of distinct level-
(m+1)nodes are then refined, one pair at a time, so that the product of their cylinders lands inside⋂ k ≤ m, U k— a dense open set (finite intersection of dense opens, dense by the Baire property of the complete product space).
The scheme of (closed) cylinders has vanishing diameter and contains the closures of its
children, so CantorScheme.inducedMap is total and continuous. For distinct branches a ≠ b
and any k, at any level m > max (firstDiff a b) k the branch nodes are distinct, so the
image pair lies in U k; hence it lies in ⋂ k, U k ⊆ Mᶜ.
Avoidance is achieved only in the limit — for dense M no two cylinders can have
cross-product avoiding M — which is why this construction does not factor through
CantorScheme.exists_antichain_map (whose sibling cross-avoidance hypothesis is exactly
finite-stage avoidance). Injectivity of ψ is not claimed; downstream consumers recover it
from reflexivity of the relation being avoided.
Implementation note #
Cantor space carries the PiNat metric via PiNat.metricSpaceOfDiscreteUniformity, whose
uniformity is definitionally the product uniformity (see the warning on PiNat.metricSpace:
since Bool has a UniformSpace instance, the plain PiNat.metricSpace would create a
second, non-defeq uniform structure).
Cylinder prerequisites #
Cylinders are closed (they are in fact clopen).
Pointed cylinders and refinement #
Refines q p: the pointed cylinder q = (anchor, depth) is at least as deep as p and
its cylinder is contained in that of p.
Equations
- MycielskiCantor.Refines q p = (p.2 ≤ q.2 ∧ PiNat.cylinder q.1 q.2 ⊆ PiNat.cylinder p.1 p.2)
Instances For
Pair-killing fold: a family of pointed cylinders can be refined so that all pairs of distinct indices from a given finite set of pairs have cylinder products inside a dense open subset of the square.
Level-indexed stages #
Stage m of the construction: a pointed cylinder for every node, such that level-m
nodes have depth at least m and all pairs of distinct level-m nodes have cylinder
products inside U k for every k < m.
Instances For
The inductive step: split every node, then run the pair-killing fold against the
(dense open) intersection of the first m + 1 dense open sets.
The full tower of stages, with each level refining the previous one.
Equations
- MycielskiCantor.stages U hUo hUd 0 = MycielskiCantor.base U
- MycielskiCantor.stages U hUo hUd n.succ = Classical.choose ⋯
Instances For
Mycielski's theorem for Cantor space: for a meager set M in the square of Cantor
space, there is a continuous ψ : (ℕ → Bool) → (ℕ → Bool) such that (ψ a, ψ b) ∉ M
whenever a ≠ b. (Kechris, CDST 19.1, specialized.) Injectivity of ψ is not asserted;
when avoiding a reflexive relation it is automatic.