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,
obtaining a monoidal structure on D
.
We don't yet prove anything about this transported structure! The next step would be to show that the original functor can be upgraded to a monoidal functor with respect to this new structure.
Transport a monoidal structure along an equivalence of (plain) categories.
Equations
- category_theory.monoidal.transport e = {tensor_obj := λ (X Y : D), e.functor.obj (e.inverse.obj X ⊗ e.inverse.obj Y), tensor_hom := λ (W X Y Z : D) (f : W ⟶ X) (g : Y ⟶ Z), e.functor.map (e.inverse.map f ⊗ e.inverse.map g), tensor_id' := _, tensor_comp' := _, tensor_unit := e.functor.obj (𝟙_ C), associator := λ (X Y Z : D), e.functor.map_iso (((e.unit_iso.app (e.inverse.obj X ⊗ e.inverse.obj Y)).symm ⊗ category_theory.iso.refl (e.inverse.obj Z)) ≪≫ α_ (e.inverse.obj X) (e.inverse.obj Y) (e.inverse.obj Z) ≪≫ (category_theory.iso.refl (e.inverse.obj X) ⊗ e.unit_iso.app (e.inverse.obj Y ⊗ e.inverse.obj Z))), associator_naturality' := _, left_unitor := λ (X : D), e.functor.map_iso (((e.unit_iso.app (𝟙_ C)).symm ⊗ category_theory.iso.refl (e.inverse.obj X)) ≪≫ λ_ (e.inverse.obj X)) ≪≫ e.counit_iso.app X, left_unitor_naturality' := _, right_unitor := λ (X : D), e.functor.map_iso ((category_theory.iso.refl (e.inverse.obj X) ⊗ (e.unit_iso.app (𝟙_ C)).symm) ≪≫ ρ_ (e.inverse.obj X)) ≪≫ e.counit_iso.app X, right_unitor_naturality' := _, pentagon' := _, triangle' := _}
A type synonym for D
, which will carry the transported monoidal structure.
Equations
We can upgrade e.functor
to a lax monoidal functor from C
to D
with the transported structure.
Equations
- category_theory.monoidal.lax_to_transported e = {to_functor := {obj := e.functor.obj, map := e.functor.map, map_id' := _, map_comp' := _}, ε := 𝟙 (e.functor.obj (𝟙_ C)), μ := λ (X Y : C), e.functor.map (e.unit_inv.app X ⊗ e.unit_inv.app Y), μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}
We can upgrade e.functor
to a monoidal functor from C
to D
with the transported structure.
Equations
- category_theory.monoidal.to_transported e = {to_lax_monoidal_functor := {to_functor := (category_theory.monoidal.lax_to_transported e).to_functor, ε := (category_theory.monoidal.lax_to_transported e).ε, μ := (category_theory.monoidal.lax_to_transported e).μ, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := id (category_theory.is_iso.id (e.functor.obj (𝟙_ C))), μ_is_iso := λ (X Y : C), id (e.functor.map_is_iso (e.unit_inv.app X ⊗ e.unit_inv.app Y))}
We can upgrade e.inverse
to a lax monoidal functor from D
with the transported structure to C
.
Equations
- category_theory.monoidal.lax_from_transported e = {to_functor := {obj := e.inverse.obj, map := e.inverse.map, map_id' := _, map_comp' := _}, ε := e.unit.app (𝟙_ C), μ := λ (X Y : category_theory.monoidal.transported e), e.unit.app (e.inverse.obj X ⊗ e.inverse.obj Y), μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}
We can upgrade e.inverse
to a monoidal functor from D
with the transported structure to C
.
Equations
- category_theory.monoidal.from_transported e = {to_lax_monoidal_functor := {to_functor := (category_theory.monoidal.lax_from_transported e).to_functor, ε := (category_theory.monoidal.lax_from_transported e).ε, μ := (category_theory.monoidal.lax_from_transported e).μ, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, ε_is_iso := id (category_theory.nat_iso.is_iso_app_of_is_iso e.unit (𝟙_ C)), μ_is_iso := λ (X Y : category_theory.monoidal.transported e), id (category_theory.nat_iso.is_iso_app_of_is_iso e.unit (e.inverse.obj X ⊗ e.inverse.obj Y))}
The unit isomorphism upgrades to a monoidal isomorphism.
Equations
- category_theory.monoidal.transported_monoidal_unit_iso e = category_theory.monoidal_nat_iso.of_components (λ (X : C), e.unit_iso.app X) _ _ _
The counit isomorphism upgrades to a monoidal isomorphism.