File: Mathlib/AlgebraicTopology/DoldKan/EquivalencePseudoabelian.lean

full_name: CategoryTheory.Idempotents.DoldKan.N_map
code: /-- The functor `N` for the equivalence is obtained by composing
`N' : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ)` and the inverse
of the equivalence `ChainComplex C ℕ ≌ Karoubi (ChainComplex C ℕ)`. -/
@[simps!, nolint unusedArguments]
def N [IsIdempotentComplete C] [HasFiniteCoproducts C] : SimplicialObject C ⥤ ChainComplex C ℕ 
goal: ∀ {X Y : CategoryTheory.SimplicialObject C} (f : X ⟶ Y),
  CategoryTheory.Idempotents.DoldKan.N.map f =
    (CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).inverse.map
      (AlgebraicTopology.DoldKan.N₁.map f)

full_name: CategoryTheory.Idempotents.DoldKan.N_obj
code: /-- The functor `N` for the equivalence is obtained by composing
`N' : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ)` and the inverse
of the equivalence `ChainComplex C ℕ ≌ Karoubi (ChainComplex C ℕ)`. -/
@[simps!, nolint unusedArguments]
def N [IsIdempotentComplete C] [HasFiniteCoproducts C] : SimplicialObject C ⥤ ChainComplex C ℕ 
goal: CategoryTheory.Idempotents.DoldKan.N.obj X =
  (CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).inverse.obj (AlgebraicTopology.DoldKan.N₁.obj X)

full_name: CategoryTheory.Idempotents.DoldKan.N
code: /-- The functor `N` for the equivalence is obtained by composing
`N' : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ)` and the inverse
of the equivalence `ChainComplex C ℕ ≌ Karoubi (ChainComplex C ℕ)`. -/
@[simps!, nolint unusedArguments]
def N [IsIdempotentComplete C] [HasFiniteCoproducts C] : SimplicialObject C ⥤ ChainComplex C ℕ 
goal: CategoryTheory.SimplicialObject C ⥤ ChainComplex C ℕ

