Documentation

Mathlib.CategoryTheory.Bicategory.NaturalTransformation

Oplax natural transformations #

Just as there are natural transformations between functors, there are oplax natural transformations between oplax functors. The equality in the naturality of natural transformations is replaced by a specified 2-morphism F.map f ≫ app b ⟶ app a ≫ G.map f in the case of oplax natural transformations.

Main definitions #

structure CategoryTheory.OplaxNatTrans {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.OplaxFunctor B C) (G : CategoryTheory.OplaxFunctor B C) :
Type (max (max (max u₁ v₁) v₂) w₂)

If η is an oplax natural transformation between F and G, we have a 1-morphism η.app a : F.obj a ⟶ G.obj a for each object a : B. We also have a 2-morphism η.naturality f : F.map f ≫ app b ⟶ app a ≫ G.map f for each 1-morphism f : a ⟶ b. These 2-morphisms satisfies the naturality condition, and preserve the identities and the compositions modulo some adjustments of domains and codomains of 2-morphisms.

Instances For
    @[simp]
    theorem CategoryTheory.OplaxNatTrans.naturality_comp_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} (self : CategoryTheory.OplaxNatTrans F G) {a : B} {b : B} {c : B} (f : a b) (g : b c) {Z : (F.toPrelaxFunctor).obj a (G.toPrelaxFunctor).obj c} (h : CategoryTheory.CategoryStruct.comp (self.app a) (CategoryTheory.CategoryStruct.comp ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)) Z) :
    CategoryTheory.CategoryStruct.comp (self.naturality (CategoryTheory.CategoryStruct.comp f g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (self.app a) (G.mapComp f g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (F.mapComp f g) (self.app c)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) ((F.toPrelaxFunctor).map g) (self.app c)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (self.naturality g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (self.app b) ((G.toPrelaxFunctor).map g)).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (self.naturality f) ((G.toPrelaxFunctor).map g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator (self.app a) ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)).hom h)))))
    @[simp]
    theorem CategoryTheory.OplaxNatTrans.naturality_naturality_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} (self : CategoryTheory.OplaxNatTrans F G) {a : B} {b : B} {f : a b} {g : a b} (η : f g) {Z : (F.toPrelaxFunctor).obj a (G.toPrelaxFunctor).obj b} (h : CategoryTheory.CategoryStruct.comp (self.app a) ((G.toPrelaxFunctor).map g) Z) :
    CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (F.toPrelaxFunctor.map₂ η) (self.app b)) (CategoryTheory.CategoryStruct.comp (self.naturality g) h) = CategoryTheory.CategoryStruct.comp (self.naturality f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (self.app a) (G.toPrelaxFunctor.map₂ η)) h)
    @[simp]

    The identity oplax natural transformation.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_naturality_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {G : CategoryTheory.OplaxFunctor B C} {H : CategoryTheory.OplaxFunctor B C} (θ : CategoryTheory.OplaxNatTrans G H) {a : B} {b : B} {a' : C} (f : a' (G.toPrelaxFunctor).obj a) {g : a b} {h : a b} (β : g h✝) {Z : a' (H.toPrelaxFunctor).obj b} (h : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (θ.app a) ((H.toPrelaxFunctor).map h✝)) Z) :
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_naturality_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} (η : CategoryTheory.OplaxNatTrans F G) {a : B} {b : B} {a' : C} {f : a b} {g : a b} (β : f g) (h : (G.toPrelaxFunctor).obj b a') {Z : (F.toPrelaxFunctor).obj a a'} (h : CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp (η.app a) ((G.toPrelaxFunctor).map g)) h✝ Z) :
      @[simp]
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_comp_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {G : CategoryTheory.OplaxFunctor B C} {H : CategoryTheory.OplaxFunctor B C} (θ : CategoryTheory.OplaxNatTrans G H) {a : B} {b : B} {c : B} {a' : C} (f : a' (G.toPrelaxFunctor).obj a) (g : a b) (h : b c) {Z : a' (H.toPrelaxFunctor).obj c} (h : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (θ.app a) (CategoryTheory.CategoryStruct.comp ((H.toPrelaxFunctor).map g) ((H.toPrelaxFunctor).map h✝))) Z) :
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerLeft_naturality_comp {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {G : CategoryTheory.OplaxFunctor B C} {H : CategoryTheory.OplaxFunctor B C} (θ : CategoryTheory.OplaxNatTrans G H) {a : B} {b : B} {c : B} {a' : C} (f : a' (G.toPrelaxFunctor).obj a) (g : a b) (h : b c) :
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_comp_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} (η : CategoryTheory.OplaxNatTrans F G) {a : B} {b : B} {c : B} {a' : C} (f : a b) (g : b c) (h : (G.toPrelaxFunctor).obj c a') {Z : (F.toPrelaxFunctor).obj a a'} (h : CategoryTheory.CategoryStruct.comp (η.app a) (CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)) h✝) Z) :
      CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (η.naturality (CategoryTheory.CategoryStruct.comp f g)) h✝) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator (η.app a) ((G.toPrelaxFunctor).map (CategoryTheory.CategoryStruct.comp f g)) h✝).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (η.app a) (CategoryTheory.Bicategory.whiskerRight (G.mapComp f g) h✝)) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.whiskerRight (F.mapComp f g) (η.app c)) h✝) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) ((F.toPrelaxFunctor).map g) (η.app c)).hom h✝) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (CategoryTheory.CategoryStruct.comp ((F.toPrelaxFunctor).map g) (η.app c)) h✝).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (CategoryTheory.Bicategory.whiskerRight (η.naturality g) h✝)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (CategoryTheory.CategoryStruct.comp (η.app b) ((G.toPrelaxFunctor).map g)) h✝).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (η.app b) ((G.toPrelaxFunctor).map g)).inv h✝) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.whiskerRight (η.naturality f) ((G.toPrelaxFunctor).map g)) h✝) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.associator (η.app a) ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)).hom h✝) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator (η.app a) (CategoryTheory.CategoryStruct.comp ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)) h✝).hom h))))))))
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_comp {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} (η : CategoryTheory.OplaxNatTrans F G) {a : B} {b : B} {c : B} {a' : C} (f : a b) (g : b c) (h : (G.toPrelaxFunctor).obj c a') :
      CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (η.naturality (CategoryTheory.CategoryStruct.comp f g)) h) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator (η.app a) ((G.toPrelaxFunctor).map (CategoryTheory.CategoryStruct.comp f g)) h).hom (CategoryTheory.Bicategory.whiskerLeft (η.app a) (CategoryTheory.Bicategory.whiskerRight (G.mapComp f g) h))) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.whiskerRight (F.mapComp f g) (η.app c)) h) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) ((F.toPrelaxFunctor).map g) (η.app c)).hom h) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (CategoryTheory.CategoryStruct.comp ((F.toPrelaxFunctor).map g) (η.app c)) h).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (CategoryTheory.Bicategory.whiskerRight (η.naturality g) h)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (CategoryTheory.CategoryStruct.comp (η.app b) ((G.toPrelaxFunctor).map g)) h).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (η.app b) ((G.toPrelaxFunctor).map g)).inv h) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.whiskerRight (η.naturality f) ((G.toPrelaxFunctor).map g)) h) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (CategoryTheory.Bicategory.associator (η.app a) ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)).hom h) (CategoryTheory.Bicategory.associator (η.app a) (CategoryTheory.CategoryStruct.comp ((G.toPrelaxFunctor).map f) ((G.toPrelaxFunctor).map g)) h).hom)))))))
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.whiskerRight_naturality_id_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} (η : CategoryTheory.OplaxNatTrans F G) {a : B} {a' : C} (f : (G.toPrelaxFunctor).obj a a') {Z : (F.toPrelaxFunctor).obj a a'} (h : CategoryTheory.CategoryStruct.comp (η.app a) (CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.id ((G.toPrelaxFunctor).obj a)) f) Z) :
      @[simp]
      theorem CategoryTheory.OplaxNatTrans.vcomp_naturality {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {H : CategoryTheory.OplaxFunctor B C} (η : CategoryTheory.OplaxNatTrans F G) (θ : CategoryTheory.OplaxNatTrans G H) {a : B} {b : B} (f : a b) :
      (CategoryTheory.OplaxNatTrans.vcomp η θ).naturality f = CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator ((F.toPrelaxFunctor).map f) (η.app b) (θ.app b)).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (η.naturality f) (θ.app b)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator (η.app a) ((G.toPrelaxFunctor).map f) (θ.app b)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (η.app a) (θ.naturality f)) (CategoryTheory.Bicategory.associator (η.app a) (θ.app a) ((H.toPrelaxFunctor).map f)).inv)))

      Vertical composition of oplax natural transformations.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.OplaxNatTrans.Modification.ext_iff {B : Type u₁} :
        ∀ {inst : CategoryTheory.Bicategory B} {C : Type u₂} {inst_1 : CategoryTheory.Bicategory C} {F G : CategoryTheory.OplaxFunctor B C} {η θ : F G} (x y : CategoryTheory.OplaxNatTrans.Modification η θ), x = y x.app = y.app
        theorem CategoryTheory.OplaxNatTrans.Modification.ext {B : Type u₁} :
        ∀ {inst : CategoryTheory.Bicategory B} {C : Type u₂} {inst_1 : CategoryTheory.Bicategory C} {F G : CategoryTheory.OplaxFunctor B C} {η θ : F G} (x y : CategoryTheory.OplaxNatTrans.Modification η θ), x.app = y.appx = y

        A modification Γ between oplax natural transformations η and θ consists of a family of 2-morphisms Γ.app a : η.app a ⟶ θ.app a, which satisfies the equation (F.map f ◁ app b) ≫ θ.naturality f = η.naturality f ≫ (app a ▷ G.map f) for each 1-morphism f : a ⟶ b.

        Instances For
          @[simp]
          theorem CategoryTheory.OplaxNatTrans.Modification.naturality_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {η : F G} {θ : F G} (self : CategoryTheory.OplaxNatTrans.Modification η θ) {a : B} {b : B} (f : a b) {Z : (F.toPrelaxFunctor).obj a (G.toPrelaxFunctor).obj b} (h : CategoryTheory.CategoryStruct.comp (θ.app a) ((G.toPrelaxFunctor).map f) Z) :
          CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (self.app b)) (CategoryTheory.CategoryStruct.comp (θ.naturality f) h) = CategoryTheory.CategoryStruct.comp (η.naturality f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (self.app a) ((G.toPrelaxFunctor).map f)) h)
          @[simp]

          Category structure on the oplax natural transformations between OplaxFunctors.

          Equations
          theorem CategoryTheory.OplaxNatTrans.ext {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {α : F G} {β : F G} {m : α β} {n : α β} (w : ∀ (b : B), m.app b = n.app b) :
          m = n
          @[simp]
          theorem CategoryTheory.OplaxNatTrans.Modification.comp_app' {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {X : B} {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {α : F G} {β : F G} {γ : F G} (m : α β) (n : β γ) :
          @[simp]
          theorem CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents_hom_app {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {η : F G} {θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (app b).hom) (θ.naturality f) = CategoryTheory.CategoryStruct.comp (η.naturality f) (CategoryTheory.Bicategory.whiskerRight (app a).hom ((G.toPrelaxFunctor).map f))) (a : B) :
          (CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents app naturality).hom.app a = (app a).hom
          @[simp]
          theorem CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents_inv_app {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {η : F G} {θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (app b).hom) (θ.naturality f) = CategoryTheory.CategoryStruct.comp (η.naturality f) (CategoryTheory.Bicategory.whiskerRight (app a).hom ((G.toPrelaxFunctor).map f))) (a : B) :
          (CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents app naturality).inv.app a = (app a).inv
          def CategoryTheory.OplaxNatTrans.ModificationIso.ofComponents {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} {G : CategoryTheory.OplaxFunctor B C} {η : F G} {θ : F G} (app : (a : B) → η.app a θ.app a) (naturality : ∀ {a b : B} (f : a b), CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft ((F.toPrelaxFunctor).map f) (app b).hom) (θ.naturality f) = CategoryTheory.CategoryStruct.comp (η.naturality f) (CategoryTheory.Bicategory.whiskerRight (app a).hom ((G.toPrelaxFunctor).map f))) :
          η θ

          Construct a modification isomorphism between oplax natural transformations by giving object level isomorphisms, and checking naturality only in the forward direction.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For