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, an 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
    def CategoryTheory.ComonObj.termΔ :
    Lean.ParserDescr

    The comultiplication morphism of a comonoid object.

    Instances For

      The comultiplication morphism of a comonoid object.

      Instances For
        def CategoryTheory.ComonObj.termε :
        Lean.ParserDescr

        The counit morphism of a comonoid object.

        Instances For

          The counit morphism of a comonoid object.

          Instances For
            @[implicit_reducible]

            The canonical comonoid structure on the monoidal unit. This is not a global instance to avoid conflicts with other comonoid structures.

            Instances For
              class CategoryTheory.IsComonHom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {M N : C} [ComonObj M] [ComonObj N] (f : M N) :

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

              Instances
                structure CategoryTheory.Comon (C : Type u₁) [Category.{v₁, u₁} C] [MonoidalCategory C] :
                Type (max u₁ v₁)

                A comonoid object internal to a monoidal category.

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

                • X : C

                  The underlying object of a comonoid object.

                • comon : ComonObj self.X
                Instances For

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

                  Instances For
                    @[implicit_reducible]
                    structure CategoryTheory.Comon.Hom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (M N : Comon C) :
                    Type v₁

                    A morphism of comonoid objects.

                    • hom : M.X N.X

                      The underlying morphism of a morphism of comonoid objects.

                    • isComonHom_hom : IsComonHom self.hom
                    Instances For
                      theorem CategoryTheory.Comon.Hom.ext {C : Type u₁} {inst✝ : Category.{v₁, u₁} C} {inst✝¹ : MonoidalCategory C} {M N : Comon C} {x y : M.Hom N} (hom : x.hom = y.hom) :
                      x = y
                      theorem CategoryTheory.Comon.Hom.ext_iff {C : Type u₁} {inst✝ : Category.{v₁, u₁} C} {inst✝¹ : MonoidalCategory C} {M N : Comon C} {x y : M.Hom N} :
                      x = y x.hom = y.hom
                      @[reducible, inline]

                      Construct a morphism M ⟶ N of Comon C from a map f : M ⟶ N and a IsComonHom f instance.

                      Instances For

                        The identity morphism on a comonoid object.

                        Instances For
                          @[implicit_reducible]
                          instance CategoryTheory.Comon.homInhabited {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] (M : Comon C) :
                          Inhabited (M.Hom M)
                          def CategoryTheory.Comon.comp {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {M N O : Comon C} (f : M.Hom N) (g : N.Hom O) :
                          M.Hom O

                          Composition of morphisms of monoid objects.

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

                            The forgetful functor from comonoid objects to the ambient category.

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

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

                              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.

                              Instances For

                                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.

                                Instances For
                                  @[reducible, inline]

                                  Auxiliary definition for ComonToMonOpOpObj.

                                  Instances For

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

                                    Instances For

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

                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.Comon.ComonToMonOpOp_map (C : Type u₁) [Category.{v₁, u₁} C] [MonoidalCategory C] {X✝ Y✝ : Comon C} (f : X✝ Y✝) :
                                        (ComonToMonOpOp C).map f = Opposite.op { hom := f.hom.op, isMonHom_hom := }
                                        @[reducible, inline]

                                        Auxiliary definition for MonOpOpToComonObj.

                                        Instances For

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

                                          Instances For

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

                                            Instances For

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

                                              Instances For
                                                @[implicit_reducible]

                                                Comonoid objects in a braided category form a monoidal category.

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

                                                @[simp]
                                                theorem CategoryTheory.Comon.monoidal_tensorHom_hom (C : Type u₁) [Category.{v₁, u₁} C] [MonoidalCategory C] [BraidedCategory C] {X₁✝ Y₁✝ X₂✝ Y₂✝ : Comon C} (f : X₁✝ Y₁✝) (g : X₂✝ Y₂✝) :

                                                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.

                                                @[simp]

                                                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).

                                                @[implicit_reducible]

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

                                                @[reducible, inline]

                                                The image of a comonoid object under an oplax monoidal functor is a comonoid object.

                                                Instances For

                                                  An oplax monoidal functor takes comonoid objects to comonoid objects.

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

                                                  Instances For
                                                    @[simp]
                                                    theorem CategoryTheory.Functor.mapComon_map_hom {C : Type u₁} [Category.{v₁, u₁} C] [MonoidalCategory C] {D : Type u₂} [Category.{v₂, u₂} D] [MonoidalCategory D] (F : Functor C D) [F.OplaxMonoidal] {X✝ Y✝ : Comon C} (f : X✝ Y✝) :
                                                    (F.mapComon.map f).hom = F.map f.hom

                                                    Predicate for a comonoid object to be commutative.

                                                    Instances