Documentation

InfinitaryLogic.ModelTheory.CountingModels

Counting Models #

This file states model-counting results for Lω₁ω, connecting Scott rank bounds to the structure of the isomorphism relation.

Main Results #

References #

When a structure has StabilizesCompletely M α (with α < ω₁) and BFEquiv α holds, the structures are isomorphic. Unconditional (no CountableRefinementHypothesis needed).

This decouples the isomorphism conclusion from scottRank entirely, taking StabilizesCompletely as a direct hypothesis.

theorem FirstOrder.Language.bounded_scottHeight_iso_eq_BFEquiv_of {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] (hcount : L.CountableRefinementHypothesis) {φ : L.Sentenceω} {α : Ordinal.{0}} ( : α < Ordinal.omega 1) (hbound : ∀ (M : Type w) [inst : L.Structure M] [inst_1 : Countable M], φ.Realize MscottHeight M α) {M N : Type w} [L.Structure M] [L.Structure N] [Countable M] [Countable N] (hM : φ.Realize M) (_hN : φ.Realize N) :

When all countable models of a sentence have Scott height bounded by α (with α < ω₁), isomorphism between countable models is equivalent to BF-equivalence at level α. Conditional on CountableRefinementHypothesis.

This uses scottHeight (which has a clean conditional relationship to StabilizesCompletely) rather than scottRank.

Unconditional Wrapper (via CRH) #

theorem FirstOrder.Language.bounded_scottHeight_iso_eq_BFEquiv {L : Language} [L.IsRelational] [Countable ((l : ) × L.Relations l)] {φ : L.Sentenceω} {α : Ordinal.{0}} ( : α < Ordinal.omega 1) (hbound : ∀ (M : Type w) [inst : L.Structure M] [inst_1 : Countable M], φ.Realize MscottHeight M α) {M N : Type w} [L.Structure M] [L.Structure N] [Countable M] [Countable N] (hM : φ.Realize M) (hN : φ.Realize N) :

When all countable models of a sentence have Scott height bounded by α (with α < ω₁), isomorphism between countable models is equivalent to BF-equivalence at level α.

Placeholder for the full Morley counting theorem (the number of isomorphism classes of countable models of an Lω₁ω sentence is either at most ℵ₁ or exactly 2^ℵ₀).

The conditional version is proved as FirstOrder.Language.morley_counting (in ModelTheory/MorleyCounting.lean).