Strict pseudofunctors #
In this file we introduce the notion of strict pseudofunctors, which are pseudofunctors such
that mapId and mapComp are given by eqToIso _.
To a strict pseudofunctor between strict bicategories we can associate a functor between the
underlying categories, see StrictPseudofunctor.toFunctor.
TODO #
Once the deprecated Functor/Strict.lean is removed we should rename this file to
Functor/Strict.lean.
A strict pseudofunctor F between bicategories B and C is a
pseudofunctor F from B to C such that mapId and mapComp are given by eqToIso _.
- 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)
- map_comp {a b c : B} (f : a ⟶ b) (g : b ⟶ c) : self.map (CategoryStruct.comp f g) = CategoryStruct.comp (self.map f) (self.map g)
Instances For
A helper structure that bundles the necessary data to
construct a StrictPseudofunctor.
StrictPseudofunctorPreCore does not construct a Pseudofunctor in general,
since it does not include the compatibility conditoins on the associator
and unitors. However, when the underlying bicategories are strict, a
StrictPseudofunctorPreCore does induce a StrictPseudofunctor.
- 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₂ θ)
- map_comp {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 g' : b ⟶ c} (η : g ⟶ g') : self.map₂ (Bicategory.whiskerLeft f η) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.map₂ η)) (eqToHom ⋯))
- map₂_whisker_right {a b c : B} {f f' : a ⟶ b} (η : f ⟶ f') (g : b ⟶ c) : self.map₂ (Bicategory.whiskerRight η g) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (Bicategory.whiskerRight (self.map₂ η) (self.map g)) (eqToHom ⋯))
Instances For
A helper structure that bundles the necessary data to
construct a StrictPseudofunctor without specifying the redundant
fields mapId and mapComp.
- 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₂ θ)
- map_comp {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 g' : b ⟶ c} (η : g ⟶ g') : self.map₂ (Bicategory.whiskerLeft f η) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (Bicategory.whiskerLeft (self.map f) (self.map₂ η)) (eqToHom ⋯))
- map₂_whisker_right {a b c : B} {f f' : a ⟶ b} (η : f ⟶ f') (g : b ⟶ c) : self.map₂ (Bicategory.whiskerRight η g) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (Bicategory.whiskerRight (self.map₂ η) (self.map g)) (eqToHom ⋯))
- map₂_left_unitor {a b : B} (f : a ⟶ b) : self.map₂ (Bicategory.leftUnitor 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 (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 (eqToHom ⋯) (CategoryStruct.comp (Bicategory.associator (self.map f) (self.map g) (self.map h)).hom (eqToHom ⋯))
Instances For
An alternate constructor for strictly unitary lax functors that does not
require the mapId or mapComp fields, and that adapts the compatability conditions
to the fact that the pseudofunctor is strict
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity StrictPseudofunctor.
Equations
- CategoryTheory.StrictPseudofunctor.id B = { toStrictlyUnitaryPseudofunctor := CategoryTheory.StrictlyUnitaryPseudofunctor.id B, map_comp := ⋯, mapComp_eq_eqToIso := ⋯ }
Instances For
Composition of StrictPseudofunctor.
Equations
Instances For
An alternate constructor for strict pseudofunctors between strict bicategories, that
only requires the data bundled in StrictPseudofunctorPreCore.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A strict pseudofunctor between strict bicategories induces a functor on the underlying categories.