(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. This is implemented as a typeclassF.LaxMonoidal
.
Similarly, we define the typeclass F.OplaxMonoidal
. For these oplax monoidal functors,
we have similar data η
and δ
, but with morphisms in the opposite direction.
A monoidal functor (F.Monoidal
) is defined here as the combination of F.LaxMonoidal
and F.OplaxMonoidal
, with the additional conditions that ε
/η
and μ
/δ
are
inverse isomorphisms.
We show that the composition of (lax) monoidal functors gives a (lax) monoidal functor.
See CategoryTheory.Monoidal.NaturalTransformation
for monoidal natural transformations.
We show in CategoryTheory.Monoidal.Mon_
that lax monoidal functors take monoid objects
to monoid objects.
References #
A functor F : C ⥤ D
between monoidal categories is lax monoidal if it is
equipped with morphisms ε : 𝟙 _D ⟶ F.obj (𝟙_ C)
and μ X Y : F.obj X ⊗ F.obj Y ⟶ F.obj (X ⊗ Y)
,
satisfying the appropriate coherences.
- ε' : 𝟙_ D ⟶ F.obj (𝟙_ C)
unit morphism
- μ' : (X Y : C) → CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y) ⟶ F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
tensorator
- μ'_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj X')) (CategoryTheory.Functor.LaxMonoidal.μ' Y X') = CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' X X') (F.map (CategoryTheory.MonoidalCategory.whiskerRight f X'))
- μ'_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X') (F.map f)) (CategoryTheory.Functor.LaxMonoidal.μ' X' Y) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' X' X) (F.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f))
- associativity' : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Functor.LaxMonoidal.μ' X Y) (F.obj Z)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' (CategoryTheory.MonoidalCategory.tensorObj X Y) Z) (F.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (CategoryTheory.Functor.LaxMonoidal.μ' Y Z)) (CategoryTheory.Functor.LaxMonoidal.μ' X (CategoryTheory.MonoidalCategory.tensorObj Y Z)))
associativity of the tensorator
- left_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight CategoryTheory.Functor.LaxMonoidal.ε' (F.obj X)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' (𝟙_ C) X) (F.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom))
- right_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) CategoryTheory.Functor.LaxMonoidal.ε') (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' X (𝟙_ C)) (F.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom))
Instances
the unit morphism of a lax monoidal functor
Equations
- CategoryTheory.Functor.LaxMonoidal.ε F = CategoryTheory.Functor.LaxMonoidal.ε'
Instances For
the tensorator of a lax monoidal functor
Equations
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
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
A functor F : C ⥤ D
between monoidal categories is oplax monoidal if it is
equipped with morphisms η : F.obj (𝟙_ C) ⟶ 𝟙 _D
and δ X Y : F.obj (X ⊗ Y) ⟶ F.obj X ⊗ F.obj Y
,
satisfying the appropriate coherences.
- η' : F.obj (𝟙_ C) ⟶ 𝟙_ D
counit morphism
- δ' : (X Y : C) → F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y) ⟶ CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y)
cotensorator
- δ'_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X X') (CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj X')) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.whiskerRight f X')) (CategoryTheory.Functor.OplaxMonoidal.δ' Y X')
- δ'_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X' X) (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X') (F.map f)) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f)) (CategoryTheory.Functor.OplaxMonoidal.δ' X' Y)
- oplax_associativity' : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' (CategoryTheory.MonoidalCategory.tensorObj X Y) Z) (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Functor.OplaxMonoidal.δ' X Y) (F.obj Z)) (CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z)).hom) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X (CategoryTheory.MonoidalCategory.tensorObj Y Z)) (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (CategoryTheory.Functor.OplaxMonoidal.δ' Y Z)))
associativity of the tensorator
- oplax_left_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).inv = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.leftUnitor X).inv) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' (𝟙_ C) X) (CategoryTheory.MonoidalCategory.whiskerRight CategoryTheory.Functor.OplaxMonoidal.η' (F.obj X)))
- oplax_right_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).inv = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.rightUnitor X).inv) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X (𝟙_ C)) (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) CategoryTheory.Functor.OplaxMonoidal.η'))
Instances
the counit morphism of a lax monoidal functor
Equations
- CategoryTheory.Functor.OplaxMonoidal.η F = CategoryTheory.Functor.OplaxMonoidal.η'
Instances For
the cotensorator of an oplax monoidal functor
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
A functor between monoidal categories is monoidal if it is lax and oplax monoidals, and both data give inverse isomorphisms.
- μ' : (X Y : C) → CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y) ⟶ F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
- μ'_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj X')) (CategoryTheory.Functor.LaxMonoidal.μ' Y X') = CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' X X') (F.map (CategoryTheory.MonoidalCategory.whiskerRight f X'))
- μ'_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X') (F.map f)) (CategoryTheory.Functor.LaxMonoidal.μ' X' Y) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' X' X) (F.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f))
- associativity' : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Functor.LaxMonoidal.μ' X Y) (F.obj Z)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' (CategoryTheory.MonoidalCategory.tensorObj X Y) Z) (F.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (CategoryTheory.Functor.LaxMonoidal.μ' Y Z)) (CategoryTheory.Functor.LaxMonoidal.μ' X (CategoryTheory.MonoidalCategory.tensorObj Y Z)))
- left_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight CategoryTheory.Functor.LaxMonoidal.ε' (F.obj X)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' (𝟙_ C) X) (F.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom))
- right_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) CategoryTheory.Functor.LaxMonoidal.ε') (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ' X (𝟙_ C)) (F.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom))
- δ' : (X Y : C) → F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y) ⟶ CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y)
- δ'_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X X') (CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj X')) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.whiskerRight f X')) (CategoryTheory.Functor.OplaxMonoidal.δ' Y X')
- δ'_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X' X) (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X') (F.map f)) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f)) (CategoryTheory.Functor.OplaxMonoidal.δ' X' Y)
- oplax_associativity' : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' (CategoryTheory.MonoidalCategory.tensorObj X Y) Z) (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (CategoryTheory.Functor.OplaxMonoidal.δ' X Y) (F.obj Z)) (CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z)).hom) = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X (CategoryTheory.MonoidalCategory.tensorObj Y Z)) (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (CategoryTheory.Functor.OplaxMonoidal.δ' Y Z)))
- oplax_left_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).inv = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.leftUnitor X).inv) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' (𝟙_ C) X) (CategoryTheory.MonoidalCategory.whiskerRight CategoryTheory.Functor.OplaxMonoidal.η' (F.obj X)))
- oplax_right_unitality' : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).inv = CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.MonoidalCategory.rightUnitor X).inv) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ' X (𝟙_ C)) (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) CategoryTheory.Functor.OplaxMonoidal.η'))
- μ_δ : ∀ (X Y : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.LaxMonoidal.μ F X Y) (CategoryTheory.Functor.OplaxMonoidal.δ F X Y) = CategoryTheory.CategoryStruct.id (CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y))
- δ_μ : ∀ (X Y : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ F X Y) (CategoryTheory.Functor.LaxMonoidal.μ F X Y) = CategoryTheory.CategoryStruct.id (F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y))
Instances
The isomorphism 𝟙_ D ≅ F.obj (𝟙_ C)
when F
is a monoidal functor.
Equations
- CategoryTheory.Functor.Monoidal.εIso F = { hom := CategoryTheory.Functor.LaxMonoidal.ε F, inv := CategoryTheory.Functor.OplaxMonoidal.η F, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The isomorphism F.obj X ⊗ F.obj Y ≅ F.obj (X ⊗ Y)
when F
is a monoidal functor.
Equations
- CategoryTheory.Functor.Monoidal.μIso F X Y = { hom := CategoryTheory.Functor.LaxMonoidal.μ F X Y, inv := CategoryTheory.Functor.OplaxMonoidal.δ F X Y, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The tensorator as a natural isomorphism.
Equations
- CategoryTheory.Functor.Monoidal.μNatIso F = CategoryTheory.NatIso.ofComponents (fun (x : C × C) => CategoryTheory.Functor.Monoidal.μIso F x.1 x.2) ⋯
Instances For
Monoidal functors commute with left tensoring up to isomorphism
Equations
- CategoryTheory.Functor.Monoidal.commTensorLeft F X = CategoryTheory.NatIso.ofComponents (fun (Y : C) => CategoryTheory.Functor.Monoidal.μIso F X Y) ⋯
Instances For
Monoidal functors commute with right tensoring up to isomorphism
Equations
- CategoryTheory.Functor.Monoidal.commTensorRight F X = CategoryTheory.NatIso.ofComponents (fun (Y : C) => CategoryTheory.Functor.Monoidal.μIso F Y X) ⋯
Instances For
Equations
- CategoryTheory.Functor.Monoidal.instId = CategoryTheory.Functor.Monoidal.mk ⋯ ⋯ ⋯ ⋯
Equations
Structure which is a helper in order to show that a functor is monoidal. It
consists of isomorphisms εIso
and μIso
such that the morphisms .hom
induced
by these isomorphisms satisfy the axioms of lax monoidal functors.
- εIso : 𝟙_ D ≅ F.obj (𝟙_ C)
unit morphism
- μIso : (X Y : C) → CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y) ≅ F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
tensorator
- μIso_hom_natural_left : ∀ {X Y : C} (f : X ⟶ Y) (X' : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj X')) (self.μIso Y X').hom = CategoryTheory.CategoryStruct.comp (self.μIso X X').hom (F.map (CategoryTheory.MonoidalCategory.whiskerRight f X'))
- μIso_hom_natural_right : ∀ {X Y : C} (X' : C) (f : X ⟶ Y), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X') (F.map f)) (self.μIso X' Y).hom = CategoryTheory.CategoryStruct.comp (self.μIso X' X).hom (F.map (CategoryTheory.MonoidalCategory.whiskerLeft X' f))
- associativity : ∀ (X Y Z : C), CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (self.μIso X Y).hom (F.obj Z)) (CategoryTheory.CategoryStruct.comp (self.μIso (CategoryTheory.MonoidalCategory.tensorObj X Y) Z).hom (F.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z)).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (self.μIso Y Z).hom) (self.μIso X (CategoryTheory.MonoidalCategory.tensorObj Y Z)).hom)
associativity of the tensorator
- left_unitality : ∀ (X : C), (CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight self.εIso.hom (F.obj X)) (CategoryTheory.CategoryStruct.comp (self.μIso (𝟙_ C) X).hom (F.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom))
- right_unitality : ∀ (X : C), (CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) self.εIso.hom) (CategoryTheory.CategoryStruct.comp (self.μIso X (𝟙_ C)).hom (F.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom))
Instances For
The lax monoidal functor structure induced by a Functor.CoreMonoidal
structure.
Equations
- h.toLaxMonoidal = { ε' := h.εIso.hom, μ' := fun (X Y : C) => (h.μIso X Y).hom, μ'_natural_left := ⋯, μ'_natural_right := ⋯, associativity' := ⋯, left_unitality' := ⋯, right_unitality' := ⋯ }
Instances For
The oplax monoidal functor structure induced by a Functor.CoreMonoidal
structure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The monoidal functor structure induced by a Functor.CoreMonoidal
structure.
Equations
- h.toMonoidal = CategoryTheory.Functor.Monoidal.mk ⋯ ⋯ ⋯ ⋯
Instances For
The Functor.CoreMonoidal
structure given by a lax monoidal functor such
that ε
and μ
are isomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Functor.CoreMonoidal
structure given by an oplax monoidal functor such
that η
and δ
are isomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Functor.Monoidal
structure given by a lax monoidal functor such
that ε
and μ
are isomorphisms.
Equations
Instances For
The Functor.Monoidal
structure given by an oplax monoidal functor such
that η
and δ
are isomorphisms.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- F.instMonoidalProdProd G = CategoryTheory.Functor.Monoidal.mk ⋯ ⋯ ⋯ ⋯
Equations
- One or more equations did not get rendered due to their size.
The functor C ⥤ D × E
obtained from two lax monoidal functors is lax monoidal.
Equations
- CategoryTheory.Functor.LaxMonoidal.prod' F G = inferInstanceAs ((CategoryTheory.Functor.diag C).comp (F.prod G)).LaxMonoidal
The functor C ⥤ D × E
obtained from two oplax monoidal functors is oplax monoidal.
Equations
- CategoryTheory.Functor.OplaxMonoidal.prod' F G = inferInstanceAs ((CategoryTheory.Functor.diag C).comp (F.prod G)).OplaxMonoidal
The functor C ⥤ D × E
obtained from two monoidal functors is monoidal.
Equations
The right adjoint of an oplax monoidal functor is lax monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When adj : F ⊣ G
is an adjunction, with F
oplax monoidal and G
monoidal,
this typeclass expresses compatibilities between the adjunction and the (op)lax
monoidal structures.
- leftAdjoint_ε : CategoryTheory.Functor.LaxMonoidal.ε G = (adj.homEquiv (𝟙_ C) (𝟙_ D)) (CategoryTheory.Functor.OplaxMonoidal.η F)
- leftAdjoint_μ : ∀ (X Y : D), CategoryTheory.Functor.LaxMonoidal.μ G X Y = (adj.homEquiv (CategoryTheory.MonoidalCategory.tensorObj (G.obj X) (G.obj Y)) (CategoryTheory.MonoidalCategory.tensorObj ((CategoryTheory.Functor.id D).obj X) ((CategoryTheory.Functor.id D).obj Y))) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.OplaxMonoidal.δ F (G.obj X) (G.obj Y)) (CategoryTheory.MonoidalCategory.tensorHom (adj.counit.app X) (adj.counit.app Y)))
Instances
Equations
- ⋯ = ⋯
Equations
- e.instMonoidalFunctorSymmOfInverse = inferInstanceAs e.inverse.Monoidal
Equations
- e.instMonoidalInverseSymmOfFunctor = inferInstanceAs e.functor.Monoidal
If a monoidal functor F
is an equivalence of categories then its inverse is also monoidal.
Equations
- e.inverseMonoidal = CategoryTheory.Functor.Monoidal.ofLaxMonoidal e.inverse
Instances For
An equivalence of categories involving monoidal functors is monoidal if the underlying adjunction satisfies certain compatibilities with respect to the monoidal funtor data.
Equations
- e.IsMonoidal = e.toAdjunction.IsMonoidal
Instances For
The inverse of a monoidal category equivalence is also a monoidal category equivalence.
Equations
- ⋯ = ⋯
Bundled version of lax monoidal functors. This type is equipped with a category
structure in CategoryTheory.Monoidal.NaturalTransformation
.
- 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)
- laxMonoidal : self.LaxMonoidal
Instances For
Constructor for LaxMonoidalFunctor C D
.
Equations
- CategoryTheory.LaxMonoidalFunctor.of F = { toFunctor := F, laxMonoidal := inferInstance }