algebraic_topology.dold_kan.equivalence_pseudoabelianMathlib.AlgebraicTopology.DoldKan.EquivalencePseudoabelian

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

feat(algebraic_topology/dold_kan): The Dold-Kan equivalence for abelian categories (#17926)

Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>

Diff
@@ -29,6 +29,8 @@ the composition of `N₁ : simplicial_object C ⥤ karoubi (chain_complex C ℕ)
 `idempotents.dold_kan.Γ` of the equivalence is by definition the functor
 `Γ₀` introduced in `functor_gamma.lean`.
 
+(See `equivalence.lean` for the general strategy of proof of the Dold-Kan equivalence.)
+
 -/
 
 noncomputable theory

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -67,21 +67,17 @@ def Γ : ChainComplex C ℕ ⥤ SimplicialObject C :=
 #align category_theory.idempotents.dold_kan.Γ CategoryTheory.Idempotents.DoldKan.Γ
 -/
 
-#print CategoryTheory.Idempotents.DoldKan.hN₁ /-
 theorem hN₁ :
     (toKaroubiEquivalence (SimplicialObject C)).Functor ⋙ Preadditive.DoldKan.equivalence.Functor =
       N₁ :=
   Functor.congr_obj (functorExtension₁_comp_whiskeringLeft_toKaroubi _ _) N₁
 #align category_theory.idempotents.dold_kan.hN₁ CategoryTheory.Idempotents.DoldKan.hN₁
--/
 
-#print CategoryTheory.Idempotents.DoldKan.hΓ₀ /-
 theorem hΓ₀ :
     (toKaroubiEquivalence (ChainComplex C ℕ)).Functor ⋙ Preadditive.DoldKan.equivalence.inverse =
       Γ ⋙ (toKaroubiEquivalence _).Functor :=
   Functor.congr_obj (functorExtension₂_comp_whiskeringLeft_toKaroubi _ _) Γ₀
 #align category_theory.idempotents.dold_kan.hΓ₀ CategoryTheory.Idempotents.DoldKan.hΓ₀
--/
 
 #print CategoryTheory.Idempotents.DoldKan.equivalence /-
 /-- The Dold-Kan equivalence for pseudoabelian categories given
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2022 Joël Riou. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Joël Riou
 -/
-import Mathbin.AlgebraicTopology.DoldKan.EquivalenceAdditive
-import Mathbin.AlgebraicTopology.DoldKan.Compatibility
-import Mathbin.CategoryTheory.Idempotents.SimplicialObject
+import AlgebraicTopology.DoldKan.EquivalenceAdditive
+import AlgebraicTopology.DoldKan.Compatibility
+import CategoryTheory.Idempotents.SimplicialObject
 
 #align_import algebraic_topology.dold_kan.equivalence_pseudoabelian from "leanprover-community/mathlib"@"32a7e535287f9c73f2e4d2aef306a39190f0b504"
 
Diff
@@ -55,7 +55,7 @@ open AlgebraicTopology.DoldKan
 of the equivalence `chain_complex C ℕ ≌ karoubi (chain_complex C ℕ)`. -/
 @[simps, nolint unused_arguments]
 def N : SimplicialObject C ⥤ ChainComplex C ℕ :=
-  N₁ ⋙ (toKaroubi_equivalence _).inverse
+  N₁ ⋙ (toKaroubiEquivalence _).inverse
 #align category_theory.idempotents.dold_kan.N CategoryTheory.Idempotents.DoldKan.N
 -/
 
@@ -69,7 +69,7 @@ def Γ : ChainComplex C ℕ ⥤ SimplicialObject C :=
 
 #print CategoryTheory.Idempotents.DoldKan.hN₁ /-
 theorem hN₁ :
-    (toKaroubi_equivalence (SimplicialObject C)).Functor ⋙ Preadditive.DoldKan.equivalence.Functor =
+    (toKaroubiEquivalence (SimplicialObject C)).Functor ⋙ Preadditive.DoldKan.equivalence.Functor =
       N₁ :=
   Functor.congr_obj (functorExtension₁_comp_whiskeringLeft_toKaroubi _ _) N₁
 #align category_theory.idempotents.dold_kan.hN₁ CategoryTheory.Idempotents.DoldKan.hN₁
@@ -77,8 +77,8 @@ theorem hN₁ :
 
 #print CategoryTheory.Idempotents.DoldKan.hΓ₀ /-
 theorem hΓ₀ :
-    (toKaroubi_equivalence (ChainComplex C ℕ)).Functor ⋙ Preadditive.DoldKan.equivalence.inverse =
-      Γ ⋙ (toKaroubi_equivalence _).Functor :=
+    (toKaroubiEquivalence (ChainComplex C ℕ)).Functor ⋙ Preadditive.DoldKan.equivalence.inverse =
+      Γ ⋙ (toKaroubiEquivalence _).Functor :=
   Functor.congr_obj (functorExtension₂_comp_whiskeringLeft_toKaroubi _ _) Γ₀
 #align category_theory.idempotents.dold_kan.hΓ₀ CategoryTheory.Idempotents.DoldKan.hΓ₀
 -/
@@ -110,7 +110,7 @@ for the construction of our counit isomorphism `η` -/
 theorem hη :
     Compatibility.τ₀ =
       Compatibility.τ₁ (eqToIso hN₁) (eqToIso hΓ₀)
-        (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubi_equivalence (ChainComplex C ℕ)).Functor) :=
+        (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubiEquivalence (ChainComplex C ℕ)).Functor) :=
   by
   ext K : 3
   simpa only [compatibility.τ₀_hom_app, compatibility.τ₁_hom_app, eq_to_iso.hom,
@@ -124,7 +124,7 @@ theorem hη :
 @[simps]
 def η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ) :=
   Compatibility.equivalenceCounitIso
-    (N₁Γ₀ : (Γ : ChainComplex C ℕ ⥤ _) ⋙ N₁ ≅ (toKaroubi_equivalence _).Functor)
+    (N₁Γ₀ : (Γ : ChainComplex C ℕ ⥤ _) ⋙ N₁ ≅ (toKaroubiEquivalence _).Functor)
 #align category_theory.idempotents.dold_kan.η CategoryTheory.Idempotents.DoldKan.η
 -/
 
@@ -139,7 +139,7 @@ theorem equivalence_counitIso :
 theorem hε :
     Compatibility.υ (eqToIso hN₁) =
       (Γ₂N₁ :
-        (toKaroubi_equivalence _).Functor ≅
+        (toKaroubiEquivalence _).Functor ≅
           (N₁ : SimplicialObject C ⥤ _) ⋙ Preadditive.DoldKan.equivalence.inverse) :=
   by
   ext X : 4
Diff
@@ -49,47 +49,62 @@ namespace DoldKan
 
 open AlgebraicTopology.DoldKan
 
+#print CategoryTheory.Idempotents.DoldKan.N /-
 /-- The functor `N` for the equivalence is obtained by composing
 `N' : simplicial_object C ⥤ karoubi (chain_complex C ℕ)` and the inverse
 of the equivalence `chain_complex C ℕ ≌ karoubi (chain_complex C ℕ)`. -/
 @[simps, nolint unused_arguments]
-def n : SimplicialObject C ⥤ ChainComplex C ℕ :=
+def N : SimplicialObject C ⥤ ChainComplex C ℕ :=
   N₁ ⋙ (toKaroubi_equivalence _).inverse
-#align category_theory.idempotents.dold_kan.N CategoryTheory.Idempotents.DoldKan.n
+#align category_theory.idempotents.dold_kan.N CategoryTheory.Idempotents.DoldKan.N
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.Γ /-
 /-- The functor `Γ` for the equivalence is `Γ'`. -/
 @[simps, nolint unused_arguments]
 def Γ : ChainComplex C ℕ ⥤ SimplicialObject C :=
   Γ₀
 #align category_theory.idempotents.dold_kan.Γ CategoryTheory.Idempotents.DoldKan.Γ
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.hN₁ /-
 theorem hN₁ :
     (toKaroubi_equivalence (SimplicialObject C)).Functor ⋙ Preadditive.DoldKan.equivalence.Functor =
       N₁ :=
   Functor.congr_obj (functorExtension₁_comp_whiskeringLeft_toKaroubi _ _) N₁
 #align category_theory.idempotents.dold_kan.hN₁ CategoryTheory.Idempotents.DoldKan.hN₁
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.hΓ₀ /-
 theorem hΓ₀ :
     (toKaroubi_equivalence (ChainComplex C ℕ)).Functor ⋙ Preadditive.DoldKan.equivalence.inverse =
       Γ ⋙ (toKaroubi_equivalence _).Functor :=
   Functor.congr_obj (functorExtension₂_comp_whiskeringLeft_toKaroubi _ _) Γ₀
 #align category_theory.idempotents.dold_kan.hΓ₀ CategoryTheory.Idempotents.DoldKan.hΓ₀
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.equivalence /-
 /-- 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.dold_kan.equivalence`. -/
 def equivalence : SimplicialObject C ≌ ChainComplex C ℕ :=
   Compatibility.equivalence (eqToIso hN₁) (eqToIso hΓ₀)
 #align category_theory.idempotents.dold_kan.equivalence CategoryTheory.Idempotents.DoldKan.equivalence
+-/
 
-theorem equivalence_functor : (equivalence : SimplicialObject C ≌ _).Functor = n :=
+#print CategoryTheory.Idempotents.DoldKan.equivalence_functor /-
+theorem equivalence_functor : (equivalence : SimplicialObject C ≌ _).Functor = N :=
   rfl
 #align category_theory.idempotents.dold_kan.equivalence_functor CategoryTheory.Idempotents.DoldKan.equivalence_functor
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.equivalence_inverse /-
 theorem equivalence_inverse : (equivalence : SimplicialObject C ≌ _).inverse = Γ :=
   rfl
 #align category_theory.idempotents.dold_kan.equivalence_inverse CategoryTheory.Idempotents.DoldKan.equivalence_inverse
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.hη /-
 /-- The natural isomorphism `NΓ' satisfies the compatibility that is needed
 for the construction of our counit isomorphism `η` -/
 theorem hη :
@@ -102,19 +117,25 @@ theorem hη :
     preadditive.dold_kan.equivalence_counit_iso, N₂Γ₂_to_karoubi_iso_hom, eq_to_hom_map,
     eq_to_hom_trans_assoc, eq_to_hom_app] using N₂Γ₂_compatible_with_N₁Γ₀ K
 #align category_theory.idempotents.dold_kan.hη CategoryTheory.Idempotents.DoldKan.hη
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.η /-
 /-- The counit isomorphism induced by `N₁Γ₀` -/
 @[simps]
