Morley's Counting Theorem via Scott-Height Stratification #
This file proves the full Morley counting theorem: for any Lω₁ω sentence φ, the number of isomorphism classes of countable models is either ≤ ℵ₁ or exactly 2^ℵ₀, conditional on the Silver-Burgess dichotomy.
The proof stratifies by Scott height. For each α < ω₁, BFEquiv_α is a Borel equivalence relation on ModelsOf φ, coarser than isomorphism. If any BFEquiv_α has 2^ℵ₀ classes, iso has ≥ 2^ℵ₀ hence = 2^ℵ₀. If all have ≤ ℵ₀, then for each α, the iso classes with height ≤ α inject into BFEquiv_α classes, giving ≤ ℵ₀ iso classes per stratum, hence ≤ ℵ₁ total over ω₁ strata.
Main Result #
morley_counting: Conditional Morley counting theorem for all countable models.
BFEquiv setoid on coded models #
The BFEquiv α equivalence relation on coded ℕ-models of φ (at the empty tuple).
Equations
- FirstOrder.Language.bfEquivSetoid φ α = { r := fun (c₁ c₂ : ↑(FirstOrder.Language.ModelsOf φ)) => FirstOrder.Language.BFEquiv α 0 Fin.elim0 Fin.elim0, iseqv := ⋯ }
Instances For
Iso implies BFEquiv α: isoSetoid refines bfEquivSetoid.
The BFEquiv α relation on ModelsOf φ is measurable.
Per-level BFEquiv dichotomy.
Refinement gives: #(BFEquiv α classes) ≤ #(iso classes).
Height function on iso classes #
scottHeight lifted to the ℕ-model quotient.
Equations
- FirstOrder.Language.isoClassHeight q = Quotient.lift (fun (c : ↑(FirstOrder.Language.ModelsOf φ)) => FirstOrder.Language.scottHeight ℕ) ⋯ q
Instances For
Every ℕ-model iso class has height < ω₁.
Morley counting: ℕ-coded models #
Morley counting for ℕ-coded models: ≤ ℵ₁ or = 2^ℵ₀.
Full Morley counting theorem #
Morley's counting theorem (conditional on Silver-Burgess): the number of isomorphism classes of countable models of an Lω₁ω sentence is either ≤ ℵ₁ or exactly 2^ℵ₀.
Combines the ℕ-tier (via Scott-height stratification + BFEquiv Borelness) with finite-carrier tiers (via permutation orbits).