File: Mathlib/AlgebraicTopology/DoldKan/FunctorGamma.lean

full_name: AlgebraicTopology.DoldKan.Isδ₀
code: /-- `Isδ₀ i` is a simple condition used to check whether a monomorphism `i` in
`SimplexCategory` identifies to the coface map `δ 0`. -/
@[nolint unusedArguments]
def Isδ₀ {Δ Δ' : SimplexCategory} (i : Δ' ⟶ Δ) [Mono i] : Prop 
goal: Prop

full_name: AlgebraicTopology.DoldKan.Isδ₀.iff
code: theorem iff {j : ℕ} {i : Fin (j + 2)} : Isδ₀ (SimplexCategory.δ i) ↔ i = 0 
goal: AlgebraicTopology.DoldKan.Isδ₀ (SimplexCategory.δ i) ↔ i = 0

full_name: AlgebraicTopology.DoldKan.Isδ₀.eq_δ₀
code: theorem eq_δ₀ {n : ℕ} {i : ([n] : SimplexCategory) ⟶ [n + 1]} [Mono i] (hi : Isδ₀ i) :
    i = SimplexCategory.δ 0 
goal: i = SimplexCategory.δ 0

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.summand
code: /-- In the definition of `(Γ₀.obj K).obj Δ` as a direct sum indexed by `A : Splitting.IndexSet Δ`,
the summand `summand K Δ A` is `K.X A.1.len`. -/
def summand (Δ : SimplexCategoryᵒᵖ) (A : Splitting.IndexSet Δ) : C 
goal: C

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂
code: /-- The functor `Γ₀` sends a chain complex `K` to the simplicial object which
sends `Δ` to the direct sum of the objects `summand K Δ A` for all `A : Splitting.IndexSet Δ` -/
def obj₂ (K : ChainComplex C ℕ) (Δ : SimplexCategoryᵒᵖ) [HasFiniteCoproducts C] : C 
goal: C

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono
code: /-- A monomorphism `i : Δ' ⟶ Δ` induces a morphism `K.X Δ.len ⟶ K.X Δ'.len` which
is the identity if `Δ = Δ'`, the differential on the complex `K` if `i = δ 0`, and
zero otherwise. -/
def mapMono (K : ChainComplex C ℕ) {Δ' Δ : SimplexCategory} (i : Δ' ⟶ Δ) [Mono i] :
    K.X Δ.len ⟶ K.X Δ'.len 
