File: Mathlib/AlgebraicTopology/DoldKan/SplitSimplicialObject.lean

full_name: SimplicialObject.Splitting.πSummand
code: /-- The projection on a summand of the coproduct decomposition given
by a splitting of a simplicial object. -/
noncomputable def πSummand [HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A : IndexSet Δ) :
    X.obj Δ ⟶ s.N A.1.unop.len 
goal: X.obj Δ ⟶ s.N (Opposite.unop A.fst).len

full_name: SimplicialObject.Splitting.cofan_inj_πSummand_eq_id
code: @[reassoc (attr := simp)]
theorem cofan_inj_πSummand_eq_id [HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A : IndexSet Δ) :
    (s.cofan Δ).inj A ≫ s.πSummand A = 𝟙 _ 
goal: (s.cofan Δ).inj A ≫ s.πSummand A = 𝟙 (SimplicialObject.Splitting.summand s.N Δ A)

full_name: SimplicialObject.Splitting.cofan_inj_πSummand_eq_zero
code: @[reassoc (attr := simp)]
theorem cofan_inj_πSummand_eq_zero [HasZeroMorphisms C] {Δ : SimplexCategoryᵒᵖ} (A B : IndexSet Δ)
    (h : B ≠ A) : (s.cofan Δ).inj A ≫ s.πSummand B = 0 
goal: (s.cofan Δ).inj A ≫ s.πSummand B = 0

full_name: SimplicialObject.Splitting.decomposition_id
code: theorem decomposition_id (Δ : SimplexCategoryᵒᵖ) :
    𝟙 (X.obj Δ) = ∑ A : IndexSet Δ, s.πSummand A ≫ (s.cofan Δ).inj A 
goal: 𝟙 (X.obj Δ) = ∑ A : SimplicialObject.Splitting.IndexSet Δ, s.πSummand A ≫ (s.cofan Δ).inj A

full_name: SimplicialObject.Splitting.σ_comp_πSummand_id_eq_zero
code: @[reassoc (attr := simp)]
theorem σ_comp_πSummand_id_eq_zero {n : ℕ} (i : Fin (n + 1)) :
    X.σ i ≫ s.πSummand (IndexSet.id (op [n + 1])) = 0 
goal: X.σ i ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n + 1])) = 0

full_name: SimplicialObject.Splitting.cofan_inj_comp_PInfty_eq_zero
code: /-- If a simplicial object `X` in an additive category is split,
then `PInfty` vanishes on all the summands of `X _[n]` which do
not correspond to the identity of `[n]`. -/
theorem cofan_inj_comp_PInfty_eq_zero {X : SimplicialObject C} (s : SimplicialObject.Splitting X)
    {n : ℕ} (A : SimplicialObject.Splitting.IndexSet (op [n])) (hA : ¬A.EqId) :
    (s.cofan _).inj A ≫ PInfty.f n = 0 
goal: (s.cofan (Opposite.op [n])).inj A ≫ AlgebraicTopology.DoldKan.PInfty.f n = 0

full_name: SimplicialObject.Splitting.comp_PInfty_eq_zero_iff
code: theorem comp_PInfty_eq_zero_iff {Z : C} {n : ℕ} (f : Z ⟶ X _[n]) :
    f ≫ PInfty.f n = 0 ↔ f ≫ s.πSummand (IndexSet.id (op [n])) = 0 
goal: f ≫ AlgebraicTopology.DoldKan.PInfty.f n = 0 ↔
  f ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) = 0

full_name: SimplicialObject.Splitting.PInfty_comp_πSummand_id
code: @[reassoc (attr := simp)]
theorem PInfty_comp_πSummand_id (n : ℕ) :
    PInfty.f n ≫ s.πSummand (IndexSet.id (op [n])) = s.πSummand (IndexSet.id (op [n])) 
goal: AlgebraicTopology.DoldKan.PInfty.f n ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) =
  s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))

