Documentation

Mathlib.CategoryTheory.Adjunction.Additive

Adjunctions between additive functors. #

This provides some results and constructions for adjunctions between functors on preadditive categories:

def CategoryTheory.Adjunction.homAddEquiv {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) :
(F.obj X โŸถ Y) โ‰ƒ+ (X โŸถ G.obj Y)

If we have an adjunction adj : F โŠฃ G of functors between preadditive categories, and if F is additive, then the hom set equivalence upgrades to an AddEquiv. Note that F is additive if and only if G is, by Adjunction.right_adjoint_additive and Adjunction.left_adjoint_additive.

Instances For
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_apply {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f : F.obj X โŸถ Y) :
    (adj.homAddEquiv X Y) f = (adj.homEquiv X Y) f
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_symm_apply {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f : X โŸถ G.obj Y) :
    (adj.homAddEquiv X Y).symm f = (adj.homEquiv X Y).symm f
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_zero {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) :
    (adj.homEquiv X Y) 0 = 0
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_add {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f f' : F.obj X โŸถ Y) :
    (adj.homEquiv X Y) (f + f') = (adj.homEquiv X Y) f + (adj.homEquiv X Y) f'
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_sub {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f f' : F.obj X โŸถ Y) :
    (adj.homEquiv X Y) (f - f') = (adj.homEquiv X Y) f - (adj.homEquiv X Y) f'
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_neg {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f : F.obj X โŸถ Y) :
    (adj.homEquiv X Y) (-f) = -(adj.homEquiv X Y) f
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_symm_zero {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) :
    (adj.homEquiv X Y).symm 0 = 0
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_symm_add {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f f' : X โŸถ G.obj Y) :
    (adj.homEquiv X Y).symm (f + f') = (adj.homEquiv X Y).symm f + (adj.homEquiv X Y).symm f'
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_symm_sub {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f f' : X โŸถ G.obj Y) :
    (adj.homEquiv X Y).symm (f - f') = (adj.homEquiv X Y).symm f - (adj.homEquiv X Y).symm f'
    @[simp]
    theorem CategoryTheory.Adjunction.homAddEquiv_symm_neg {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : C) (Y : D) (f : X โŸถ G.obj Y) :
    (adj.homEquiv X Y).symm (-f) = -(adj.homEquiv X Y).symm f

    If we have an adjunction adj : F โŠฃ G of functors between preadditive categories, and if F is additive, then the hom set equivalence upgrades to an isomorphism between G โ‹™ preadditiveYoneda and preadditiveYoneda โ‹™ F, once we throw in the necessary universe lifting functors. Note that F is additive if and only if G is, by Adjunction.right_adjoint_additive and Adjunction.left_adjoint_additive.

    Instances For
      theorem CategoryTheory.Adjunction.compPreadditiveYonedaIso_hom_app_app_apply {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : Cแต’แต–) (Y : D) (a : ULift.{max vโ‚ vโ‚‚, vโ‚} (Opposite.unop X โŸถ G.obj Y)) :
      theorem CategoryTheory.Adjunction.compPreadditiveYonedaIso_inv_app_app_apply {C : Type uโ‚} {D : Type uโ‚‚} [Category.{vโ‚, uโ‚} C] [Category.{vโ‚‚, uโ‚‚} D] [Preadditive C] [Preadditive D] {F : Functor C D} {G : Functor D C} (adj : F โŠฃ G) [F.Additive] (X : Cแต’แต–) (Y : D) (a : ULift.{max vโ‚ vโ‚‚, vโ‚‚} (F.obj (Opposite.unop X) โŸถ Y)) :