Documentation

Mathlib.CategoryTheory.Bicategory.Functor.Prelax

Prelax functors #

This file defines lax prefunctors and prelax functors between bicategories. The point of these definitions is to provide some common API that will be helpful in the development of both lax and oplax functors.

Main definitions #

PrelaxFunctorStruct B C:

A PrelaxFunctorStruct F between quivers B and C, such that both have been equipped with quiver structures on the hom-types, consists of

PrelaxFunctor B C:

A prelax functor F between bicategories B and C is a PrelaxFunctorStruct such that the associated prefunctors between the hom types are all functors. In other words, it is a PrelaxFunctorStruct that satisfies

mkOfHomFunctor: constructs a PrelaxFunctor from a map on objects and functors between the corresponding hom types.

structure CategoryTheory.PrelaxFunctorStruct (B : Type u₁) [Quiver B] [(a b : B) → Quiver (a b)] (C : Type u₂) [Quiver C] [(a b : C) → Quiver (a b)] extends B ⥤q C :
Type (max (max (max (max (max u₁ u₂) v₁) v₂) w₁) w₂)

A PrelaxFunctorStruct between bicategories consists of functions between objects, 1-morphisms, and 2-morphisms. This structure will be extended to define PrelaxFunctor.

  • obj : BC
  • map {X Y : B} : (X Y) → (self.obj X self.obj Y)
  • map₂ {a b : B} {f g : a b} : (f g) → (self.map f self.map g)

    The action of a lax prefunctor on 2-morphisms.

