Right-derived functors #
We define the right-derived functors F.rightDerived n : C ⥤ D
for any additive functor F
out of a category with injective resolutions.
We first define a functor
F.rightDerivedToHomotopyCategory : C ⥤ HomotopyCategory D (ComplexShape.up ℕ)
which is
injectiveResolutions C ⋙ F.mapHomotopyCategory _
. We show that if X : C
and
I : InjectiveResolution X
, then F.rightDerivedToHomotopyCategory.obj X
identifies
to the image in the homotopy category of the functor F
applied objectwise to I.cocomplex
(this isomorphism is I.isoRightDerivedToHomotopyCategoryObj F
).
Then, the right-derived functors F.rightDerived n : C ⥤ D
are obtained by composing
F.rightDerivedToHomotopyCategory
with the homology functors on the homotopy category.
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 #
Functor.isZero_rightDerived_obj_injective_succ
: injective objects have no higher right derived functor.NatTrans.rightDerived
: the natural isomorphism between right derived functors induced by natural transformation.Functor.toRightDerivedZero
: the natural transformationF ⟶ F.rightDerived 0
, which is an isomorphism whenF
is left exact (i.e. preserves finite limits), see alsoFunctor.rightDerivedZeroIsoSelf
.
TODO #
- refactor
Functor.rightDerived
(andFunctor.leftDerived
) when the necessary material enters mathlib: derived categories, injective/projective derivability structures, existence of derived functors from derivability structures. Eventually, we shall get a right derived functorF.rightDerivedFunctorPlus : DerivedCategory.Plus C ⥤ DerivedCategory.Plus D
, andF.rightDerived
shall be redefined usingF.rightDerivedFunctorPlus
.
When F : C ⥤ D
is an additive functor, this is
the functor C ⥤ HomotopyCategory D (ComplexShape.up ℕ)
which
sends X : C
to F
applied to an injective resolution of X
.
Equations
- F.rightDerivedToHomotopyCategory = (CategoryTheory.injectiveResolutions C).comp (F.mapHomotopyCategory (ComplexShape.up ℕ))
Instances For
If I : InjectiveResolution Z
and F : C ⥤ D
is an additive functor, this is
an isomorphism between F.rightDerivedToHomotopyCategory.obj X
and the complex
obtained by applying F
to I.cocomplex
.
Equations
- I.isoRightDerivedToHomotopyCategoryObj F = (F.mapHomotopyCategory (ComplexShape.up ℕ)).mapIso I.iso ≪≫ (F.mapHomotopyCategoryFactors (ComplexShape.up ℕ)).app I.cocomplex
Instances For
The right derived functors of an additive functor.
Equations
- F.rightDerived n = F.rightDerivedToHomotopyCategory.comp (HomotopyCategory.homologyFunctor D (ComplexShape.up ℕ) n)
Instances For
We can compute a right derived functor using a chosen injective resolution.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The higher derived functors vanish on injective objects.
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
F.rightDerivedToHomotopyCategory ⟶ G.rightDerivedToHomotopyCategory
induced by
a natural transformation F ⟶ G
between additive functors.
Equations
Instances For
The natural transformation between right-derived functors induced by a natural transformation.
Equations
Instances For
A component of the natural transformation between right-derived functors can be computed using a chosen injective resolution.
If P : InjectiveResolution X
and F
is an additive functor, this is
the canonical morphism from F.obj X
to the cycles in degree 0
of
(F.mapHomologicalComplex _).obj P.cocomplex
.
Equations
- P.toRightDerivedZero' F = ((F.mapHomologicalComplex (ComplexShape.up ℕ)).obj P.cocomplex).liftCycles (F.map (P.ι.f 0)) 1 CategoryTheory.InjectiveResolution.toRightDerivedZero'.proof_3 ⋯
Instances For
The natural transformation F ⟶ F.rightDerived 0
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism F.rightDerived 0 ≅ F
when F
is left exact
(i.e. preserves finite limits).
Equations
- F.rightDerivedZeroIsoSelf = (CategoryTheory.asIso F.toRightDerivedZero).symm