The category of monoids in a monoidal category.
- X : C
- one : 𝟙_ C ⟶ c.X
- mul : c.X ⊗ c.X ⟶ c.X
- one_mul' : (c.one ⊗ 𝟙 c.X) ≫ c.mul = (λ_ c.X).hom . "obviously"
- mul_one' : (𝟙 c.X ⊗ c.one) ≫ c.mul = (ρ_ c.X).hom . "obviously"
- mul_assoc' : (c.mul ⊗ 𝟙 c.X) ≫ c.mul = (α_ c.X c.X c.X).hom ≫ (𝟙 c.X ⊗ c.mul) ≫ c.mul . "obviously"
A monoid object internal to a monoidal category.
When the monoidal category is preadditive, this is also sometimes called an "algebra object".
The trivial monoid object. We later show this is initial in Mon_ C
.
Equations
- Mon_.inhabited C = {default := Mon_.trivial C _inst_2}
Equations
- M.hom_inhabited = {default := M.id}
The forgetful functor from monoid objects to the ambient category.
Equations
The forgetful functor from monoid objects to the ambient category reflects isomorphisms.
Equations
- Mon_.category_theory.reflects_isomorphisms = {reflects := λ (X Y : Mon_ C) (f : X ⟶ Y) (e : category_theory.is_iso ((Mon_.forget C).map f)), {inv := {hom := category_theory.is_iso.inv f.hom (Mon_.category_theory.is_iso f), one_hom' := _, mul_hom' := _}, hom_inv_id' := _, inv_hom_id' := _}}
A lax monoidal functor takes monoid objects to monoid objects.
That is, a lax monoidal functor F : C ⥤ D
induces a functor Mon_ C ⥤ Mon_ D
.
Equations
- F.map_Mon = {obj := λ (A : Mon_ C), {X := F.to_functor.obj A.X, one := F.ε ≫ F.to_functor.map A.one, mul := F.μ A.X A.X ≫ F.to_functor.map A.mul, one_mul' := _, mul_one' := _, mul_assoc' := _}, map := λ (A B : Mon_ C) (f : A ⟶ B), {hom := F.to_functor.map f.hom, one_hom' := _, mul_hom' := _}, map_id' := _, map_comp' := _}
map_Mon
is functorial in the lax monoidal functor.
Equations
- category_theory.lax_monoidal_functor.map_Mon_functor C D = {obj := category_theory.lax_monoidal_functor.map_Mon _inst_4, map := λ (F G : category_theory.lax_monoidal_functor C D) (α : F ⟶ G), {app := λ (A : Mon_ C), {hom := α.to_nat_trans.app A.X, one_hom' := _, mul_hom' := _}, naturality' := _}, map_id' := _, map_comp' := _}
Implementation of Mon_.equiv_lax_monoidal_functor_punit
.
Equations
- Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon C = {obj := λ (F : category_theory.lax_monoidal_functor (category_theory.discrete punit) C), F.map_Mon.obj (Mon_.trivial (category_theory.discrete punit)), map := λ (F G : category_theory.lax_monoidal_functor (category_theory.discrete punit) C) (α : F ⟶ G), ((category_theory.lax_monoidal_functor.map_Mon_functor (category_theory.discrete punit) C).map α).app (Mon_.trivial (category_theory.discrete punit)), map_id' := _, map_comp' := _}
Implementation of Mon_.equiv_lax_monoidal_functor_punit
.
Equations
- Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal C = {obj := λ (A : Mon_ C), {to_functor := {obj := λ (_x : category_theory.discrete punit), A.X, map := λ (_x _x_1 : category_theory.discrete punit) (_x : _x ⟶ _x_1), 𝟙 A.X, map_id' := _, map_comp' := _}, ε := A.one, μ := λ (_x _x : category_theory.discrete punit), A.mul, μ_natural' := _, associativity' := _, left_unitality' := _, right_unitality' := _}, map := λ (A B : Mon_ C) (f : A ⟶ B), {to_nat_trans := {app := λ (_x : category_theory.discrete punit), f.hom, naturality' := _}, unit' := _, tensor' := _}, map_id' := _, map_comp' := _}
Implementation of Mon_.equiv_lax_monoidal_functor_punit
.
Equations
- Mon_.equiv_lax_monoidal_functor_punit.unit_iso C = category_theory.nat_iso.of_components (λ (F : category_theory.lax_monoidal_functor (category_theory.discrete punit) C), category_theory.monoidal_nat_iso.of_components (λ (_x : category_theory.discrete punit), F.to_functor.map_iso (category_theory.eq_to_iso _)) _ _ _) _
Implementation of Mon_.equiv_lax_monoidal_functor_punit
.
Equations
- Mon_.equiv_lax_monoidal_functor_punit.counit_iso C = category_theory.nat_iso.of_components (λ (F : Mon_ C), {hom := {hom := 𝟙 ((Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal C ⋙ Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon C).obj F).X, one_hom' := _, mul_hom' := _}, inv := {hom := 𝟙 ((𝟭 (Mon_ C)).obj F).X, one_hom' := _, mul_hom' := _}, hom_inv_id' := _, inv_hom_id' := _}) _
Monoid objects in C
are "just" lax monoidal functors from the trivial monoidal category to C
.
Equations
- Mon_.equiv_lax_monoidal_functor_punit C = {functor := Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon C _inst_2, inverse := Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal C _inst_2, unit_iso := Mon_.equiv_lax_monoidal_functor_punit.unit_iso C _inst_2, counit_iso := Mon_.equiv_lax_monoidal_functor_punit.counit_iso C _inst_2, functor_unit_iso_comp' := _}
Projects:
- Check that
Mon_ Mon ≌ CommMon
, via the Eckmann-Hilton argument. (You'll have to hook up the cartesian monoidal structure onMon
first, available in #3463) - Check that
Mon_ Top ≌ [bundled topological monoids]
. - Check that
Mon_ AddCommGroup ≌ Ring
. (We've already gotMon_ (Module R) ≌ Algebra R
, incategory_theory.monoidal.internal.Module
.) - Can you transport this monoidal structure to
Ring
orAlgebra R
? How does it compare to the "native" one? - Show that if
C
is braided thenMon_ C
is naturally monoidal.