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

Proof steps:
state_before: C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
⊢ X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = 0
state_after: case h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
⊢ ∀ (A : IndexSet (op [n])),
    (s.cofan (op [n])).inj A ≫ X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = (s.cofan (op [n])).inj A ≫ 0
tactic: apply s.hom_ext'
state_before: case h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
⊢ ∀ (A : IndexSet (op [n])),
    (s.cofan (op [n])).inj A ≫ X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = (s.cofan (op [n])).inj A ≫ 0
state_after: case h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ (s.cofan (op [n])).inj A ≫ X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = (s.cofan (op [n])).inj A ≫ 0
tactic: intro A
state_before: case h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ (s.cofan (op [n])).inj A ≫ X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = (s.cofan (op [n])).inj A ≫ 0
state_after: case h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ (s.cofan (op [n])).inj A ≫ X.map (SimplexCategory.σ i).op ≫ s.πSummand (IndexSet.id (op [n + 1])) =
    (s.cofan (op [n])).inj A ≫ 0
tactic: dsimp only [SimplicialObject.σ]
state_before: case h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ (s.cofan (op [n])).inj A ≫ X.map (SimplexCategory.σ i).op ≫ s.πSummand (IndexSet.id (op [n + 1])) =
    (s.cofan (op [n])).inj A ≫ 0
state_after: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ IndexSet.id (op [n + 1]) ≠ A.epiComp (SimplexCategory.σ i).op
tactic: rw [comp_zero, s.cofan_inj_epi_naturality_assoc A (SimplexCategory.σ i).op,
    cofan_inj_πSummand_eq_zero]
state_before: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ IndexSet.id (op [n + 1]) ≠ A.epiComp (SimplexCategory.σ i).op
state_after: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ A.epiComp (SimplexCategory.σ i).op ≠ IndexSet.id (op [n + 1])
tactic: rw [ne_comm]
state_before: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ A.epiComp (SimplexCategory.σ i).op ≠ IndexSet.id (op [n + 1])
state_after: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ ¬(A.epiComp (SimplexCategory.σ i).op).EqId
tactic: change ¬(A.epiComp (SimplexCategory.σ i).op).EqId
state_before: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ ¬(A.epiComp (SimplexCategory.σ i).op).EqId
state_after: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ ¬(unop (A.epiComp (SimplexCategory.σ i).op).fst).len = (unop (op [n + 1])).len
tactic: rw [IndexSet.eqId_iff_len_eq]
state_before: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
⊢ ¬(unop (A.epiComp (SimplexCategory.σ i).op).fst).len = (unop (op [n + 1])).len
state_after: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
h : (unop A.fst).len ≤ (unop (op [n])).len
⊢ ¬(unop (A.epiComp (SimplexCategory.σ i).op).fst).len = (unop (op [n + 1])).len
tactic: have h := SimplexCategory.len_le_of_epi (inferInstance : Epi A.e)
state_before: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
h : (unop A.fst).len ≤ (unop (op [n])).len
⊢ ¬(unop (A.epiComp (SimplexCategory.σ i).op).fst).len = (unop (op [n + 1])).len
state_after: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
h : (unop A.fst).len ≤ n
⊢ ¬(unop A.fst).len = n + 1
tactic: dsimp at h ⊢
state_before: case h.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
X : SimplicialObject C
s : Splitting X
inst✝ : Preadditive C
n : ℕ
i : Fin (n + 1)
A : IndexSet (op [n])
h : (unop A.fst).len ≤ n
⊢ ¬(unop A.fst).len = n + 1
state_after: no goals
tactic: omega