(Lax) monoidal functors #
A lax monoidal functor F
between monoidal categories C
and D
is a functor between the underlying categories equipped with morphisms
ε : 𝟙_ D ⟶ F.obj (𝟙_ C)
(called the unit morphism)μ X Y : (F.obj X) ⊗ (F.obj Y) ⟶ F.obj (X ⊗ Y)
(called the tensorator, or strength). satisfying various axioms.
A monoidal functor is a lax monoidal functor for which ε
and μ
are isomorphisms.
We show that the composition of (lax) monoidal functors gives a (lax) monoidal functor.
See also CategoryTheory.Monoidal.Functorial
for a typeclass decorating an object-level
function with the additional data of a monoidal functor.
This is useful when stating that a pre-existing functor is monoidal.
See CategoryTheory.Monoidal.NaturalTransformation
for monoidal natural transformations.
We show in CategoryTheory.Monoidal.Mon_
that lax monoidal functors take monoid objects
to monoid objects.
Future work #
- Oplax monoidal functors.
References #
See
A lax monoidal functor is a functor F : C ⥤ D
between monoidal categories,
equipped with morphisms ε : 𝟙 _D ⟶ F.obj (𝟙_ C)
and μ X Y : F.obj X ⊗ F.obj Y ⟶ F.obj (X ⊗ Y)
,
satisfying the appropriate coherences.
- obj : C → D
- map_id : ∀ (X : C), self.map (CategoryTheory.CategoryStruct.id X) = CategoryTheory.CategoryStruct.id (self.obj X)
- map_comp : ∀ {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z), self.map (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (self.map f) (self.map g)
- ε : 𝟙_ D ⟶ self.obj (𝟙_ C)
unit morphism
- μ : (X Y : C) → CategoryTheory.MonoidalCategory.tensorObj (self.obj X) (self.obj Y) ⟶ self.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
tensorator
- μ_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (self.map f) (self.obj X')) (self.μ Y X') = CategoryTheory.CategoryStruct.comp (self.μ X X') (self.map (CategoryTheory.MonoidalCategory.whiskerRight f X'))
- μ_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X') (self.map f)) (self.μ X' Y) = CategoryTheory.CategoryStruct.comp (self.μ X' X) (self.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f))
- associativity : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (self.μ X Y) (self.obj Z)) (CategoryTheory.CategoryStruct.comp (self.μ (CategoryTheory.MonoidalCategory.tensorObj X Y) Z) (self.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (self.obj X) (self.obj Y) (self.obj Z)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X) (self.μ Y Z)) (self.μ X (CategoryTheory.MonoidalCategory.tensorObj Y Z)))
associativity of the tensorator
- left_unitality : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (self.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight self.ε (self.obj X)) (CategoryTheory.CategoryStruct.comp (self.μ (𝟙_ C) X) (self.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom))
- right_unitality : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (self.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X) self.ε) (CategoryTheory.CategoryStruct.comp (self.μ X (𝟙_ C)) (self.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom))
Instances For
A constructor for lax monoidal functors whose axioms are described by tensorHom
instead of
whiskerLeft
and whiskerRight
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A monoidal functor is a lax monoidal functor for which the tensorator and unitor as isomorphisms.
See
- obj : C → D
- map_id : ∀ (X : C), self.map (CategoryTheory.CategoryStruct.id X) = CategoryTheory.CategoryStruct.id (self.obj X)
- map_comp : ∀ {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z), self.map (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (self.map f) (self.map g)
- ε : 𝟙_ D ⟶ self.obj (𝟙_ C)
- μ : (X Y : C) → CategoryTheory.MonoidalCategory.tensorObj (self.obj X) (self.obj Y) ⟶ self.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
- μ_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (self.map f) (self.obj X')) (self.μ Y X') = CategoryTheory.CategoryStruct.comp (self.μ X X') (self.map (CategoryTheory.MonoidalCategory.whiskerRight f X'))
- μ_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X') (self.map f)) (self.μ X' Y) = CategoryTheory.CategoryStruct.comp (self.μ X' X) (self.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f))
- associativity : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (self.μ X Y) (self.obj Z)) (CategoryTheory.CategoryStruct.comp (self.μ (CategoryTheory.MonoidalCategory.tensorObj X Y) Z) (self.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (self.obj X) (self.obj Y) (self.obj Z)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X) (self.μ Y Z)) (self.μ X (CategoryTheory.MonoidalCategory.tensorObj Y Z)))
- left_unitality : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (self.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight self.ε (self.obj X)) (CategoryTheory.CategoryStruct.comp (self.μ (𝟙_ C) X) (self.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom))
- right_unitality : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (self.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (self.obj X) self.ε) (CategoryTheory.CategoryStruct.comp (self.μ X (𝟙_ C)) (self.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom))
- ε_isIso : CategoryTheory.IsIso self.ε
- μ_isIso : ∀ (X Y : C), CategoryTheory.IsIso (self.μ X Y)
Instances For
The unit morphism of a (strong) monoidal functor as an isomorphism.
Equations
Instances For
The tensorator of a (strong) monoidal functor as an isomorphism.
Equations
- CategoryTheory.MonoidalFunctor.μIso F X Y = CategoryTheory.asIso (F.μ X Y)
Instances For
The identity lax monoidal functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The tensorator as a natural isomorphism.
Equations
- CategoryTheory.MonoidalFunctor.μNatIso F = CategoryTheory.NatIso.ofComponents (fun (X : C × C) => CategoryTheory.MonoidalFunctor.μIso F X.1 X.2) ⋯
Instances For
Monoidal functors commute with left tensoring up to isomorphism
Equations
- CategoryTheory.MonoidalFunctor.commTensorLeft F X = CategoryTheory.NatIso.ofComponents (fun (Y : C) => CategoryTheory.MonoidalFunctor.μIso F X Y) ⋯
Instances For
Monoidal functors commute with right tensoring up to isomorphism
Equations
- CategoryTheory.MonoidalFunctor.commTensorRight F X = CategoryTheory.NatIso.ofComponents (fun (Y : C) => CategoryTheory.MonoidalFunctor.μIso F Y X) ⋯
Instances For
The identity monoidal functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The composition of two lax monoidal functors is again lax monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of two lax monoidal functors is again lax monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cartesian product of two lax monoidal functors is lax monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The diagonal functor as a monoidal functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cartesian product of two lax monoidal functors starting from the same monoidal category C
is lax monoidal.
Equations
- CategoryTheory.LaxMonoidalFunctor.prod' F G = (CategoryTheory.MonoidalFunctor.diag C).toLaxMonoidalFunctor ⊗⋙ CategoryTheory.LaxMonoidalFunctor.prod F G
Instances For
The composition of two monoidal functors is again monoidal.
Equations
Instances For
The composition of two monoidal functors is again monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cartesian product of two monoidal functors is monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cartesian product of two monoidal functors starting from the same monoidal category C
is monoidal.
Equations
Instances For
If we have a right adjoint functor G
to a monoidal functor F
, then G
has a lax monoidal
structure as well.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a monoidal functor F
is an equivalence of categories then its inverse is also monoidal.
Equations
- One or more equations did not get rendered due to their size.