Skip to content

Commit e2bc6a0

Browse files
committed
chore: fix yet more induction branch names (#23686)
Follow-up to #23448. This includes the entire stack of inductors in `Order.SuccPred.Limit`.
1 parent 6010d6b commit e2bc6a0

File tree

19 files changed

+328
-298
lines changed

19 files changed

+328
-298
lines changed

Mathlib/AlgebraicTopology/RelativeCellComplex/Basic.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,15 @@ lemma hom_ext {Z : C} {φ₁ φ₂ : Y ⟶ Z} (h₀ : f ≫ φ₁ = f ≫ φ₂)
7676
refine c.isColimit.hom_ext (fun j ↦ ?_)
7777
dsimp
7878
induction j using SuccOrder.limitRecOn with
79-
| hm j hj =>
79+
| isMin j hj =>
8080
obtain rfl := hj.eq_bot
8181
simpa [← cancel_epi c.isoBot.inv] using h₀
82-
| hs j hj hj' =>
82+
| succ j hj hj' =>
8383
apply (c.attachCells j hj).hom_ext
8484
· simpa using hj'
8585
· intro i
8686
simpa only [Category.assoc, Cells.ι] using h ({ hj := hj, k := i, .. })
87-
| hl j hj hj' =>
87+
| isSuccLimit j hj hj' =>
8888
exact (c.F.isColimitOfIsWellOrderContinuous j hj).hom_ext
8989
(fun ⟨k, hk⟩ ↦ by simpa using hj' k hk)
9090

Mathlib/CategoryTheory/Abelian/GrothendieckCategory/Monomorphisms.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ namespace mono
3434

3535
instance map_bot_le (j : J) : Mono (h.F.map (homOfLE bot_le : ⊥ ⟶ j)) := by
3636
induction j using SuccOrder.limitRecOn with
37-
| hm j hj =>
37+
| isMin j hj =>
3838
obtain rfl := hj.eq_bot
3939
exact inferInstanceAs (Mono (h.F.map (𝟙 _)))
40-
| hs j hj hj' =>
40+
| succ j hj hj' =>
4141
have : Mono _ := h.map_mem j hj
4242
rw [← homOfLE_comp bot_le (Order.le_succ j), Functor.map_comp]
4343
infer_instance
44-
| hl j hj hj' =>
44+
| isSuccLimit j hj hj' =>
4545
have : OrderBot (Set.Iio j) :=
4646
{ bot := ⟨⊥, Order.IsSuccLimit.bot_lt hj ⟩
4747
bot_le _ := bot_le }

Mathlib/CategoryTheory/Limits/Shapes/Preorder/HasIterationOfShape.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ lemma hasColimitsOfShape_of_initialSeg
7373
· let s := f.toPrincipalSeg hf
7474
obtain ⟨i, hi₀⟩ : ∃ i, i = s.top := ⟨_, rfl⟩
7575
induction i using SuccOrder.limitRecOn with
76-
| hm i hi =>
76+
| isMin i hi =>
7777
subst hi₀
7878
exact (hi.not_lt (s.lt_top (Classical.arbitrary _))).elim
79-
| hs i hi _ =>
79+
| succ i hi _ =>
8080
obtain ⟨a, rfl⟩ := (s.mem_range_iff_rel (b := i)).2 (by
8181
simpa only [← hi₀] using Order.lt_succ_of_not_isMax hi)
8282
have : OrderTop α :=
@@ -85,7 +85,7 @@ lemma hasColimitsOfShape_of_initialSeg
8585
rw [← s.le_iff_le]
8686
exact Order.le_of_lt_succ (by simpa only [hi₀] using s.lt_top b) }
8787
infer_instance
88-
| hl i hi =>
88+
| isSuccLimit i hi =>
8989
subst hi₀
9090
exact hasColimitsOfShape_of_isSuccLimit' C s hi
9191

Mathlib/CategoryTheory/MorphismProperty/TransfiniteComposition.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,15 +181,15 @@ variable {X Y : C} {f : X ⟶ Y} (h : (isomorphisms C).TransfiniteCompositionOfS
181181
instance {j : J} (g : ⊥ ⟶ j) : IsIso (h.F.map g) := by
182182
obtain rfl : g = homOfLE bot_le := rfl
183183
induction j using SuccOrder.limitRecOn with
184-
| hm j hj =>
184+
| isMin j hj =>
185185
obtain rfl := hj.eq_bot
186186
dsimp
187187
infer_instance
188-
| hs j hj hj' =>
188+
| succ j hj hj' =>
189189
have : IsIso _ := h.map_mem j hj
190190
rw [← homOfLE_comp bot_le (Order.le_succ j), h.F.map_comp]
191191
infer_instance
192-
| hl j hj hj' =>
192+
| isSuccLimit j hj hj' =>
193193
letI : OrderBot (Set.Iio j) :=
194194
{ bot := ⟨⊥, Order.IsSuccLimit.bot_lt hj⟩
195195
bot_le j := bot_le }

Mathlib/CategoryTheory/SmallObject/Iteration/Basic.lean

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -359,49 +359,49 @@ instance subsingleton : Subsingleton (Φ.Iteration j) where
359359
suffices iter₁.F = iter₂.F by aesop
360360
revert iter₁ iter₂
361361
induction j using SuccOrder.limitRecOn with
362-
| hm j h =>
363-
obtain rfl := h.eq_bot
364-
intro iter₁ iter₂
365-
refine ext (fun k₁ k₂ h₁₂ h₂ ↦ ?_)
366-
obtain rfl : k₂ = ⊥ := by simpa using h₂
367-
obtain rfl : k₁ = ⊥ := by simpa using h₁₂
368-
apply mapEq_refl _ _ (by simp only [obj_bot])
369-
| hs j hj₁ hj₂ =>
370-
intro iter₁ iter₂
371-
refine ext (fun k₁ k₂ h₁₂ h₂ ↦ ?_)
372-
have h₀ := Order.le_succ j
373-
replace hj₂ := hj₂ (iter₁.trunc h₀) (iter₂.trunc h₀)
374-
have hsucc := Functor.congr_obj hj₂ ⟨j, by simp⟩
375-
dsimp at hj₂ hsucc
376-
wlog h : k₂ ≤ j generalizing k₁ k₂
377-
· obtain h₂ | rfl := h₂.lt_or_eq
378-
· exact this _ _ _ _ ((Order.lt_succ_iff_of_not_isMax hj₁).1 h₂)
379-
· by_cases h' : k₁ ≤ j
380-
· apply mapEq_trans _ h₀ (this k₁ j h' h₀ (by simp))
381-
simp only [MapEq, ← arrowSucc_def _ _ (Order.lt_succ_of_not_isMax hj₁),
382-
arrowSucc_eq, hsucc]
383-
· simp only [not_le] at h'
384-
obtain rfl : k₁ = Order.succ j := le_antisymm h₁₂
385-
((Order.succ_le_iff_of_not_isMax hj₁).2 h')
386-
rw [MapEq, arrowMap_refl, arrowMap_refl,
387-
obj_succ _ _ h', obj_succ _ _ h', hsucc]
388-
simp only [MapEq, ← arrowMap_restrictionLE _ (Order.le_succ j) _ _ _ h, hj₂]
389-
| hl j h₁ h₂ =>
390-
intro iter₁ iter₂
391-
refine ext (fun k₁ k₂ h₁₂ h₃ ↦ ?_)
392-
wlog h₄ : k₂ < j generalizing k₁ k₂; swap
393-
· have := h₂ k₂ h₄ (iter₁.trunc h₄.le) (iter₂.trunc h₄.le)
394-
simp at this
395-
simp only [MapEq, ← arrowMap_restrictionLE _ h₄.le _ _ _ (by rfl), this]
396-
· obtain rfl : j = k₂ := le_antisymm (by simpa using h₄) h₃
397-
have : restrictionLT iter₁.F le_rfl = restrictionLT iter₂.F le_rfl :=
398-
Arrow.functor_ext (fun _ l _ ↦ this _ _ _ _ l.2)
399-
by_cases h₅ : k₁ < j
400-
· dsimp [MapEq]
401-
simp_rw [arrowMap_limit _ _ h₁ _ _ h₅, this]
402-
· obtain rfl : k₁ = j := le_antisymm h₁₂ (by simpa using h₅)
403-
apply mapEq_refl
404-
simp only [obj_limit _ _ h₁, this]
362+
| isMin j h =>
363+
obtain rfl := h.eq_bot
364+
intro iter₁ iter₂
365+
refine ext (fun k₁ k₂ h₁₂ h₂ ↦ ?_)
366+
obtain rfl : k₂ = ⊥ := by simpa using h₂
367+
obtain rfl : k₁ = ⊥ := by simpa using h₁₂
368+
apply mapEq_refl _ _ (by simp only [obj_bot])
369+
| succ j hj₁ hj₂ =>
370+
intro iter₁ iter₂
371+
refine ext (fun k₁ k₂ h₁₂ h₂ ↦ ?_)
372+
have h₀ := Order.le_succ j
373+
replace hj₂ := hj₂ (iter₁.trunc h₀) (iter₂.trunc h₀)
374+
have hsucc := Functor.congr_obj hj₂ ⟨j, by simp⟩
375+
dsimp at hj₂ hsucc
376+
wlog h : k₂ ≤ j generalizing k₁ k₂
377+
· obtain h₂ | rfl := h₂.lt_or_eq
378+
· exact this _ _ _ _ ((Order.lt_succ_iff_of_not_isMax hj₁).1 h₂)
379+
· by_cases h' : k₁ ≤ j
380+
· apply mapEq_trans _ h₀ (this k₁ j h' h₀ (by simp))
381+
simp only [MapEq, ← arrowSucc_def _ _ (Order.lt_succ_of_not_isMax hj₁),
382+
arrowSucc_eq, hsucc]
383+
· simp only [not_le] at h'
384+
obtain rfl : k₁ = Order.succ j := le_antisymm h₁₂
385+
((Order.succ_le_iff_of_not_isMax hj₁).2 h')
386+
rw [MapEq, arrowMap_refl, arrowMap_refl,
387+
obj_succ _ _ h', obj_succ _ _ h', hsucc]
388+
simp only [MapEq, ← arrowMap_restrictionLE _ (Order.le_succ j) _ _ _ h, hj₂]
389+
| isSuccLimit j h₁ h₂ =>
390+
intro iter₁ iter₂
391+
refine ext (fun k₁ k₂ h₁₂ h₃ ↦ ?_)
392+
wlog h₄ : k₂ < j generalizing k₁ k₂; swap
393+
· have := h₂ k₂ h₄ (iter₁.trunc h₄.le) (iter₂.trunc h₄.le)
394+
simp at this
395+
simp only [MapEq, ← arrowMap_restrictionLE _ h₄.le _ _ _ (by rfl), this]
396+
· obtain rfl : j = k₂ := le_antisymm (by simpa using h₄) h₃
397+
have : restrictionLT iter₁.F le_rfl = restrictionLT iter₂.F le_rfl :=
398+
Arrow.functor_ext (fun _ l _ ↦ this _ _ _ _ l.2)
399+
by_cases h₅ : k₁ < j
400+
· dsimp [MapEq]
401+
simp_rw [arrowMap_limit _ _ h₁ _ _ h₅, this]
402+
· obtain rfl : k₁ = j := le_antisymm h₁₂ (by simpa using h₅)
403+
apply mapEq_refl
404+
simp only [obj_limit _ _ h₁, this]
405405

406406
lemma congr_obj {j₁ j₂ : J} (iter₁ : Φ.Iteration j₁) (iter₂ : Φ.Iteration j₂)
407407
(k : J) (h₁ : k ≤ j₁) (h₂ : k ≤ j₂) :

Mathlib/CategoryTheory/SmallObject/Iteration/Nonempty.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,11 @@ variable (Φ)
142142

143143
instance nonempty (j : J) : Nonempty (Φ.Iteration j) := by
144144
induction j using SuccOrder.limitRecOn with
145-
| hm i hi =>
145+
| isMin i hi =>
146146
obtain rfl : i = ⊥ := by simpa using hi
147147
exact ⟨mkOfBot Φ J⟩
148-
| hs i hi hi' => exact ⟨mkOfSucc hi hi'.some⟩
149-
| hl i hi hi' => exact ⟨mkOfLimit hi (fun a ha ↦ (hi' a ha).some)⟩
148+
| succ i hi hi' => exact ⟨mkOfSucc hi hi'.some⟩
149+
| isSuccLimit i hi hi' => exact ⟨mkOfLimit hi (fun a ha ↦ (hi' a ha).some)⟩
150150

151151
end Iteration
152152

Mathlib/CategoryTheory/SmallObject/WellOrderInductionData.lean

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -112,33 +112,32 @@ lemma val_injective {j : J} {e e' : d.Extension val₀ j} (h : e.val = e'.val) :
112112

113113
instance [WellFoundedLT J] (j : J) : Subsingleton (d.Extension val₀ j) := by
114114
induction j using SuccOrder.limitRecOn with
115-
| hm i hi =>
116-
obtain rfl : i = ⊥ := by simpa using hi
117-
refine Subsingleton.intro (fun e₁ e₂ ↦ val_injective ?_)
118-
have h₁ := e₁.map_zero
119-
have h₂ := e₂.map_zero
120-
simp only [homOfLE_refl, op_id, FunctorToTypes.map_id_apply] at h₁ h₂
121-
rw [h₁, h₂]
122-
| hs i hi hi' =>
123-
refine Subsingleton.intro (fun e₁ e₂ ↦ val_injective ?_)
124-
have h₁ := e₁.map_succ i (Order.lt_succ_of_not_isMax hi)
125-
have h₂ := e₂.map_succ i (Order.lt_succ_of_not_isMax hi)
126-
simp only [homOfLE_refl, op_id, FunctorToTypes.map_id_apply, homOfLE_leOfHom] at h₁ h₂
127-
rw [h₁, h₂]
128-
congr
129-
exact congr_arg val
130-
(Subsingleton.elim (e₁.ofLE (Order.le_succ i)) (e₂.ofLE (Order.le_succ i)))
131-
| hl i hi hi' =>
132-
refine Subsingleton.intro (fun e₁ e₂ ↦ val_injective ?_)
133-
have h₁ := e₁.map_limit i hi (by rfl)
134-
have h₂ := e₂.map_limit i hi (by rfl)
135-
simp only [homOfLE_refl, op_id, FunctorToTypes.map_id_apply, OrderHom.Subtype.val_coe,
136-
comp_obj, op_obj, Monotone.functor_obj, homOfLE_leOfHom] at h₁ h₂
137-
rw [h₁, h₂]
138-
congr
139-
ext ⟨⟨l, hl⟩⟩
140-
have := hi' l hl
141-
exact congr_arg val (Subsingleton.elim (e₁.ofLE hl.le) (e₂.ofLE hl.le))
115+
| isMin i hi =>
116+
obtain rfl : i = ⊥ := by simpa using hi
117+
refine Subsingleton.intro (fun e₁ e₂ ↦ val_injective ?_)
118+
have h₁ := e₁.map_zero
119+
have h₂ := e₂.map_zero
120+
simp only [homOfLE_refl, op_id, FunctorToTypes.map_id_apply] at h₁ h₂
121+
rw [h₁, h₂]
122+
| succ i hi hi' =>
123+
refine Subsingleton.intro (fun e₁ e₂ ↦ val_injective ?_)
124+
have h₁ := e₁.map_succ i (Order.lt_succ_of_not_isMax hi)
125+
have h₂ := e₂.map_succ i (Order.lt_succ_of_not_isMax hi)
126+
simp only [homOfLE_refl, op_id, FunctorToTypes.map_id_apply, homOfLE_leOfHom] at h₁ h₂
127+
rw [h₁, h₂]
128+
congr
129+
exact congr_arg val (Subsingleton.elim (e₁.ofLE (Order.le_succ i)) (e₂.ofLE (Order.le_succ i)))
130+
| isSuccLimit i hi hi' =>
131+
refine Subsingleton.intro (fun e₁ e₂ ↦ val_injective ?_)
132+
have h₁ := e₁.map_limit i hi (by rfl)
133+
have h₂ := e₂.map_limit i hi (by rfl)
134+
simp only [homOfLE_refl, op_id, FunctorToTypes.map_id_apply, OrderHom.Subtype.val_coe,
135+
comp_obj, op_obj, Monotone.functor_obj, homOfLE_leOfHom] at h₁ h₂
136+
rw [h₁, h₂]
137+
congr
138+
ext ⟨⟨l, hl⟩⟩
139+
have := hi' l hl
140+
exact congr_arg val (Subsingleton.elim (e₁.ofLE hl.le) (e₂.ofLE hl.le))
142141

143142
lemma compatibility [WellFoundedLT J]
144143
{j : J} (e : d.Extension val₀ j) {i : J} (e' : d.Extension val₀ i) (h : i ≤ j) :
@@ -237,11 +236,11 @@ def limit (j : J) (hj : Order.IsSuccLimit j)
237236

238237
instance (j : J) : Nonempty (d.Extension val₀ j) := by
239238
induction j using SuccOrder.limitRecOn with
240-
| hm i hi =>
241-
obtain rfl : i = ⊥ := by simpa using hi
242-
exact ⟨zero d val₀⟩
243-
| hs i hi hi' => exact ⟨hi'.some.succ hi⟩
244-
| hl i hi hi' => exact ⟨limit i hi (fun l hl ↦ (hi' l hl).some)⟩
239+
| isMin i hi =>
240+
obtain rfl : i = ⊥ := by simpa using hi
241+
exact ⟨zero d val₀⟩
242+
| succ i hi hi' => exact ⟨hi'.some.succ hi⟩
243+
| isSuccLimit i hi hi' => exact ⟨limit i hi (fun l hl ↦ (hi' l hl).some)⟩
245244

