Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions Mathlib/SetTheory/Cardinal/Aleph.lean
Original file line number Diff line number Diff line change
Expand Up @@ -600,9 +600,7 @@ theorem isNormal_preBeth : Order.IsNormal preBeth := by

theorem preBeth_nat : ∀ n : ℕ, preBeth n = (2 ^ ·)^[n] (0 : ℕ)
| 0 => by simp
| n + 1 => by
rw [natCast_succ, preBeth_succ, Function.iterate_succ_apply', preBeth_nat]
simp
| n + 1 => by simp [Function.iterate_succ_apply', preBeth_nat]

@[simp]
theorem preBeth_one : preBeth 1 = 1 := by
Expand Down
3 changes: 2 additions & 1 deletion Mathlib/SetTheory/Ordinal/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -953,8 +953,9 @@ protected theorem le_one_iff {a : Ordinal} : a ≤ 1 ↔ a = 0 ∨ a = 1 :=
theorem card_succ (o : Ordinal) : card (succ o) = card o + 1 := by
simp

@[deprecated Nat.cast_add_one (since := "2026-05-21")]
theorem natCast_succ (n : ℕ) : ↑n.succ = succ (n : Ordinal) :=
rfl
n.cast_add_one

instance uniqueIioOne : Unique (Iio (1 : Ordinal)) where
default := ⟨0, zero_lt_one' Ordinal⟩
Expand Down
4 changes: 2 additions & 2 deletions Mathlib/SetTheory/Ordinal/Exponential.lean
Original file line number Diff line number Diff line change
Expand Up @@ -490,8 +490,8 @@ theorem lt_omega0_opow {a b : Ordinal} (hb : b ≠ 0) :
refine ⟨fun ha ↦ ⟨_, lt_log_of_lt_opow hb ha, ?_⟩,
fun ⟨c, hc, n, hn⟩ ↦ hn.trans (omega0_opow_mul_nat_lt hc n)⟩
obtain ⟨n, hn⟩ := lt_omega0.1 (div_opow_log_lt a one_lt_omega0)
use n.succ
rw [natCast_succ, ← hn]
use n + 1
rw [Nat.cast_add_one, ← hn]
exact lt_mul_succ_div a (opow_ne_zero _ omega0_ne_zero)

theorem lt_omega0_opow_succ {a b : Ordinal} : a < ω ^ succ b ↔ ∃ n : ℕ, a < ω ^ b * n := by
Expand Down
13 changes: 7 additions & 6 deletions Mathlib/SetTheory/Ordinal/Notation.lean
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ theorem repr_mul : ∀ (o₁ o₂) [NF o₁] [NF o₂], repr (o₁ * o₂) = rep
· obtain ⟨x, xe⟩ := Nat.exists_eq_succ_of_ne_zero n₂.ne_zero
simp only [Mul.mul, mul, e0, ↓reduceIte, repr, PNat.mul_coe, natCast_mul, opow_zero, one_mul]
simp only [xe, h₂.zero_of_zero e0, repr, add_zero]
rw [natCast_succ x, add_mul_succ _ ao, mul_assoc]
rw [Nat.cast_add_one x, ← succ_eq_add_one, add_mul_succ _ ao, mul_assoc]
· simp only [repr]
haveI := h₁.fst
haveI := h₂.fst
Expand Down Expand Up @@ -842,9 +842,10 @@ theorem repr_opow_aux₂ {a0 a'} [N0 : NF a0] [Na' : NF a'] (m : ℕ) (d : ω
calc
(ω0 ^ (k.succ : Ordinal)) * α' + R'
_ = (ω0 ^ succ (k : Ordinal)) * α' + ((ω0 ^ (k : Ordinal)) * α' * m + R) := by
rw [natCast_succ, RR, ← mul_assoc]
rw [Nat.cast_add_one, RR, ← mul_assoc, succ_eq_add_one]
_ = ((ω0 ^ (k : Ordinal)) * α' + R) * α' + ((ω0 ^ (k : Ordinal)) * α' + R) * m := ?_
_ = (α' + m) ^ succ (k.succ : Ordinal) := by rw [← mul_add, natCast_succ, opow_succ, IH.2]
_ = (α' + m) ^ succ (k.succ : Ordinal) := by
rw [← mul_add, opow_succ, Nat.cast_add_one, IH.2, succ_eq_add_one]
congr 1
· have αd : ω ∣ α' :=
dvd_add (dvd_mul_of_dvd_left (by simpa using opow_dvd_opow ω (one_le_iff_ne_zero.2 e0)) _) d
Expand All @@ -865,7 +866,7 @@ theorem repr_opow_aux₂ {a0 a'} [N0 : NF a0] [Na' : NF a'] (m : ℕ) (d : ω
· cases m
· have : R = 0 := by cases k <;> simp [R, opowAux]
simp [this]
· rw [natCast_succ, add_mul_succ]
· rw [Nat.cast_add_one, ← succ_eq_add_one, add_mul_succ]
apply add_of_omega0_opow_le Rl
rw [opow_mul, opow_succ]
gcongr
Expand Down Expand Up @@ -1010,14 +1011,14 @@ theorem fundamentalSequence_has_prop (o) : FundamentalSequenceProp o (fundamenta
refine
⟨isSuccLimit_mul_right this isSuccLimit_omega0, fun i =>
⟨this, ?_, fun H => @NF.oadd_zero _ _ (iha.2 H.fst)⟩, exists_lt_mul_omega0'⟩
rw [← mul_succ, ← natCast_succ]
rw [← mul_add_one, ← Nat.cast_add_one]
gcongr
apply natCast_lt_omega0
· have := opow_pos (repr a') omega0_pos
refine
⟨isSuccLimit_add _ (isSuccLimit_mul_right this isSuccLimit_omega0), fun i => ⟨this, ?_, ?_⟩,
exists_lt_add exists_lt_mul_omega0'⟩
· rw [← mul_succ, ← natCast_succ]
· rw [← mul_add_one, ← Nat.cast_add_one]
gcongr
apply natCast_lt_omega0
· refine fun H => H.fst.oadd _ (NF.below_of_lt' ?_ (@NF.oadd_zero _ _ (iha.2 H.fst)))
Expand Down
Loading