Strictly unitary lax functors and pseudofunctors #
In this file, we define strictly unitary Lax functors and strictly unitary pseudofunctors between bicategories.
A lax functor F is said to be strictly unitary (sometimes, they are also
called normal) if there is an equality F.obj (𝟙 _) = 𝟙 (F.obj x) and if the
unit 2-morphism F.obj (𝟙 _) → 𝟙 (F.obj _) is the identity 2-morphism induced
by this equality.
A pseudofunctor is called strictly unitary (or a normal homomorphism) if it satisfies the same condition (i.e. its "underlying" lax functor is strictly unitary).
References #
TODOs #
- Define lax-composable (resp. pseudo-composable) arrows as strictly unitary
lax (resp. pseudo-) functors out of
LocallyDiscrete Fin n. - Define identity-component oplax natural transformations ("icons") between strictly unitary pseudofunctors and construct a bicategory structure on bicategories, strictly unitary pseudofunctors and icons.
- Construct the Duskin of a bicategory using lax-composable arrows
- Construct the 2-nerve of a bicategory using pseudo-composable arrows
A strictly unitary lax functor F between bicategories B and C is a
lax functor F from B to C such that the structure 1-cell
𝟙 (obj X) ⟶ map (𝟙 X) is in fact an identity 1-cell for every X : B.
- obj : B → C
- map₂_comp {a b : B} {f g h : a ⟶ b} (η : f ⟶ g) (θ : g ⟶ h) : self.map₂ (CategoryStruct.comp η θ) = CategoryStruct.comp (self.map₂ η) (self.map₂ θ)
- mapComp {a b c : B} (f : a ⟶ b) (g : b ⟶ c) : CategoryStruct.comp (self.map f) (self.map g) ⟶ self.map (CategoryStruct.comp f g)
- mapComp_naturality_left {a b c : B} {f f' : a ⟶ b} (η : f ⟶ f') (g : b ⟶ c) : CategoryStruct.comp (self.mapComp f g) (self.map₂ (Bicategory.whiskerRight η g)) = CategoryStruct.comp (Bicategory.whiskerRight (self.map₂ η) (self.map g)) (self.mapComp f' g)
- mapComp_naturality_right {a b c : B} (f : a ⟶ b) {g g' : b ⟶ c} (η : g ⟶ g') : CategoryStruct.comp (self.mapComp f g) (self.map₂ (Bicategory.whiskerLeft f η)) = CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.map₂ η)) (self.mapComp f g')
- map₂_associator {a b c d : B} (f : a ⟶ b) (g : b ⟶ c) (h : c ⟶ d) : CategoryStruct.comp (Bicategory.whiskerRight (self.mapComp f g) (self.map h)) (CategoryStruct.comp (self.mapComp (CategoryStruct.comp f g) h) (self.map₂ (Bicategory.associator f g h).hom)) = CategoryStruct.comp (Bicategory.associator (self.map f) (self.map g) (self.map h)).hom (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.mapComp g h)) (self.mapComp f (CategoryStruct.comp g h)))
- map₂_leftUnitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.leftUnitor f).inv = CategoryStruct.comp (Bicategory.leftUnitor (self.map f)).inv (CategoryStruct.comp (Bicategory.whiskerRight (self.mapId a) (self.map f)) (self.mapComp (CategoryStruct.id a) f))
- map₂_rightUnitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.rightUnitor f).inv = CategoryStruct.comp (Bicategory.rightUnitor (self.map f)).inv (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.mapId b)) (self.mapComp f (CategoryStruct.id b)))
Instances For
A helper structure that bundles the necessary data to
construct a StrictlyUnitaryLaxFunctor without specifying the redundant
field mapId.
- obj : B → C
action on objects
action on 1-morphisms
action on 2-morphisms
- map₂_comp {a b : B} {f g h : a ⟶ b} (η : f ⟶ g) (θ : g ⟶ h) : self.map₂ (CategoryStruct.comp η θ) = CategoryStruct.comp (self.map₂ η) (self.map₂ θ)
- mapComp {a b c : B} (f : a ⟶ b) (g : b ⟶ c) : CategoryStruct.comp (self.map f) (self.map g) ⟶ self.map (CategoryStruct.comp f g)
structure 2-morphism for composition of 1-morphism
- mapComp_naturality_left {a b c : B} {f f' : a ⟶ b} (η : f ⟶ f') (g : b ⟶ c) : CategoryStruct.comp (self.mapComp f g) (self.map₂ (Bicategory.whiskerRight η g)) = CategoryStruct.comp (Bicategory.whiskerRight (self.map₂ η) (self.map g)) (self.mapComp f' g)
- mapComp_naturality_right {a b c : B} (f : a ⟶ b) {g g' : b ⟶ c} (η : g ⟶ g') : CategoryStruct.comp (self.mapComp f g) (self.map₂ (Bicategory.whiskerLeft f η)) = CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.map₂ η)) (self.mapComp f g')
- map₂_leftUnitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.leftUnitor f).inv = CategoryStruct.comp (Bicategory.leftUnitor (self.map f)).inv (CategoryStruct.comp (eqToHom ⋯) (self.mapComp (CategoryStruct.id a) f))
- map₂_rightUnitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.rightUnitor f).inv = CategoryStruct.comp (Bicategory.rightUnitor (self.map f)).inv (CategoryStruct.comp (eqToHom ⋯) (self.mapComp f (CategoryStruct.id b)))
- map₂_associator {a b c d : B} (f : a ⟶ b) (g : b ⟶ c) (h : c ⟶ d) : CategoryStruct.comp (Bicategory.whiskerRight (self.mapComp f g) (self.map h)) (CategoryStruct.comp (self.mapComp (CategoryStruct.comp f g) h) (self.map₂ (Bicategory.associator f g h).hom)) = CategoryStruct.comp (Bicategory.associator (self.map f) (self.map g) (self.map h)).hom (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.mapComp g h)) (self.mapComp f (CategoryStruct.comp g h)))
Instances For
An alternate constructor for strictly unitary lax functors that does not
require the mapId fields, and that adapts the map₂_leftUnitor and
map₂_rightUnitor to the fact that the functor is strictly unitary.
Equations
Instances For
Promote the morphism F.mapId x : 𝟙 (F.obj x) ⟶ F.map (𝟙 x)
to an isomorphism when F is strictly unitary.
Equations
Instances For
The identity StrictlyUnitaryLaxFunctor.
Equations
Instances For
Composition of StrictlyUnitaryLaxFunctor.
Equations
Instances For
Composition of StrictlyUnitaryLaxFunctor is strictly right unitary
Composition of StrictlyUnitaryLaxFunctor is strictly left unitary
Composition of StrictlyUnitaryLaxFunctor is strictly associative
A strictly unitary pseudofunctor (sometimes called a "normal homomorphism)
F between bicategories B and C is a lax functor F from B to C
such that the structure isomorphism map (𝟙 X) ≅ 𝟙 (F.obj X) is in fact an
identity 1-cell for every X : B (in particular, there is an equality
F.map (𝟙 X) = 𝟙 (F.obj x)).
- obj : B → C
- map₂_comp {a b : B} {f g h : a ⟶ b} (η : f ⟶ g) (θ : g ⟶ h) : self.map₂ (CategoryStruct.comp η θ) = CategoryStruct.comp (self.map₂ η) (self.map₂ θ)
- mapComp {a b c : B} (f : a ⟶ b) (g : b ⟶ c) : self.map (CategoryStruct.comp f g) ≅ 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₂ (Bicategory.whiskerLeft f η) = CategoryStruct.comp (self.mapComp f g).hom (CategoryStruct.comp (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₂ (Bicategory.whiskerRight η h) = CategoryStruct.comp (self.mapComp f h).hom (CategoryStruct.comp (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₂ (Bicategory.associator f g h).hom = CategoryStruct.comp (self.mapComp (CategoryStruct.comp f g) h).hom (CategoryStruct.comp (Bicategory.whiskerRight (self.mapComp f g).hom (self.map h)) (CategoryStruct.comp (Bicategory.associator (self.map f) (self.map g) (self.map h)).hom (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.mapComp g h).inv) (self.mapComp f (CategoryStruct.comp g h)).inv)))
- map₂_left_unitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.leftUnitor f).hom = CategoryStruct.comp (self.mapComp (CategoryStruct.id a) f).hom (CategoryStruct.comp (Bicategory.whiskerRight (self.mapId a).hom (self.map f)) (Bicategory.leftUnitor (self.map f)).hom)
- map₂_right_unitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.rightUnitor f).hom = CategoryStruct.comp (self.mapComp f (CategoryStruct.id b)).hom (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.mapId b).hom) (Bicategory.rightUnitor (self.map f)).hom)
Instances For
A helper structure that bundles the necessary data to
construct a StrictlyUnitaryPseudofunctor without specifying the redundant
field mapId
- obj : B → C
action on objects
action on 1-morphisms
action on 2-morphisms
- map₂_comp {a b : B} {f g h : a ⟶ b} (η : f ⟶ g) (θ : g ⟶ h) : self.map₂ (CategoryStruct.comp η θ) = CategoryStruct.comp (self.map₂ η) (self.map₂ θ)
- mapComp {a b c : B} (f : a ⟶ b) (g : b ⟶ c) : self.map (CategoryStruct.comp f g) ≅ CategoryStruct.comp (self.map f) (self.map g)
structure 2-isomorphism for composition of 1-morphisms
- map₂_whisker_left {a b c : B} (f : a ⟶ b) {g h : b ⟶ c} (η : g ⟶ h) : self.map₂ (Bicategory.whiskerLeft f η) = CategoryStruct.comp (self.mapComp f g).hom (CategoryStruct.comp (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₂ (Bicategory.whiskerRight η h) = CategoryStruct.comp (self.mapComp f h).hom (CategoryStruct.comp (Bicategory.whiskerRight (self.map₂ η) (self.map h)) (self.mapComp g h).inv)
- map₂_left_unitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.leftUnitor f).hom = CategoryStruct.comp (self.mapComp (CategoryStruct.id a) f).hom (CategoryStruct.comp (eqToHom ⋯) (Bicategory.leftUnitor (self.map f)).hom)
- map₂_right_unitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.rightUnitor f).hom = CategoryStruct.comp (self.mapComp f (CategoryStruct.id b)).hom (CategoryStruct.comp (eqToHom ⋯) (Bicategory.rightUnitor (self.map f)).hom)
- map₂_associator {a b c d : B} (f : a ⟶ b) (g : b ⟶ c) (h : c ⟶ d) : self.map₂ (Bicategory.associator f g h).hom = CategoryStruct.comp (self.mapComp (CategoryStruct.comp f g) h).hom (CategoryStruct.comp (Bicategory.whiskerRight (self.mapComp f g).hom (self.map h)) (CategoryStruct.comp (Bicategory.associator (self.map f) (self.map g) (self.map h)).hom (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.mapComp g h).inv) (self.mapComp f (CategoryStruct.comp g h)).inv)))
Instances For
An alternate constructor for strictly unitary lax functors that does not
require the mapId fields, and that adapts the map₂_leftUnitor and
map₂_rightUnitor to the fact that the functor is strictly unitary.
Equations
Instances For
By forgetting the inverse to mapComp, a StrictlyUnitaryPseudofunctor
is a StrictlyUnitaryLaxFunctor.
Equations
Instances For
The identity StrictlyUnitaryPseudofunctor.
Equations
Instances For
Composition of StrictlyUnitaryPseudofunctor.