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₂_whiskerLeft
andmap₂_whiskerRight
instead of naturality ofmapComp
.Pseudofunctor.mkOfOplax
: construct a pseudofunctor from an oplax functor whosemapId
andmapComp
are isomorphisms. This constructor usesIso
to describe isomorphisms.pseudofunctor.mkOfOplax'
: similar tomkOfOplax
, but usesIsIso
to describe isomorphisms.Pseudofunctor.mkOfLax
: construct a pseudofunctor from a lax functor whosemapId
andmapComp
are isomorphisms. This constructor usesIso
to describe isomorphisms.pseudofunctor.mkOfLax'
: similar tomkOfLax
, but usesIsIso
to describe isomorphisms.
Main definitions #
CategoryTheory.Pseudofunctor B C
: a pseudofunctor between bicategoriesB
andC
CategoryTheory.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.