@@ -60,7 +60,7 @@ theorem opow_add_one (a b : Ordinal) : a ^ (b + 1) = a ^ b * a := by
6060 obtain rfl | h := eq_or_ne a 0
6161 · rw [zero_opow (add_pos_of_right zero_lt_one b).ne', mul_zero]
6262 · rw [opow_of_ne_zero h, opow_of_ne_zero h]
63- exact limitRecOn_succ ..
63+ exact limitRecOn_add_one ..
6464
6565-- TODO: deprecate
6666theorem opow_succ (a b : Ordinal) : a ^ succ b = a ^ b * a :=
@@ -86,23 +86,19 @@ theorem opow_one (a : Ordinal) : a ^ (1 : Ordinal) = a := by
8686@[simp]
8787theorem one_opow (a : Ordinal) : (1 : Ordinal) ^ a = 1 := by
8888 induction a using limitRecOn with
89- | zero => simp only [opow_zero]
90- | succ _ ih =>
91- simp only [opow_succ, ih, mul_one]
89+ | zero => simp
90+ | add_one _ IH => simp [IH, mul_one]
9291 | limit b l IH =>
9392 refine eq_of_forall_ge_iff fun c => ?_
9493 rw [opow_le_of_isSuccLimit one_ne_zero l]
9594 exact ⟨fun H => by simpa only [opow_zero] using H 0 l.bot_lt, fun H b' h => by rwa [IH _ h]⟩
9695
9796theorem opow_pos {a : Ordinal} (b : Ordinal) (a0 : 0 < a) : 0 < a ^ b := by
98- have h0 : 0 < a ^ (0 : Ordinal) := by simp only [opow_zero, zero_lt_one]
97+ have h0 : 0 < a ^ (0 : Ordinal) := by simp
9998 induction b using limitRecOn with
10099 | zero => exact h0
101- | succ b IH =>
102- rw [opow_succ]
103- exact mul_pos IH a0
104- | limit b l _ =>
105- exact (lt_opow_of_isSuccLimit (pos_iff_ne_zero.1 a0) l).2 ⟨0 , l.bot_lt, h0⟩
100+ | add_one b IH => simpa using mul_pos IH a0
101+ | limit b l _ => exact (lt_opow_of_isSuccLimit (pos_iff_ne_zero.1 a0) l).2 ⟨0 , l.pos, h0⟩
106102
107103theorem opow_ne_zero {a : Ordinal} (b : Ordinal) (a0 : a ≠ 0 ) : a ^ b ≠ 0 :=
108104 pos_iff_ne_zero.1 <| opow_pos b <| pos_iff_ne_zero.2 a0
@@ -184,7 +180,7 @@ theorem opow_le_opow_left {a b : Ordinal} (c : Ordinal) (ab : a ≤ b) : a ^ c
184180 · by_cases c = 0 <;> simp_all
185181 · induction c using limitRecOn with
186182 | zero => simp
187- | succ c IH => simpa using mul_le_mul' IH ab
183+ | add_one c IH => simpa using mul_le_mul' IH ab
188184 | limit c l IH =>
189185 exact (opow_le_of_isSuccLimit ha l).2 fun b' h ↦
190186 (IH _ h).trans (opow_le_opow_right ((pos_iff_ne_zero.2 ha).trans_le ab) h.le)
@@ -223,7 +219,7 @@ theorem opow_add (a b c : Ordinal) : a ^ (b + c) = a ^ b * a ^ c := by
223219 obtain rfl | ha' := (one_le_iff_ne_zero.2 ha.ne').eq_or_lt; · simp
224220 induction c using limitRecOn with
225221 | zero => simp
226- | succ c IH => rw [succ_eq_add_one, ← add_assoc, opow_add_one, IH, opow_add_one, mul_assoc]
222+ | add_one c IH => rw [← add_assoc, opow_add_one, IH, opow_add_one, mul_assoc]
227223 | limit c l IH =>
228224 refine eq_of_forall_ge_iff fun d ↦
229225 (((isNormal_opow ha').comp (isNormal_add_right b)).le_iff_forall_le l).trans ?_
@@ -251,7 +247,7 @@ theorem opow_mul (a b c : Ordinal) : a ^ (b * c) = (a ^ b) ^ c := by
251247 obtain rfl | ha' := (one_le_iff_ne_zero.2 ha).eq_or_lt; · simp
252248 induction c using limitRecOn with
253249 | zero => simp
254- | succ c IH => rw [mul_succ , opow_add, IH, opow_succ ]
250+ | add_one c IH => rw [mul_add_one , opow_add, IH, opow_add_one ]
255251 | limit c l IH =>
256252 refine eq_of_forall_ge_iff fun d ↦
257253 (((isNormal_opow ha').comp (isNormal_mul_right hb)).le_iff_forall_le l).trans ?_
0 commit comments