Documentation

Mathlib.CategoryTheory.Monoidal.Comon_

The category of comonoids in a monoidal category. #

We define comonoids in a monoidal category C, and show that they are equivalently monoid objects in the opposite category.

We construct the monoidal structure on Comon_ C, when C is braided.

An oplax monoidal functor takes comonoid objects to comonoid objects. That is, a oplax monoidal functor F : C ⥤ D induces a functor Comon_ C ⥤ Comon_ D.

TODO #

A comonoid object internal to a monoidal category.

When the monoidal category is preadditive, this is also sometimes called a "coalgebra object".

Instances

    The comultiplication morphism of a comonoid object.

    Equations
    Instances For

      The comultiplication morphism of a comonoid object.

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

        The counit morphism of a comonoid object.

        Equations
        Instances For

          The counit morphism of a comonoid object.

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

            The property that a morphism between comonoid objects is a comonoid morphism.

            Instances
              @[simp]
              theorem IsComon_Hom.hom_counit_assoc {C : Type u₁} {inst✝ : CategoryTheory.Category.{v₁, u₁} C} {inst✝¹ : CategoryTheory.MonoidalCategory C} {M N : C} {inst✝² : Comon_Class M} {inst✝³ : Comon_Class N} {f : M N} [self : IsComon_Hom f] {Z : C} (h : 𝟙_ C Z) :

              A comonoid object internal to a monoidal category.

              When the monoidal category is preadditive, this is also sometimes called a "coalgebra object".

              Instances For

                Construct an object of Comon_ C from an object X : C and Comon_Class X instance.

                Equations
                • Comon_.mk' X = { X := X, counit := Comon_Class.counit, comul := Comon_Class.comul, counit_comul := , comul_counit := , comul_assoc := }
                Instances For
                  @[simp]
                  theorem Comon_.mk'_counit {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X : C) [Comon_Class X] :
                  (Comon_.mk' X).counit = Comon_Class.counit
                  @[simp]
                  theorem Comon_.mk'_comul {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] (X : C) [Comon_Class X] :
                  (Comon_.mk' X).comul = Comon_Class.comul
                  Equations
                  • Comon_.instComon_ClassX = { counit := M.counit, comul := M.comul, counit_comul' := , comul_counit' := , comul_assoc' := }

                  The trivial comonoid object. We later show this is terminal in Comon_ C.

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

                    A morphism of comonoid objects.

                    Instances For
                      theorem Comon_.Hom.ext {C : Type u₁} {inst✝ : CategoryTheory.Category.{v₁, u₁} C} {inst✝¹ : CategoryTheory.MonoidalCategory C} {M N : Comon_ C} {x y : M.Hom N} (hom : x.hom = y.hom) :
                      x = y

                      The identity morphism on a comonoid object.

                      Equations
                      Instances For
                        Equations
                        • M.homInhabited = { default := M.id }
                        def Comon_.comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {M N O : Comon_ C} (f : M.Hom N) (g : N.Hom O) :
                        M.Hom O

                        Composition of morphisms of monoid objects.

                        Equations
                        Instances For
                          @[simp]
                          theorem Comon_.comp_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {M N O : Comon_ C} (f : M.Hom N) (g : N.Hom O) :
                          theorem Comon_.ext {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X Y : Comon_ C} {f g : X Y} (w : f.hom = g.hom) :
                          f = g

                          The forgetful functor from comonoid objects to the ambient category.

                          Equations
                          Instances For
                            @[simp]
                            theorem Comon_.forget_map (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X✝ Y✝ : Comon_ C} (f : X✝ Y✝) :
                            (Comon_.forget C).map f = f.hom

                            The forgetful functor from comonoid objects to the ambient category reflects isomorphisms.

                            Equations
                            • =
                            def Comon_.mkIso {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {M N : Comon_ C} (f : M.X N.X) (f_counit : CategoryTheory.CategoryStruct.comp f.hom N.counit = M.counit := by aesop_cat) (f_comul : CategoryTheory.CategoryStruct.comp f.hom N.comul = CategoryTheory.CategoryStruct.comp M.comul (CategoryTheory.MonoidalCategory.tensorHom f.hom f.hom) := by aesop_cat) :
                            M N

                            Construct an isomorphism of comonoids by giving an isomorphism between the underlying objects and checking compatibility with counit and comultiplication only in the forward direction.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem Comon_.mkIso_inv_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {M N : Comon_ C} (f : M.X N.X) (f_counit : CategoryTheory.CategoryStruct.comp f.hom N.counit = M.counit := by aesop_cat) (f_comul : CategoryTheory.CategoryStruct.comp f.hom N.comul = CategoryTheory.CategoryStruct.comp M.comul (CategoryTheory.MonoidalCategory.tensorHom f.hom f.hom) := by aesop_cat) :
                              (Comon_.mkIso f f_counit f_comul).inv.hom = f.inv
                              @[simp]
                              theorem Comon_.mkIso_hom_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {M N : Comon_ C} (f : M.X N.X) (f_counit : CategoryTheory.CategoryStruct.comp f.hom N.counit = M.counit := by aesop_cat) (f_comul : CategoryTheory.CategoryStruct.comp f.hom N.comul = CategoryTheory.CategoryStruct.comp M.comul (CategoryTheory.MonoidalCategory.tensorHom f.hom f.hom) := by aesop_cat) :
                              (Comon_.mkIso f f_counit f_comul).hom.hom = f.hom
                              Equations
                              • A.uniqueHomToTrivial = { default := { hom := A.counit, hom_counit := , hom_comul := }, uniq := }

                              Turn a comonoid object into a monoid object in the opposite category.

                              Equations
                              Instances For

                                The contravariant functor turning comonoid objects into monoid objects in the opposite category.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[simp]
                                  theorem Comon_.Comon_ToMon_OpOp_map (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X✝ Y✝ : Comon_ C} (f : X✝ Y✝) :
                                  (Comon_.Comon_ToMon_OpOp C).map f = Opposite.op { hom := f.hom.op, one_hom := , mul_hom := }

                                  Turn a monoid object in the opposite category into a comonoid object.

                                  Equations
                                  Instances For

                                    The contravariant functor turning monoid objects in the opposite category into comonoid objects.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem Comon_.Mon_OpOpToComon__map_hom (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {X✝ Y✝ : (Mon_ Cᵒᵖ)ᵒᵖ} (f : X✝ Y✝) :
                                      ((Comon_.Mon_OpOpToComon_ C).map f).hom = f.unop.hom.unop

                                      Comonoid objects are contravariantly equivalent to monoid objects in the opposite category.

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

                                        Comonoid objects in a braided category form a monoidal category.

                                        This definition is via transporting back and forth to monoids in the opposite category,

                                        Equations
                                        @[simp]

                                        Preliminary statement of the comultiplication for a tensor product of comonoids. This version is the definitional equality provided by transport, and not quite as good as the version provided in tensorObj_comul below.

                                        The comultiplication on the tensor product of two comonoids is the tensor product of the comultiplications followed by the tensor strength (to shuffle the factors back into order).

                                        The forgetful functor from Comon_ C to C is monoidal when C is monoidal.

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

                                        A oplax monoidal functor takes comonoid objects to comonoid objects.

                                        That is, a oplax monoidal functor F : C ⥤ D induces a functor Comon_ C ⥤ Comon_ D.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.Functor.mapComon_map_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (F : CategoryTheory.Functor C D) [F.OplaxMonoidal] {X✝ Y✝ : Comon_ C} (f : X✝ Y✝) :
                                          (F.mapComon.map f).hom = F.map f.hom