246245
noncomputable instance (j : J) : Unique (d.Extension val₀ j) :=
247246
uniqueOfSubsingleton (Nonempty.some inferInstance)

Mathlib/Computability/TuringMachine.lean

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -421,18 +421,19 @@ def stWrite {k : K} (v : σ) (l : List (Γ k)) : StAct K Γ σ k → List (Γ k)
421421
of the stack, and all other actions, which do not. This is a modified recursor which lumps the
422422
stack actions into one. -/
423423
@[elab_as_elim]
424-
def stmtStRec.{l} {C : TM2.Stmt Γ Λ σ → Sort l} (H₁ : ∀ (k) (s : StAct K Γ σ k) (q)
425-
(_ : C q), C (stRun s q))
426-
(H₂ : ∀ (a q) (_ : C q), C (TM2.Stmt.load a q))
427-
(H₃ : ∀ (p q₁ q₂) (_ : C q₁) (_ : C q₂), C (TM2.Stmt.branch p q₁ q₂))
428-
(H₄ : ∀ l, C (TM2.Stmt.goto l)) (H₅ : C TM2.Stmt.halt) : ∀ n, C n
429-
| TM2.Stmt.push _ f q => H₁ _ (push f) _ (stmtStRec H₁ H₂ H₃ H₄ H₅ q)
430-
| TM2.Stmt.peek _ f q => H₁ _ (peek f) _ (stmtStRec H₁ H₂ H₃ H₄ H₅ q)
431-
| TM2.Stmt.pop _ f q => H₁ _ (pop f) _ (stmtStRec H₁ H₂ H₃ H₄ H₅ q)
432-
| TM2.Stmt.load _ q => H₂ _ _ (stmtStRec H₁ H₂ H₃ H₄ H₅ q)
433-
| TM2.Stmt.branch _ q₁ q₂ => H₃ _ _ _ (stmtStRec H₁ H₂ H₃ H₄ H₅ q₁) (stmtStRec H₁ H₂ H₃ H₄ H₅ q₂)
434-
| TM2.Stmt.goto _ => H₄ _
435-
| TM2.Stmt.halt => H₅
424+
def stmtStRec.{l} {motive : TM2.Stmt Γ Λ σ → Sort l}
425+
(run : ∀ (k) (s : StAct K Γ σ k) (q) (_ : motive q), motive (stRun s q))
426+
(load : ∀ (a q) (_ : motive q), motive (TM2.Stmt.load a q))
427+
(branch : ∀ (p q₁ q₂) (_ : motive q₁) (_ : motive q₂), motive (TM2.Stmt.branch p q₁ q₂))
428+
(goto : ∀ l, motive (TM2.Stmt.goto l)) (halt : motive TM2.Stmt.halt) : ∀ n, motive n
429+
| TM2.Stmt.push _ f q => run _ (push f) _ (stmtStRec run load branch goto halt q)
430+
| TM2.Stmt.peek _ f q => run _ (peek f) _ (stmtStRec run load branch goto halt q)
431+
| TM2.Stmt.pop _ f q => run _ (pop f) _ (stmtStRec run load branch goto halt q)
432+
| TM2.Stmt.load _ q => load _ _ (stmtStRec run load branch goto halt q)
433+
| TM2.Stmt.branch _ q₁ q₂ =>
434+
branch _ _ _ (stmtStRec run load branch goto halt q₁) (stmtStRec run load branch goto halt q₂)
435+
| TM2.Stmt.goto _ => goto _
436+
| TM2.Stmt.halt => halt
436437

