Preservation of injective objects #
We define a typeclass Functor.PreservesInjectiveObjects.
We restate the existing result that if F ⊣ G is an adjunction and F preserves monomorphisms,
then G preserves injective objects. We show that the converse is true if the codomain of F has
enough injectives.
class
CategoryTheory.Functor.PreservesInjectiveObjects
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
(F : Functor C D)
:
A functor preserves injective objects if it maps injective objects to injective objects.
Instances
instance
CategoryTheory.Functor.injective_obj
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
(F : Functor C D)
[F.PreservesInjectiveObjects]
(X : C)
[Injective X]
:
See Functor.injective_obj_of_injective for a variant taking Injective X as an explicit
argument.
theorem
CategoryTheory.Functor.injective_obj_of_injective
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
(F : Functor C D)
[F.PreservesInjectiveObjects]
{X : C}
(h : Injective X)
:
See Functor.injective_obj for a variant taking Injective X as a typeclass argument.
instance
CategoryTheory.Functor.preservesInjectiveObjects_comp
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
{E : Type u₃}
[Category.{v₃, u₃} E]
(F : Functor C D)
(G : Functor D E)
[F.PreservesInjectiveObjects]
[G.PreservesInjectiveObjects]
:
theorem
CategoryTheory.Functor.preservesInjectiveObjects_of_adjunction_of_preservesMonomorphisms
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
{F : Functor C D}
{G : Functor D C}
(adj : F ⊣ G)
[F.PreservesMonomorphisms]
:
@[instance 100]
instance
CategoryTheory.Functor.preservesInjectiveObjects_of_isEquivalence
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
{F : Functor C D}
[F.IsEquivalence]
:
theorem
CategoryTheory.Functor.preservesMonomorphisms_of_adjunction_of_preservesInjectiveObjects
{C : Type u₁}
[Category.{v₁, u₁} C]
{D : Type u₂}
[Category.{v₂, u₂} D]
[EnoughInjectives D]
{F : Functor C D}
{G : Functor D C}
(adj : F ⊣ G)
[G.PreservesInjectiveObjects]
: