Documentation

Mathlib.CategoryTheory.Abelian.Transfer

Transferring "abelian-ness" across a functor #

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.

A particular example is the transfer of Abelian instances from a category C to ShrinkHoms C; see ShrinkHoms.abelian. In this case, we also transfer the Preadditive structure.

See https://stacks.math.columbia.edu/tag/03A3

Notes #

The hypotheses, following the statement from the Stacks project, may appear surprising: 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.)

theorem CategoryTheory.AbelianOfAdjunction.hasKernels {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) (G : Functor D C) [G.PreservesZeroMorphisms] [Limits.PreservesFiniteLimits G] (i : F.comp G Functor.id C) :

No point making this an instance, as it requires i.

theorem CategoryTheory.AbelianOfAdjunction.hasCokernels {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) (G : Functor D C) [G.PreservesZeroMorphisms] (i : F.comp G Functor.id C) (adj : G F) :

No point making this an instance, as it requires i and adj.

def CategoryTheory.AbelianOfAdjunction.cokernelIso {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) (G : Functor D C) [G.PreservesZeroMorphisms] [Limits.HasCokernels C] (i : F.comp G Functor.id C) (adj : G F) {X Y : C} (f : X Y) :
G.obj (Limits.cokernel (F.map f)) Limits.cokernel f

Auxiliary construction for coimageIsoImage

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def CategoryTheory.AbelianOfAdjunction.coimageIsoImageAux {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) (G : Functor D C) [G.PreservesZeroMorphisms] [Limits.HasCokernels C] [Limits.HasKernels C] [Limits.PreservesFiniteLimits G] (i : F.comp G Functor.id C) (adj : G F) {X Y : C} (f : X Y) :

    Auxiliary construction for coimageIsoImage

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def CategoryTheory.AbelianOfAdjunction.coimageIsoImage {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) (G : Functor D C) [G.PreservesZeroMorphisms] [Limits.HasCokernels C] [Limits.HasKernels C] [Limits.PreservesFiniteLimits G] [F.PreservesZeroMorphisms] (i : F.comp G Functor.id C) (adj : G F) {X Y : C} (f : X Y) :

      Auxiliary definition: the abelian coimage and abelian image agree. We still need to check that this agrees with the canonical morphism.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.AbelianOfAdjunction.coimageIsoImage_hom {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) (G : Functor D C) [G.PreservesZeroMorphisms] [Limits.HasCokernels C] [Limits.HasKernels C] [Limits.PreservesFiniteLimits G] [F.PreservesZeroMorphisms] (i : F.comp G Functor.id C) (adj : G F) {X Y : C} (f : X Y) :
        def CategoryTheory.abelianOfAdjunction {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] [Limits.HasFiniteProducts C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) [F.PreservesZeroMorphisms] (G : Functor D C) [G.PreservesZeroMorphisms] [Limits.PreservesFiniteLimits G] (i : F.comp G Functor.id C) (adj : G 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.

        See https://stacks.math.columbia.edu/tag/03A3

        Equations
        Instances For
          def CategoryTheory.abelianOfEquivalence {C : Type u₁} [Category.{v₁, u₁} C] [Preadditive C] [Limits.HasFiniteProducts C] {D : Type u₂} [Category.{v₂, u₂} D] [Abelian D] (F : Functor C D) [F.PreservesZeroMorphisms] [F.IsEquivalence] :

          If C is an additive category equivalent to an abelian category D via a functor that preserves zero morphisms, then C is also abelian.

          Equations
          Instances For
            Equations
            • P.homGroup Q = (equivShrink (P.fromShrinkHoms Q.fromShrinkHoms)).symm.addCommGroup
            theorem CategoryTheory.ShrinkHoms.functor_map_add {C : Type u_1} [Category.{u_2, u_1} C] [LocallySmall.{w, u_2, u_1} C] [Preadditive C] {P Q : C} (f g : P Q) :
            (functor C).map (f + g) = (functor C).map f + (functor C).map g