full_name: CategoryTheory.Idempotents.DoldKan.Γ
code: /-- The functor `Γ` for the equivalence is `Γ'`. -/
@[simps!, nolint unusedArguments]
def Γ [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: ChainComplex C ℕ ⥤ CategoryTheory.SimplicialObject C

full_name: CategoryTheory.Idempotents.DoldKan.Γ_obj_map
code: /-- The functor `Γ` for the equivalence is `Γ'`. -/
@[simps!, nolint unusedArguments]
def Γ [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: ∀ {X_1 Y : SimplexCategoryᵒᵖ} (θ : X_1 ⟶ Y),
  (CategoryTheory.Idempotents.DoldKan.Γ.obj X).map θ = AlgebraicTopology.DoldKan.Γ₀.Obj.map X θ

full_name: CategoryTheory.Idempotents.DoldKan.Γ_map_app
code: /-- The functor `Γ` for the equivalence is `Γ'`. -/
@[simps!, nolint unusedArguments]
def Γ [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: ∀ {X Y : ChainComplex C ℕ} (f : X ⟶ Y) (Δ : SimplexCategoryᵒᵖ),
  (CategoryTheory.Idempotents.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: CategoryTheory.Idempotents.DoldKan.Γ_obj_obj
code: /-- The functor `Γ` for the equivalence is `Γ'`. -/
@[simps!, nolint unusedArguments]
def Γ [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤ SimplicialObject C 
goal: (CategoryTheory.Idempotents.DoldKan.Γ.obj X).obj Δ = AlgebraicTopology.DoldKan.Γ₀.Obj.obj₂ X Δ

full_name: CategoryTheory.Idempotents.DoldKan.isoN₁
code: /-- A reformulation of the isomorphism `toKaroubi (SimplicialObject C) ⋙ N₂ ≅ N₁` -/
def isoN₁ :
    (toKaroubiEquivalence (SimplicialObject C)).functor ⋙
      Preadditive.DoldKan.equivalence.functor ≅ N₁ 
goal: (CategoryTheory.Idempotents.toKaroubiEquivalence (CategoryTheory.SimplicialObject C)).functor ⋙
    CategoryTheory.Preadditive.DoldKan.equivalence.functor ≅
  AlgebraicTopology.DoldKan.N₁

full_name: CategoryTheory.Idempotents.DoldKan.isoN₁_hom_app_f
code: @[simp]
lemma isoN₁_hom_app_f (X : SimplicialObject C) :
    (isoN₁.hom.app X).f = PInfty 
goal: (CategoryTheory.Idempotents.DoldKan.isoN₁.hom.app X).f = AlgebraicTopology.DoldKan.PInfty

full_name: CategoryTheory.Idempotents.DoldKan.isoΓ₀
code: /-- A reformulation of the canonical isomorphism
`toKaroubi (ChainComplex C ℕ) ⋙ Γ₂ ≅ Γ ⋙ toKaroubi (SimplicialObject C)`. -/
def isoΓ₀ :
    (toKaroubiEquivalence (ChainComplex C ℕ)).functor ⋙ Preadditive.DoldKan.equivalence.inverse ≅
      Γ ⋙ (toKaroubiEquivalence _).functor 
goal: (CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).functor ⋙
    CategoryTheory.Preadditive.DoldKan.equivalence.inverse ≅
  CategoryTheory.Idempotents.DoldKan.Γ ⋙
    (CategoryTheory.Idempotents.toKaroubiEquivalence (CategoryTheory.SimplicialObject C)).functor

full_name: CategoryTheory.Idempotents.DoldKan.N₂_map_isoΓ₀_hom_app_f
code: @[simp]
lemma N₂_map_isoΓ₀_hom_app_f (X : ChainComplex C ℕ) :
    (N₂.map (isoΓ₀.hom.app X)).f = PInfty 
goal: (AlgebraicTopology.DoldKan.N₂.map (CategoryTheory.Idempotents.DoldKan.isoΓ₀.hom.app X)).f =
  AlgebraicTopology.DoldKan.PInfty

full_name: CategoryTheory.Idempotents.DoldKan.equivalence
code: /-- The Dold-Kan equivalence for pseudoabelian categories given
by the functors `N` and `Γ`. It is obtained by applying the results in
`Compatibility.lean` to the equivalence `Preadditive.DoldKan.Equivalence`. -/
def equivalence : SimplicialObject C ≌ ChainComplex C ℕ 
goal: CategoryTheory.SimplicialObject C ≌ ChainComplex C ℕ

full_name: CategoryTheory.Idempotents.DoldKan.equivalence_functor
code: theorem equivalence_functor : (equivalence : SimplicialObject C ≌ _).functor = N 
goal: CategoryTheory.Idempotents.DoldKan.equivalence.functor = CategoryTheory.Idempotents.DoldKan.N

full_name: CategoryTheory.Idempotents.DoldKan.equivalence_inverse
code: theorem equivalence_inverse : (equivalence : SimplicialObject C ≌ _).inverse = Γ 
goal: CategoryTheory.Idempotents.DoldKan.equivalence.inverse = CategoryTheory.Idempotents.DoldKan.Γ

full_name: CategoryTheory.Idempotents.DoldKan.hη
code: /-- The natural isomorphism `NΓ' satisfies the compatibility that is needed
for the construction of our counit isomorphism `η` -/
theorem hη :
    Compatibility.τ₀ =
      Compatibility.τ₁ isoN₁ isoΓ₀
        (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubiEquivalence (ChainComplex C ℕ)).functor) 
goal: AlgebraicTopology.DoldKan.Compatibility.τ₀ =
  AlgebraicTopology.DoldKan.Compatibility.τ₁ CategoryTheory.Idempotents.DoldKan.isoN₁
    CategoryTheory.Idempotents.DoldKan.isoΓ₀ AlgebraicTopology.DoldKan.N₁Γ₀

full_name: CategoryTheory.Idempotents.DoldKan.η_inv_app_f
code: /-- The counit isomorphism induced by `N₁Γ₀` -/
@[simps!]
def η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ) 
goal: (CategoryTheory.Idempotents.DoldKan.η.inv.app X).f i =
  ((CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).unitIso.hom.app X).f i ≫
    ((CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).inverse.map
          (AlgebraicTopology.DoldKan.N₁Γ₀.inv.app X)).f
      i

full_name: CategoryTheory.Idempotents.DoldKan.η_hom_app_f
code: /-- The counit isomorphism induced by `N₁Γ₀` -/
@[simps!]
def η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ) 
goal: (CategoryTheory.Idempotents.DoldKan.η.hom.app X).f i =
  ((CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).inverse.map
          (AlgebraicTopology.DoldKan.N₁Γ₀.hom.app X)).f
      i ≫
    ((CategoryTheory.Idempotents.toKaroubiEquivalence (ChainComplex C ℕ)).unitIso.inv.app X).f i

full_name: CategoryTheory.Idempotents.DoldKan.η
code: /-- The counit isomorphism induced by `N₁Γ₀` -/
@[simps!]
def η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ) 
goal: CategoryTheory.Idempotents.DoldKan.Γ ⋙ CategoryTheory.Idempotents.DoldKan.N ≅ 𝟭 (ChainComplex C ℕ)

full_name: CategoryTheory.Idempotents.DoldKan.equivalence_counitIso
code: theorem equivalence_counitIso :
    DoldKan.equivalence.counitIso = (η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ)) 
goal: CategoryTheory.Idempotents.DoldKan.equivalence.counitIso = CategoryTheory.Idempotents.DoldKan.η

full_name: CategoryTheory.Idempotents.DoldKan.hε
code: theorem hε :
    Compatibility.υ (isoN₁) =
      (Γ₂N₁ : (toKaroubiEquivalence _).functor ≅
          (N₁ : SimplicialObject C ⥤ _) ⋙ Preadditive.DoldKan.equivalence.inverse) 
goal: AlgebraicTopology.DoldKan.Compatibility.υ CategoryTheory.Idempotents.DoldKan.isoN₁ = AlgebraicTopology.DoldKan.Γ₂N₁

full_name: CategoryTheory.Idempotents.DoldKan.ε
code: /-- The unit isomorphism induced by `Γ₂N₁`. -/
def ε : 𝟭 (SimplicialObject C) ≅ N ⋙ Γ 
goal: 𝟭 (CategoryTheory.SimplicialObject C) ≅ CategoryTheory.Idempotents.DoldKan.N ⋙ CategoryTheory.Idempotents.DoldKan.Γ

full_name: CategoryTheory.Idempotents.DoldKan.equivalence_unitIso
code: theorem equivalence_unitIso :
    DoldKan.equivalence.unitIso = (ε : 𝟭 (SimplicialObject C) ≅ N ⋙ Γ) 
goal: CategoryTheory.Idempotents.DoldKan.equivalence.unitIso = CategoryTheory.Idempotents.DoldKan.ε