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.toPrefunctor.obj X) (F.toPrefunctor.obj Y) ≅ F.toPrefunctor.obj (CategoryTheory.MonoidalCategory.tensorObj X Y)
Analogous to
CategoryTheory.LaxMonoidalFunctor.μIso
- whiskerLeft_eq : ∀ (X : D) {Y₁ Y₂ : D} (f : Y₁ ⟶ Y₂), F.toPrefunctor.map (CategoryTheory.MonoidalCategory.whiskerLeft X f) = CategoryTheory.CategoryStruct.comp (self.μIso X Y₁).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerLeft (F.toPrefunctor.obj X) (F.toPrefunctor.map f)) (self.μIso X Y₂).hom)
- whiskerRight_eq : ∀ {X₁ X₂ : D} (f : X₁ ⟶ X₂) (Y : D), F.toPrefunctor.map (CategoryTheory.MonoidalCategory.whiskerRight f Y) = CategoryTheory.CategoryStruct.comp (self.μIso X₁ Y).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.whiskerRight (F.toPrefunctor.map f) (F.toPrefunctor.obj Y)) (self.μIso X₂ Y).hom)
- tensorHom_eq : ∀ {X₁ Y₁ X₂ Y₂ : D} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂), F.toPrefunctor.map (CategoryTheory.MonoidalCategory.tensorHom f g) = CategoryTheory.CategoryStruct.comp (self.μIso X₁ X₂).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategory.tensorHom (F.toPrefunctor.map f) (F.toPrefunctor.map g)) (self.μIso Y₁ Y₂).hom)
- εIso : 𝟙_ C ≅ F.toPrefunctor.obj (𝟙_ D)
Analogous to
CategoryTheory.LaxMonoidalFunctor.εIso
- associator_eq : ∀ (X Y Z : D), F.toPrefunctor.map (CategoryTheory.MonoidalCategory.associator X Y Z).hom = (((self.μIso (CategoryTheory.MonoidalCategory.tensorObj X Y) Z).symm ≪≫ ((self.μIso X Y).symm ⊗ CategoryTheory.Iso.refl (F.toPrefunctor.obj Z))) ≪≫ CategoryTheory.MonoidalCategory.associator (F.toPrefunctor.obj X) (F.toPrefunctor.obj Y) (F.toPrefunctor.obj Z) ≪≫ (CategoryTheory.Iso.refl (F.toPrefunctor.obj X) ⊗ self.μIso Y Z) ≪≫ self.μIso X (CategoryTheory.MonoidalCategory.tensorObj Y Z)).hom
- leftUnitor_eq : ∀ (X : D), F.toPrefunctor.map (CategoryTheory.MonoidalCategory.leftUnitor X).hom = (((self.μIso (𝟙_ D) X).symm ≪≫ (self.εIso.symm ⊗ CategoryTheory.Iso.refl (F.toPrefunctor.obj X))) ≪≫ CategoryTheory.MonoidalCategory.leftUnitor (F.toPrefunctor.obj X)).hom
- rightUnitor_eq : ∀ (X : D), F.toPrefunctor.map (CategoryTheory.MonoidalCategory.rightUnitor X).hom = (((self.μIso X (𝟙_ D)).symm ≪≫ (CategoryTheory.Iso.refl (F.toPrefunctor.obj X) ⊗ self.εIso.symm)) ≪≫ CategoryTheory.MonoidalCategory.rightUnitor (F.toPrefunctor.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
We can upgrade F
to a monoidal functor from D
to E
with the induced structure.
Equations
- CategoryTheory.Monoidal.fromInduced F fData = CategoryTheory.MonoidalFunctor.mk (CategoryTheory.LaxMonoidalFunctor.mk F fData.εIso.hom fun (X Y : D) => (fData.μIso X Y).hom)
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
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 can upgrade e.inverse
to a monoidal functor from D
with the transported structure to C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.Monoidal.instIsEquivalence_fromTransported e = id inferInstance
We can upgrade e.functor
to a monoidal functor from C
to D
with the transported structure.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
The unit isomorphism upgrades to a monoidal isomorphism.
Equations
Instances For
The counit isomorphism upgrades to a monoidal isomorphism.