Strong transformations of pseudofunctors #
There are three types of transformations between pseudofunctors, depending on the direction or invertibility of the 2-morphism witnessing the naturality condition.
In this file we define strong transformations, which require the 2-morphism to be invertible.
Main definitions #
Pseudofunctor.StrongTrans F G
: strong transformations between pseudofunctorsF
andG
.Pseudofunctor.mkOfOplax η η'
: Given two pseudofunctors, and a strong transformationη
between their underlying oplax functors,mkOfOplax
lifts this to a strong transformation between the pseudofunctors.Pseudofunctor.StrongTrans.vcomp η θ
: the vertical composition of strong transformationsη
andθ
.
Using this we obtain a CategoryStruct
on pseudofunctors, where the arrows are given by
strong transformations. See Pseudofunctor.categoryStruct
.
References #
A strong transformation between pseudofunctors F
and G
is a natural transformation
that is "natural up to 2-isomorphisms".
More precisely, it consists of the following:
- a 1-morphism
η.app a : F.obj a ⟶ G.obj a
for each objecta : B
. - a 2-isomorphism
η.naturality f : F.map f ≫ app b ≅ app a ≫ G.map f
for each 1-morphismf : a ⟶ b
. - These 2-isomorphisms satisfy the naturality condition, and preserve the identities and the compositions modulo some adjustments of domains and codomains of 2-morphisms.
The component 1-morphisms of a strong transformation.
- naturality {a b : B} (f : a ⟶ b) : CategoryStruct.comp (F.map f) (self.app b) ≅ CategoryStruct.comp (self.app a) (G.map f)
The 2-isomorphisms underlying the strong naturality constraint.
- naturality_naturality {a b : B} {f g : a ⟶ b} (η : f ⟶ g) : CategoryStruct.comp (Bicategory.whiskerRight (F.map₂ η) (self.app b)) (self.naturality g).hom = CategoryStruct.comp (self.naturality f).hom (Bicategory.whiskerLeft (self.app a) (G.map₂ η))
Naturality of the strong naturality constraint.
- naturality_id (a : B) : CategoryStruct.comp (self.naturality (CategoryStruct.id a)).hom (Bicategory.whiskerLeft (self.app a) (G.mapId a).hom) = CategoryStruct.comp (Bicategory.whiskerRight (F.mapId a).hom (self.app a)) (CategoryStruct.comp (Bicategory.leftUnitor (self.app a)).hom (Bicategory.rightUnitor (self.app a)).inv)
Oplax unity.
- naturality_comp {a b c : B} (f : a ⟶ b) (g : b ⟶ c) : CategoryStruct.comp (self.naturality (CategoryStruct.comp f g)).hom (Bicategory.whiskerLeft (self.app a) (G.mapComp f g).hom) = CategoryStruct.comp (Bicategory.whiskerRight (F.mapComp f g).hom (self.app c)) (CategoryStruct.comp (Bicategory.associator (F.map f) (F.map g) (self.app c)).hom (CategoryStruct.comp (Bicategory.whiskerLeft (F.map f) (self.naturality g).hom) (CategoryStruct.comp (Bicategory.associator (F.map f) (self.app b) (G.map g)).inv (CategoryStruct.comp (Bicategory.whiskerRight (self.naturality f).hom (G.map g)) (Bicategory.associator (self.app a) (G.map f) (G.map g)).hom))))
Oplax functoriality.
Instances For
The underlying oplax transformation of a strong transformation.
Equations
Instances For
Construct a strong transformation of pseudofunctors from a strong transformation of the underlying oplax functors.
Equations
- CategoryTheory.Pseudofunctor.StrongTrans.mkOfOplax η = { app := η.app, naturality := fun {a b : B} => η.naturality, naturality_naturality := ⋯, naturality_id := ⋯, naturality_comp := ⋯ }
Instances For
The identity strong transformation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Vertical composition of strong transformations.
Instances For
CategoryStruct
on Pseudofunctor B C
where the (1-)morphisms are given by strong
transformations.
Equations
- One or more equations did not get rendered due to their size.