File: Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean

full_name: AlgebraicTopology.DoldKan.decomposition_Q
code: /-- In each positive degree, this lemma decomposes the idempotent endomorphism
`Q q` as a sum of morphisms which are postcompositions with suitable degeneracies.
As `Q q` is the complement projection to `P q`, this implies that in the case of
simplicial abelian groups, any $(n+1)$-simplex $x$ can be decomposed as
$x = x' + \sum (i=0}^{q-1} σ_{n-i}(y_i)$ where $x'$ is in the image of `P q` and
the $y_i$ are in degree $n$. -/
theorem decomposition_Q (n q : ℕ) :
    ((Q q).f (n + 1) : X _[n + 1] ⟶ X _[n + 1]) =
      ∑ i ∈ Finset.filter (fun i : Fin (n + 1) => (i : ℕ) < q) Finset.univ,
        (P i).f (n + 1) ≫ X.δ i.rev.succ ≫ X.σ (Fin.rev i) 
goal: (AlgebraicTopology.DoldKan.Q q).f (n + 1) =
  ∑ i ∈ Finset.filter (fun i => ↑i < q) Finset.univ,
    (AlgebraicTopology.DoldKan.P ↑i).f (n + 1) ≫ X.δ i.rev.succ ≫ X.σ i.rev

full_name: AlgebraicTopology.DoldKan.MorphComponents
code: /-- The structure `MorphComponents` is an ad hoc structure that is used in
the proof that `N₁ : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ))`
reflects isomorphisms. The fields are the data that are needed in order to
construct a morphism `X _[n+1] ⟶ Z` (see `φ`) using the decomposition of the
identity given by `decomposition_Q n (n+1)`. -/
@[ext]
structure MorphComponents (n : ℕ) (Z : C) where
  a : X _[n + 1] ⟶ Z
  b : Fin (n + 1) → (X _[n] ⟶ Z)
goal: Type u_2

full_name: AlgebraicTopology.DoldKan.MorphComponents.b
code: /-- The structure `MorphComponents` is an ad hoc structure that is used in
the proof that `N₁ : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ))`
reflects isomorphisms. The fields are the data that are needed in order to
construct a morphism `X _[n+1] ⟶ Z` (see `φ`) using the decomposition of the
identity given by `decomposition_Q n (n+1)`. -/
@[ext]
structure MorphComponents (n : ℕ) (Z : C) where
  a : X _[n + 1] ⟶ Z
  b : Fin (n + 1) → (X _[n] ⟶ Z)
goal: Fin (n + 1) → (X _[n] ⟶ Z)

full_name: AlgebraicTopology.DoldKan.MorphComponents.a
code: /-- The structure `MorphComponents` is an ad hoc structure that is used in
the proof that `N₁ : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ))`
reflects isomorphisms. The fields are the data that are needed in order to
construct a morphism `X _[n+1] ⟶ Z` (see `φ`) using the decomposition of the
identity given by `decomposition_Q n (n+1)`. -/
@[ext]
structure MorphComponents (n : ℕ) (Z : C) where
  a : X _[n + 1] ⟶ Z
  b : Fin (n + 1) → (X _[n] ⟶ Z)
goal: X _[n + 1] ⟶ Z

full_name: AlgebraicTopology.DoldKan.MorphComponents.φ
code: /-- The morphism `X _[n+1] ⟶ Z` associated to `f : MorphComponents X n Z`. -/
def φ {Z : C} (f : MorphComponents X n Z) : X _[n + 1] ⟶ Z 
goal: X _[n + 1] ⟶ Z

full_name: AlgebraicTopology.DoldKan.MorphComponents.id_a
code: /-- the canonical `MorphComponents` whose associated morphism is the identity
(see `F_id`) thanks to `decomposition_Q n (n+1)` -/
@[simps]
def id : MorphComponents X n (X _[n + 1]) 
goal: (AlgebraicTopology.DoldKan.MorphComponents.id X n).a = AlgebraicTopology.DoldKan.PInfty.f (n + 1)

full_name: AlgebraicTopology.DoldKan.MorphComponents.id
code: /-- the canonical `MorphComponents` whose associated morphism is the identity
(see `F_id`) thanks to `decomposition_Q n (n+1)` -/
@[simps]
def id : MorphComponents X n (X _[n + 1]) 
goal: AlgebraicTopology.DoldKan.MorphComponents X n (X _[n + 1])

full_name: AlgebraicTopology.DoldKan.MorphComponents.id_b
code: /-- the canonical `MorphComponents` whose associated morphism is the identity
(see `F_id`) thanks to `decomposition_Q n (n+1)` -/
@[simps]
def id : MorphComponents X n (X _[n + 1]) 
goal: (AlgebraicTopology.DoldKan.MorphComponents.id X n).b i = X.σ i

full_name: AlgebraicTopology.DoldKan.MorphComponents.id_φ
code: @[simp]
theorem id_φ : (id X n).φ = 𝟙 _ 
goal: (AlgebraicTopology.DoldKan.MorphComponents.id X n).φ = 𝟙 (X _[n + 1])

full_name: AlgebraicTopology.DoldKan.MorphComponents.postComp_a
code: /-- A `MorphComponents` can be postcomposed with a morphism. -/
@[simps]
def postComp : MorphComponents X n Z' 
goal: (f.postComp h).a = f.a ≫ h

full_name: AlgebraicTopology.DoldKan.MorphComponents.postComp_b
code: /-- A `MorphComponents` can be postcomposed with a morphism. -/
@[simps]
def postComp : MorphComponents X n Z' 
goal: (f.postComp h).b i = f.b i ≫ h

full_name: AlgebraicTopology.DoldKan.MorphComponents.postComp
code: /-- A `MorphComponents` can be postcomposed with a morphism. -/
@[simps]
def postComp : MorphComponents X n Z' 
goal: AlgebraicTopology.DoldKan.MorphComponents X n Z'

full_name: AlgebraicTopology.DoldKan.MorphComponents.postComp_φ
code: @[simp]
theorem postComp_φ : (f.postComp h).φ = f.φ ≫ h 
goal: (f.postComp h).φ = f.φ ≫ h

full_name: AlgebraicTopology.DoldKan.MorphComponents.preComp
code: /-- A `MorphComponents` can be precomposed with a morphism of simplicial objects. -/
@[simps]
def preComp : MorphComponents X' n Z 
goal: AlgebraicTopology.DoldKan.MorphComponents X' n Z

full_name: AlgebraicTopology.DoldKan.MorphComponents.preComp_a
code: /-- A `MorphComponents` can be precomposed with a morphism of simplicial objects. -/
@[simps]
def preComp : MorphComponents X' n Z 
goal: (f.preComp g).a = g.app (Opposite.op [n + 1]) ≫ f.a

full_name: AlgebraicTopology.DoldKan.MorphComponents.preComp_b
code: /-- A `MorphComponents` can be precomposed with a morphism of simplicial objects. -/
@[simps]
def preComp : MorphComponents X' n Z 
goal: (f.preComp g).b i = g.app (Opposite.op [n]) ≫ f.b i

full_name: AlgebraicTopology.DoldKan.MorphComponents.preComp_φ
code: @[simp]
theorem preComp_φ : (f.preComp g).φ = g.app (op [n + 1]) ≫ f.φ 
goal: (f.preComp g).φ = g.app (Opposite.op [n + 1]) ≫ f.φ