File: Mathlib/AlgebraicTopology/MooreComplex.lean

full_name: AlgebraicTopology.NormalizedMooreComplex.objX
code: /-- The normalized Moore complex in degree `n`, as a subobject of `X n`.
-/
def objX : ∀ n : ℕ, Subobject (X.obj (op (SimplexCategory.mk n)))
  
goal: CategoryTheory.Subobject (X.obj (Opposite.op (SimplexCategory.mk n)))

full_name: AlgebraicTopology.NormalizedMooreComplex.objX_zero
code: theorem objX_zero : objX X 0 = ⊤ 
goal: AlgebraicTopology.NormalizedMooreComplex.objX X 0 = ⊤

full_name: AlgebraicTopology.NormalizedMooreComplex.objX_add_one
code: theorem objX_add_one (n) :
    objX X (n + 1) = Finset.univ.inf fun k : Fin (n + 1) => kernelSubobject (X.δ k.succ) 
goal: AlgebraicTopology.NormalizedMooreComplex.objX X (n + 1) =
  Finset.univ.inf fun k => CategoryTheory.Limits.kernelSubobject (X.δ k.succ)

full_name: AlgebraicTopology.NormalizedMooreComplex.objD
code: /-- The differentials in the normalized Moore complex.
-/
@[simp]
def objD : ∀ n : ℕ, (objX X (n + 1) : C) ⟶ (objX X n : C)
  
goal: CategoryTheory.Subobject.underlying.obj (AlgebraicTopology.NormalizedMooreComplex.objX X (n + 1)) ⟶
  CategoryTheory.Subobject.underlying.obj (AlgebraicTopology.NormalizedMooreComplex.objX X n)

full_name: AlgebraicTopology.NormalizedMooreComplex.d_squared
code: theorem d_squared (n : ℕ) : objD X (n + 1) ≫ objD X n = 0 
goal: AlgebraicTopology.NormalizedMooreComplex.objD X (n + 1) ≫ AlgebraicTopology.NormalizedMooreComplex.objD X n = 0

full_name: AlgebraicTopology.NormalizedMooreComplex.obj
code: /-- The normalized Moore complex functor, on objects.
-/
@[simps!]
def obj (X : SimplicialObject C) : ChainComplex C ℕ 
goal: ChainComplex C ℕ

full_name: AlgebraicTopology.NormalizedMooreComplex.obj_X
code: /-- The normalized Moore complex functor, on objects.
-/
@[simps!]
def obj (X : SimplicialObject C) : ChainComplex C ℕ 
goal: (AlgebraicTopology.NormalizedMooreComplex.obj X).X n =
  CategoryTheory.Subobject.underlying.obj (AlgebraicTopology.NormalizedMooreComplex.objX X n)

full_name: AlgebraicTopology.NormalizedMooreComplex.obj_d
code: /-- The normalized Moore complex functor, on objects.
-/
@[simps!]
def obj (X : SimplicialObject C) : ChainComplex C ℕ 
goal: (AlgebraicTopology.NormalizedMooreComplex.obj X).d i j =
  if h : i = j + 1 then
    CategoryTheory.eqToHom ⋯ ≫
      match j with
      | 0 =>
        (Finset.univ.inf fun k => CategoryTheory.Limits.kernelSubobject (X.δ k.succ)).arrow ≫
          X.δ 0 ≫ CategoryTheory.inv ⊤.arrow
      | n.succ =>
        (Finset.univ.inf fun k => CategoryTheory.Limits.kernelSubobject (X.δ k.succ)).factorThru
          ((Finset.univ.inf fun k => CategoryTheory.Limits.kernelSubobject (X.δ k.succ)).arrow ≫ X.δ 0) ⋯
  else 0

full_name: AlgebraicTopology.NormalizedMooreComplex.map
code: /-- The normalized Moore complex functor, on morphisms.
-/
@[simps!]
def map (f : X ⟶ Y) : obj X ⟶ obj Y 
goal: AlgebraicTopology.NormalizedMooreComplex.obj X ⟶ AlgebraicTopology.NormalizedMooreComplex.obj Y

full_name: AlgebraicTopology.NormalizedMooreComplex.map_f
code: /-- The normalized Moore complex functor, on morphisms.
-/
@[simps!]
def map (f : X ⟶ Y) : obj X ⟶ obj Y 
goal: (AlgebraicTopology.NormalizedMooreComplex.map f).f n =
  (AlgebraicTopology.NormalizedMooreComplex.objX Y n).factorThru
    ((AlgebraicTopology.NormalizedMooreComplex.objX X n).arrow ≫ f.app (Opposite.op (SimplexCategory.mk n))) ⋯

full_name: AlgebraicTopology.normalizedMooreComplex_map
code: /-- The (normalized) Moore complex of a simplicial object `X` in an abelian category `C`.

The `n`-th object is intersection of
the kernels of `X.δ i : X.obj n ⟶ X.obj (n-1)`, for `i = 1, ..., n`.

The differentials are induced from `X.δ 0`,
which maps each of these intersections of kernels to the next.
-/
@[simps]
def normalizedMooreComplex : SimplicialObject C ⥤ ChainComplex C ℕ 
goal: ∀ {X Y : CategoryTheory.SimplicialObject C} (f : X ⟶ Y),
  (AlgebraicTopology.normalizedMooreComplex C).map f = AlgebraicTopology.NormalizedMooreComplex.map f

full_name: AlgebraicTopology.normalizedMooreComplex
code: /-- The (normalized) Moore complex of a simplicial object `X` in an abelian category `C`.

The `n`-th object is intersection of
the kernels of `X.δ i : X.obj n ⟶ X.obj (n-1)`, for `i = 1, ..., n`.

The differentials are induced from `X.δ 0`,
which maps each of these intersections of kernels to the next.
-/
@[simps]
def normalizedMooreComplex : SimplicialObject C ⥤ ChainComplex C ℕ 
goal: CategoryTheory.SimplicialObject C ⥤ ChainComplex C ℕ

full_name: AlgebraicTopology.normalizedMooreComplex_obj
code: /-- The (normalized) Moore complex of a simplicial object `X` in an abelian category `C`.

The `n`-th object is intersection of
the kernels of `X.δ i : X.obj n ⟶ X.obj (n-1)`, for `i = 1, ..., n`.

The differentials are induced from `X.δ 0`,
which maps each of these intersections of kernels to the next.
-/
@[simps]
def normalizedMooreComplex : SimplicialObject C ⥤ ChainComplex C ℕ 
goal: (AlgebraicTopology.normalizedMooreComplex C).obj X = AlgebraicTopology.NormalizedMooreComplex.obj X

full_name: AlgebraicTopology.normalizedMooreComplex_objD
code: theorem normalizedMooreComplex_objD (X : SimplicialObject C) (n : ℕ) :
    ((normalizedMooreComplex C).obj X).d (n + 1) n = NormalizedMooreComplex.objD X n 
goal: ((AlgebraicTopology.normalizedMooreComplex C).obj X).d (n + 1) n = AlgebraicTopology.NormalizedMooreComplex.objD X n