Documentation

Mathlib.CategoryTheory.Monoidal.Cartesian.Mon_

Yoneda embedding of Mon C #

We show that monoid objects in Cartesian monoidal categories are exactly those whose yoneda presheaf is a presheaf of monoids, by constructing the yoneda embedding Mon C ⥤ Cᵒᵖ ⥤ MonCat.{v} and showing that it is fully faithful and its (essential) image is the representable functors.

@[implicit_reducible]
Equations
@[implicit_reducible]
Equations
@[deprecated CategoryTheory.Mon.uniqueHomToTrivial (since := "2026-03-20")]

Alias of CategoryTheory.Mon.uniqueHomToTrivial.

Equations
Instances For
    @[implicit_reducible]
    Equations
    • One or more equations did not get rendered due to their size.
    @[implicit_reducible]
    Equations
    • One or more equations did not get rendered due to their size.

    Comm monoid objects are internal monoid objects #

    @[implicit_reducible]

    A commutative monoid object is a monoid object in the category of monoid objects.

    Equations
    • One or more equations did not get rendered due to their size.
    @[implicit_reducible]

    A commutative additive monoid object is an additive monoid object in the category of additive monoid objects.

    Equations
    • One or more equations did not get rendered due to their size.

    A commutative monoid object is a commutative monoid object in the category of monoid objects.

    A commutative additive monoid object is a commutative additive monoid object in the category of additive monoid objects.

    @[implicit_reducible]

    If X represents a presheaf of monoids, then X is a monoid object.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[implicit_reducible]

      If X represents a presheaf of additive monoids, then X is an additive monoid object.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[reducible, inline]

        If M is a monoid object, then Hom(X, M) has a monoid structure.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[reducible, inline]

          If M is an additive monoid object, then Hom(X, M) has an additive monoid structure.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem CategoryTheory.Functor.map_mul {C : Type u_1} {D : Type u_2} [Category.{v, u_1} C] [CartesianMonoidalCategory C] [Category.{w, u_2} D] [CartesianMonoidalCategory D] {M X : C} [MonObj M] (F : Functor C D) [F.Monoidal] (f g : X M) :
            F.map (f * g) = F.map f * F.map g
            theorem CategoryTheory.Functor.map_add' {C : Type u_1} {D : Type u_2} [Category.{v, u_1} C] [CartesianMonoidalCategory C] [Category.{w, u_2} D] [CartesianMonoidalCategory D] {M X : C} [AddMonObj M] (F : Functor C D) [F.Monoidal] (f g : X M) :
            F.map (f + g) = F.map f + F.map g

            Functor.map of a monoidal functor as a MonoidHom.

            Equations
            Instances For

              Functor.map of a monoidal functor as a AddMonoidHom.

              Equations
              Instances For
                @[simp]

                Functor.map of a fully faithful monoidal functor as a MulEquiv.

                Equations
                Instances For

                  Functor.map of a fully faithful monoidal functor as a AddEquiv.

                  Equations
                  Instances For
                    @[simp]
                    @[reducible, inline]

                    If M is a commutative monoid object, then Hom(X, M) has a commutative monoid structure.

                    Equations
                    Instances For
                      @[reducible, inline]

                      If M is a commutative additive monoid object, then Hom(X, M) has a commutative additive monoid structure.

                      Equations
                      Instances For
                        @[simp]
                        @[simp]
                        theorem CategoryTheory.Mon.Hom.hom_pow {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] [BraidedCategory C] {M N : Mon C} [IsCommMonObj N.X] (f : M N) (n : ) :
                        (f ^ n).hom = f.hom ^ n

                        If M is a monoid object, then Hom(-, M) is a presheaf of monoids.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          If M is an additive monoid object, then Hom(-, M) is a presheaf of additive monoids.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem CategoryTheory.yonedaMonObj_map {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] (M : C) [MonObj M] {X Y₂ : Cᵒᵖ} (φ : X Y₂) :
                            (yonedaMonObj M).map φ = MonCat.ofHom { toFun := fun (x : Opposite.unop X M) => CategoryStruct.comp φ.unop x, map_one' := , map_mul' := }
                            @[simp]
                            theorem CategoryTheory.yonedaAddMonObj_map {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] (M : C) [AddMonObj M] {X Y₂ : Cᵒᵖ} (φ : X Y₂) :
                            (yonedaAddMonObj M).map φ = AddMonCat.ofHom { toFun := fun (x : Opposite.unop X M) => CategoryStruct.comp φ.unop x, map_zero' := , map_add' := }

                            If X represents a presheaf of monoids F, then Hom(-, X) is isomorphic to F as a presheaf of monoids.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              If X represents a presheaf of additive monoids F, then Hom(-, X) is isomorphic to F as a presheaf of additive monoids.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                The yoneda embedding of Mon C into presheaves of monoids.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  The yoneda embedding of AddMon C into presheaves of additive monoids.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.yonedaAddMon_map_app {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : AddMon C} (ψ : M N) (Y : Cᵒᵖ) :
                                    (yonedaAddMon.map ψ).app Y = AddMonCat.ofHom { toFun := fun (x : Opposite.unop Y M.X) => CategoryStruct.comp x ψ.hom, map_zero' := , map_add' := }
                                    @[simp]
                                    theorem CategoryTheory.yonedaMon_map_app {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : Mon C} (ψ : M N) (Y : Cᵒᵖ) :
                                    (yonedaMon.map ψ).app Y = MonCat.ofHom { toFun := fun (x : Opposite.unop Y M.X) => CategoryStruct.comp x ψ.hom, map_one' := , map_mul' := }

                                    The yoneda embedding for Mon C is fully faithful.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For

                                      The yoneda embedding for AddMon C is fully faithful.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.MonObj.mul_comp {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N X : C} [MonObj M] [MonObj N] (f₁ f₂ : X M) (g : M N) [IsMonHom g] :
                                        theorem CategoryTheory.AddMonObj.add_comp {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N X : C} [AddMonObj M] [AddMonObj N] (f₁ f₂ : X M) (g : M N) [IsAddMonHom g] :
                                        theorem CategoryTheory.MonObj.mul_comp_assoc {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N X : C} [MonObj M] [MonObj N] (f₁ f₂ : X M) (g : M N) [IsMonHom g] {Z : C} (h : N Z) :
                                        theorem CategoryTheory.MonObj.pow_comp {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N X : C} [MonObj M] [MonObj N] (f : X M) (n : ) (g : M N) [IsMonHom g] :
                                        theorem CategoryTheory.MonObj.pow_comp_assoc {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N X : C} [MonObj M] [MonObj N] (f : X M) (n : ) (g : M N) [IsMonHom g] {Z : C} (h : N Z) :
                                        @[simp]
                                        theorem CategoryTheory.MonObj.comp_mul {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [MonObj M] (f : X Y) (g₁ g₂ : Y M) :
                                        theorem CategoryTheory.AddMonObj.comp_add {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [AddMonObj M] (f : X Y) (g₁ g₂ : Y M) :
                                        theorem CategoryTheory.MonObj.comp_mul_assoc {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [MonObj M] (f : X Y) (g₁ g₂ : Y M) {Z : C} (h : M Z) :
                                        theorem CategoryTheory.AddMonObj.comp_add_assoc {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [AddMonObj M] (f : X Y) (g₁ g₂ : Y M) {Z : C} (h : M Z) :
                                        theorem CategoryTheory.MonObj.comp_pow {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [MonObj M] (f : X M) (n : ) (h : Y X) :
                                        theorem CategoryTheory.AddMonObj.comp_nsmul_assoc {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [AddMonObj M] (f : X M) (n : ) (h : Y X) {Z : C} (h✝ : M Z) :
                                        theorem CategoryTheory.MonObj.comp_pow_assoc {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M X Y : C} [MonObj M] (f : X M) (n : ) (h : Y X) {Z : C} (h✝ : M Z) :
                                        def CategoryTheory.Hom.mulEquivCongrRight {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : C} [MonObj M] [MonObj N] (e : M N) [IsMonHom e.hom] (X : C) :
                                        (X M) ≃* (X N)

                                        If M and N are isomorphic as monoid objects, then X ⟶ M and X ⟶ N are isomorphic monoids.

                                        Equations
                                        Instances For
                                          def CategoryTheory.Hom.addEquivCongrRight {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : C} [AddMonObj M] [AddMonObj N] (e : M N) [IsAddMonHom e.hom] (X : C) :
                                          (X M) ≃+ (X N)

                                          If M and N are isomorphic as additive monoid objects, then X ⟶ M and X ⟶ N are isomorphic additive monoids.

                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.Hom.addEquivCongrRight_symm_apply {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : C} [AddMonObj M] [AddMonObj N] (e : M N) [IsAddMonHom e.hom] (X : C) (a : ((yonedaAddMon.obj { X := N, addMon := inst✝ }).obj (Opposite.op X))) :
                                            (addEquivCongrRight e X).symm a = (AddMonCat.Hom.hom (AddMonCat.ofHom { toFun := fun (x : X N) => CategoryStruct.comp x e.inv, map_zero' := , map_add' := })) a
                                            @[simp]
                                            theorem CategoryTheory.Hom.addEquivCongrRight_apply {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : C} [AddMonObj M] [AddMonObj N] (e : M N) [IsAddMonHom e.hom] (X : C) (a : ((yonedaAddMon.obj { X := M, addMon := inst✝ }).obj (Opposite.op X))) :
                                            (addEquivCongrRight e X) a = (AddMonCat.Hom.hom (AddMonCat.ofHom { toFun := fun (x : X M) => CategoryStruct.comp x e.hom, map_zero' := , map_add' := })) a
                                            @[simp]
                                            theorem CategoryTheory.Hom.mulEquivCongrRight_apply {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : C} [MonObj M] [MonObj N] (e : M N) [IsMonHom e.hom] (X : C) (a : ((yonedaMon.obj { X := M, mon := inst✝ }).obj (Opposite.op X))) :
                                            (mulEquivCongrRight e X) a = (MonCat.Hom.hom (MonCat.ofHom { toFun := fun (x : X M) => CategoryStruct.comp x e.hom, map_one' := , map_mul' := })) a
                                            @[simp]
                                            theorem CategoryTheory.Hom.mulEquivCongrRight_symm_apply {C : Type u_1} [Category.{v, u_1} C] [CartesianMonoidalCategory C] {M N : C} [MonObj M] [MonObj N] (e : M N) [IsMonHom e.hom] (X : C) (a : ((yonedaMon.obj { X := N, mon := inst✝ }).obj (Opposite.op X))) :
                                            (mulEquivCongrRight e X).symm a = (MonCat.Hom.hom (MonCat.ofHom { toFun := fun (x : X N) => CategoryStruct.comp x e.inv, map_one' := , map_mul' := })) a

                                            A monoid object M is commutative if and only if X ⟶ M is commutative for all X.