Transformations between oplax functors #
Just as there are natural transformations between functors, there are transformations between oplax functors. The equality in the naturality condition of a natural transformation gets replaced by a specified 2-morphism. Now, there are three possible types of transformations (between oplax functors):
- Oplax natural transformations;
- Lax natural transformations;
- Strong natural transformations. These differ in the direction (and invertibility) of the 2-morphisms involved in the naturality condition.
Main definitions #
Oplax.OplaxTrans F G
: oplax transformations between oplax functorsF
andG
. The naturality condition is given by a 2-morphismF.map f ≫ app b ⟶ app a ≫ G.map f
for each 1-morphismf : a ⟶ b
.Oplax.StrongTrans F G
: Strong transformations between oplax functorsF
andG
.
Using these, we define two CategoryStruct
(scoped) instances on OplaxFunctor B C
, one in the
Oplax.OplaxTrans
namespace and one in the Oplax.StrongTrans
namespace. The arrows in these
CategoryStruct's are given by oplax transformations and strong transformations respectively.
We also provide API for going between oplax transformations and strong transformations:
Oplax.StrongCore F G
: a structure on an oplax transformation between oplax functors that promotes it to a strong transformation.Oplax.mkOfOplax η η'
: given an oplax transformationη
such that each component 2-morphism is an isomorphism,mkOfOplax
gives the corresponding strong transformation.
TODO #
This file could also include lax transformations between oplax functors.
References #
If η
is an oplax transformation between F
and G
, we have a 1-morphism
η.app a : F.obj a ⟶ G.obj a
for each object a : B
. We also have a 2-morphism
η.naturality f : F.map f ≫ app b ⟶ app a ≫ G.map f
for each 1-morphism f : a ⟶ b
.
These 2-morphisms satisfies 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 an oplax 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-morphisms underlying the oplax 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) = CategoryStruct.comp (self.naturality f) (Bicategory.whiskerLeft (self.app a) (G.map₂ η))
Naturality of the oplax naturality constraint.
- naturality_id (a : B) : CategoryStruct.comp (self.naturality (CategoryStruct.id a)) (Bicategory.whiskerLeft (self.app a) (G.mapId a)) = CategoryStruct.comp (Bicategory.whiskerRight (F.mapId a) (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)) (Bicategory.whiskerLeft (self.app a) (G.mapComp f g)) = CategoryStruct.comp (Bicategory.whiskerRight (F.mapComp f g) (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)) (CategoryStruct.comp (Bicategory.associator (F.map f) (self.app b) (G.map g)).inv (CategoryStruct.comp (Bicategory.whiskerRight (self.naturality f) (G.map g)) (Bicategory.associator (self.app a) (G.map f) (G.map g)).hom))))
Oplax functoriality.
Instances For
Alias of CategoryTheory.Oplax.OplaxTrans
.
If η
is an oplax transformation between F
and G
, we have a 1-morphism
η.app a : F.obj a ⟶ G.obj a
for each object a : B
. We also have a 2-morphism
η.naturality f : F.map f ≫ app b ⟶ app a ≫ G.map f
for each 1-morphism f : a ⟶ b
.
These 2-morphisms satisfies the naturality condition, and preserve the identities and
the compositions modulo some adjustments of domains and codomains of 2-morphisms.
Instances For
The identity oplax transformation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Vertical composition of oplax transformations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
CategoryStruct
on OplaxFunctor B C
where the (1-)morphisms are given by oplax
transformations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A strong natural transformation between oplax functors 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.
- naturality {a b : B} (f : a ⟶ b) : CategoryStruct.comp (F.map f) (self.app b) ≅ CategoryStruct.comp (self.app a) (G.map f)
- 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_id (a : B) : CategoryStruct.comp (self.naturality (CategoryStruct.id a)).hom (Bicategory.whiskerLeft (self.app a) (G.mapId a)) = CategoryStruct.comp (Bicategory.whiskerRight (F.mapId a) (self.app a)) (CategoryStruct.comp (Bicategory.leftUnitor (self.app a)).hom (Bicategory.rightUnitor (self.app a)).inv)
- 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)) = CategoryStruct.comp (Bicategory.whiskerRight (F.mapComp f g) (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))))
Instances For
Alias of CategoryTheory.Oplax.StrongTrans
.
A strong natural transformation between oplax functors 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.
Instances For
A structure on an oplax transformation that promotes it to a strong transformation.
See Pseudofunctor.StrongTrans.mkOfOplax
.
- naturality {a b : B} (f : a ⟶ b) : CategoryStruct.comp (F.map f) (η.app b) ≅ CategoryStruct.comp (η.app a) (G.map f)
The underlying 2-isomorphisms of the naturality constraint.
The 2-isomorphisms agree with the underlying 2-morphism of the oplax transformation.
Instances For
The underlying oplax natural transformation of a strong natural transformation.
Equations
Instances For
Construct a strong natural transformation from an oplax natural transformation whose naturality 2-morphism is an isomorphism.
Equations
- CategoryTheory.Oplax.StrongTrans.mkOfOplax η η' = { app := η.app, naturality := fun {a b : B} => η'.naturality, naturality_naturality := ⋯, naturality_id := ⋯, naturality_comp := ⋯ }
Instances For
Construct a strong natural transformation from an oplax natural transformation whose naturality 2-morphism is an isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity strong natural transformation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Vertical composition of strong natural transformations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
CategoryStruct
on OplaxFunctor B C
where the (1-)morphisms are given by strong
transformations.
Equations
- One or more equations did not get rendered due to their size.