@@ -7,17 +7,16 @@ Authors: Joël Riou
77import algebraic_topology.dold_kan.functor_n
88import algebraic_topology.dold_kan.decomposition
99import category_theory.idempotents.homological_complex
10+ import category_theory.idempotents.karoubi_karoubi
1011
1112/-!
1213
1314# N₁ and N₂ reflects isomorphisms
1415
15- In this file, it is shown that the functor
16- `N₁ : simplicial_object C ⥤ karoubi (chain_complex C ℕ)`
17- reflects isomorphisms for any preadditive category `C`.
18-
19- TODO @joelriou: deduce that `N₂ : karoubi (simplicial_object C) ⥤ karoubi (chain_complex C ℕ)`
20- also reflects isomorphisms.
16+ In this file, it is shown that the functors
17+ `N₁ : simplicial_object C ⥤ karoubi (chain_complex C ℕ)` and
18+ `N₂ : karoubi (simplicial_object C) ⥤ karoubi (chain_complex C ℕ))`
19+ reflect isomorphisms for any preadditive category `C`.
2120
2221-/
2322
@@ -69,6 +68,56 @@ instance : reflects_isomorphisms (N₁ : simplicial_object C ⥤ karoubi (chain_
6968 tauto, },
7069end ⟩
7170
71+ lemma compatibility_N₂_N₁_karoubi :
72+ N₂ ⋙ (karoubi_chain_complex_equivalence C ℕ).functor =
73+ karoubi_functor_category_embedding simplex_categoryᵒᵖ C ⋙ N₁ ⋙
74+ (karoubi_chain_complex_equivalence (karoubi C) ℕ).functor ⋙
75+ functor.map_homological_complex (karoubi_karoubi.equivalence C).inverse _ :=
76+ begin
77+ refine category_theory.functor.ext (λ P, _) (λ P Q f, _),
78+ { refine homological_complex.ext _ _,
79+ { ext n,
80+ { dsimp,
81+ simp only [karoubi_P_infty_f, comp_id, P_infty_f_naturality, id_comp], },
82+ { refl, }, },
83+ { rintros _ n (rfl : n+1 = _),
84+ ext,
85+ have h := (alternating_face_map_complex.map P.p).comm (n+1 ) n,
86+ dsimp [N₂, karoubi_chain_complex_equivalence, karoubi_karoubi.inverse,
87+ karoubi_homological_complex_equivalence.functor.obj] at ⊢ h,
88+ simp only [karoubi.comp_f, assoc, karoubi.eq_to_hom_f, eq_to_hom_refl, id_comp, comp_id,
89+ karoubi_alternating_face_map_complex_d, karoubi_P_infty_f,
90+ ← homological_complex.hom.comm_assoc, ← h, app_idem_assoc], }, },
91+ { ext n,
92+ dsimp [karoubi_karoubi.inverse, karoubi_functor_category_embedding,
93+ karoubi_functor_category_embedding.map],
94+ simp only [karoubi.comp_f, karoubi_P_infty_f, homological_complex.eq_to_hom_f,
95+ karoubi.eq_to_hom_f, assoc, comp_id, P_infty_f_naturality, app_p_comp,
96+ karoubi_chain_complex_equivalence_functor_obj_X_p, N₂_obj_p_f, eq_to_hom_refl,
97+ P_infty_f_naturality_assoc, app_comp_p, P_infty_f_idem_assoc], },
98+ end
99+
100+ /-- We deduce that `N₂ : karoubi (simplicial_object C) ⥤ karoubi (chain_complex C ℕ))`
101+ reflects isomorphisms from the fact that
102+ `N₁ : simplicial_object (karoubi C) ⥤ karoubi (chain_complex (karoubi C) ℕ)` does. -/
103+ instance : reflects_isomorphisms
104+ (N₂ : karoubi (simplicial_object C) ⥤ karoubi (chain_complex C ℕ)) := ⟨λ X Y f,
105+ begin
106+ introI,
107+ -- The following functor `F` reflects isomorphism because it is
108+ -- a composition of four functors which reflects isomorphisms.
109+ -- Then, it suffices to show that `F.map f` is an isomorphism.
110+ let F := karoubi_functor_category_embedding simplex_categoryᵒᵖ C ⋙ N₁ ⋙
111+ (karoubi_chain_complex_equivalence (karoubi C) ℕ).functor ⋙
112+ functor.map_homological_complex (karoubi_karoubi.equivalence C).inverse
113+ (complex_shape.down ℕ),
114+ haveI : is_iso (F.map f),
115+ { dsimp only [F],
116+ rw [← compatibility_N₂_N₁_karoubi, functor.comp_map],
117+ apply functor.map_is_iso, },
118+ exact is_iso_of_reflects_iso f F,
119+ end ⟩
120+
72121end dold_kan
73122
74123end algebraic_topology
0 commit comments