Pseudofunctors #
A pseudofunctor is an oplax (or lax) functor whose mapId and mapComp are isomorphisms.
We provide several constructors for pseudofunctors:
Pseudofunctor.mk: the default constructor, which requiresmap₂_whiskerLeftandmap₂_whiskerRightinstead of naturality ofmapComp.Pseudofunctor.mkOfOplax: construct a pseudofunctor from an oplax functor whosemapIdandmapCompare isomorphisms. This constructor usesIsoto describe isomorphisms.pseudofunctor.mkOfOplax': similar tomkOfOplax, but usesIsIsoto describe isomorphisms.Pseudofunctor.mkOfLax: construct a pseudofunctor from a lax functor whosemapIdandmapCompare isomorphisms. This constructor usesIsoto describe isomorphisms.pseudofunctor.mkOfLax': similar tomkOfLax, but usesIsIsoto describe isomorphisms.
Main definitions #
CategoryTheory.Pseudofunctor B C: a pseudofunctor between bicategoriesBandCCategoryTheory.Pseudofunctor.comp F G: the composition of pseudofunctors
A pseudofunctor 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 compositions,
and do not need to strictly preserve the identity. Instead, there are specified 2-isomorphisms
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.
- obj : B → C
- map₂_id : ∀ {a b : B} (f : a ⟶ b), self.map₂ (CategoryTheory.CategoryStruct.id f) = CategoryTheory.CategoryStruct.id (self.map f)
- map₂_comp : ∀ {a b : B} {f g h : a ⟶ b} (η : f ⟶ g) (θ : g ⟶ h), self.map₂ (CategoryTheory.CategoryStruct.comp η θ) = CategoryTheory.CategoryStruct.comp (self.map₂ η) (self.map₂ θ)
- mapId : (a : B) → self.map (CategoryTheory.CategoryStruct.id a) ≅ CategoryTheory.CategoryStruct.id (self.obj a)
- mapComp : {a b c : B} → (f : a ⟶ b) → (g : b ⟶ c) → self.map (CategoryTheory.CategoryStruct.comp f g) ≅ CategoryTheory.CategoryStruct.comp (self.map f) (self.map g)
- map₂_whisker_left : ∀ {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ⟶ h), self.map₂ (CategoryTheory.Bicategory.whiskerLeft f η) = CategoryTheory.CategoryStruct.comp (self.mapComp f g).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (self.map f) (self.map₂ η)) (self.mapComp f h).inv)
- map₂_whisker_right : ∀ {a b c : B} {f g : a ⟶ b} (η : f ⟶ g) (h : b ⟶ c), self.map₂ (CategoryTheory.Bicategory.whiskerRight η h) = CategoryTheory.CategoryStruct.comp (self.mapComp f h).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (self.map₂ η) (self.map h)) (self.mapComp g h).inv)
- map₂_associator : ∀ {a b c d : B} (f : a ⟶ b) (g : b ⟶ c) (h : c ⟶ d), self.map₂ (CategoryTheory.Bicategory.associator f g h).hom = CategoryTheory.CategoryStruct.comp (self.mapComp (CategoryTheory.CategoryStruct.comp f g) h).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (self.mapComp f g).hom (self.map h)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.associator (self.map f) (self.map g) (self.map h)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (self.map f) (self.mapComp g h).inv) (self.mapComp f (CategoryTheory.CategoryStruct.comp g h)).inv)))
- map₂_left_unitor : ∀ {a b : B} (f : a ⟶ b), self.map₂ (CategoryTheory.Bicategory.leftUnitor f).hom = CategoryTheory.CategoryStruct.comp (self.mapComp (CategoryTheory.CategoryStruct.id a) f).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerRight (self.mapId a).hom (self.map f)) (CategoryTheory.Bicategory.leftUnitor (self.map f)).hom)
- map₂_right_unitor : ∀ {a b : B} (f : a ⟶ b), self.map₂ (CategoryTheory.Bicategory.rightUnitor f).hom = CategoryTheory.CategoryStruct.comp (self.mapComp f (CategoryTheory.CategoryStruct.id b)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Bicategory.whiskerLeft (self.map f) (self.mapId b).hom) (CategoryTheory.Bicategory.rightUnitor (self.map f)).hom)
Instances For
The oplax functor associated with a pseudofunctor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Pseudofunctor.hasCoeToOplax = { coe := CategoryTheory.Pseudofunctor.toOplax }
The Lax functor associated with a pseudofunctor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Pseudofunctor.hasCoeToLax = { coe := CategoryTheory.Pseudofunctor.toLax }
The identity pseudofunctor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Pseudofunctor.instInhabited = { default := CategoryTheory.Pseudofunctor.id B }
Composition of pseudofunctors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a pseudofunctor from an oplax functor whose mapId and mapComp are isomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a pseudofunctor from an oplax functor whose mapId and mapComp are isomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a pseudofunctor from a lax functor whose mapId and mapComp are isomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a pseudofunctor from a lax functor whose mapId and mapComp are isomorphisms.
Equations
- One or more equations did not get rendered due to their size.