Theorem: SimplicialObject.Split.nondegComplexFunctor_obj
File: Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean

Proof steps:
state_before: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ Φ.f i ≫ ((fun S => S.s.nondegComplex) S₂).d i j = ((fun S => S.s.nondegComplex) S₁).d i j ≫ Φ.f j
state_after: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ Φ.f i ≫
      (S₂.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
        K[S₂.X].d i j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    ((S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
        K[S₁.X].d i j ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j]))) ≫
      Φ.f j
tactic: dsimp
state_before: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ Φ.f i ≫
      (S₂.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
        K[S₂.X].d i j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    ((S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
        K[S₁.X].d i j ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j]))) ≫
      Φ.f j
state_after: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ (S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
      ((alternatingFaceMapComplex C).obj S₁.X).d i j ≫
        ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    ((S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
        K[S₁.X].d i j ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j]))) ≫
      Φ.f j
tactic: erw [← cofan_inj_naturality_symm_assoc Φ (Splitting.IndexSet.id (op [i])),
          ((alternatingFaceMapComplex C).map Φ.F).comm_assoc i j]
state_before: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ (S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
      ((alternatingFaceMapComplex C).obj S₁.X).d i j ≫
        ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    ((S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
        K[S₁.X].d i j ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j]))) ≫
      Φ.f j
state_after: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ (S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
      ((alternatingFaceMapComplex C).obj S₁.X).d i j ≫
        ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
      K[S₁.X].d i j ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: simp only [assoc]
state_before: C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ (S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
      ((alternatingFaceMapComplex C).obj S₁.X).d i j ≫
        ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [i])).inj (Splitting.IndexSet.id (op [i])) ≫
      K[S₁.X].d i j ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
state_after: case e_a.e_a
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: congr 2
state_before: case e_a.e_a
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
state_after: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ ∀ (A : Splitting.IndexSet (op [j])),
    (S₁.s.cofan (op [j])).inj A ≫
        ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
      (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: apply S₁.s.hom_ext'
state_before: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
⊢ ∀ (A : Splitting.IndexSet (op [j])),
    (S₁.s.cofan (op [j])).inj A ≫
        ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
      (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
state_after: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
⊢ (S₁.s.cofan (op [j])).inj A ≫
      ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: intro A
state_before: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
⊢ (S₁.s.cofan (op [j])).inj A ≫
      ((alternatingFaceMapComplex C).map Φ.F).f j ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
state_after: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
⊢ (S₁.s.cofan (op [j])).inj A ≫ Φ.F.app (op [j]) ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: dsimp [alternatingFaceMapComplex]
state_before: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
⊢ (S₁.s.cofan (op [j])).inj A ≫ Φ.F.app (op [j]) ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
state_after: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
⊢ Φ.f (unop A.fst).len ≫ (S₂.s.cofan (op [j])).inj A ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: erw [cofan_inj_naturality_symm_assoc Φ A]
state_before: case e_a.e_a.h
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
⊢ Φ.f (unop A.fst).len ≫ (S₂.s.cofan (op [j])).inj A ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
state_after: case pos
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
h : A.EqId
⊢ Φ.f (unop A.fst).len ≫ (S₂.s.cofan (op [j])).inj A ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j

case neg
C : Type u_1
inst✝² : Category.{?u.101327, u_1} C
inst✝¹ : Preadditive C
inst✝ : HasFiniteCoproducts C
S₁ S₂ : Split C
Φ : S₁ ⟶ S₂
i j : ℕ
x✝ : (ComplexShape.down ℕ).Rel i j
A : Splitting.IndexSet (op [j])
h : ¬A.EqId
⊢ Φ.f (unop A.fst).len ≫ (S₂.s.cofan (op [j])).inj A ≫ S₂.s.πSummand (Splitting.IndexSet.id (op [j])) =
    (S₁.s.cofan (op [j])).inj A ≫ S₁.s.πSummand (Splitting.IndexSet.id (op [j])) ≫ Φ.f j
tactic: by_cases h : A.EqId