full_name: SimplicialObject.Splitting.πSummand_comp_cofan_inj_id_comp_PInfty_eq_PInfty
code: @[reassoc (attr := simp)]
theorem πSummand_comp_cofan_inj_id_comp_PInfty_eq_PInfty (n : ℕ) :
    s.πSummand (IndexSet.id (op [n])) ≫ (s.cofan _).inj (IndexSet.id (op [n])) ≫ PInfty.f n =
      PInfty.f n 
goal: s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    (s.cofan (Opposite.op [n])).inj (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
      AlgebraicTopology.DoldKan.PInfty.f n =
  AlgebraicTopology.DoldKan.PInfty.f n

full_name: SimplicialObject.Splitting.d
code: /-- The differentials `s.d i j : s.N i ⟶ s.N j` on nondegenerate simplices of a split
simplicial object are induced by the differentials on the alternating face map complex. -/
@[simp]
noncomputable def d (i j : ℕ) : s.N i ⟶ s.N j 
goal: s.N i ⟶ s.N j

full_name: SimplicialObject.Splitting.ιSummand_comp_d_comp_πSummand_eq_zero
code: theorem ιSummand_comp_d_comp_πSummand_eq_zero (j k : ℕ) (A : IndexSet (op [j])) (hA : ¬A.EqId) :
    (s.cofan _).inj A ≫ K[X].d j k ≫ s.πSummand (IndexSet.id (op [k])) = 0 
goal: (s.cofan (Opposite.op [j])).inj A ≫ K[X].d j k ≫ s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [k])) =
  0

full_name: SimplicialObject.Splitting.nondegComplex_d
code: /-- If `s` is a splitting of a simplicial object `X` in a preadditive category,
`s.nondegComplex` is a chain complex which is given in degree `n` by
the nondegenerate `n`-simplices of `X`. -/
@[simps]
noncomputable def nondegComplex : ChainComplex C ℕ 
goal: s.nondegComplex.d i j = s.d i j

full_name: SimplicialObject.Splitting.nondegComplex
code: /-- If `s` is a splitting of a simplicial object `X` in a preadditive category,
`s.nondegComplex` is a chain complex which is given in degree `n` by
the nondegenerate `n`-simplices of `X`. -/
@[simps]
noncomputable def nondegComplex : ChainComplex C ℕ 
goal: ChainComplex C ℕ

full_name: SimplicialObject.Splitting.nondegComplex_X
code: /-- If `s` is a splitting of a simplicial object `X` in a preadditive category,
`s.nondegComplex` is a chain complex which is given in degree `n` by
the nondegenerate `n`-simplices of `X`. -/
@[simps]
noncomputable def nondegComplex : ChainComplex C ℕ 
goal: ∀ (a : ℕ), s.nondegComplex.X a = s.N a

full_name: SimplicialObject.Splitting.toKaroubiNondegComplexIsoN₁
code: /-- The chain complex `s.nondegComplex` attached to a splitting of a simplicial object `X`
becomes isomorphic to the normalized Moore complex `N₁.obj X` defined as a formal direct
factor in the category `Karoubi (ChainComplex C ℕ)`. -/
@[simps]
noncomputable def toKaroubiNondegComplexIsoN₁ :
    (toKaroubi _).obj s.nondegComplex ≅ N₁.obj X 
goal: (CategoryTheory.Idempotents.toKaroubi (ChainComplex C ℕ)).obj s.nondegComplex ≅ AlgebraicTopology.DoldKan.N₁.obj X

full_name: SimplicialObject.Splitting.toKaroubiNondegComplexIsoN₁_inv_f_f
code: /-- The chain complex `s.nondegComplex` attached to a splitting of a simplicial object `X`
becomes isomorphic to the normalized Moore complex `N₁.obj X` defined as a formal direct
factor in the category `Karoubi (ChainComplex C ℕ)`. -/
@[simps]
noncomputable def toKaroubiNondegComplexIsoN₁ :
    (toKaroubi _).obj s.nondegComplex ≅ N₁.obj X 
goal: s.toKaroubiNondegComplexIsoN₁.inv.f.f n = s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))