goal: K.X Δ.len ⟶ K.X Δ'.len

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_id
code: theorem mapMono_id : mapMono K (𝟙 Δ) = 𝟙 _ 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K (𝟙 Δ) = 𝟙 (K.X Δ.len)

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_δ₀'
code: theorem mapMono_δ₀' (i : Δ' ⟶ Δ) [Mono i] (hi : Isδ₀ i) : mapMono K i = K.d Δ.len Δ'.len 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i = K.d Δ.len Δ'.len

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_δ₀
code: @[simp]
theorem mapMono_δ₀ {n : ℕ} : mapMono K (δ (0 : Fin (n + 2))) = K.d (n + 1) n 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K (SimplexCategory.δ 0) = K.d (n + 1) n

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_eq_zero
code: theorem mapMono_eq_zero (i : Δ' ⟶ Δ) [Mono i] (h₁ : Δ ≠ Δ') (h₂ : ¬Isδ₀ i) : mapMono K i = 0 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i = 0

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_naturality
code: @[reassoc (attr := simp)]
theorem mapMono_naturality (i : Δ ⟶ Δ') [Mono i] :
    mapMono K i ≫ f.f Δ.len = f.f Δ'.len ≫ mapMono K' i 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i ≫ f.f Δ.len =
  f.f Δ'.len ≫ AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K' i

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono_comp
code: @[reassoc (attr := simp)]
theorem mapMono_comp (i' : Δ'' ⟶ Δ') (i : Δ' ⟶ Δ) [Mono i'] [Mono i] :
    mapMono K i ≫ mapMono K i' = mapMono K (i' ≫ i) 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i ≫ AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i' =
  AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K (i' ≫ i)

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.map
code: /-- The simplicial morphism on the simplicial object `Γ₀.obj K` induced by
a morphism `Δ' → Δ` in `SimplexCategory` is defined on each summand
associated to an `A : Splitting.IndexSet Δ` in terms of the epi-mono factorisation
of `θ ≫ A.e`. -/
def map (K : ChainComplex C ℕ) {Δ' Δ : SimplexCategoryᵒᵖ} (θ : Δ ⟶ Δ') : obj₂ K Δ ⟶ obj₂ K Δ' 
goal: AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ K Δ ⟶ AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ K Δ'

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand₀
code: @[reassoc]
theorem map_on_summand₀ {Δ Δ' : SimplexCategoryᵒᵖ} (A : Splitting.IndexSet Δ) {θ : Δ ⟶ Δ'}
    {Δ'' : SimplexCategory} {e : Δ'.unop ⟶ Δ''} {i : Δ'' ⟶ A.1.unop} [Epi e] [Mono i]
    (fac : e ≫ i = θ.unop ≫ A.e) :
    Sigma.ι (summand K Δ) A ≫ map K θ =
      Termwise.mapMono K i ≫ Sigma.ι (summand K Δ') (Splitting.IndexSet.mk e) 
goal: CategoryTheory.Limits.Sigma.ι (AlgebraicTopology.DoldKan.Γ₀.Obj.summand K Δ) A ≫
    AlgebraicTopology.DoldKan.Γ₀.Obj.map K θ =
  AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i ≫
    CategoryTheory.Limits.Sigma.ι (AlgebraicTopology.DoldKan.Γ₀.Obj.summand K Δ')
      (SimplicialObject.Splitting.IndexSet.mk e)

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand₀'
code: @[reassoc]
theorem map_on_summand₀' {Δ Δ' : SimplexCategoryᵒᵖ} (A : Splitting.IndexSet Δ) (θ : Δ ⟶ Δ') :
    Sigma.ι (summand K Δ) A ≫ map K θ =
      Termwise.mapMono K (image.ι (θ.unop ≫ A.e)) ≫ Sigma.ι (summand K _) (A.pull θ) 
goal: CategoryTheory.Limits.Sigma.ι (AlgebraicTopology.DoldKan.Γ₀.Obj.summand K Δ) A ≫
    AlgebraicTopology.DoldKan.Γ₀.Obj.map K θ =
  AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K (CategoryTheory.Limits.image.ι (θ.unop ≫ A.e)) ≫
    CategoryTheory.Limits.Sigma.ι (AlgebraicTopology.DoldKan.Γ₀.Obj.summand K Δ') (A.pull θ)

full_name: AlgebraicTopology.DoldKan.Γ₀.obj_obj
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, on objects. -/
@[simps]
def obj (K : ChainComplex C ℕ) : SimplicialObject C 
goal: (AlgebraicTopology.DoldKan.Γ₀.obj K).obj Δ = AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ K Δ

full_name: AlgebraicTopology.DoldKan.Γ₀.obj_map
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, on objects. -/
@[simps]
def obj (K : ChainComplex C ℕ) : SimplicialObject C 
goal: ∀ {X Y : SimplexCategoryᵒᵖ} (θ : X ⟶ Y),
  (AlgebraicTopology.DoldKan.Γ₀.obj K).map θ = AlgebraicTopology.DoldKan.Γ₀.Obj.map K θ

full_name: AlgebraicTopology.DoldKan.Γ₀.obj
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, on objects. -/
@[simps]
def obj (K : ChainComplex C ℕ) : SimplicialObject C 
goal: CategoryTheory.SimplicialObject C

full_name: AlgebraicTopology.DoldKan.Γ₀.splitting
code: /-- By construction, the simplicial `Γ₀.obj K` is equipped with a splitting. -/
def splitting (K : ChainComplex C ℕ) : SimplicialObject.Splitting (Γ₀.obj K) 
goal: SimplicialObject.Splitting (AlgebraicTopology.DoldKan.Γ₀.obj K)

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand
code: @[reassoc]
theorem Obj.map_on_summand {Δ Δ' : SimplexCategoryᵒᵖ} (A : Splitting.IndexSet Δ) (θ : Δ ⟶ Δ')
    {Δ'' : SimplexCategory} {e : Δ'.unop ⟶ Δ''} {i : Δ'' ⟶ A.1.unop} [Epi e] [Mono i]
    (fac : e ≫ i = θ.unop ≫ A.e) :
    ((Γ₀.splitting K).cofan Δ).inj A ≫ (Γ₀.obj K).map θ =
      Γ₀.Obj.Termwise.mapMono K i ≫ ((Γ₀.splitting K).cofan Δ').inj (Splitting.IndexSet.mk e) 
goal: ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan Δ).inj A ≫ (AlgebraicTopology.DoldKan.Γ₀.obj K).map θ =
  AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i ≫
    ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan Δ').inj (SimplicialObject.Splitting.IndexSet.mk e)

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.map_on_summand'
code: @[reassoc]
theorem Obj.map_on_summand' {Δ Δ' : SimplexCategoryᵒᵖ} (A : Splitting.IndexSet Δ) (θ : Δ ⟶ Δ') :
    ((splitting K).cofan Δ).inj A ≫ (obj K).map θ =
      Obj.Termwise.mapMono K (image.ι (θ.unop ≫ A.e)) ≫
        ((splitting K).cofan Δ').inj (A.pull θ) 
goal: ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan Δ).inj A ≫ (AlgebraicTopology.DoldKan.Γ₀.obj K).map θ =
  AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K (CategoryTheory.Limits.image.ι (θ.unop ≫ A.e)) ≫
    ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan Δ').inj (A.pull θ)

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.mapMono_on_summand_id
code: @[reassoc]
theorem Obj.mapMono_on_summand_id {Δ Δ' : SimplexCategory} (i : Δ' ⟶ Δ) [Mono i] :
    ((splitting K).cofan _).inj (Splitting.IndexSet.id (op Δ)) ≫ (obj K).map i.op =
      Obj.Termwise.mapMono K i ≫ ((splitting K).cofan _).inj (Splitting.IndexSet.id (op Δ')) 
goal: ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op Δ)).inj
      (SimplicialObject.Splitting.IndexSet.id (Opposite.op Δ)) ≫
    (AlgebraicTopology.DoldKan.Γ₀.obj K).map i.op =
  AlgebraicTopology.DoldKan.Γ₀.Obj.Termwise.mapMono K i ≫
    ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op Δ')).inj
      (SimplicialObject.Splitting.IndexSet.id (Opposite.op Δ'))

full_name: AlgebraicTopology.DoldKan.Γ₀.Obj.map_epi_on_summand_id
code: @[reassoc]
theorem Obj.map_epi_on_summand_id {Δ Δ' : SimplexCategory} (e : Δ' ⟶ Δ) [Epi e] :
    ((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op Δ)) ≫ (Γ₀.obj K).map e.op =
      ((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.mk e) 
goal: ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op Δ)).inj
      (SimplicialObject.Splitting.IndexSet.id (Opposite.op Δ)) ≫
    (AlgebraicTopology.DoldKan.Γ₀.obj K).map e.op =
  ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op Δ')).inj (SimplicialObject.Splitting.IndexSet.mk e)

full_name: AlgebraicTopology.DoldKan.Γ₀.map
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, on morphisms. -/
@[simps]
def map {K K' : ChainComplex C ℕ} (f : K ⟶ K') : obj K ⟶ obj K' 
goal: AlgebraicTopology.DoldKan.Γ₀.obj K ⟶ AlgebraicTopology.DoldKan.Γ₀.obj K'

full_name: AlgebraicTopology.DoldKan.Γ₀.map_app
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, on morphisms. -/
@[simps]
def map {K K' : ChainComplex C ℕ} (f : K ⟶ K') : obj K ⟶ obj K' 
goal: (AlgebraicTopology.DoldKan.Γ₀.map f).app Δ =
  (AlgebraicTopology.DoldKan.Γ₀.splitting K).desc Δ fun A =>
    f.f (Opposite.unop A.fst).len ≫ ((AlgebraicTopology.DoldKan.Γ₀.splitting K').cofan Δ).inj A

full_name: AlgebraicTopology.DoldKan.Γ₀'_map_F
code: /-- The functor `Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C`
that induces `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which
shall be the inverse functor of the Dold-Kan equivalence for
abelian or pseudo-abelian categories. -/
@[simps]
def Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C 
goal: (AlgebraicTopology.DoldKan.Γ₀'.map f).F = AlgebraicTopology.DoldKan.Γ₀.map f

full_name: AlgebraicTopology.DoldKan.Γ₀'
code: /-- The functor `Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C`
that induces `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which
shall be the inverse functor of the Dold-Kan equivalence for
abelian or pseudo-abelian categories. -/
@[simps]
def Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C 
goal: ChainComplex C ℕ ⥤ SimplicialObject.Split C

full_name: AlgebraicTopology.DoldKan.Γ₀'_obj
code: /-- The functor `Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C`
that induces `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which
shall be the inverse functor of the Dold-Kan equivalence for
abelian or pseudo-abelian categories. -/
@[simps]
def Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C 
goal: AlgebraicTopology.DoldKan.Γ₀'.obj K = SimplicialObject.Split.mk' (AlgebraicTopology.DoldKan.Γ₀.splitting K)

full_name: AlgebraicTopology.DoldKan.Γ₀'_map_f
code: /-- The functor `Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C`
that induces `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which
shall be the inverse functor of the Dold-Kan equivalence for
abelian or pseudo-abelian categories. -/
@[simps]
def Γ₀' : ChainComplex C ℕ ⥤ SimplicialObject.Split C 
goal: (AlgebraicTopology.DoldKan.Γ₀'.map f).f i = f.f i

full_name: AlgebraicTopology.DoldKan.Γ₀
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which is
the inverse functor of the Dold-Kan equivalence when `C` is an abelian
category, or more generally a pseudoabelian category. -/
@[simps!]
def Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: ChainComplex C ℕ ⥤ CategoryTheory.SimplicialObject C

full_name: AlgebraicTopology.DoldKan.Γ₀_obj_obj
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which is
the inverse functor of the Dold-Kan equivalence when `C` is an abelian
category, or more generally a pseudoabelian category. -/
@[simps!]
def Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: (AlgebraicTopology.DoldKan.Γ₀.obj X).obj Δ = AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ X Δ

full_name: AlgebraicTopology.DoldKan.Γ₀_obj_map
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which is
the inverse functor of the Dold-Kan equivalence when `C` is an abelian
category, or more generally a pseudoabelian category. -/
@[simps!]
def Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: ∀ {X_1 Y : SimplexCategoryᵒᵖ} (θ : X_1 ⟶ Y),
  (AlgebraicTopology.DoldKan.Γ₀.obj X).map θ = AlgebraicTopology.DoldKan.Γ₀.Obj.map X θ

full_name: AlgebraicTopology.DoldKan.Γ₀_map_app
code: /-- The functor `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`, which is
the inverse functor of the Dold-Kan equivalence when `C` is an abelian
category, or more generally a pseudoabelian category. -/
@[simps!]
def Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: ∀ {X Y : ChainComplex C ℕ} (f : X ⟶ Y) (Δ : SimplexCategoryᵒᵖ),
  (AlgebraicTopology.DoldKan.Γ₀.map f).app Δ =
    (AlgebraicTopology.DoldKan.Γ₀.splitting X).desc Δ fun A =>
      f.f (Opposite.unop A.fst).len ≫ ((AlgebraicTopology.DoldKan.Γ₀.splitting Y).cofan Δ).inj A

full_name: AlgebraicTopology.DoldKan.Γ₂_obj_p_app
code: /-- The extension of `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`
on the idempotent completions. It shall be an equivalence of categories
for any additive category `C`. -/
@[simps!]
def Γ₂ : Karoubi (ChainComplex C ℕ) ⥤ Karoubi (SimplicialObject C) 
goal: (AlgebraicTopology.DoldKan.Γ₂.obj P).p.app Δ =
  (AlgebraicTopology.DoldKan.Γ₀.splitting P.X).desc Δ fun A =>
    P.p.f (Opposite.unop A.fst).len ≫ ((AlgebraicTopology.DoldKan.Γ₀.splitting P.X).cofan Δ).inj A

full_name: AlgebraicTopology.DoldKan.Γ₂_obj_X_obj
code: /-- The extension of `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`
on the idempotent completions. It shall be an equivalence of categories
for any additive category `C`. -/
@[simps!]
def Γ₂ : Karoubi (ChainComplex C ℕ) ⥤ Karoubi (SimplicialObject C) 
goal: (AlgebraicTopology.DoldKan.Γ₂.obj P).X.obj Δ = AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ P.X Δ

full_name: AlgebraicTopology.DoldKan.Γ₂_obj_X_map
code: /-- The extension of `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`
on the idempotent completions. It shall be an equivalence of categories
for any additive category `C`. -/
@[simps!]
def Γ₂ : Karoubi (ChainComplex C ℕ) ⥤ Karoubi (SimplicialObject C) 
goal: ∀ {X Y : SimplexCategoryᵒᵖ} (θ : X ⟶ Y),
  (AlgebraicTopology.DoldKan.Γ₂.obj P).X.map θ = AlgebraicTopology.DoldKan.Γ₀.Obj.map P.X θ

full_name: AlgebraicTopology.DoldKan.Γ₂
code: /-- The extension of `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`
on the idempotent completions. It shall be an equivalence of categories
for any additive category `C`. -/
@[simps!]
def Γ₂ : Karoubi (ChainComplex C ℕ) ⥤ Karoubi (SimplicialObject C) 
goal: CategoryTheory.Idempotents.Karoubi (ChainComplex C ℕ) ⥤
  CategoryTheory.Idempotents.Karoubi (CategoryTheory.SimplicialObject C)

full_name: AlgebraicTopology.DoldKan.Γ₂_map_f_app
code: /-- The extension of `Γ₀ : ChainComplex C ℕ ⥤ SimplicialObject C`
on the idempotent completions. It shall be an equivalence of categories
for any additive category `C`. -/
@[simps!]
def Γ₂ : Karoubi (ChainComplex C ℕ) ⥤ Karoubi (SimplicialObject C) 
goal: ∀ {X Y : CategoryTheory.Idempotents.Karoubi (ChainComplex C ℕ)} (f : X ⟶ Y) (Δ : SimplexCategoryᵒᵖ),
  (AlgebraicTopology.DoldKan.Γ₂.map f).f.app Δ =
    (AlgebraicTopology.DoldKan.Γ₀.splitting X.X).desc Δ fun A =>
      f.f.f (Opposite.unop A.fst).len ≫ ((AlgebraicTopology.DoldKan.Γ₀.splitting Y.X).cofan Δ).inj A

full_name: AlgebraicTopology.DoldKan.HigherFacesVanish.on_Γ₀_summand_id
code: theorem HigherFacesVanish.on_Γ₀_summand_id (K : ChainComplex C ℕ) (n : ℕ) :
    @HigherFacesVanish C _ _ (Γ₀.obj K) _ n (n + 1)
      (((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op [n + 1]))) 
goal: AlgebraicTopology.DoldKan.HigherFacesVanish (n + 1)
  (((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op [n + 1])).inj
    (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n + 1])))

full_name: AlgebraicTopology.DoldKan.PInfty_on_Γ₀_splitting_summand_eq_self
code: @[reassoc (attr := simp)]
theorem PInfty_on_Γ₀_splitting_summand_eq_self (K : ChainComplex C ℕ) {n : ℕ} :
    ((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op [n])) ≫
      (PInfty : K[Γ₀.obj K] ⟶ _).f n =
      ((Γ₀.splitting K).cofan _).inj (Splitting.IndexSet.id (op [n])) 
goal: ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op [n])).inj
      (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    AlgebraicTopology.DoldKan.PInfty.f n =
  ((AlgebraicTopology.DoldKan.Γ₀.splitting K).cofan (Opposite.op [n])).inj
    (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))