Skolem Functions and Downward Löwenheim–Skolem #
Main Definitions #
FirstOrder.Language.skolem₁is a language consisting of Skolem functions for another language.
Main Results #
FirstOrder.Language.exists_elementarySubstructure_card_eqis the Downward Löwenheim–Skolem theorem: Ifsis a set in anL-structureMandκan infinite cardinal such thatmax (#s, L.card) ≤ κandκ ≤ # M, thenMhas an elementary substructure containingsof cardinalityκ.
TODO #
- Use
skolem₁recursively to construct an actual Skolemization of a language.
A language consisting of Skolem functions for another language.
Called skolem₁ because it is the first step in building a Skolemization of a language.
Equations
Instances For
@[simp]
theorem FirstOrder.Language.card_functions_sum_skolem₁ {L : Language} :
Cardinal.mk ((n : ℕ) × (L.sum L.skolem₁).Functions n) = Cardinal.mk ((n : ℕ) × L.BoundedFormula Empty (n + 1))
@[instance_reducible]
noncomputable instance FirstOrder.Language.skolem₁Structure {L : Language} {M : Type w} [Nonempty M] [L.Structure M] :
The structure assigning each function symbol of L.skolem₁ to a skolem function generated with
choice.
Equations
- One or more equations did not get rendered due to their size.
theorem FirstOrder.Language.Substructure.skolem₁_reduct_isElementary {L : Language} {M : Type w} [Nonempty M] [L.Structure M] (S : (L.sum L.skolem₁).Substructure M) :
noncomputable def FirstOrder.Language.Substructure.elementarySkolem₁Reduct {L : Language} {M : Type w} [Nonempty M] [L.Structure M] (S : (L.sum L.skolem₁).Substructure M) :
Any L.sum L.skolem₁-substructure is an elementary L-substructure.
Equations
- S.elementarySkolem₁Reduct = { toSubstructure := FirstOrder.Language.LHom.sumInl.substructureReduct S, isElementary' := ⋯ }
Instances For
theorem FirstOrder.Language.Substructure.coeSort_elementarySkolem₁Reduct {L : Language} {M : Type w} [Nonempty M] [L.Structure M] (S : (L.sum L.skolem₁).Substructure M) :
instance FirstOrder.Language.Substructure.elementarySkolem₁Reduct.instSmall (L : Language) (M : Type w) [Nonempty M] [L.Structure M] :
theorem FirstOrder.Language.exists_small_elementarySubstructure (L : Language) (M : Type w) [L.Structure M] :
∃ (S : L.ElementarySubstructure M), Small.{max u v, w} ↥S
theorem FirstOrder.Language.exists_elementarySubstructure_card_eq (L : Language) {M : Type w} [L.Structure M] (s : Set M) (κ : Cardinal.{w'}) (h1 : Cardinal.aleph0 ≤ κ) (h2 : Cardinal.lift.{w', w} (Cardinal.mk ↑s) ≤ Cardinal.lift.{w, w'} κ) (h3 : Cardinal.lift.{w', max u v} L.card ≤ Cardinal.lift.{max u v, w'} κ) (h4 : Cardinal.lift.{w, w'} κ ≤ Cardinal.lift.{w', w} (Cardinal.mk M)) :
∃ (S : L.ElementarySubstructure M), s ⊆ ↑S ∧ Cardinal.lift.{w', w} (Cardinal.mk ↥S) = Cardinal.lift.{w, w'} κ
The Downward Löwenheim–Skolem theorem :
If s is a set in an L-structure M and κ an infinite cardinal such that
max (#s, L.card) ≤ κ and κ ≤ # M, then M has an elementary substructure containing s of
cardinality κ.