Transport a monoidal structure along an equivalence. #
When C
and D
are equivalent as categories,
we can transport a monoidal structure on C
along the equivalence as
CategoryTheory.Monoidal.transport
, obtaining a monoidal structure on D
.
More generally, we can transport the lawfulness of a monoidal structure along a suitable faithful
functor, as CategoryTheory.Monoidal.induced
.
The comparison is analogous to the difference between Equiv.monoid
and
Function.Injective.monoid
.
We then upgrade the original functor and its inverse to monoidal functors
with respect to the new monoidal structure on D
.
The data needed to induce a MonoidalCategory
via the functor F
; namely, pre-existing
definitions of ⊗
, 𝟙_
, ▷
, ◁
that are preserved by F
.
- μIso (X Y : D) : CategoryTheory.MonoidalCategory.tensorObj (F.obj X) (F.obj Y) ≅ F.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
Analogous to
CategoryTheory.LaxMonoidalFunctor.μIso
- whiskerLeft_eq (X : D) {Y₁ Y₂ : D} (f : Y₁ ⟶ Y₂) : F.map (CategoryTheory.MonoidalCategory.whiskerLeft X f) = CategoryTheory.CategoryStruct.comp (self.μIso X Y₁).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.obj X) (F.map f)) (self.μIso X Y₂).hom)
- whiskerRight_eq {X₁ X₂ : D} (f : X₁ ⟶ X₂) (Y : D) : F.map (CategoryTheory.MonoidalCategory.whiskerRight f Y) = CategoryTheory.CategoryStruct.comp (self.μIso X₁ Y).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (F.map f) (F.obj Y)) (self.μIso X₂ Y).hom)
- tensorHom_eq {X₁ Y₁ X₂ Y₂ : D} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂) : F.map (CategoryTheory.MonoidalCategory.tensorHom f g) = CategoryTheory.CategoryStruct.comp (self.μIso X₁ X₂).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.tensorHom (F.map f) (F.map g)) (self.μIso Y₁ Y₂).hom)
- εIso : 𝟙_ C ≅ F.obj (𝟙_ D)
Analogous to
CategoryTheory.LaxMonoidalFunctor.εIso
- associator_eq (X Y Z : D) : F.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom = (((self.μIso (CategoryTheory.MonoidalCategory.tensorObj X Y) Z).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso (self.μIso X Y).symm (CategoryTheory.Iso.refl (F.obj Z))) ≪≫ CategoryTheory.MonoidalCategory.associator (F.obj X) (F.obj Y) (F.obj Z) ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.Iso.refl (F.obj X)) (self.μIso Y Z) ≪≫ self.μIso X (CategoryTheory.MonoidalCategory.tensorObj Y Z)).hom
- leftUnitor_eq (X : D) : F.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom = (((self.μIso (𝟙_ D) X).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso self.εIso.symm (CategoryTheory.Iso.refl (F.obj X))) ≪≫ CategoryTheory.MonoidalCategory.leftUnitor (F.obj X)).hom
- rightUnitor_eq (X : D) : F.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom = (((self.μIso X (𝟙_ D)).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.Iso.refl (F.obj X)) self.εIso.symm) ≪≫ CategoryTheory.MonoidalCategory.rightUnitor (F.obj X)).hom
Instances For
Induce the lawfulness of the monoidal structure along an faithful functor of (plain) categories,
where the operations are already defined on the destination type D
.
The functor F
must preserve all the data parts of the monoidal structure between the two
categories.
Equations
- CategoryTheory.Monoidal.induced F fData = CategoryTheory.MonoidalCategory.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
A faithful functor equipped with a InducingFunctorData
structure is monoidal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Monoidal.fromInducedMonoidal F fData = (CategoryTheory.Monoidal.fromInducedCoreMonoidal F fData).toMonoidal
Transport a monoidal structure along an equivalence of (plain) categories.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Transport a monoidal structure along an equivalence of (plain) categories.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type synonym for D
, which will carry the transported monoidal structure.
Equations
Instances For
Equations
- CategoryTheory.Monoidal.instCategoryTransported e = inferInstance
Equations
- CategoryTheory.Monoidal.instInhabitedTransported e = { default := 𝟙_ (CategoryTheory.Monoidal.Transported e) }
We upgrade the equivalence of categories e : C ≌ D
to a monoidal category
equivalence C ≌ Transported e
.
Equations
Instances For
Equations
Equations
The unit isomorphism upgrades to a monoidal isomorphism.
The counit isomorphism upgrades to a monoidal isomorphism.