437438
theorem supports_run (S : Finset Λ) {k : K} (s : StAct K Γ σ k) (q : TM2.Stmt Γ Λ σ) :
438439
TM2.SupportsStmt S (stRun s q) ↔ TM2.SupportsStmt S q := by
@@ -680,14 +681,14 @@ theorem tr_respects : Respects (TM2.step M) (TM1.step (tr M)) TrCfg := by
680681
simp only [tr]
681682
generalize M l = N
682683
induction N using stmtStRec generalizing v S L hT with
683-
| H₁ k s q IH => exact tr_respects_aux M hT s @IH
684-
| H₂ a _ IH => exact IH _ hT
685-
| H₃ p q₁ q₂ IH₁ IH₂ =>
684+
| run k s q IH => exact tr_respects_aux M hT s @IH
685+
| load a _ IH => exact IH _ hT
686+
| branch p q₁ q₂ IH₁ IH₂ =>
686687
unfold TM2.stepAux trNormal TM1.stepAux
687688
beta_reduce
688689
cases p v <;> [exact IH₂ _ hT; exact IH₁ _ hT]
689-
| H₄ => exact ⟨_, ⟨_, hT⟩, ReflTransGen.refl⟩
690-
| H₅ => exact ⟨_, ⟨_, hT⟩, ReflTransGen.refl⟩
690+
| goto => exact ⟨_, ⟨_, hT⟩, ReflTransGen.refl⟩
691+
| halt => exact ⟨_, ⟨_, hT⟩, ReflTransGen.refl⟩
691692

