Theorem: SimplicialObject.Splitting.σ_comp_πSummand_id_eq_zero
File: Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean

tactic: apply s.hom_ext'
state_before: C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
⊢ SimplicialObject.σ X i ≫ πSummand s (IndexSet.id [n + 1].op) = 0

tactic: intro A
state_before: case h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
⊢ ∀ (A : IndexSet [n].op),
    ιSummand s A ≫ SimplicialObject.σ X i ≫ πSummand s (IndexSet.id [n + 1].op) = ιSummand s A ≫ 0

tactic: dsimp only [SimplicialObject.σ]
state_before: case h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
⊢ ιSummand s A ≫ SimplicialObject.σ X i ≫ πSummand s (IndexSet.id [n + 1].op) = ιSummand s A ≫ 0

tactic: rw [comp_zero, s.ιSummand_epi_naturality_assoc A (SimplexCategory.σ i).op, ι_πSummand_eq_zero]
state_before: case h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
⊢ ιSummand s A ≫ X.map (SimplexCategory.σ i).op ≫ πSummand s (IndexSet.id [n + 1].op) = ιSummand s A ≫ 0

tactic: rw [ne_comm]
state_before: case h.h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
⊢ IndexSet.id [n + 1].op ≠ IndexSet.epiComp A (SimplexCategory.σ i).op

tactic: change ¬(A.epiComp (SimplexCategory.σ i).op).EqId
state_before: case h.h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
⊢ IndexSet.epiComp A (SimplexCategory.σ i).op ≠ IndexSet.id [n + 1].op

tactic: rw [IndexSet.eqId_iff_len_eq]
state_before: case h.h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
⊢ ¬IndexSet.EqId (IndexSet.epiComp A (SimplexCategory.σ i).op)

tactic: have h := SimplexCategory.len_le_of_epi (inferInstance : Epi A.e)
state_before: case h.h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
⊢ ¬SimplexCategory.len (IndexSet.epiComp A (SimplexCategory.σ i).op).fst.unop = SimplexCategory.len [n + 1].op.unop

tactic: dsimp at h ⊢
state_before: case h.h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
h : SimplexCategory.len A.fst.unop ≤ SimplexCategory.len [n].op.unop
⊢ ¬SimplexCategory.len (IndexSet.epiComp A (SimplexCategory.σ i).op).fst.unop = SimplexCategory.len [n + 1].op.unop

tactic: linarith
state_before: case h.h
C : Type u_2
inst✝² : Category C
inst✝¹ : HasFiniteCoproducts C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet [n].op
h : SimplexCategory.len A.fst.unop ≤ n
⊢ ¬SimplexCategory.len A.fst.unop = n + 1