Skip to content

Commit

Permalink
feat(SetTheory/Cardinal/Aleph): some lemmas on omega (#18542)
Browse files Browse the repository at this point in the history
  • Loading branch information
vihdzp committed Nov 18, 2024
1 parent 7aeae34 commit 25f427c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
23 changes: 22 additions & 1 deletion Mathlib/SetTheory/Cardinal/Aleph.lean
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,10 @@ theorem omega0_le_omega (o : Ordinal) : ω ≤ ω_ o := by
rw [← omega_zero, omega_le_omega]
exact Ordinal.zero_le o

/-- For the theorem `0 < ω`, see `omega0_pos`. -/
theorem omega_pos (o : Ordinal) : 0 < ω_ o :=
omega0_pos.trans_le (omega0_le_omega o)

theorem omega0_lt_omega1 : ω < ω₁ := by
rw [← omega_zero, omega_lt_omega]
exact zero_lt_one
Expand Down Expand Up @@ -306,6 +310,11 @@ theorem lift_preAleph (o : Ordinal.{u}) : lift.{v} (preAleph o) = preAleph (Ordi
(preAleph.toInitialSeg.trans liftInitialSeg).eq
(Ordinal.liftInitialSeg.trans preAleph.toInitialSeg) o

@[simp]
theorem _root_.Ordinal.lift_preOmega (o : Ordinal.{u}) :
Ordinal.lift.{v} (preOmega o) = preOmega (Ordinal.lift.{v} o) := by
rw [← ord_preAleph, lift_ord, lift_preAleph, ord_preAleph]

theorem preAleph_le_of_isLimit {o : Ordinal} (l : o.IsLimit) {c} :
preAleph o ≤ c ↔ ∀ o' < o, preAleph o' ≤ c :=
fun h o' h' => (preAleph_le_preAleph.2 <| h'.le).trans h, fun h => by
Expand Down Expand Up @@ -383,6 +392,12 @@ theorem aleph_zero : ℵ_ 0 = ℵ₀ := by rw [aleph_eq_preAleph, add_zero, preA
theorem lift_aleph (o : Ordinal.{u}) : lift.{v} (aleph o) = aleph (Ordinal.lift.{v} o) := by
simp [aleph_eq_preAleph]

/-- For the theorem `lift ω = ω`, see `lift_omega0`. -/
@[simp]
theorem _root_.Ordinal.lift_omega (o : Ordinal.{u}) :
Ordinal.lift.{v} (ω_ o) = ω_ (Ordinal.lift.{v} o) := by
simp [omega_eq_preOmega]

theorem aleph_limit {o : Ordinal} (ho : o.IsLimit) : ℵ_ o = ⨆ a : Iio o, ℵ_ a := by
apply le_antisymm _ (ciSup_le' _)
· rw [aleph_eq_preAleph, preAleph_limit (ho.add _)]
Expand Down Expand Up @@ -414,11 +429,17 @@ instance nonempty_toType_aleph (o : Ordinal) : Nonempty (ℵ_ o).ord.toType := b
rw [toType_nonempty_iff_ne_zero, ← ord_zero]
exact fun h => (ord_injective h).not_gt (aleph_pos o)

theorem isLimit_omega (o : Ordinal) : Ordinal.IsLimit (ω_ o) := by
rw [← ord_aleph]
exact isLimit_ord (aleph0_le_aleph _)

@[deprecated isLimit_omega (since := "2024-10-24")]
theorem ord_aleph_isLimit (o : Ordinal) : (ℵ_ o).ord.IsLimit :=
isLimit_ord <| aleph0_le_aleph _

-- TODO: get rid of this instance where it's used.
instance (o : Ordinal) : NoMaxOrder (ℵ_ o).ord.toType :=
toType_noMax_of_succ_lt (ord_aleph_isLimit o).2
toType_noMax_of_succ_lt (isLimit_ord <| aleph0_le_aleph o).2

@[simp]
theorem range_aleph : range aleph = Set.Ici ℵ₀ := by
Expand Down
4 changes: 0 additions & 4 deletions Mathlib/SetTheory/Ordinal/Arithmetic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -2304,10 +2304,6 @@ alias nat_lt_omega := nat_lt_omega0
theorem omega0_pos : 0 < ω :=
nat_lt_omega0 0

@[deprecated (since := "2024-09-30")]
theorem omega_pos : 0 < ω :=
nat_lt_omega0 0

theorem omega0_ne_zero : ω ≠ 0 :=
omega0_pos.ne'

Expand Down
3 changes: 0 additions & 3 deletions Mathlib/SetTheory/Ordinal/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -779,9 +779,6 @@ theorem card_omega0 : card ω = ℵ₀ :=
theorem lift_omega0 : lift ω = ω :=
lift_lift _

@[deprecated (since := "2024-09-30")]
alias lift_omega := lift_omega0

/-!
### Definition and first properties of addition on ordinals
Expand Down

0 comments on commit 25f427c

Please sign in to comment.