@@ -6,6 +6,7 @@ Authors: Joël Riou
66module
77
88public import Mathlib.Algebra.Homology.DerivedCategory.Basic
9+ public import Mathlib.CategoryTheory.Shift.ShiftedHom
910
1011/-!
1112# The homology sequence
@@ -39,12 +40,36 @@ noncomputable def homologyFunctorFactors (n : ℤ) : Q ⋙ homologyFunctor C n
3940 HomologicalComplex.homologyFunctor _ _ n :=
4041 HomologicalComplexUpToQuasiIso.homologyFunctorFactors C (ComplexShape.up ℤ) n
4142
43+ variable {C} in
44+ @ [reassoc (attr := simp)]
45+ lemma homologyFunctorFactors_hom_naturality
46+ {K L : CochainComplex C ℤ} (f : K ⟶ L) (n : ℤ) :
47+ (homologyFunctor C n).map (Q.map f) ≫ (homologyFunctorFactors C n).hom.app L =
48+ (homologyFunctorFactors C n).hom.app K ≫ HomologicalComplex.homologyMap f n :=
49+ (homologyFunctorFactors C n).hom.naturality f
50+
4251/-- The homology functor on the derived category is induced by the homology
4352functor on the homotopy category of cochain complexes. -/
4453noncomputable def homologyFunctorFactorsh (n : ℤ) : Qh ⋙ homologyFunctor C n ≅
4554 HomotopyCategory.homologyFunctor _ _ n :=
4655 HomologicalComplexUpToQuasiIso.homologyFunctorFactorsh C (ComplexShape.up ℤ) n
4756
57+ @[reassoc]
58+ lemma homologyFunctorFactorsh_hom_app_quotient_obj (K : CochainComplex C ℤ) (n : ℤ) :
59+ (homologyFunctorFactorsh C n).hom.app ((HomotopyCategory.quotient _ _).obj K) =
60+ (homologyFunctor C n).map ((quotientCompQhIso C).hom.app K) ≫
61+ (homologyFunctorFactors C n).hom.app K ≫
62+ (HomotopyCategory.homologyFunctorFactors C (.up ℤ) n).inv.app _ :=
63+ HomologicalComplexUpToQuasiIso.homologyFunctorFactorsh_hom_app_quotient_obj ..
64+
65+ @[reassoc]
66+ lemma homologyFunctorFactorsh_inv_app_quotient_obj (K : CochainComplex C ℤ) (n : ℤ) :
67+ (homologyFunctorFactorsh C n).inv.app ((HomotopyCategory.quotient _ _).obj K) =
68+ (HomotopyCategory.homologyFunctorFactors C (.up ℤ) n).hom.app _ ≫
69+ (homologyFunctorFactors C n).inv.app K ≫
70+ (homologyFunctor C n).map ((quotientCompQhIso C).inv.app K) :=
71+ HomologicalComplexUpToQuasiIso.homologyFunctorFactorsh_inv_app_quotient_obj ..
72+
4873variable {C} in
4974lemma isIso_Qh_map_iff {X Y : HomotopyCategory C (ComplexShape.up ℤ)} (f : X ⟶ Y) :
5075 IsIso (Qh.map f) ↔ HomotopyCategory.quasiIso C _ f := by
@@ -67,8 +92,38 @@ noncomputable instance : (homologyFunctor C 0).ShiftSequence ℤ :=
6792 Functor.ShiftSequence.induced (homologyFunctorFactorsh C 0 ) ℤ
6893 (homologyFunctor C) (homologyFunctorFactorsh C)
6994
95+ lemma shift_homologyFunctor (n : ℤ) :
96+ (homologyFunctor C 0 ).shift n = homologyFunctor C n := rfl
97+
7098variable {C}
7199
100+ @[reassoc]
101+ lemma shiftMap_homologyFunctor_map_Qh
102+ {K L : HomotopyCategory C (.up ℤ)} {n : ℤ} (f : K ⟶ L⟦n⟧)
103+ (a a' : ℤ) (h : n + a = a') :
104+ (homologyFunctor C 0 ).shiftMap (ShiftedHom.map f Qh) a a' h =
105+ (homologyFunctorFactorsh C a).hom.app _ ≫
106+ (HomotopyCategory.homologyFunctor C (.up ℤ) 0 ).shiftMap f a a' h ≫
107+ (homologyFunctorFactorsh C a').inv.app _ :=
108+ Functor.ShiftSequence.induced_shiftMap ..
109+
110+ @[reassoc]
111+ lemma shiftMap_homologyFunctor_map_Q
112+ {K L : CochainComplex C ℤ} {n : ℤ} (f : K ⟶ L⟦n⟧)
113+ (a a' : ℤ) (h : n + a = a') :
114+ (homologyFunctor C 0 ).shiftMap (ShiftedHom.map f Q) a a' h =
115+ (homologyFunctorFactors C a).hom.app _ ≫
116+ (HomologicalComplex.homologyFunctor C (.up ℤ) 0 ).shiftMap f a a' h ≫
117+ (homologyFunctorFactors C a').inv.app _ := by
118+ rw [← ShiftedHom.map_naturality_1 f (quotientCompQhIso C),
119+ ShiftedHom.mk₀_comp, ShiftedHom.comp_mk₀,
120+ Functor.shiftMap_comp', Functor.shiftMap_comp,
121+ ShiftedHom.comp_map, shiftMap_homologyFunctor_map_Qh,
122+ homologyFunctorFactorsh_hom_app_quotient_obj,
123+ homologyFunctorFactorsh_inv_app_quotient_obj,
124+ HomotopyCategory.homologyFunctor_shiftMap]
125+ simp [shift_homologyFunctor, ← Functor.map_comp, ← Functor.map_comp_assoc]
126+
72127namespace HomologySequence
73128
74129/-- The connecting homomorphism on the homology sequence attached to a distinguished
0 commit comments