algebraic_topology.dold_kan.equivalence_pseudoabelian
⟷
Mathlib.AlgebraicTopology.DoldKan.EquivalencePseudoabelian
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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.)
+
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
refine
s (#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 refine
s, but maybe the current change is beneficial.
@@ -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₁Γ₀` -/
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.
@@ -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 :
@@ -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.Γ
@@ -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"
/-!
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>
@@ -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]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
The unported dependencies are