Right-derived functors #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We define the right-derived functors F.right_derived n : C ⥤ D
for any additive functor F
out of a category with injective resolutions.
The definition is
injective_resolutions C ⋙ F.map_homotopy_category _ ⋙ homotopy_category.homology_functor D _ n
that is, we pick an injective resolution (thought of as an object of the homotopy category),
we apply F
objectwise, and compute n
-th homology.
We show that these right-derived functors can be calculated on objects using any choice of injective resolution, and on morphisms by any choice of lift to a cochain map between chosen injective resolutions.
Similarly we define natural transformations between right-derived functors coming from natural transformations between the original additive functors, and show how to compute the components.
Main results #
category_theory.functor.right_derived_obj_injective_zero
: the0
-th derived functor ofF
on an injective objectX
is isomorphic toF.obj X
.category_theory.functor.right_derived_obj_injective_succ
: injective objects have no higher right derived functor.category_theory.nat_trans.right_derived
: the natural isomorphism between right derived functors induced by natural transformation.
Now, we assume preserves_finite_limits F
, then
category_theory.abelian.functor.preserves_exact_of_preserves_finite_limits_of_mono
: iff
is mono andexact f g
, thenexact (F.map f) (F.map g)
.category_theory.abelian.functor.right_derived_zero_iso_self
: if there are enough injectives, then there is a natural isomorphism(F.right_derived 0) ≅ F
.
The right derived functors of an additive functor.
We can compute a right derived functor using a chosen injective resolution.
Equations
- F.right_derived_obj_iso n P = (homotopy_category.homology_functor D (complex_shape.up ℕ) n).map_iso (homotopy_category.iso_of_homotopy_equiv (F.map_homotopy_equiv (category_theory.functor.right_derived_obj_iso._proof_14.some.homotopy_equiv P))) ≪≫ (homotopy_category.homology_factors D (complex_shape.up ℕ) n).app ((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex)
The 0-th derived functor of F
on an injective object X
is just F.obj X
.
Equations
The higher derived functors vanish on injective objects.
Equations
- F.right_derived_obj_injective_succ n X = F.right_derived_obj_iso (n + 1) (category_theory.InjectiveResolution.self X) ≪≫ (homology_functor D (complex_shape.up ℕ) (n + 1)).map_iso ((cochain_complex.single₀_map_homological_complex F).app X) ≪≫ (cochain_complex.homology_functor_succ_single₀ D n).app (F.obj X) ≪≫ _.iso_zero
We can compute a right derived functor on a morphism using a descent of that morphism to a cochain map between chosen injective resolutions.
The natural transformation between right-derived functors induced by a natural transformation.
A component of the natural transformation between right-derived functors can be computed using a chosen injective resolution.
If preserves_finite_limits F
and mono f
, then exact (F.map f) (F.map g)
if
exact f g
.
Given P : InjectiveResolution X
, a morphism (F.right_derived 0).obj X ⟶ F.obj X
given
preserves_finite_limits F
.
Equations
- category_theory.abelian.functor.right_derived_zero_to_self_app F P = (F.right_derived_obj_iso 0 P).hom ≫ (homology_iso_kernel_desc (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_to 0) (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_from 0) _).hom ≫ category_theory.limits.kernel.map (category_theory.limits.cokernel.desc (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_to 0) (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_from 0) _) (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_from 0) (category_theory.limits.cokernel.desc (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_to 0) (𝟙 (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).X 0)) _) (𝟙 (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).X_next 0)) _ ≫ (category_theory.as_iso (category_theory.limits.kernel.lift (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_from 0) (F.map (P.ι.f 0)) _)).inv
Given P : InjectiveResolution X
, a morphism F.obj X ⟶ (F.right_derived 0).obj X
.
Equations
- category_theory.abelian.functor.right_derived_zero_to_self_app_inv F P = homology.lift (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_to 0) (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_from 0) _ (F.map (P.ι.f 0) ≫ category_theory.limits.cokernel.π (((F.map_homological_complex (complex_shape.up ℕ)).obj P.cocomplex).d_to 0)) _ ≫ (F.right_derived_obj_iso 0 P).inv
Given P : InjectiveResolution X
, the isomorphism (F.right_derived 0).obj X ≅ F.obj X
if
preserves_finite_limits F
.
Given P : InjectiveResolution X
and Q : InjectiveResolution Y
and a morphism f : X ⟶ Y
,
naturality of the square given by right_derived_zero_to_self_natural
.
Given preserves_finite_limits F
, the natural isomorphism (F.right_derived 0) ≅ F
.