Skip to content

Commit c774a9c

Browse files
committed
feat(SetTheory/Cardinal/Arithmetic): omega ordinals are additively/multiplicatively principal (leanprover-community#18778)
1 parent 771b149 commit c774a9c

File tree

2 files changed

+34
-14
lines changed

2 files changed

+34
-14
lines changed

Mathlib/SetTheory/Cardinal/Arithmetic.lean

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -431,14 +431,6 @@ section aleph
431431
theorem aleph_add_aleph (o₁ o₂ : Ordinal) : ℵ_ o₁ + ℵ_ o₂ = ℵ_ (max o₁ o₂) := by
432432
rw [Cardinal.add_eq_max (aleph0_le_aleph o₁), aleph_max]
433433

434-
theorem principal_add_ord {c : Cardinal} (hc : ℵ₀ ≤ c) : Ordinal.Principal (· + ·) c.ord :=
435-
fun a b ha hb => by
436-
rw [lt_ord, Ordinal.card_add] at *
437-
exact add_lt_of_lt hc ha hb
438-
439-
theorem principal_add_aleph (o : Ordinal) : Ordinal.Principal (· + ·) (ℵ_ o).ord :=
440-
principal_add_ord <| aleph0_le_aleph o
441-
442434
theorem add_right_inj_of_lt_aleph0 {α β γ : Cardinal} (γ₀ : γ < aleph0) : α + γ = β + γ ↔ α = β :=
443435
fun h => Cardinal.eq_of_add_eq_add_right h γ₀, fun h => congr_arg (· + γ) h⟩
444436

@@ -957,4 +949,38 @@ theorem principal_opow_ord {c : Cardinal} (hc : ℵ₀ ≤ c) : Principal (· ^
957949
apply (isInitial_ord c).principal_opow
958950
rwa [omega0_le_ord]
959951

952+
/-! ### Initial ordinals are principal -/
953+
954+
theorem principal_add_ord {c : Cardinal} (hc : ℵ₀ ≤ c) : Principal (· + ·) c.ord := by
955+
intro a b ha hb
956+
rw [lt_ord, card_add] at *
957+
exact add_lt_of_lt hc ha hb
958+
959+
theorem IsInitial.principal_add {o : Ordinal} (h : IsInitial o) (ho : ω ≤ o) :
960+
Principal (· + ·) o := by
961+
rw [← h.ord_card]
962+
apply principal_add_ord
963+
rwa [aleph0_le_card]
964+
965+
theorem principal_add_omega (o : Ordinal) : Principal (· + ·) (ω_ o) :=
966+
(isInitial_omega o).principal_add (omega0_le_omega o)
967+
968+
theorem principal_mul_ord {c : Cardinal} (hc : ℵ₀ ≤ c) : Principal (· * ·) c.ord := by
969+
intro a b ha hb
970+
rw [lt_ord, card_mul] at *
971+
exact mul_lt_of_lt hc ha hb
972+
973+
theorem IsInitial.principal_mul {o : Ordinal} (h : IsInitial o) (ho : ω ≤ o) :
974+
Principal (· * ·) o := by
975+
rw [← h.ord_card]
976+
apply principal_mul_ord
977+
rwa [aleph0_le_card]
978+
979+
theorem principal_mul_omega (o : Ordinal) : Principal (· * ·) (ω_ o) :=
980+
(isInitial_omega o).principal_mul (omega0_le_omega o)
981+
982+
@[deprecated principal_add_omega (since := "2024-11-08")]
983+
theorem _root_.Cardinal.principal_add_aleph (o : Ordinal) : Principal (· + ·) (ℵ_ o).ord :=
984+
principal_add_ord <| aleph0_le_aleph o
985+
960986
end Ordinal

Mathlib/SetTheory/Ordinal/Principal.lean

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,9 +198,6 @@ theorem principal_add_iff_add_lt_ne_self : Principal (· + ·) a ↔ ∀ b < a,
198198
theorem principal_add_omega0 : Principal (· + ·) ω :=
199199
principal_add_iff_add_left_eq_self.2 fun _ => add_omega0
200200

201-
@[deprecated (since := "2024-09-30")]
202-
alias principal_add_omega := principal_add_omega0
203-
204201
theorem add_omega0_opow (h : a < ω ^ b) : a + ω ^ b = ω ^ b := by
205202
refine le_antisymm ?_ (le_add_left _ a)
206203
induction' b using limitRecOn with b _ b l IH
@@ -352,9 +349,6 @@ theorem principal_mul_omega0 : Principal (· * ·) ω := fun a b ha hb =>
352349
dsimp only; rw [← natCast_mul]
353350
apply nat_lt_omega0
354351

355-
@[deprecated (since := "2024-09-30")]
356-
alias principal_mul_omega := principal_mul_omega0
357-
358352
theorem mul_omega0 (a0 : 0 < a) (ha : a < ω) : a * ω = ω :=
359353
principal_mul_iff_mul_left_eq.1 principal_mul_omega0 a a0 ha
360354

0 commit comments

Comments
 (0)