induction steps₁ <;> cases steps₂
α : Type
inst✝ : Proper α
s s₁ s₂ : State α
n : State.Nontrivial s
hp : s₁.progress = s₂.progress
tl₁ : State α
steps₁ : Steps s tl₁
tail₁ : Tail tl₁ s₁
tl₂ : State α
steps₂ : Steps s tl₂
tail₂ : Tail tl₂ s₂
ht : tl₁.tag = tl₂.tag
⊢ s₁ = s₂
case refl.refl
α : Type
inst✝ : Proper α
s s₁ s₂ : State α
hp : s₁.progress = s₂.progress
tl₁ tl₂ : State α
tail₂ : Tail tl₂ s₂
n : State.Nontrivial tl₂
tail₁ : Tail tl₂ s₁
ht : tl₂.tag = tl₂.tag
⊢ s₁ = s₂

case refl.step
α : Type
inst✝ : Proper α
s s₁ s₂ : State α
hp : s₁.progress = s₂.progress
tl₁ tl₂ : State α
tail₂ : Tail tl₂ s₂
s✝ : State α
n : State.Nontrivial s✝
tail₁ : Tail s✝ s₁
ht : s✝.tag = tl₂.tag
s₂✝ : State α
a✝¹ : Step s✝ s₂✝
a✝ : Steps s₂✝ tl₂
⊢ s₁ = s₂

case step.refl
α : Type
inst✝ : Proper α
s s₁ s₂ : State α
hp : s₁.progress = s₂.progress
tl₁ tl₂ : State α
tail₂ : Tail tl₂ s₂
s₂✝ s₃✝ : State α
a✝¹ : Steps s₂✝ s₃✝
a_ih✝ : State.Nontrivial s₂✝ → Tail s₃✝ s₁ → Steps s₂✝ tl₂ → s₃✝.tag = tl₂.tag → s₁ = s₂
tail₁ : Tail s₃✝ s₁
ht : s₃✝.tag = tl₂.tag
a✝ : Step tl₂ s₂✝
n : State.Nontrivial tl₂
⊢ s₁ = s₂

case step.step
α : Type
inst✝ : Proper α
s s₁ s₂ : State α
hp : s₁.progress = s₂.progress
tl₁ tl₂ : State α
tail₂ : Tail tl₂ s₂
s₁✝ s₂✝¹ s₃✝ : State α
a✝³ : Step s₁✝ s₂✝¹
a✝² : Steps s₂✝¹ s₃✝
a_ih✝ : State.Nontrivial s₂✝¹ → Tail s₃✝ s₁ → Steps s₂✝¹ tl₂ → s₃✝.tag = tl₂.tag → s₁ = s₂
n : State.Nontrivial s₁✝
tail₁ : Tail s₃✝ s₁
ht : s₃✝.tag = tl₂.tag
s₂✝ : State α
a✝¹ : Step s₁✝ s₂✝
a✝ : Steps s₂✝ tl₂
⊢ s₁ = s₂