Downward Löwenheim-Skolem for Lω₁ω #
This file proves the downward Löwenheim-Skolem theorem for Lω₁ω: any Lω₁ω sentence satisfied by a countable model in a countable language has a countable model (in any target universe).
Main Results #
downward_LS_with_naming: Any satisfiable Lω₁ω sentence has a countable model, given a naming function (no countability assumption on the original model).downward_LS: Any Lω₁ω sentence satisfied by a countable model ([Countable M]) has a countable model. Uses language extensionL[[M]], requiring M countable.
Implementation Notes #
The proof constructs a ConsistencyPropertyEq from the given model M using
the "true in M" consistency property. To provide witnesses for the C7 quantifier
axioms, we extend the language L with constants naming each element of M,
then apply the model existence theorem in the extended language, and restrict
the resulting countable model back to L.
For languages where every element of M is already named by a closed term
(e.g., after Skolemization or in Henkin languages), we can work directly
in L without extension using NamingFunction.
References #
The naming function for the extended language L[[M]]: each element m : M
is named by the constant symbol L.con m, which evaluates to m in the
canonical L[[M]]-structure on M.
Equations
- L.namingFunctionWithConstants M = { name := fun (m : M) => FirstOrder.Language.func (Sum.inr m) Fin.elim0, sound := ⋯ }
Instances For
The constantsOn language has countable function symbols when the index type is countable.
The constantsOn language has countable relation symbols (they're all empty).
Downward Löwenheim-Skolem with naming function: If a countable language has a naming function (every element is named by a closed term), then any satisfiable sentence has a countable model.
This is the version that avoids language extension by assuming a naming function already exists. In practice, this applies to Henkin languages and term models.
Downward Löwenheim-Skolem for theories with naming function.
A corollary of consistent_theory_has_model.
Downward Löwenheim-Skolem for Lω₁ω: Any satisfiable sentence in a countable
language with a countable model has a countable model (in universe u).
The proof extends L with constants for each element of M to form L[[M]], constructs
a naming function, applies model existence, then restricts back. The countability
condition on M is needed so that L[[M]] remains countable.
For the version without the [Countable M] assumption (but with a naming function
already available), see downward_LS_with_naming.
Downward LS for theories: any Lω₁ω theory in a countable language
satisfied by a countable model ([Countable M]) has a countable model.