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₁) [Bicategory B] (C : Type u₂) [Bicategory C] extends CategoryTheory.PrelaxFunctor B C :
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

    Notation for a pseudofunctor between bicategories.

    Equations
      Instances For
        @[simp]
        theorem CategoryTheory.OplaxFunctor.mapComp_naturality_right_app {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b c : B} (f : a b) {g g' : b c} (η : g g') (X : (self.obj a)) :

        Naturality of the lax functoriality constraint, on the right.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.map₂_associator_app {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b c d : B} (f : a b) (g : b c) (h : c d) (X : (self.obj a)) :

        Oplax associativity.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.mapComp_naturality_left_app {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b c : B} {f f' : a b} (η : f f') (g : b c) (X : (self.obj a)) :

        Naturality of the oplax functoriality constraint, on the left.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.mapComp_naturality_left_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (self : OplaxFunctor B C) {a b c : B} {f f' : a b} (η : f f') (g : b c) {Z : self.obj a self.obj c} (h : CategoryStruct.comp (self.map f') (self.map g) Z) :

        Naturality of the oplax functoriality constraint, on the left.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.mapComp_naturality_right_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (self : OplaxFunctor B C) {a b c : B} (f : a b) {g g' : b c} (η : g g') {Z : self.obj a self.obj c} (h : CategoryStruct.comp (self.map f) (self.map g') Z) :

        Naturality of the lax functoriality constraint, on the right.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.map₂_associator_app_assoc {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b c d : B} (f : a b) (g : b c) (h : c d) (X : (self.obj a)) {Z : (self.obj d)} (h✝ : (self.map h).toFunctor.obj ((self.map g).toFunctor.obj ((self.map f).toFunctor.obj X)) Z) :

        Oplax associativity.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.map₂_associator_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (self : OplaxFunctor B C) {a b c d : B} (f : a b) (g : b c) (h : c d) {Z : self.obj a self.obj d} (h✝ : CategoryStruct.comp (self.map f) (CategoryStruct.comp (self.map g) (self.map h)) Z) :

        Oplax associativity.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.mapComp_naturality_right_app_assoc {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b c : B} (f : a b) {g g' : b c} (η : g g') (X : (self.obj a)) {Z : (self.obj c)} (h : (self.map g').toFunctor.obj ((self.map f).toFunctor.obj X) Z) :

        Naturality of the lax functoriality constraint, on the right.

        @[simp]
        theorem CategoryTheory.OplaxFunctor.mapComp_naturality_left_app_assoc {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b c : B} {f f' : a b} (η : f f') (g : b c) (X : (self.obj a)) {Z : (self.obj c)} (h : (self.map g).toFunctor.obj ((self.map f').toFunctor.obj X) Z) :

        Naturality of the oplax functoriality constraint, on the left.

        theorem CategoryTheory.OplaxFunctor.map₂_rightUnitor_app {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b : B} (f : a b) (X : (self.obj a)) :

        Oplax right unity.

        theorem CategoryTheory.OplaxFunctor.map₂_leftUnitor_app {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b : B} (f : a b) (X : (self.obj a)) :

        Oplax left unity.

        Oplax left unity.

        theorem CategoryTheory.OplaxFunctor.map₂_leftUnitor_app_assoc {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b : B} (f : a b) (X : (self.obj a)) {Z : (self.obj b)} (h : (self.map f).toFunctor.obj X Z) :

        Oplax left unity.

        Oplax right unity.

        theorem CategoryTheory.OplaxFunctor.map₂_rightUnitor_app_assoc {B : Type u_1} [Bicategory B] (self : OplaxFunctor B Cat) {a b : B} (f : a b) (X : (self.obj a)) {Z : (self.obj b)} (h : (self.map f).toFunctor.obj X Z) :

        Oplax right unity.

        theorem CategoryTheory.OplaxFunctor.mapComp_assoc_left_app_assoc {B : Type u_1} [Bicategory B] (F : OplaxFunctor B Cat) {a b c d : B} (f : a b) (g : b c) (h : c d) (X : (F.obj a)) {Z : (F.obj d)} (h✝ : (F.map h).toFunctor.obj ((F.map g).toFunctor.obj ((F.map f).toFunctor.obj X)) Z) :

        The identity oplax functor.

        Equations
          Instances For
            @[simp]
            theorem CategoryTheory.OplaxFunctor.id_mapComp (B : Type u₁) [Bicategory B] {a✝ b✝ c✝ : B} (f : a✝ b✝) (g : b✝ c✝) :
            def CategoryTheory.OplaxFunctor.mapId' {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : OplaxFunctor B C) {b : B} (f : b b) (hf : f = CategoryStruct.id b := by cat_disch) :

            More flexible variant of mapId. (See the file Bicategory.Functor.Strict for applications to strict bicategories.)

            Equations
              Instances For
                theorem CategoryTheory.OplaxFunctor.mapId'_eq_mapId {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : OplaxFunctor B C) (b : B) :
                def CategoryTheory.OplaxFunctor.mapComp' {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : OplaxFunctor B C) {b₀ b₁ b₂ : B} (f : b₀ b₁) (g : b₁ b₂) (fg : b₀ b₂) (h : CategoryStruct.comp f g = fg := by cat_disch) :
                F.map fg CategoryStruct.comp (F.map f) (F.map g)

                More flexible variant of mapComp. (See Bicategory.Functor.Strict for applications to strict bicategories.)

                Equations
                  Instances For
                    theorem CategoryTheory.OplaxFunctor.mapComp'_eq_mapComp {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : OplaxFunctor B C) {b₀ b₁ b₂ : B} (f : b₀ b₁) (g : b₁ b₂) :
                    F.mapComp' f g (CategoryStruct.comp f g) = F.mapComp f g
                    def CategoryTheory.OplaxFunctor.comp {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {D : Type u₃} [Bicategory D] (F : OplaxFunctor B C) (G : OplaxFunctor C D) :

                    Composition of oplax functors.

                    Equations
                      Instances For
                        structure CategoryTheory.OplaxFunctor.PseudoCore {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : OplaxFunctor B C) :
                        Type (max (max u₁ v₁) w₂)

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

                        See Pseudofunctor.mkOfOplax.

                        Instances For