full_name: SimplicialObject.Splitting.toKaroubiNondegComplexIsoN₁_hom_f_f
code: /-- The chain complex `s.nondegComplex` attached to a splitting of a simplicial object `X`
becomes isomorphic to the normalized Moore complex `N₁.obj X` defined as a formal direct
factor in the category `Karoubi (ChainComplex C ℕ)`. -/
@[simps]
noncomputable def toKaroubiNondegComplexIsoN₁ :
    (toKaroubi _).obj s.nondegComplex ≅ N₁.obj X 
goal: s.toKaroubiNondegComplexIsoN₁.hom.f.f n =
  (s.cofan (Opposite.op [n])).inj (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    AlgebraicTopology.DoldKan.PInfty.f n

full_name: SimplicialObject.Split.nondegComplexFunctor_obj
code: /-- The functor which sends a split simplicial object in a preadditive category to
the chain complex which consists of nondegenerate simplices. -/
@[simps]
noncomputable def nondegComplexFunctor : Split C ⥤ ChainComplex C ℕ 
goal: SimplicialObject.Split.nondegComplexFunctor.obj S = S.s.nondegComplex

full_name: SimplicialObject.Split.nondegComplexFunctor
code: /-- The functor which sends a split simplicial object in a preadditive category to
the chain complex which consists of nondegenerate simplices. -/
@[simps]
noncomputable def nondegComplexFunctor : Split C ⥤ ChainComplex C ℕ 
goal: SimplicialObject.Split C ⥤ ChainComplex C ℕ

full_name: SimplicialObject.Split.nondegComplexFunctor_map_f
code: /-- The functor which sends a split simplicial object in a preadditive category to
the chain complex which consists of nondegenerate simplices. -/
@[simps]
noncomputable def nondegComplexFunctor : Split C ⥤ ChainComplex C ℕ 
goal: (SimplicialObject.Split.nondegComplexFunctor.map Φ).f n = Φ.f n

full_name: SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁_hom_app_f_f
code: /-- The natural isomorphism (in `Karoubi (ChainComplex C ℕ)`) between the chain complex
of nondegenerate simplices of a split simplicial object and the normalized Moore complex
defined as a formal direct factor of the alternating face map complex. -/
@[simps!]
noncomputable def toKaroubiNondegComplexFunctorIsoN₁ :
    nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ) ≅ forget C ⋙ DoldKan.N₁ 
goal: (SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁.hom.app X).f.f n =
  (X.s.cofan (Opposite.op [n])).inj (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n])) ≫
    AlgebraicTopology.DoldKan.PInfty.f n

full_name: SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁
code: /-- The natural isomorphism (in `Karoubi (ChainComplex C ℕ)`) between the chain complex
of nondegenerate simplices of a split simplicial object and the normalized Moore complex
defined as a formal direct factor of the alternating face map complex. -/
@[simps!]
noncomputable def toKaroubiNondegComplexFunctorIsoN₁ :
    nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ) ≅ forget C ⋙ DoldKan.N₁ 
goal: SimplicialObject.Split.nondegComplexFunctor ⋙ CategoryTheory.Idempotents.toKaroubi (ChainComplex C ℕ) ≅
  SimplicialObject.Split.forget C ⋙ AlgebraicTopology.DoldKan.N₁

full_name: SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁_inv_app_f_f
code: /-- The natural isomorphism (in `Karoubi (ChainComplex C ℕ)`) between the chain complex
of nondegenerate simplices of a split simplicial object and the normalized Moore complex
defined as a formal direct factor of the alternating face map complex. -/
@[simps!]
noncomputable def toKaroubiNondegComplexFunctorIsoN₁ :
    nondegComplexFunctor ⋙ toKaroubi (ChainComplex C ℕ) ≅ forget C ⋙ DoldKan.N₁ 
goal: (SimplicialObject.Split.toKaroubiNondegComplexFunctorIsoN₁.inv.app X).f.f n =
  X.s.πSummand (SimplicialObject.Splitting.IndexSet.id (Opposite.op [n]))