Genuine downward Löwenheim–Skolem for fragments (issue #13 unit 5) #
Per the frozen audit (docs/fragments-audit.md §5–§6): from an arbitrary M and X ⊆ M,
construct an A-elementary substructure containing X with the HONEST cardinal bound
|N| ≤ max(ℵ₀, |X|, |A|, |Σ n, L.Functions n|).
The construction is the semantic witness hull (Marker, Exercise 1.23, presented with choice
functions instead of a language expansion): interleave Substructure.closure (all language
functions — this is where |Σ Functions| honestly enters) with chosen witnesses for failures
of the fragment-controlled universals (tvWitnessSet — |A|-many witness suppliers), iterate
ω times, and close once more. The union is closed under both, so the Tarski–Vaught criterion
(aElementary_of_tarskiVaught) applies. Witnesses are extracted from existence proofs
(Exists.choose), so no Nonempty M hypothesis and no dummy elements are needed.
Marker's textbook bound max(|A|,|X|) (Theorem 1.22) is the special case
|Σ Functions| ≤ max ℵ₀ |A|; the countable corollary, which is what the consumers use, is
exists_countable_aElementary_substructure.
The language's two universes and the carrier's are independent. The three cardinals being
compared therefore start in three different universes, so every bound is stated with an explicit
Cardinal.lift into max u v w. exists_aElementary_substructure_of_eq_univ is the
same-universe form, where those lifts are identities.
The witness sets and the hull #
The chosen witnesses over a base set Y: for each fragment-controlled universal and each
tuple from Y admitting a counterexample in M, THE chosen counterexample.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Löwenheim–Skolem stages: alternately close under all language functions and add the fragment witnesses.
Equations
- One or more equations did not get rendered due to their size.
- FirstOrder.Language.lsStage A X 0 = X
Instances For
The witness hull: the substructure generated by all stages.
Equations
- FirstOrder.Language.lsHull A X = (FirstOrder.Language.Substructure.closure L).toFun (⋃ (k : ℕ), FirstOrder.Language.lsStage A X k)
Instances For
The hull is A-elementary — the Tarski–Vaught criterion holds by construction.
The cardinal bound #
The choice map from a slice: the chosen counterexample, when one exists.
Equations
- FirstOrder.Language.tvSliceWitness A Y n q = if h : ∃ (m' : M), ¬(↑q).1.Realize Empty.elim (Fin.snoc (↑q).2 m') then some h.choose else none
Instances For
Mathlib's heterogeneous-universe lemmas produce the complementary lift level: for a set
in M they give lift.{max u v}, and for language-side data lift.{w}. Both land in
Cardinal.{max u v w}, but Lean keeps the level expressions distinct, so every bound below is
stated with the uniform lift.{max u v w} and converted once through these.
The substructure-closure bound is lifted into the common universe max u v w. Mathlib's
own statement lives in Cardinal.{max u w}, so it needs one further lift, and the
function-symbol summand arrives with the complementary level.
The honest per-stage bound.
The honest hull bound: |N| ≤ max(ℵ₀, |X|, |A|, |Σ Functions|).
Genuine downward Löwenheim–Skolem for fragments (issue #13 unit 5): every X ⊆ M is
contained in an A-elementary substructure of size at most max(ℵ₀, |X|, |A|, |Σ Functions|) —
the honest bound; only function symbols enlarge the hull beyond the fragment's witnesses.
The same-universe form, for a language and a structure that already share one universe: the lifts are then all identities, so this is the statement without the universe bookkeeping.
The countable corollary (Marker, Theorem 1.22 second half — what #17 consumes): countable data yields a countable A-elementary substructure.
Universe regression #
These instantiate the hull construction and its cardinal bound where the language's two universes
and the structure's universe are pairwise distinct, and at the same-universe specialization.
They are compiled, so they fail if the file is ever reconstrained;
the variable block alone would not catch that, since a Language.{u, v} binder can still be
silently pinned by a downstream lemma.