|
| 1 | +/- |
| 2 | +Copyright (c) 2022 Joël Riou. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Joël Riou |
| 5 | +-/ |
| 6 | + |
| 7 | +import algebraic_topology.dold_kan.equivalence_additive |
| 8 | +import algebraic_topology.dold_kan.compatibility |
| 9 | +import category_theory.idempotents.simplicial_object |
| 10 | + |
| 11 | +/-! |
| 12 | +
|
| 13 | +# The Dold-Kan correspondence for pseudoabelian categories |
| 14 | +
|
| 15 | +In this file, for any idempotent complete additive category `C`, |
| 16 | +the Dold-Kan equivalence |
| 17 | +`idempotents.dold_kan.equivalence C : simplicial_object C ≌ chain_complex C ℕ` |
| 18 | +is obtained. It is deduced from the equivalence |
| 19 | +`preadditive.dold_kan.equivalence` between the respective idempotent |
| 20 | +completions of these categories using the fact that when `C` is idempotent complete, |
| 21 | +then both `simplicial_object C` and `chain_complex C ℕ` are idempotent complete. |
| 22 | +
|
| 23 | +The construction of `idempotents.dold_kan.equivalence` uses the tools |
| 24 | +introduced in the file `compatibility.lean`. Doing so, the functor |
| 25 | +`idempotents.dold_kan.N` of the equivalence is |
| 26 | +the composition of `N₁ : simplicial_object C ⥤ karoubi (chain_complex C ℕ)` |
| 27 | +(defined in `functor_n.lean`) and the inverse of the equivalence |
| 28 | +`chain_complex C ℕ ≌ karoubi (chain_complex C ℕ)`. The functor |
| 29 | +`idempotents.dold_kan.Γ` of the equivalence is by definition the functor |
| 30 | +`Γ₀` introduced in `functor_gamma.lean`. |
| 31 | +
|
| 32 | +-/ |
| 33 | + |
| 34 | +noncomputable theory |
| 35 | + |
| 36 | +open category_theory category_theory.category category_theory.limits category_theory.idempotents |
| 37 | + |
| 38 | +variables {C : Type*} [category C] [preadditive C] [is_idempotent_complete C] |
| 39 | + [has_finite_coproducts C] |
| 40 | + |
| 41 | +namespace category_theory |
| 42 | + |
| 43 | +namespace idempotents |
| 44 | + |
| 45 | +namespace dold_kan |
| 46 | + |
| 47 | +open algebraic_topology.dold_kan |
| 48 | + |
| 49 | +/-- The functor `N` for the equivalence is obtained by composing |
| 50 | +`N' : simplicial_object C ⥤ karoubi (chain_complex C ℕ)` and the inverse |
| 51 | +of the equivalence `chain_complex C ℕ ≌ karoubi (chain_complex C ℕ)`. -/ |
| 52 | +@[simps, nolint unused_arguments] |
| 53 | +def N : simplicial_object C ⥤ chain_complex C ℕ := |
| 54 | +N₁ ⋙ (to_karoubi_equivalence _).inverse |
| 55 | + |
| 56 | +/-- The functor `Γ` for the equivalence is `Γ'`. -/ |
| 57 | +@[simps, nolint unused_arguments] |
| 58 | +def Γ : chain_complex C ℕ ⥤ simplicial_object C := Γ₀ |
| 59 | + |
| 60 | +lemma hN₁ : (to_karoubi_equivalence (simplicial_object C)).functor ⋙ |
| 61 | + preadditive.dold_kan.equivalence.functor = N₁ := |
| 62 | +functor.congr_obj (functor_extension₁_comp_whiskering_left_to_karoubi _ _) N₁ |
| 63 | + |
| 64 | +lemma hΓ₀ : (to_karoubi_equivalence (chain_complex C ℕ)).functor ⋙ |
| 65 | + preadditive.dold_kan.equivalence.inverse = Γ ⋙ (to_karoubi_equivalence _).functor := |
| 66 | +functor.congr_obj (functor_extension₂_comp_whiskering_left_to_karoubi _ _) Γ₀ |
| 67 | + |
| 68 | +/-- The Dold-Kan equivalence for pseudoabelian categories given |
| 69 | +by the functors `N` and `Γ`. It is obtained by applying the results in |
| 70 | +`compatibility.lean` to the equivalence `preadditive.dold_kan.equivalence`. -/ |
| 71 | +def equivalence : simplicial_object C ≌ chain_complex C ℕ := |
| 72 | +compatibility.equivalence (eq_to_iso hN₁) (eq_to_iso hΓ₀) |
| 73 | + |
| 74 | +lemma equivalence_functor : (equivalence : simplicial_object C ≌ _).functor = N := rfl |
| 75 | +lemma equivalence_inverse : (equivalence : simplicial_object C ≌ _).inverse = Γ := rfl |
| 76 | + |
| 77 | +/-- The natural isomorphism `NΓ' satisfies the compatibility that is needed |
| 78 | +for the construction of our counit isomorphism `η` -/ |
| 79 | +lemma hη : compatibility.τ₀ = |
| 80 | + compatibility.τ₁ (eq_to_iso hN₁) (eq_to_iso hΓ₀) |
| 81 | + (N₁Γ₀ : Γ ⋙ N₁ ≅ (to_karoubi_equivalence (chain_complex C ℕ)).functor) := |
| 82 | +begin |
| 83 | + ext K : 3, |
| 84 | + simpa only [compatibility.τ₀_hom_app, compatibility.τ₁_hom_app, eq_to_iso.hom, |
| 85 | + preadditive.dold_kan.equivalence_counit_iso, N₂Γ₂_to_karoubi_iso_hom, eq_to_hom_map, |
| 86 | + eq_to_hom_trans_assoc, eq_to_hom_app] using N₂Γ₂_compatible_with_N₁Γ₀ K, |
| 87 | +end |
| 88 | + |
| 89 | +/-- The counit isomorphism induced by `N₁Γ₀` -/ |
| 90 | +@[simps] |
| 91 | +def η : Γ ⋙ N ≅ 𝟭 (chain_complex C ℕ) := compatibility.equivalence_counit_iso |
| 92 | + (N₁Γ₀ : (Γ : chain_complex C ℕ ⥤ _ ) ⋙ N₁ ≅ (to_karoubi_equivalence _).functor) |
| 93 | + |
| 94 | +lemma equivalence_counit_iso : |
| 95 | + dold_kan.equivalence.counit_iso = (η : Γ ⋙ N ≅ 𝟭 (chain_complex C ℕ)) := |
| 96 | +compatibility.equivalence_counit_iso_eq hη |
| 97 | + |
| 98 | +lemma hε : compatibility.υ (eq_to_iso hN₁) = |
| 99 | + (Γ₂N₁ : (to_karoubi_equivalence _).functor ≅ (N₁ : simplicial_object C ⥤ _) ⋙ |
| 100 | + preadditive.dold_kan.equivalence.inverse) := |
| 101 | +begin |
| 102 | + ext X : 4, |
| 103 | + erw [nat_trans.comp_app, compatibility_Γ₂N₁_Γ₂N₂_nat_trans], |
| 104 | + simp only [compatibility.υ_hom_app, compatibility_Γ₂N₁_Γ₂N₂, |
| 105 | + preadditive.dold_kan.equivalence_unit_iso, Γ₂N₂, iso.symm_hom, as_iso_inv, assoc], |
| 106 | + erw [← nat_trans.comp_app_assoc, is_iso.hom_inv_id], |
| 107 | + dsimp, |
| 108 | + simpa only [id_comp, eq_to_hom_app, eq_to_hom_map, eq_to_hom_trans], |
| 109 | +end |
| 110 | + |
| 111 | +/-- The unit isomorphism induced by `Γ₂N₁`. -/ |
| 112 | +def ε : 𝟭 (simplicial_object C) ≅ N ⋙ Γ := |
| 113 | +compatibility.equivalence_unit_iso (eq_to_iso hΓ₀) Γ₂N₁ |
| 114 | + |
| 115 | +lemma equivalence_unit_iso : dold_kan.equivalence.unit_iso = |
| 116 | + (ε : 𝟭 (simplicial_object C) ≅ N ⋙ Γ) := |
| 117 | +compatibility.equivalence_unit_iso_eq hε |
| 118 | + |
| 119 | +end dold_kan |
| 120 | + |
| 121 | +end idempotents |
| 122 | + |
| 123 | +end category_theory |
0 commit comments