Theorem: SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁_inv_app_f_f
File: Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean

Proof steps:
state_before: C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
⊢ (nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ)).map Φ ≫ ((fun S => S.s.toKaroubiNondegComplexIsoN₁) Y✝).hom =
    ((fun S => S.s.toKaroubiNondegComplexIsoN₁) X✝).hom ≫ (forget C ⋙ N₁).map Φ
state_after: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ ((nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ)).map Φ ≫
            ((fun S => S.s.toKaroubiNondegComplexIsoN₁) Y✝).hom).f.f
      n =
    (((fun S => S.s.toKaroubiNondegComplexIsoN₁) X✝).hom ≫ (forget C ⋙ N₁).map Φ).f.f n
tactic: ext n
state_before: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ ((nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ)).map Φ ≫
            ((fun S => S.s.toKaroubiNondegComplexIsoN₁) Y✝).hom).f.f
      n =
    (((fun S => S.s.toKaroubiNondegComplexIsoN₁) X✝).hom ≫ (forget C ⋙ N₁).map Φ).f.f n
state_after: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ Φ.f n ≫ (Y✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n =
    ((X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n) ≫ PInfty.f n ≫ Φ.F.app (op [n])
tactic: dsimp
state_before: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ Φ.f n ≫ (Y✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n =
    ((X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n) ≫ PInfty.f n ≫ Φ.F.app (op [n])
state_after: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ Φ.f n ≫ (Y✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n =
    (X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n ≫ Φ.F.app (op [n])
tactic: simp only [Karoubi.comp_f, toKaroubi_map_f, HomologicalComplex.comp_f,
      nondegComplexFunctor_map_f, Splitting.toKaroubiNondegComplexIsoN₁_hom_f_f, N₁_map_f,
      AlternatingFaceMapComplex.map_f, assoc, PInfty_f_idem_assoc]
state_before: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ Φ.f n ≫ (Y✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n =
    (X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n ≫ Φ.F.app (op [n])
state_after: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ (X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ Φ.F.app (op [n]) ≫ PInfty.f n =
    (X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n ≫ Φ.F.app (op [n])
tactic: erw [← Split.cofan_inj_naturality_symm_assoc Φ (Splitting.IndexSet.id (op [n]))]
state_before: case h.h
C : Type u_1
inst✝² : Category.{?u.112788, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
X✝ Y✝ : Split C
Φ : X✝ ⟶ Y✝
n : ℕ
⊢ (X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ Φ.F.app (op [n]) ≫ PInfty.f n =
    (X✝.s.cofan (op [n])).inj (Splitting.IndexSet.id (op [n])) ≫ PInfty.f n ≫ Φ.F.app (op [n])
state_after: no goals
tactic: rw [PInfty_f_naturality]