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 functorsFandG. The naturality condition is given by a 2-morphismF.map f ≫ app b ⟶ app a ≫ G.map ffor each 1-morphismf : a ⟶ b.Oplax.StrongTrans F G: Strong transformations between oplax functorsFandG.
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,mkOfOplaxgives 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 afor each objecta : B. - a 2-isomorphism
η.naturality f : F.map f ≫ app b ⟶ app a ≫ G.map ffor 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 afor each objecta : B. - a 2-isomorphism
η.naturality f : F.map f ≫ app b ⟶ app a ≫ G.map ffor 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.