Transferring "abelian-ness" across a functor #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
If C
is an additive category, D
is an abelian category,
we have F : C ⥤ D
G : D ⥤ C
(both preserving zero morphisms),
G
is left exact (that is, preserves finite limits),
and further we have adj : G ⊣ F
and i : F ⋙ G ≅ 𝟭 C
,
then C
is also abelian.
See https://stacks.math.columbia.edu/tag/03A3
Notes #
The hypotheses, following the statement from the Stacks project,
may appear suprising: we don't ask that the counit of the adjunction is an isomorphism,
but just that we have some potentially unrelated isomorphism i : F ⋙ G ≅ 𝟭 C
.
However Lemma A1.1.1 from [Joh02] shows that in this situation the counit itself
must be an isomorphism, and thus that C
is a reflective subcategory of D
.
Someone may like to formalize that lemma, and restate this theorem in terms of reflective
.
(That lemma has a nice string diagrammatic proof that holds in any bicategory.)
No point making this an instance, as it requires i
.
No point making this an instance, as it requires i
and adj
.
Auxiliary construction for coimage_iso_image
Equations
- category_theory.abelian_of_adjunction.cokernel_iso F G i adj f = (((category_theory.as_iso (category_theory.limits.cokernel_comparison (F.map f) G)).symm ≪≫ category_theory.limits.cokernel_iso_of_eq _) ≪≫ category_theory.limits.cokernel_epi_comp (i.hom.app X) (f ≫ i.inv.app Y) _) ≪≫ category_theory.limits.cokernel_comp_is_iso f (i.inv.app Y) _
Auxiliary construction for coimage_iso_image
Equations
- category_theory.abelian_of_adjunction.coimage_iso_image_aux F G i adj f = (((((((category_theory.limits.kernel_iso_of_eq _ ≪≫ category_theory.limits.kernel_comp_mono (category_theory.limits.cokernel.π (G.map (F.map f))) (category_theory.limits.cokernel_comparison (F.map f) G) _) ≪≫ category_theory.limits.kernel_iso_of_eq _) ≪≫ category_theory.limits.kernel_comp_mono (category_theory.limits.cokernel.π (i.hom.app X ≫ f ≫ i.inv.app Y)) (category_theory.limits.cokernel_iso_of_eq _).hom _) ≪≫ category_theory.limits.kernel_iso_of_eq _) ≪≫ category_theory.limits.kernel_comp_mono (category_theory.limits.cokernel.π (f ≫ i.inv.app Y)) (category_theory.limits.cokernel_epi_comp (i.hom.app X) (f ≫ i.inv.app Y)).inv _) ≪≫ category_theory.limits.kernel_iso_of_eq _) ≪≫ category_theory.limits.kernel_is_iso_comp (category_theory.inv (i.inv.app Y)) (category_theory.limits.cokernel.π f ≫ (category_theory.limits.cokernel_comp_is_iso f (i.inv.app Y)).inv) _) ≪≫ category_theory.limits.kernel_comp_mono (category_theory.limits.cokernel.π f) (category_theory.limits.cokernel_comp_is_iso f (i.inv.app Y)).inv _
Auxiliary definition: the abelian coimage and abelian image agree. We still need to check that this agrees with the canonical morphism.
Equations
- category_theory.abelian_of_adjunction.coimage_iso_image F G i adj f = ((((((((category_theory.iso.refl (category_theory.abelian.coimage f) ≪≫ (category_theory.abelian_of_adjunction.cokernel_iso F G i adj (category_theory.limits.kernel.ι f)).symm) ≪≫ G.map_iso (category_theory.limits.cokernel_iso_of_eq _)) ≪≫ G.map_iso (category_theory.limits.cokernel_epi_comp (category_theory.limits.kernel_comparison f F) (category_theory.limits.kernel.ι (F.map f)))) ≪≫ category_theory.iso.refl (G.obj (category_theory.limits.cokernel (category_theory.limits.kernel.ι (F.map f))))) ≪≫ G.map_iso (category_theory.abelian.coimage_iso_image (F.map f))) ≪≫ category_theory.iso.refl (G.obj (category_theory.abelian.image (F.map f)))) ≪≫ category_theory.limits.preserves_kernel.iso G (category_theory.limits.cokernel.π (F.map f)) category_theory.limits.preserves_limits_of_shape.preserves_limit) ≪≫ category_theory.abelian_of_adjunction.coimage_iso_image_aux F G i adj f) ≪≫ category_theory.iso.refl (category_theory.limits.kernel (category_theory.limits.cokernel.π f))
If C
is an additive category, D
is an abelian category,
we have F : C ⥤ D
G : D ⥤ C
(both preserving zero morphisms),
G
is left exact (that is, preserves finite limits),
and further we have adj : G ⊣ F
and i : F ⋙ G ≅ 𝟭 C
,
then C
is also abelian.
If C
is an additive category equivalent to an abelian category D
via a functor that preserves zero morphisms,
then C
is also abelian.