Theorem: CategoryTheory.ComposableArrows.isoMkSucc_hom
File: Mathlib/CategoryTheory/ComposableArrows.lean

Proof steps:
state_before: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ G.map' 0 1 ⋯ ⋯ ≫ app' β.inv 0 ⋯ = α.inv ≫ F.map' 0 1 ⋯ ⋯
state_after: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ F.map' 0 1 ⋯ ⋯ ≫ 𝟙 (F.δ₀.obj ⟨0, ⋯⟩) = F.map' 0 1 ⋯ ⋯
tactic: rw [← cancel_epi α.hom, ← reassoc_of% w, α.hom_inv_id_assoc, β.hom_inv_id_app]
state_before: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ F.map' 0 1 ⋯ ⋯ ≫ 𝟙 (F.δ₀.obj ⟨0, ⋯⟩) = F.map' 0 1 ⋯ ⋯
state_after: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ F.map (homOfLE ⋯) ≫ 𝟙 (F.obj 1) = F.map (homOfLE ⋯)
tactic: dsimp
state_before: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ F.map (homOfLE ⋯) ≫ 𝟙 (F.obj 1) = F.map (homOfLE ⋯)
state_after: no goals
tactic: rw [comp_id]
state_before: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ homMkSucc α.hom β.hom w ≫ homMkSucc α.inv β.inv ⋯ = 𝟙 F
state_after: case h₀
C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ app' (homMkSucc α.hom β.hom w ≫ homMkSucc α.inv β.inv ⋯) 0 ⋯ = app' (𝟙 F) 0 ⋯

case h₁
C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ δ₀Functor.map (homMkSucc α.hom β.hom w ≫ homMkSucc α.inv β.inv ⋯) = δ₀Functor.map (𝟙 F)
tactic: apply hom_ext_succ
state_before: C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ homMkSucc α.inv β.inv ⋯ ≫ homMkSucc α.hom β.hom w = 𝟙 G
state_after: case h₀
C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ app' (homMkSucc α.inv β.inv ⋯ ≫ homMkSucc α.hom β.hom w) 0 ⋯ = app' (𝟙 G) 0 ⋯

case h₁
C : Type u_1
inst✝ : Category.{?u.164386, u_1} C
n m : ℕ
F✝ G✝ : ComposableArrows C n
F G : ComposableArrows C (n + 1)
α : F.obj' 0 ⋯ ≅ G.obj' 0 ⋯
β : F.δ₀ ≅ G.δ₀
w : F.map' 0 1 ⋯ ⋯ ≫ app' β.hom 0 ⋯ = α.hom ≫ G.map' 0 1 ⋯ ⋯
⊢ δ₀Functor.map (homMkSucc α.inv β.inv ⋯ ≫ homMkSucc α.hom β.hom w) = δ₀Functor.map (𝟙 G)
tactic: apply hom_ext_succ