692693
section
693694
variable [Inhabited Λ] [Inhabited σ]

Mathlib/Order/DirectedInverseSystem.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ theorem unique_pEquivOn (hs : IsLowerSet s) {e₁ e₂ : PEquivOn f equivSucc s}
416416
obtain ⟨e₁, nat₁, compat₁⟩ := e₁
417417
obtain ⟨e₂, nat₂, compat₂⟩ := e₂
418418
ext1; ext1 i; dsimp only
419-
refine SuccOrder.prelimitRecOn i.1 (C := fun i ↦ ∀ h : i ∈ s, e₁ ⟨i, h⟩ = e₂ ⟨i, h⟩)
419+
refine SuccOrder.prelimitRecOn i.1 (motive := fun i ↦ ∀ h : i ∈ s, e₁ ⟨i, h⟩ = e₂ ⟨i, h⟩)
420420
(fun i nmax ih hi ↦ ?_) (fun i lim ih hi ↦ ?_) i.2
421421
· ext x ⟨j, hj⟩
422422
obtain rfl | hj := ((lt_succ_iff_of_not_isMax nmax).mp hj).eq_or_lt

Mathlib/Order/IsNormal.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ theorem of_succ_lt [SuccOrder α] [WellFoundedLT α]
4949
IsNormal f := by
5050
refine ⟨fun a b ↦ ?_, hl⟩
5151
induction b using SuccOrder.limitRecOn with
52-
| hm b hb => exact hb.not_lt.elim
53-
| hs b hb IH =>
52+
| isMin b hb => exact hb.not_lt.elim
53+
| succ b hb IH =>
5454
intro hab
5555
obtain rfl | h := (lt_succ_iff_eq_or_lt_of_not_isMax hb).1 hab
5656
· exact hs a
5757
· exact (IH h).trans (hs b)
58-
| hl b hb IH =>
58+
| isSuccLimit b hb IH =>
5959
intro hab
6060
have hab' := hb.succ_lt hab
6161
exact (IH _ hab' (lt_succ_of_not_isMax hab.not_isMax)).trans_le

0 commit comments

Comments
 (0)