Theorem: SimplicialObject.Splitting.nondegComplex_X
File: Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j : ℕ
hij : ¬(ComplexShape.down ℕ).Rel i j
⊢ s.d i j = 0
state_after: no goals
tactic: simp only [d, K[X].shape i j hij, zero_comp, comp_zero]
state_before: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j k : ℕ
x✝¹ : (ComplexShape.down ℕ).Rel i j
x✝ : (ComplexShape.down ℕ).Rel j k
⊢ s.d i j ≫ s.d j k = 0
state_after: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j k : ℕ
x✝¹ : (ComplexShape.down ℕ).Rel i j
x✝ : (ComplexShape.down ℕ).Rel j k
⊢ (s.cofan (op [i])).inj (IndexSet.id (op [i])) ≫
      K[X].d i j ≫
        s.πSummand (IndexSet.id (op [j])) ≫
          (s.cofan (op [j])).inj (IndexSet.id (op [j])) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) =
    0
tactic: simp only [d, assoc]
state_before: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j k : ℕ
x✝¹ : (ComplexShape.down ℕ).Rel i j
x✝ : (ComplexShape.down ℕ).Rel j k
⊢ (s.cofan (op [i])).inj (IndexSet.id (op [i])) ≫
      K[X].d i j ≫
        s.πSummand (IndexSet.id (op [j])) ≫
          (s.cofan (op [j])).inj (IndexSet.id (op [j])) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) =
    0
state_after: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j k : ℕ
x✝¹ : (ComplexShape.down ℕ).Rel i j
x✝ : (ComplexShape.down ℕ).Rel j k
eq : K[X].d i j ≫ 𝟙 (X _[j]) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) = 0
⊢ (s.cofan (op [i])).inj (IndexSet.id (op [i])) ≫
      K[X].d i j ≫
        s.πSummand (IndexSet.id (op [j])) ≫
          (s.cofan (op [j])).inj (IndexSet.id (op [j])) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) =
    0
tactic: have eq : K[X].d i j ≫ 𝟙 (X.obj (op [j])) ≫ K[X].d j k ≫
        s.πSummand (IndexSet.id (op [k])) = 0 := by
      erw [id_comp, HomologicalComplex.d_comp_d_assoc, zero_comp]
state_before: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j k : ℕ
x✝¹ : (ComplexShape.down ℕ).Rel i j
x✝ : (ComplexShape.down ℕ).Rel j k
eq : K[X].d i j ≫ 𝟙 (X _[j]) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) = 0
⊢ (s.cofan (op [i])).inj (IndexSet.id (op [i])) ≫
      K[X].d i j ≫
        s.πSummand (IndexSet.id (op [j])) ≫
          (s.cofan (op [j])).inj (IndexSet.id (op [j])) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) =
    0
state_after: C : Type u_1
inst✝¹ : Category.{?u.57464, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
i j k : ℕ
x✝¹ : (ComplexShape.down ℕ).Rel i j
x✝ : (ComplexShape.down ℕ).Rel j k
eq :
  K[X].d i j ≫
      (∑ A : IndexSet (op [j]), s.πSummand A ≫ (s.cofan (op [j])).inj A) ≫
        K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) =
    0
⊢ (s.cofan (op [i])).inj (IndexSet.id (op [i])) ≫
      K[X].d i j ≫
        s.πSummand (IndexSet.id (op [j])) ≫
          (s.cofan (op [j])).inj (IndexSet.id (op [j])) ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) =
    0
tactic: rw [s.decomposition_id] at eq