-def η : Γ ⋙ n ≅ 𝟭 (ChainComplex C ℕ) :=
+def η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ) :=
   Compatibility.equivalenceCounitIso
     (N₁Γ₀ : (Γ : ChainComplex C ℕ ⥤ _) ⋙ N₁ ≅ (toKaroubi_equivalence _).Functor)
 #align category_theory.idempotents.dold_kan.η CategoryTheory.Idempotents.DoldKan.η
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.equivalence_counitIso /-
 theorem equivalence_counitIso :
-    DoldKan.equivalence.counitIso = (η : Γ ⋙ n ≅ 𝟭 (ChainComplex C ℕ)) :=
+    DoldKan.equivalence.counitIso = (η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ)) :=
   Compatibility.equivalenceCounitIso_eq hη
 #align category_theory.idempotents.dold_kan.equivalence_counit_iso CategoryTheory.Idempotents.DoldKan.equivalence_counitIso
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.hε /-
 theorem hε :
     Compatibility.υ (eqToIso hN₁) =
       (Γ₂N₁ :
@@ -129,15 +150,20 @@ theorem hε :
   dsimp
   simpa only [id_comp, eq_to_hom_app, eq_to_hom_map, eq_to_hom_trans]
 #align category_theory.idempotents.dold_kan.hε CategoryTheory.Idempotents.DoldKan.hε
+-/
 
+#print CategoryTheory.Idempotents.DoldKan.ε /-
 /-- The unit isomorphism induced by `Γ₂N₁`. -/
-def ε : 𝟭 (SimplicialObject C) ≅ n ⋙ Γ :=
+def ε : 𝟭 (SimplicialObject C) ≅ N ⋙ Γ :=
   Compatibility.equivalenceUnitIso (eqToIso hΓ₀) Γ₂N₁
 #align category_theory.idempotents.dold_kan.ε CategoryTheory.Idempotents.DoldKan.ε
+-/
 
-theorem equivalence_unitIso : DoldKan.equivalence.unitIso = (ε : 𝟭 (SimplicialObject C) ≅ n ⋙ Γ) :=
+#print CategoryTheory.Idempotents.DoldKan.equivalence_unitIso /-
+theorem equivalence_unitIso : DoldKan.equivalence.unitIso = (ε : 𝟭 (SimplicialObject C) ≅ N ⋙ Γ) :=
   Compatibility.equivalenceUnitIso_eq hε
 #align category_theory.idempotents.dold_kan.equivalence_unit_iso CategoryTheory.Idempotents.DoldKan.equivalence_unitIso
+-/
 
 end DoldKan
 
Diff
@@ -7,7 +7,7 @@ import Mathbin.AlgebraicTopology.DoldKan.EquivalenceAdditive
 import Mathbin.AlgebraicTopology.DoldKan.Compatibility
 import Mathbin.CategoryTheory.Idempotents.SimplicialObject
 
-#align_import algebraic_topology.dold_kan.equivalence_pseudoabelian from "leanprover-community/mathlib"@"63721b2c3eba6c325ecf8ae8cca27155a4f6306f"
+#align_import algebraic_topology.dold_kan.equivalence_pseudoabelian from "leanprover-community/mathlib"@"32a7e535287f9c73f2e4d2aef306a39190f0b504"
 
 /-!
 
@@ -30,6 +30,8 @@ the composition of `N₁ : simplicial_object C ⥤ karoubi (chain_complex C ℕ)
 `idempotents.dold_kan.Γ` of the equivalence is by definition the functor
 `Γ₀` introduced in `functor_gamma.lean`.
 
+(See `equivalence.lean` for the general strategy of proof of the Dold-Kan equivalence.)
+
 -/
 
 

Changes in mathlib4

mathlib3
mathlib4
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -111,7 +111,7 @@ theorem hη :
         (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubiEquivalence (ChainComplex C ℕ)).functor) := by
   ext K : 3
   simp only [Compatibility.τ₀_hom_app, Compatibility.τ₁_hom_app]
-  refine' (N₂Γ₂_compatible_with_N₁Γ₀ K).trans (by simp )
+  exact (N₂Γ₂_compatible_with_N₁Γ₀ K).trans (by simp )
 #align category_theory.idempotents.dold_kan.hη CategoryTheory.Idempotents.DoldKan.hη
 
 /-- The counit isomorphism induced by `N₁Γ₀` -/
refactor(CategoryTheory/Idempotents): replacing equalities of functors by isomorphisms (#8562)

In the context of idempotent completion of categories and the Dold-Kan equivalence, constructing some isomorphisms was very slow in Lean 3 but has been much faster in Lean 4, while using equalities of functors in Lean 3 was fast, but in Lean 4 it became very slow. In this PR, we switch to using mostly isomorphisms of functors: this also became necessary in order to make the refactor #8531 possible.

Diff
@@ -66,24 +66,33 @@ def Γ [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤
 
 variable [IsIdempotentComplete C] [HasFiniteCoproducts C]
 
-theorem hN₁ :
-    (toKaroubiEquivalence (SimplicialObject C)).functor ⋙ Preadditive.DoldKan.equivalence.functor =
-      N₁ :=
-  Functor.congr_obj (functorExtension₁_comp_whiskeringLeft_toKaroubi _ _) N₁
-set_option linter.uppercaseLean3 false in
-#align category_theory.idempotents.dold_kan.hN₁ CategoryTheory.Idempotents.DoldKan.hN₁
-
-theorem hΓ₀ :
-    (toKaroubiEquivalence (ChainComplex C ℕ)).functor ⋙ Preadditive.DoldKan.equivalence.inverse =
+/-- A reformulation of the isomorphism `toKaroubi (SimplicialObject C) ⋙ N₂ ≅ N₁` -/
+def isoN₁ :
+    (toKaroubiEquivalence (SimplicialObject C)).functor ⋙
+      Preadditive.DoldKan.equivalence.functor ≅ N₁ := toKaroubiCompN₂IsoN₁
+
+@[simp]
+lemma isoN₁_hom_app_f (X : SimplicialObject C) :
+    (isoN₁.hom.app X).f = PInfty := rfl
+
+/-- A reformulation of the canonical isomorphism
+`toKaroubi (ChainComplex C ℕ) ⋙ Γ₂ ≅ Γ ⋙ toKaroubi (SimplicialObject C)`. -/
+def isoΓ₀ :
+    (toKaroubiEquivalence (ChainComplex C ℕ)).functor ⋙ Preadditive.DoldKan.equivalence.inverse ≅
       Γ ⋙ (toKaroubiEquivalence _).functor :=
-  Functor.congr_obj (functorExtension₂_comp_whiskeringLeft_toKaroubi _ _) Γ₀
-#align category_theory.idempotents.dold_kan.hΓ₀ CategoryTheory.Idempotents.DoldKan.hΓ₀
+  (functorExtension₂CompWhiskeringLeftToKaroubiIso _ _).app Γ₀
+
+@[simp]
+lemma N₂_map_isoΓ₀_hom_app_f (X : ChainComplex C ℕ) :
+    (N₂.map (isoΓ₀.hom.app X)).f = PInfty := by
+  ext
+  apply comp_id
 
 /-- 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 ℕ :=
-  Compatibility.equivalence (eqToIso hN₁) (eqToIso hΓ₀)
+  Compatibility.equivalence isoN₁ isoΓ₀
 #align category_theory.idempotents.dold_kan.equivalence CategoryTheory.Idempotents.DoldKan.equivalence
 
 theorem equivalence_functor : (equivalence : SimplicialObject C ≌ _).functor = N :=
@@ -98,12 +107,11 @@ theorem equivalence_inverse : (equivalence : SimplicialObject C ≌ _).inverse =
 for the construction of our counit isomorphism `η` -/
 theorem hη :
     Compatibility.τ₀ =
-      Compatibility.τ₁ (eqToIso hN₁) (eqToIso hΓ₀)
+      Compatibility.τ₁ isoN₁ isoΓ₀
         (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubiEquivalence (ChainComplex C ℕ)).functor) := by
   ext K : 3
-  simp only [Compatibility.τ₀_hom_app, Compatibility.τ₁_hom_app, eqToIso.hom]
-  refine' (N₂Γ₂_compatible_with_N₁Γ₀ K).trans _
-  simp only [N₂Γ₂ToKaroubiIso_hom, eqToHom_map, eqToHom_app, eqToHom_trans_assoc]
+  simp only [Compatibility.τ₀_hom_app, Compatibility.τ₁_hom_app]
+  refine' (N₂Γ₂_compatible_with_N₁Γ₀ K).trans (by simp )
 #align category_theory.idempotents.dold_kan.hη CategoryTheory.Idempotents.DoldKan.hη
 
 /-- The counit isomorphism induced by `N₁Γ₀` -/
@@ -119,9 +127,10 @@ theorem equivalence_counitIso :
 #align category_theory.idempotents.dold_kan.equivalence_counit_iso CategoryTheory.Idempotents.DoldKan.equivalence_counitIso
 
 theorem hε :
-    Compatibility.υ (eqToIso hN₁) =
+    Compatibility.υ (isoN₁) =
       (Γ₂N₁ : (toKaroubiEquivalence _).functor ≅
           (N₁ : SimplicialObject C ⥤ _) ⋙ Preadditive.DoldKan.equivalence.inverse) := by
+  dsimp only [isoN₁]
   ext1
   rw [← cancel_epi Γ₂N₁.inv, Iso.inv_hom_id]
   ext X : 2
@@ -129,13 +138,15 @@ theorem hε :
   erw [compatibility_Γ₂N₁_Γ₂N₂_natTrans X]
   rw [Compatibility.υ_hom_app, Preadditive.DoldKan.equivalence_unitIso, Iso.app_inv, assoc]
   erw [← NatTrans.comp_app_assoc, IsIso.hom_inv_id]
-  rw [NatTrans.id_app, id_comp, NatTrans.id_app, eqToIso.hom, eqToHom_app, eqToHom_map]
-  rw [compatibility_Γ₂N₁_Γ₂N₂_inv_app, eqToHom_trans, eqToHom_refl]
+  rw [NatTrans.id_app, id_comp, NatTrans.id_app, Γ₂N₂ToKaroubiIso_inv_app]
+  dsimp only [Preadditive.DoldKan.equivalence_inverse, Preadditive.DoldKan.Γ]
+  rw [← Γ₂.map_comp, Iso.inv_hom_id_app, Γ₂.map_id]
+  rfl
 #align category_theory.idempotents.dold_kan.hε CategoryTheory.Idempotents.DoldKan.hε
 
 /-- The unit isomorphism induced by `Γ₂N₁`. -/
 def ε : 𝟭 (SimplicialObject C) ≅ N ⋙ Γ :=
-  Compatibility.equivalenceUnitIso (eqToIso hΓ₀) Γ₂N₁
+  Compatibility.equivalenceUnitIso isoΓ₀ Γ₂N₁
 #align category_theory.idempotents.dold_kan.ε CategoryTheory.Idempotents.DoldKan.ε
 
 theorem equivalence_unitIso :
chore: remove some double spaces (#7983)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -53,14 +53,14 @@ open AlgebraicTopology.DoldKan
 `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 ℕ :=
+def N [IsIdempotentComplete C] [HasFiniteCoproducts C] : SimplicialObject C ⥤ ChainComplex C ℕ :=
   N₁ ⋙ (toKaroubiEquivalence _).inverse
 set_option linter.uppercaseLean3 false in
 #align category_theory.idempotents.dold_kan.N CategoryTheory.Idempotents.DoldKan.N
 
 /-- The functor `Γ` for the equivalence is `Γ'`. -/
 @[simps!, nolint unusedArguments]
-def Γ  [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤ SimplicialObject C :=
+def Γ [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ ⥤ SimplicialObject C :=
   Γ₀
 #align category_theory.idempotents.dold_kan.Γ CategoryTheory.Idempotents.DoldKan.Γ
 
chore: fix SHA for Dold-Kan equivalence files (#6834)
Diff
@@ -7,7 +7,7 @@ import Mathlib.AlgebraicTopology.DoldKan.EquivalenceAdditive
 import Mathlib.AlgebraicTopology.DoldKan.Compatibility
 import Mathlib.CategoryTheory.Idempotents.SimplicialObject
 
-#align_import algebraic_topology.dold_kan.equivalence_pseudoabelian from "leanprover-community/mathlib"@"63721b2c3eba6c325ecf8ae8cca27155a4f6306f"
+#align_import algebraic_topology.dold_kan.equivalence_pseudoabelian from "leanprover-community/mathlib"@"32a7e535287f9c73f2e4d2aef306a39190f0b504"
 
 /-!
 
feat: forward port of Mathlib.AlgebraicTopology.DoldKan.Equivalence (#6444)

In this PR (which is a forward port of https://github.com/leanprover-community/mathlib/pull/17926), the Dold-Kan equivalence between simplicial objects and chain complexes in abelian categories is constructed.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -30,6 +30,8 @@ the composition of `N₁ : SimplicialObject C ⥤ Karoubi (ChainComplex C ℕ)`
 `Idempotents.DoldKan.Γ` of the equivalence is by definition the functor
 `Γ₀` introduced in `FunctorGamma.lean`.
 
+(See `Equivalence.lean` for the general strategy of proof of the Dold-Kan equivalence.)
+
 -/
 
 
@@ -52,7 +54,7 @@ open AlgebraicTopology.DoldKan
 of the equivalence `ChainComplex C ℕ ≌ Karoubi (ChainComplex C ℕ)`. -/
 @[simps!, nolint unusedArguments]
 def N  [IsIdempotentComplete C] [HasFiniteCoproducts C] : SimplicialObject C ⥤ ChainComplex C ℕ :=
-  N₁ ⋙ (toKaroubi_equivalence _).inverse
+  N₁ ⋙ (toKaroubiEquivalence _).inverse
 set_option linter.uppercaseLean3 false in
 #align category_theory.idempotents.dold_kan.N CategoryTheory.Idempotents.DoldKan.N
 
@@ -65,15 +67,15 @@ def Γ  [IsIdempotentComplete C] [HasFiniteCoproducts C] : ChainComplex C ℕ 
 variable [IsIdempotentComplete C] [HasFiniteCoproducts C]
 
 theorem hN₁ :
-    (toKaroubi_equivalence (SimplicialObject C)).functor ⋙ Preadditive.DoldKan.equivalence.functor =
+    (toKaroubiEquivalence (SimplicialObject C)).functor ⋙ Preadditive.DoldKan.equivalence.functor =
       N₁ :=
   Functor.congr_obj (functorExtension₁_comp_whiskeringLeft_toKaroubi _ _) N₁
 set_option linter.uppercaseLean3 false in
 #align category_theory.idempotents.dold_kan.hN₁ CategoryTheory.Idempotents.DoldKan.hN₁
 
 theorem hΓ₀ :
-    (toKaroubi_equivalence (ChainComplex C ℕ)).functor ⋙ Preadditive.DoldKan.equivalence.inverse =
-      Γ ⋙ (toKaroubi_equivalence _).functor :=
+    (toKaroubiEquivalence (ChainComplex C ℕ)).functor ⋙ Preadditive.DoldKan.equivalence.inverse =
+      Γ ⋙ (toKaroubiEquivalence _).functor :=
   Functor.congr_obj (functorExtension₂_comp_whiskeringLeft_toKaroubi _ _) Γ₀
 #align category_theory.idempotents.dold_kan.hΓ₀ CategoryTheory.Idempotents.DoldKan.hΓ₀
 
@@ -97,7 +99,7 @@ for the construction of our counit isomorphism `η` -/
 theorem hη :
     Compatibility.τ₀ =
       Compatibility.τ₁ (eqToIso hN₁) (eqToIso hΓ₀)
-        (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubi_equivalence (ChainComplex C ℕ)).functor) := by
+        (N₁Γ₀ : Γ ⋙ N₁ ≅ (toKaroubiEquivalence (ChainComplex C ℕ)).functor) := by
   ext K : 3
   simp only [Compatibility.τ₀_hom_app, Compatibility.τ₁_hom_app, eqToIso.hom]
   refine' (N₂Γ₂_compatible_with_N₁Γ₀ K).trans _
@@ -108,7 +110,7 @@ theorem hη :
 @[simps!]
 def η : Γ ⋙ N ≅ 𝟭 (ChainComplex C ℕ) :=
   Compatibility.equivalenceCounitIso
-    (N₁Γ₀ : (Γ : ChainComplex C ℕ ⥤ _) ⋙ N₁ ≅ (toKaroubi_equivalence _).functor)
+    (N₁Γ₀ : (Γ : ChainComplex C ℕ ⥤ _) ⋙ N₁ ≅ (toKaroubiEquivalence _).functor)
 #align category_theory.idempotents.dold_kan.η CategoryTheory.Idempotents.DoldKan.η
 
 theorem equivalence_counitIso :
@@ -118,7 +120,7 @@ theorem equivalence_counitIso :
 
 theorem hε :
     Compatibility.υ (eqToIso hN₁) =
-      (Γ₂N₁ : (toKaroubi_equivalence _).functor ≅
+      (Γ₂N₁ : (toKaroubiEquivalence _).functor ≅
           (N₁ : SimplicialObject C ⥤ _) ⋙ Preadditive.DoldKan.equivalence.inverse) := by
   ext1
   rw [← cancel_epi Γ₂N₁.inv, Iso.inv_hom_id]
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -37,7 +37,7 @@ noncomputable section
 
 open CategoryTheory CategoryTheory.Category CategoryTheory.Limits CategoryTheory.Idempotents
 
-variable {C : Type _} [Category C] [Preadditive C]
+variable {C : Type*} [Category C] [Preadditive C]
 
 namespace CategoryTheory
 
feat: forward port of AlgebraicTopology.DoldKan.EquivalencePseudoabelian (#6293)

Dependencies 8 + 537

538 files ported (98.5%)
203100 lines ported (98.5%)
Show graph

The unported dependencies are