Instances For
    def CategoryTheory.PrelaxFunctorStruct.mkOfHomPrefunctors {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] (F : BC) (F' : (a b : B) → (a b) ⥤q (F a F b)) :

    Construct a lax prefunctor from a map on objects, and prefunctors between the corresponding hom types.

    Equations
      Instances For
        @[simp]
        theorem CategoryTheory.PrelaxFunctorStruct.mkOfHomPrefunctors_toPrefunctor_map {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] (F : BC) (F' : (a b : B) → (a b) ⥤q (F a F b)) {a b : B} (a✝ : a b) :
        (mkOfHomPrefunctors F F').map a✝ = (F' a b).obj a✝
        @[simp]
        theorem CategoryTheory.PrelaxFunctorStruct.mkOfHomPrefunctors_map₂ {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] (F : BC) (F' : (a b : B) → (a b) ⥤q (F a F b)) {a b : B} {f✝ g✝ : a b} (a✝ : f✝ g✝) :
        (mkOfHomPrefunctors F F').map₂ a✝ = (F' a b).map a✝
        @[simp]
        theorem CategoryTheory.PrelaxFunctorStruct.mkOfHomPrefunctors_toPrefunctor_obj {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] (F : BC) (F' : (a b : B) → (a b) ⥤q (F a F b)) (a✝ : B) :
        (mkOfHomPrefunctors F F').obj a✝ = F a✝
        def CategoryTheory.PrelaxFunctorStruct.id (B : Type u₁) [Quiver B] [(a b : B) → Quiver (a b)] :

        The identity lax prefunctor.

        Equations
          Instances For
            @[simp]
            theorem CategoryTheory.PrelaxFunctorStruct.id_toPrefunctor (B : Type u₁) [Quiver B] [(a b : B) → Quiver (a b)] :
            @[simp]
            theorem CategoryTheory.PrelaxFunctorStruct.id_map₂ (B : Type u₁) [Quiver B] [(a b : B) → Quiver (a b)] {a✝ b✝ : B} {f✝ g✝ : a✝ b✝} (η : f✝ g✝) :
            (id B).map₂ η = η
            Equations
              def CategoryTheory.PrelaxFunctorStruct.comp {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] {D : Type u₃} [Quiver D] [(a b : D) → Quiver (a b)] (F : PrelaxFunctorStruct B C) (G : PrelaxFunctorStruct C D) :

              Composition of lax prefunctors.

              Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.PrelaxFunctorStruct.comp_map₂ {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] {D : Type u₃} [Quiver D] [(a b : D) → Quiver (a b)] (F : PrelaxFunctorStruct B C) (G : PrelaxFunctorStruct C D) {a✝ b✝ : B} {f✝ g✝ : a✝ b✝} (η : f✝ g✝) :
                  (F.comp G).map₂ η = G.map₂ (F.map₂ η)
                  @[simp]
                  theorem CategoryTheory.PrelaxFunctorStruct.comp_toPrefunctor {B : Type u₁} [Quiver B] [(a b : B) → Quiver (a b)] {C : Type u₂} [Quiver C] [(a b : C) → Quiver (a b)] {D : Type u₃} [Quiver D] [(a b : D) → Quiver (a b)] (F : PrelaxFunctorStruct B C) (G : PrelaxFunctorStruct C D) :
                  structure CategoryTheory.PrelaxFunctor (B : Type u₁) [Bicategory B] (C : Type u₂) [Bicategory C] extends CategoryTheory.PrelaxFunctorStruct B C :
                  Type (max (max (max (max (max u₁ u₂) v₁) v₂) w₁) w₂)

                  A prelax functor between bicategories is a lax prefunctor such that map₂ is a functor. This structure will be extended to define LaxFunctor and OplaxFunctor.

                  Instances For
                    theorem CategoryTheory.PrelaxFunctor.map₂_comp_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (self : PrelaxFunctor B C) {a b : B} {f g h : a b} (η : f g) (θ : g h) {Z : self.obj a self.obj b} (h✝ : self.map h Z) :
                    def CategoryTheory.PrelaxFunctor.mkOfHomFunctors {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : BC) (F' : (a b : B) → Functor (a b) (F a F b)) :

                    Construct a prelax functor from a map on objects, and functors between the corresponding hom types.

                    Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.PrelaxFunctor.mkOfHomFunctors_toPrelaxFunctorStruct {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : BC) (F' : (a b : B) → Functor (a b) (F a F b)) :

                        The identity prelax functor.

                        Equations
                          Instances For
                            def CategoryTheory.PrelaxFunctor.comp {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] {D : Type u₃} [Bicategory D] (F : PrelaxFunctor B C) (G : PrelaxFunctor C D) :

                            Composition of prelax functors.

                            Equations
                              Instances For
                                def CategoryTheory.PrelaxFunctor.mapFunctor {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) (a b : B) :
                                Functor (a b) (F.obj a F.obj b)

                                Function between 1-morphisms as a functor.

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.PrelaxFunctor.mapFunctor_map {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) (a b : B) {X✝ Y✝ : a b} (η : X✝ Y✝) :
                                    (F.mapFunctor a b).map η = F.map₂ η
                                    @[simp]
                                    theorem CategoryTheory.PrelaxFunctor.mapFunctor_obj {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) (a b : B) (f : a b) :
                                    (F.mapFunctor a b).obj f = F.map f
                                    @[simp]
                                    theorem CategoryTheory.PrelaxFunctor.mkOfHomFunctors_mapFunctor {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : BC) (F' : (a b : B) → Functor (a b) (F a F b)) (a b : B) :
                                    (mkOfHomFunctors F F').mapFunctor a b = F' a b
                                    @[reducible, inline]
                                    abbrev CategoryTheory.PrelaxFunctor.map₂Iso {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) :
                                    F.map f F.map g

                                    A prelaxfunctor F sends 2-isomorphisms η : f ≅ f to 2-isomorphisms F.map f ≅ F.map g.

                                    Equations
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.PrelaxFunctor.map₂Iso_hom {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) :
                                        (F.map₂Iso η).hom = F.map₂ η.hom
                                        @[simp]
                                        theorem CategoryTheory.PrelaxFunctor.map₂Iso_inv {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) :
                                        (F.map₂Iso η).inv = F.map₂ η.inv
                                        instance CategoryTheory.PrelaxFunctor.map₂_isIso {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) [IsIso η] :
                                        IsIso (F.map₂ η)
                                        @[simp]
                                        theorem CategoryTheory.PrelaxFunctor.map₂_inv {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) [IsIso η] :
                                        F.map₂ (inv η) = inv (F.map₂ η)
                                        @[simp]
                                        theorem CategoryTheory.PrelaxFunctor.map₂_hom_inv {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) :
                                        theorem CategoryTheory.PrelaxFunctor.map₂_hom_inv_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) {Z : F.obj a F.obj b} (h : F.map f Z) :
                                        theorem CategoryTheory.PrelaxFunctor.map₂_hom_inv_isIso {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) [IsIso η] :
                                        theorem CategoryTheory.PrelaxFunctor.map₂_hom_inv_isIso_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) [IsIso η] {Z : F.obj a F.obj b} (h : F.map f Z) :
                                        @[simp]
                                        theorem CategoryTheory.PrelaxFunctor.map₂_inv_hom {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) :
                                        theorem CategoryTheory.PrelaxFunctor.map₂_inv_hom_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) {Z : F.obj a F.obj b} (h : F.map g Z) :
                                        theorem CategoryTheory.PrelaxFunctor.map₂_inv_hom_isIso {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) [IsIso η] :
                                        theorem CategoryTheory.PrelaxFunctor.map₂_inv_hom_isIso_assoc {B : Type u₁} [Bicategory B] {C : Type u₂} [Bicategory C] (F : PrelaxFunctor B C) {a b : B} {f g : a b} (η : f g) [IsIso η] {Z : F.obj a F.obj b} (h : F.map g Z) :