Documentation

Mathlib.CategoryTheory.Bicategory.NaturalTransformation.Pseudo

Strong transformations of pseudofunctors #

There are three types of transformations between pseudofunctors, depending on the direction or invertibility of the 2-morphism witnessing the naturality condition.

In this file we define strong transformations, which require the 2-morphism to be invertible.

Main definitions #

Using this we obtain a CategoryStruct on pseudofunctors, where the arrows are given by strong transformations. See Pseudofunctor.categoryStruct.

References #

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

A strong transformation between pseudofunctors F and G is a natural transformation that is "natural up to 2-isomorphisms". More precisely, it consists of the following:

  • a 1-morphism η.app a : F.obj a ⟶ G.obj a for each object a : B.
  • a 2-isomorphism η.naturality f : F.map f ≫ app b ≅ app a ≫ G.map f for each 1-morphism f : a ⟶ b.
  • These 2-isomorphisms satisfy 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.Pseudofunctor.StrongTrans.naturality_naturality_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : Pseudofunctor B C} (self : F.StrongTrans G) {a b : B} {f g : a b} (η : f g) {Z : F.obj a G.obj b} (h : CategoryStruct.comp (self.app a) (G.map g) Z) :

    The underlying oplax transformation of a strong transformation.

    Equations
    • η.toOplax = { app := η.app, naturality := fun {a b : B} (f : a b) => η.naturality f, naturality_naturality := , naturality_id := , naturality_comp := }
    Instances For
      @[simp]
      theorem CategoryTheory.Pseudofunctor.StrongTrans.toOplax_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : Pseudofunctor B C} (η : F.StrongTrans G) (a : B) :
      η.toOplax.app a = η.app a
      @[simp]
      theorem CategoryTheory.Pseudofunctor.StrongTrans.toOplax_naturality {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : Pseudofunctor B C} (η : F.StrongTrans G) {a✝ b✝ : B} (f : a✝ b✝) :

      Construct a strong transformation of pseudofunctors from a strong transformation of the underlying oplax functors.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Pseudofunctor.StrongTrans.mkOfOplax_naturality {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : Pseudofunctor B C} (η : Oplax.StrongTrans F.toOplax G.toOplax) {a✝ b✝ : B} (f : a✝ b✝) :
        @[simp]

        The identity strong transformation.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def CategoryTheory.Pseudofunctor.StrongTrans.vcomp {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G H : Pseudofunctor B C} (η : F.StrongTrans G) (θ : G.StrongTrans H) :

          Vertical composition of strong transformations.

          Equations
          Instances For

            CategoryStruct on Pseudofunctor B C where the (1-)morphisms are given by strong transformations.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.Pseudofunctor.StrongTrans.categoryStruct_comp_naturality_inv {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {X✝ Y✝ Z✝ : Pseudofunctor B C} (η : X✝.StrongTrans Y✝) (θ : Y✝.StrongTrans Z✝) {a✝ b✝ : B} (f : a✝ b✝) :
              @[simp]
              theorem CategoryTheory.Pseudofunctor.StrongTrans.categoryStruct_comp_naturality_hom {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {X✝ Y✝ Z✝ : Pseudofunctor B C} (η : X✝.StrongTrans Y✝) (θ : Y✝.StrongTrans Z✝) {a✝ b✝ : B} (f : a✝ b✝) :
              @[simp]
              theorem CategoryTheory.Pseudofunctor.StrongTrans.comp_app {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G H : Pseudofunctor B C} (η : F G) (θ : G H) (a : B) :
              theorem CategoryTheory.Pseudofunctor.StrongTrans.whiskerLeft_naturality_naturality_app {B : Type u_1} [Bicategory B] {G H : Pseudofunctor B Cat} (θ : G H) {a b : B} {a' : Cat} (f : a' G.obj a) {g h : a b} (β : g h) (X : a') :
              CategoryStruct.comp ((θ.app b).map ((G.map₂ β).app (f.obj X))) ((θ.naturality h).hom.app (f.obj X)) = CategoryStruct.comp ((θ.naturality g).hom.app (f.obj X)) ((H.map₂ β).app ((θ.app a).obj (f.obj X)))
              theorem CategoryTheory.Pseudofunctor.StrongTrans.whiskerRight_naturality_naturality_app {B : Type u_1} [Bicategory B] {F G : Pseudofunctor B Cat} (η : F G) {a b : B} {a' : Cat} {f g : a b} (β : f g) (h : G.obj b a') (X : (F.obj a)) :
              CategoryStruct.comp (h.map ((η.app b).map ((F.map₂ β).app X))) (h.map ((η.naturality g).hom.app X)) = CategoryStruct.comp (h.map ((η.naturality f).hom.app X)) (CategoryStruct.comp ((Bicategory.associator (η.app a) (G.map f) h).hom.app X) (CategoryStruct.comp (h.map ((G.map₂ β).app ((η.app a).obj X))) ((Bicategory.associator (η.app a) (G.map g) h).inv.app X)))
              theorem CategoryTheory.Pseudofunctor.StrongTrans.whiskerLeft_naturality_comp_app {B : Type u_1} [Bicategory B] {G H : Pseudofunctor B Cat} (θ : G H) {a b c : B} {a' : Cat} (f : a' G.obj a) (g : a b) (h : b c) (X : a') :
              CategoryStruct.comp ((θ.naturality (CategoryStruct.comp g h)).hom.app (f.obj X)) ((H.mapComp g h).hom.app ((θ.app a).obj (f.obj X))) = CategoryStruct.comp ((θ.app c).map ((G.mapComp g h).hom.app (f.obj X))) (CategoryStruct.comp ((Bicategory.associator (G.map g) (G.map h) (θ.app c)).hom.app (f.obj X)) (CategoryStruct.comp ((θ.naturality h).hom.app ((G.map g).obj (f.obj X))) (CategoryStruct.comp ((Bicategory.associator (G.map g) (θ.app b) (H.map h)).inv.app (f.obj X)) (CategoryStruct.comp ((H.map h).map ((θ.naturality g).hom.app (f.obj X))) ((Bicategory.associator (θ.app a) (H.map g) (H.map h)).hom.app (f.obj X))))))
              @[simp]
              theorem CategoryTheory.Pseudofunctor.StrongTrans.whiskerRight_naturality_comp_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {F G : Pseudofunctor B C} (η : F G) {a b c : B} {a' : C} (f : a b) (g : b c) (h : G.obj c a') {Z : F.obj a a'} (h✝ : CategoryStruct.comp (η.app a) (CategoryStruct.comp (CategoryStruct.comp (G.map f) (G.map g)) h) Z) :
              theorem CategoryTheory.Pseudofunctor.StrongTrans.whiskerRight_naturality_comp_app {B : Type u_1} [Bicategory B] {F G : Pseudofunctor B Cat} (η : F G) {a b c : B} {a' : Cat} (f : a b) (g : b c) (h : G.obj c a') (X : (F.obj a)) :
              theorem CategoryTheory.Pseudofunctor.StrongTrans.whiskerLeft_naturality_id_app {B : Type u_1} [Bicategory B] {G H : Pseudofunctor B Cat} (θ : G H) {a : B} {a' : Cat} (f : a' G.obj a) (X : a') :