English
The downward Löwenheim–Skolem theorem guarantees the existence of an elementary substructure of prescribed cardinality containing a given set.
Русский
При соблюдении соответствующих кардинальных ограничений найдётся элементарная подструктура S M, содержащая заданное множество и имеющая заданную мощность κ.
LaTeX
$$exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal) (h1 : ℵ₀ ≤ κ) (h2 : lift #s ≤ lift κ) (h3 : lift L.card ≤ lift κ) (h4 : lift κ ≤ lift #M) → Exists fun S => And (s ⊆ S) (lift #S = lift κ)$$
Lean4
/-- 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 `κ`. -/
theorem exists_elementarySubstructure_card_eq (s : Set M) (κ : Cardinal.{w'}) (h1 : ℵ₀ ≤ κ)
(h2 : Cardinal.lift.{w'} #s ≤ Cardinal.lift.{w} κ) (h3 : Cardinal.lift.{w'} L.card ≤ Cardinal.lift.{max u v} κ)
(h4 : Cardinal.lift.{w} κ ≤ Cardinal.lift.{w'} #M) :
∃ S : L.ElementarySubstructure M, s ⊆ S ∧ Cardinal.lift.{w'} #S = Cardinal.lift.{w} κ :=
by
obtain ⟨s', hs'⟩ := Cardinal.le_mk_iff_exists_set.1 h4
rw [← aleph0_le_lift.{_, w}] at h1
rw [← hs'] at h1 h2 ⊢
refine
⟨elementarySkolem₁Reduct (closure (L.sum L.skolem₁) (s ∪ Equiv.ulift '' s')),
(s.subset_union_left).trans subset_closure, ?_⟩
have h := mk_image_eq_lift _ s' Equiv.ulift.injective
rw [lift_umax.{w, w'}, lift_id'.{w, w'}] at h
rw [coeSort_elementarySkolem₁Reduct, ← h, lift_inj]
refine
le_antisymm (lift_le.1 (lift_card_closure_le.trans ?_))
(mk_le_mk_of_subset ((s.subset_union_right).trans subset_closure))
rw [max_le_iff, aleph0_le_lift, ← aleph0_le_lift.{_, w'}, h, add_eq_max, max_le_iff, lift_le]
· refine ⟨h1, (mk_union_le _ _).trans ?_, (lift_le.2 card_functions_sum_skolem₁_le).trans ?_⟩
· rw [← lift_le, lift_add, h, add_comm, add_eq_max h1]
exact max_le le_rfl h2
· rw [lift_max, lift_aleph0, max_le_iff, aleph0_le_lift, and_comm, ← lift_le.{w'}, lift_lift, lift_lift, ←
aleph0_le_lift, h]
refine ⟨?_, h1⟩
rw [← lift_lift.{w', w}]
refine _root_.trans (lift_le.{w}.2 h3) ?_
rw [lift_lift, ← lift_lift.{w, max u v}, ← hs', ← h, lift_lift]
· refine _root_.trans ?_ (lift_le.2 (mk_le_mk_of_subset Set.subset_union_right))
rw [aleph0_le_lift, ← aleph0_le_lift, h]
exact h1