Skip to content

Commit 24e2fd2

Browse files
author
leanprover-community-mathlib4-bot
committed
Merge master into nightly-testing
2 parents 9ea71b2 + 47f0d27 commit 24e2fd2

1 file changed

Lines changed: 24 additions & 23 deletions

File tree

Mathlib/SetTheory/Cardinal/Aleph.lean

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ theorem omega_le_omega {o₁ o₂ : Ordinal} : ω_ o₁ ≤ ω_ o₂ ↔ o₁
207207
theorem omega_max (o₁ o₂ : Ordinal) : ω_ (max o₁ o₂) = max (ω_ o₁) (ω_ o₂) :=
208208
omega.monotone.map_max
209209

210+
theorem preOmega_le_omega (o : Ordinal) : preOmega o ≤ ω_ o :=
211+
preOmega_le_preOmega.2 (Ordinal.le_add_left _ _)
212+
210213
theorem isInitial_omega (o : Ordinal) : IsInitial (omega o) :=
211214
isInitial_preOmega _
212215

@@ -298,13 +301,21 @@ theorem preAleph_succ (o : Ordinal) : preAleph (succ o) = succ (preAleph o) :=
298301
preAleph.map_succ o
299302

300303
@[simp]
301-
theorem preAleph_nat : ∀ n : ℕ, preAleph n = n
302-
| 0 => preAleph_zero
303-
| n + 1 => show preAleph (succ n) = n.succ by rw [preAleph_succ, preAleph_nat n, nat_succ]
304+
theorem preAleph_nat (n : ℕ) : preAleph n = n := by
305+
rw [← card_preOmega, preOmega_natCast, card_nat]
306+
307+
@[simp]
308+
theorem preAleph_omega0 : preAleph ω = ℵ₀ := by
309+
rw [← card_preOmega, preOmega_omega0, card_omega0]
304310

311+
@[simp]
305312
theorem preAleph_pos {o : Ordinal} : 0 < preAleph o ↔ 0 < o := by
306313
rw [← preAleph_zero, preAleph_lt_preAleph]
307314

315+
@[simp]
316+
theorem aleph0_le_preAleph {o : Ordinal} : ℵ₀ ≤ preAleph o ↔ ω ≤ o := by
317+
rw [← preAleph_omega0, preAleph_le_preAleph]
318+
308319
@[simp]
309320
theorem lift_preAleph (o : Ordinal.{u}) : lift.{v} (preAleph o) = preAleph (Ordinal.lift.{v} o) :=
310321
(preAleph.toInitialSeg.trans liftInitialSeg).eq
@@ -328,16 +339,6 @@ theorem preAleph_limit {o : Ordinal} (ho : o.IsLimit) : preAleph o = ⨆ a : Iio
328339
rw [preAleph_le_of_isLimit ho]
329340
exact fun a ha => le_ciSup (bddAbove_of_small _) (⟨a, ha⟩ : Iio o)
330341

331-
@[simp]
332-
theorem preAleph_omega0 : preAleph ω = ℵ₀ :=
333-
eq_of_forall_ge_iff fun c => by
334-
simp only [preAleph_le_of_isLimit isLimit_omega0, lt_omega0, exists_imp, aleph0_le]
335-
exact forall_swap.trans (forall_congr' fun n => by simp only [forall_eq, preAleph_nat])
336-
337-
@[simp]
338-
theorem aleph0_le_preAleph {o : Ordinal} : ℵ₀ ≤ preAleph o ↔ ω ≤ o := by
339-
rw [← preAleph_omega0, preAleph_le_preAleph]
340-
341342
/-- The `aleph` function gives the infinite cardinals listed by their ordinal index. `aleph 0 = ℵ₀`,
342343
`aleph 1 = succ ℵ₀` is the first uncountable cardinal, and so on.
343344
@@ -381,6 +382,9 @@ theorem aleph_max (o₁ o₂ : Ordinal) : ℵ_ (max o₁ o₂) = max (ℵ_ o₁)
381382
theorem max_aleph_eq (o₁ o₂ : Ordinal) : max (ℵ_ o₁) (ℵ_ o₂) = ℵ_ (max o₁ o₂) :=
382383
(aleph_max o₁ o₂).symm
383384

385+
theorem preAleph_le_aleph (o : Ordinal) : preAleph o ≤ ℵ_ o :=
386+
preAleph_le_preAleph.2 (Ordinal.le_add_left _ _)
387+
384388
@[simp]
385389
theorem aleph_succ (o : Ordinal) : ℵ_ (succ o) = succ (ℵ_ o) := by
386390
rw [aleph_eq_preAleph, add_succ, preAleph_succ, aleph_eq_preAleph]
@@ -399,16 +403,13 @@ theorem _root_.Ordinal.lift_omega (o : Ordinal.{u}) :
399403
simp [omega_eq_preOmega]
400404

401405
theorem aleph_limit {o : Ordinal} (ho : o.IsLimit) : ℵ_ o = ⨆ a : Iio o, ℵ_ a := by
402-
apply le_antisymm _ (ciSup_le' _)
403-
· rw [aleph_eq_preAleph, preAleph_limit (ho.add _)]
404-
refine ciSup_mono' (bddAbove_of_small _) ?_
405-
rintro ⟨i, hi⟩
406-
cases' lt_or_le i ω with h h
407-
· rcases lt_omega0.1 h with ⟨n, rfl⟩
408-
use ⟨0, ho.pos⟩
409-
simpa using (nat_lt_aleph0 n).le
410-
· exact ⟨⟨_, (sub_lt_of_le h).2 hi⟩, preAleph_le_preAleph.2 (le_add_sub _ _)⟩
411-
· exact fun i => aleph_le_aleph.2 i.2.le
406+
rw [aleph_eq_preAleph, preAleph_limit (isLimit_add ω ho)]
407+
apply le_antisymm <;>
408+
apply ciSup_mono' (bddAbove_of_small _) <;>
409+
intro i
410+
· refine ⟨⟨_, sub_lt_of_lt_add i.2 ho.pos⟩, ?_⟩
411+
simpa [aleph_eq_preAleph] using le_add_sub _ _
412+
· exact ⟨⟨_, add_lt_add_left i.2 ω⟩, le_rfl⟩
412413

413414
theorem aleph0_le_aleph (o : Ordinal) : ℵ₀ ≤ ℵ_ o := by
414415
rw [aleph_eq_preAleph, aleph0_le_preAleph]

0 commit comments

Comments
 (0)