Documentation

Mathlib.CategoryTheory.Bicategory.Functor.Oplax

Oplax functors #

An oplax functor F between bicategories B and C consists of

Main definitions #

structure CategoryTheory.OplaxFunctor (B : Type u₁) [CategoryTheory.Bicategory B] (C : Type u₂) [CategoryTheory.Bicategory C] extends CategoryTheory.PrelaxFunctor , CategoryTheory.PrelaxFunctorStruct , Prefunctor :
Type (max (max (max (max (max u₁ u₂) v₁) v₂) w₁) w₂)

An oplax functor F between bicategories B and C consists of a function between objects F.obj, a function between 1-morphisms F.map, and a function between 2-morphisms F.map₂.

Unlike functors between categories, F.map do not need to strictly commute with the composition, and do not need to strictly preserve the identity. Instead, there are specified 2-morphisms F.map (𝟙 a) ⟶ 𝟙 (F.obj a) and F.map (f ≫ g) ⟶ F.map f ≫ F.map g.

F.map₂ strictly commute with compositions and preserve the identity. They also preserve the associator, the left unitor, and the right unitor modulo some adjustments of domains and codomains of 2-morphisms.

Instances For
    @[simp]
    theorem CategoryTheory.OplaxFunctor.mapComp_naturality_left {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (self : CategoryTheory.OplaxFunctor B C) {a : B} {b : B} {c : B} {f : a b} {f' : a b} (η : f f') (g : b c) :

    Naturality of the oplax functoriality constraint, on the left.

    @[simp]
    theorem CategoryTheory.OplaxFunctor.mapComp_naturality_right {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (self : CategoryTheory.OplaxFunctor B C) {a : B} {b : B} {c : B} (f : a b) {g : b c} {g' : b c} (η : g g') :
    CategoryTheory.CategoryStruct.comp (self.map₂ (CategoryTheory.Bicategory.whiskerLeft f η)) (self.mapComp f g') = CategoryTheory.CategoryStruct.comp (self.mapComp f g) (CategoryTheory.Bicategory.whiskerLeft (self.map f) (self.map₂ η))

    Naturality of the lax functoriality constraight, on the right.

    @[simp]

    Oplax associativity.

    @[simp]
    theorem CategoryTheory.OplaxFunctor.map₂_associator_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (self : CategoryTheory.OplaxFunctor B C) {a : B} {b : B} {c : B} {d : B} (f : a b) (g : b c) (h : c d) {Z : self.obj a self.obj d} (h : CategoryTheory.CategoryStruct.comp (self.map f) (CategoryTheory.CategoryStruct.comp (self.map g) (self.map h✝)) Z) :
    @[simp]
    theorem CategoryTheory.OplaxFunctor.mapComp_naturality_right_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (self : CategoryTheory.OplaxFunctor B C) {a : B} {b : B} {c : B} (f : a b) {g : b c} {g' : b c} (η : g g') {Z : self.obj a self.obj c} (h : CategoryTheory.CategoryStruct.comp (self.map f) (self.map g') Z) :
    @[simp]
    theorem CategoryTheory.OplaxFunctor.mapComp_naturality_left_assoc {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (self : CategoryTheory.OplaxFunctor B C) {a : B} {b : B} {c : B} {f : a b} {f' : a b} (η : f f') (g : b c) {Z : self.obj a self.obj c} (h : CategoryTheory.CategoryStruct.comp (self.map f') (self.map g) Z) :
    @[simp]
    theorem CategoryTheory.OplaxFunctor.mapComp_naturality_right_app {B : Type u_1} [CategoryTheory.Bicategory B] (self : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} {c : B} (f : a b) {g : b c} {g' : b c} (η : g g') (X : (self.obj a)) :
    CategoryTheory.CategoryStruct.comp ((self.map₂ (CategoryTheory.Bicategory.whiskerLeft f η)).app X) ((self.mapComp f g').app X) = CategoryTheory.CategoryStruct.comp ((self.mapComp f g).app X) ((self.map₂ η).app ((self.map f).obj X))
    @[simp]
    theorem CategoryTheory.OplaxFunctor.map₂_associator_app {B : Type u_1} [CategoryTheory.Bicategory B] (self : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} {c : B} {d : B} (f : a b) (g : b c) (h : c d) (X : (self.obj a)) :
    CategoryTheory.CategoryStruct.comp ((self.map₂ (CategoryTheory.Bicategory.associator f g h).hom).app X) (CategoryTheory.CategoryStruct.comp ((self.mapComp f (CategoryTheory.CategoryStruct.comp g h)).app X) ((self.mapComp g h).app ((self.map f).obj X))) = CategoryTheory.CategoryStruct.comp ((self.mapComp (CategoryTheory.CategoryStruct.comp f g) h).app X) (CategoryTheory.CategoryStruct.comp ((self.map h).map ((self.mapComp f g).app X)) ((CategoryTheory.Bicategory.associator (self.map f) (self.map g) (self.map h)).hom.app X))
    @[simp]
    theorem CategoryTheory.OplaxFunctor.mapComp_naturality_left_app {B : Type u_1} [CategoryTheory.Bicategory B] (self : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} {c : B} {f : a b} {f' : a b} (η : f f') (g : b c) (X : (self.obj a)) :
    CategoryTheory.CategoryStruct.comp ((self.map₂ (CategoryTheory.Bicategory.whiskerRight η g)).app X) ((self.mapComp f' g).app X) = CategoryTheory.CategoryStruct.comp ((self.mapComp f g).app X) ((self.map g).map ((self.map₂ η).app X))
    theorem CategoryTheory.OplaxFunctor.map₂_rightUnitor_app {B : Type u_1} [CategoryTheory.Bicategory B] (self : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} (f : a b) (X : (self.obj a)) :
    (self.map₂ (CategoryTheory.Bicategory.rightUnitor f).hom).app X = CategoryTheory.CategoryStruct.comp ((self.mapComp f (CategoryTheory.CategoryStruct.id b)).app X) (CategoryTheory.CategoryStruct.comp ((self.mapId b).app ((self.map f).obj X)) ((CategoryTheory.Bicategory.rightUnitor (self.map f)).hom.app X))
    theorem CategoryTheory.OplaxFunctor.map₂_leftUnitor_app {B : Type u_1} [CategoryTheory.Bicategory B] (self : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} (f : a b) (X : (self.obj a)) :
    (self.map₂ (CategoryTheory.Bicategory.leftUnitor f).hom).app X = CategoryTheory.CategoryStruct.comp ((self.mapComp (CategoryTheory.CategoryStruct.id a) f).app X) (CategoryTheory.CategoryStruct.comp ((self.map f).map ((self.mapId a).app X)) ((CategoryTheory.Bicategory.leftUnitor (self.map f)).hom.app X))
    theorem CategoryTheory.OplaxFunctor.mapComp_assoc_right_app {B : Type u_1} [CategoryTheory.Bicategory B] (F : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} {c : B} {d : B} (f : a b) (g : b c) (h : c d) (X : (F.obj a)) :
    CategoryTheory.CategoryStruct.comp ((F.mapComp f (CategoryTheory.CategoryStruct.comp g h)).app X) ((F.mapComp g h).app ((F.map f).obj X)) = CategoryTheory.CategoryStruct.comp ((F.map₂ (CategoryTheory.Bicategory.associator f g h).inv).app X) (CategoryTheory.CategoryStruct.comp ((F.mapComp (CategoryTheory.CategoryStruct.comp f g) h).app X) (CategoryTheory.CategoryStruct.comp ((F.map h).map ((F.mapComp f g).app X)) ((CategoryTheory.Bicategory.associator (F.map f) (F.map g) (F.map h)).hom.app X)))
    theorem CategoryTheory.OplaxFunctor.mapComp_assoc_left_app {B : Type u_1} [CategoryTheory.Bicategory B] (F : CategoryTheory.OplaxFunctor B CategoryTheory.Cat) {a : B} {b : B} {c : B} {d : B} (f : a b) (g : b c) (h : c d) (X : (F.obj a)) :
    CategoryTheory.CategoryStruct.comp ((F.mapComp (CategoryTheory.CategoryStruct.comp f g) h).app X) ((F.map h).map ((F.mapComp f g).app X)) = CategoryTheory.CategoryStruct.comp ((F.map₂ (CategoryTheory.Bicategory.associator f g h).hom).app X) (CategoryTheory.CategoryStruct.comp ((F.mapComp f (CategoryTheory.CategoryStruct.comp g h)).app X) (CategoryTheory.CategoryStruct.comp ((F.mapComp g h).app ((F.map f).obj X)) ((CategoryTheory.Bicategory.associator (F.map f) (F.map g) (F.map h)).inv.app X)))

    The identity oplax functor.

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

      Composition of oplax functors.

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

        A structure on an oplax functor that promotes an oplax functor to a pseudofunctor.

        See Pseudofunctor.mkOfOplax.

        Instances For
          @[simp]
          theorem CategoryTheory.OplaxFunctor.PseudoCore.mapIdIso_hom {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} (self : F.PseudoCore) {a : B} :
          (self.mapIdIso a).hom = F.mapId a

          mapIdIso gives rise to the oplax unity constraint

          @[simp]
          theorem CategoryTheory.OplaxFunctor.PseudoCore.mapCompIso_hom {B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {F : CategoryTheory.OplaxFunctor B C} (self : F.PseudoCore) {a : B} {b : B} {c : B} (f : a b) (g : b c) :
          (self.mapCompIso f g).hom = F.mapComp f g

          mapCompIso gives rise to the oplax functoriality constraint