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

Proof steps:
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ (p.append q connect).toFun (↑↑(Fin.natAdd p.length i) + 1) = q.toFun i
state_after: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ { length := p.length + q.length + 1, toFun := Fin.append p.toFun q.toFun ∘ Fin.cast ⋯, step := ⋯ }.toFun
      (↑↑(Fin.natAdd p.length i) + 1) =
    q.toFun i
tactic: delta append
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ { length := p.length + q.length + 1, toFun := Fin.append p.toFun q.toFun ∘ Fin.cast ⋯, step := ⋯ }.toFun
      (↑↑(Fin.natAdd p.length i) + 1) =
    q.toFun i
state_after: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ Fin.append p.toFun q.toFun (Fin.cast ⋯ (↑(p.length + ↑i) + 1)) = q.toFun i
tactic: simp only [Fin.coe_natAdd, Nat.cast_add, Function.comp_apply]
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ Fin.append p.toFun q.toFun (Fin.cast ⋯ (↑(p.length + ↑i) + 1)) = q.toFun i
state_after: case h.e'_2.h.e'_6.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ Fin.cast ⋯ (↑(p.length + ↑i) + 1) = Fin.natAdd (p.length + 1) i
tactic: convert Fin.append_right _ _ _
state_before: case h.e'_2.h.e'_6.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ Fin.cast ⋯ (↑(p.length + ↑i) + 1) = Fin.natAdd (p.length + 1) i
state_after: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ↑(Fin.cast ⋯ (↑(p.length + ↑i) + 1)) = ↑(Fin.natAdd (p.length + 1) i)
tactic: ext
state_before: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ↑(Fin.cast ⋯ (↑(p.length + ↑i) + 1)) = ↑(Fin.natAdd (p.length + 1) i)
state_after: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ↑(↑(p.length + ↑i) + 1) = p.length + 1 + ↑i
tactic: simp only [Fin.coe_cast, Fin.coe_natAdd]
state_before: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ↑(↑(p.length + ↑i) + 1) = p.length + 1 + ↑i
state_after: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ↑(↑(p.length + ↑i) + 1) = p.length + ↑i + 1
tactic: conv_rhs => rw [add_assoc, add_comm 1, ← add_assoc]
state_before: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ↑(↑(p.length + ↑i) + 1) = p.length + ↑i + 1
state_after: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ((p.length + ↑i) % (p.length + q.length + 1 + 1) +
        1 %
          ({ length := p.length + q.length + 1, toFun := Fin.append p.toFun q.toFun ∘ Fin.cast ⋯, step := ⋯ }.length +
            1)) %
      (p.length + q.length + 1 + 1) =
    p.length + ↑i + 1
tactic: change _ % _ = _
state_before: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ ((p.length + ↑i) % (p.length + q.length + 1 + 1) +
        1 %
          ({ length := p.length + q.length + 1, toFun := Fin.append p.toFun q.toFun ∘ Fin.cast ⋯, step := ⋯ }.length +
            1)) %
      (p.length + q.length + 1 + 1) =
    p.length + ↑i + 1
state_after: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ p.length + ↑i + 1 < (p.length + q.length + 1).succ
tactic: simp only [Nat.add_mod_mod, Nat.mod_add_mod, Nat.one_mod, Nat.mod_succ_eq_iff_lt]
state_before: case h.e'_2.h.e'_6.h.h
α : Type u_1
r : Rel α α
β : Type u_2
s : Rel β β
p q : RelSeries r
connect : r p.last q.head
i : Fin (q.length + 1)
⊢ p.length + ↑i + 1 < (p.length + q.length + 1).succ
state_after: no goals
tactic: omega