Documentation

Mathlib.CategoryTheory.Monad.Equalizer

Special equalizers associated to a comonad #

Associated to a comonad T : C ⥤ C we have important equalizer constructions: Any coalgebra is an equalizer (in the category of coalgebras) of cofree coalgebras. Furthermore, this equalizer is coreflexive. In C, this fork diagram is a split equalizer (in particular, it is still an equalizer). This split equalizer is known as the Beck equalizer (as it features heavily in Beck's comonadicity theorem).

This file is adapted from Mathlib.CategoryTheory.Monad.Coequalizer. Please try to keep them in sync.

Show that any coalgebra is an equalizer of cofree coalgebras.

def CategoryTheory.Comonad.CofreeEqualizer.topMap {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) :
T.cofree.obj X.A T.cofree.obj (T.obj X.A)

The top map in the equalizer diagram we will construct.

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

    The bottom map in the equalizer diagram we will construct.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.Comonad.CofreeEqualizer.bottomMap_f {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) :
      (bottomMap X).f = T.app X.A
      def CategoryTheory.Comonad.CofreeEqualizer.ι {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) :
      X T.cofree.obj X.A

      The fork map in the equalizer diagram we will construct.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Comonad.CofreeEqualizer.ι_f {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) :
        (ι X).f = X.a

        Construct the Beck fork in the category of coalgebras. This fork is coreflexive as well as an equalizer.

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

          The fork constructed is a limit. This shows that any coalgebra is a (coreflexive) equalizer of cofree coalgebras.

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

            The Beck fork is a split equalizer.

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

              This is the Beck fork. It is a split equalizer, in particular a equalizer.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.Comonad.beckFork_pt {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) :
                (beckFork X).pt = X.A
                @[simp]
                theorem CategoryTheory.Comonad.beckFork_ι {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) :
                (beckFork X) = X.a

                The Beck fork is a equalizer.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Comonad.beckEqualizer_lift {C : Type u₁} [Category.{v₁, u₁} C] {T : Comonad C} (X : T.Coalgebra) (s : Limits.Fork (T.map X.a) (T.app X.A)) :
                  (beckEqualizer X).lift s = CategoryStruct.comp s (T.app X.A)