Theorem: RelSeries.insertNth_length
File: Mathlib/Order/RelSeries.lean

Proof steps:
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
⊢ r (i.succ.castSucc.insertNth a p.toFun m.castSucc) (i.succ.castSucc.insertNth a p.toFun m.succ)
state_after: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : ?m.71126 := ?m.71127
⊢ r (i.succ.castSucc.insertNth a p.toFun m.castSucc) (i.succ.castSucc.insertNth a p.toFun m.succ)
tactic: set x := _
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : ?m.71126 := ?m.71127
⊢ r (i.succ.castSucc.insertNth a p.toFun m.castSucc) (i.succ.castSucc.insertNth a p.toFun m.succ)
state_after: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : ?m.71126 := ?m.71127
y : ?m.71350 := ?m.71351
⊢ r (i.succ.castSucc.insertNth a p.toFun m.castSucc) (i.succ.castSucc.insertNth a p.toFun m.succ)
tactic: set y := _
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : ?m.71126 := ?m.71127
y : ?m.71350 := ?m.71351
⊢ r (i.succ.castSucc.insertNth a p.toFun m.castSucc) (i.succ.castSucc.insertNth a p.toFun m.succ)
state_after: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : α := i.succ.castSucc.insertNth a p.toFun m.castSucc
y : α := i.succ.castSucc.insertNth a p.toFun m.succ
⊢ r x y
tactic: change r x y
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : α := i.succ.castSucc.insertNth a p.toFun m.castSucc
y : α := i.succ.castSucc.insertNth a p.toFun m.succ
⊢ r x y
state_after: case inl
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : α := i.succ.castSucc.insertNth a p.toFun m.castSucc
y : α := i.succ.castSucc.insertNth a p.toFun m.succ
hm : ↑m < ↑i
⊢ r x y

case inr.inl
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : α := i.succ.castSucc.insertNth a p.toFun m.castSucc
y : α := i.succ.castSucc.insertNth a p.toFun m.succ
hm : ↑m = ↑i
⊢ r x y

case inr.inr
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p : RelSeries r
i : Fin p.length
a : α
prev_connect : r (p.toFun i.castSucc) a
connect_next : r a (p.toFun i.succ)
m : Fin (p.length + 1)
x : α := i.succ.castSucc.insertNth a p.toFun m.castSucc
y : α := i.succ.castSucc.insertNth a p.toFun m.succ
hm : ↑i < ↑m
⊢ r x y
tactic: obtain hm | hm | hm := lt_trichotomy m.1 i.1