Left-derived functors #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We define the left-derived functors F.left_derived n : C ⥤ D
for any additive functor F
out of a category with projective resolutions.
The definition is
projective_resolutions C ⋙ F.map_homotopy_category _ ⋙ homotopy_category.homology_functor D _ n
that is, we pick a projective resolution (thought of as an object of the homotopy category),
we apply F
objectwise, and compute n
-th homology.
We show that these left-derived functors can be calculated on objects using any choice of projective resolution, and on morphisms by any choice of lift to a chain map between chosen projective resolutions.
Similarly we define natural transformations between left-derived functors coming from natural transformations between the original additive functors, and show how to compute the components.
Implementation #
We don't assume the categories involved are abelian (just preadditive, and have equalizers, cokernels, and image maps), or that the functors are right exact. None of these assumptions are needed yet.
It is often convenient, of course, to work with [abelian C] [enough_projectives C] [abelian D]
which (assuming the results from category_theory.abelian.projective
) are enough to
provide all the typeclass hypotheses assumed here.
The left derived functors of an additive functor.
We can compute a left derived functor using a chosen projective resolution.
Equations
- F.left_derived_obj_iso n P = (homotopy_category.homology_functor D (complex_shape.down ℕ) n).map_iso (homotopy_category.iso_of_homotopy_equiv (F.map_homotopy_equiv (category_theory.functor.left_derived_obj_iso._proof_1.some.homotopy_equiv P))) ≪≫ (homotopy_category.homology_factors D (complex_shape.down ℕ) n).app ((F.map_homological_complex (complex_shape.down ℕ)).obj P.complex)
The 0-th derived functor of F
on a projective object X
is just F.obj X
.
Equations
The higher derived functors vanish on projective objects.
Equations
- F.left_derived_obj_projective_succ n X = F.left_derived_obj_iso (n + 1) (category_theory.ProjectiveResolution.self X) ≪≫ (homology_functor D (complex_shape.down ℕ) (n + 1)).map_iso ((chain_complex.single₀_map_homological_complex F).app X) ≪≫ (chain_complex.homology_functor_succ_single₀ D n).app (F.obj X) ≪≫ _.iso_zero
We can compute a left derived functor on a morphism using a lift of that morphism to a chain map between chosen projective resolutions.
The natural transformation between left-derived functors induced by a natural transformation.
A component of the natural transformation between left-derived functors can be computed using a chosen projective resolution.