Documentation

Mathlib.CategoryTheory.Monad.Coequalizer

Special coequalizers associated to a monad #

Associated to a monad T : C ⥤ C we have important coequalizer constructions: Any algebra is a coequalizer (in the category of algebras) of free algebras. Furthermore, this coequalizer is reflexive. In C, this cofork diagram is a split coequalizer (in particular, it is still a coequalizer). This split coequalizer is known as the Beck coequalizer (as it features heavily in Beck's monadicity theorem).

This file has been adapted to Mathlib.CategoryTheory.Monad.Equalizer. Please try to keep them in sync.

Show that any algebra is a coequalizer of free algebras.

def CategoryTheory.Monad.FreeCoequalizer.topMap {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
T.free.obj (T.obj X.A) T.free.obj X.A

The top map in the coequalizer diagram we will construct.

Equations
Instances For
    @[simp]
    theorem CategoryTheory.Monad.FreeCoequalizer.topMap_f {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
    (topMap X).f = T.map X.a
    def CategoryTheory.Monad.FreeCoequalizer.bottomMap {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
    T.free.obj (T.obj X.A) T.free.obj X.A

    The bottom map in the coequalizer diagram we will construct.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.Monad.FreeCoequalizer.bottomMap_f {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
      (bottomMap X).f = T.app X.A
      def CategoryTheory.Monad.FreeCoequalizer.π {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
      T.free.obj X.A X

      The cofork map in the coequalizer diagram we will construct.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Monad.FreeCoequalizer.π_f {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
        (π X).f = X.a

        Construct the Beck cofork in the category of algebras. This cofork is reflexive as well as a coequalizer.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Monad.beckAlgebraCofork_pt {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :

          The cofork constructed is a colimit. This shows that any algebra is a (reflexive) coequalizer of free algebras.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def CategoryTheory.Monad.beckSplitCoequalizer {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
            IsSplitCoequalizer (T.map X.a) (T.app X.A) X.a

            The Beck cofork is a split coequalizer.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def CategoryTheory.Monad.beckCofork {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
              Limits.Cofork (T.map X.a) (T.app X.A)

              This is the Beck cofork. It is a split coequalizer, in particular a coequalizer.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Monad.beckCofork_pt {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
                (beckCofork X).pt = X.A
                @[simp]
                theorem CategoryTheory.Monad.beckCofork_π {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) :
                (beckCofork X) = X.a

                The Beck cofork is a coequalizer.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Monad.beckCoequalizer_desc {C : Type u₁} [Category.{v₁, u₁} C] {T : Monad C} (X : T.Algebra) (s : Limits.Cofork (T.map X.a) (T.app X.A)) :
                  (beckCoequalizer X).desc s = CategoryStruct.comp (T.app X.A) s