The equivalence between Monad C and Mon (C ⥤ C). #
A monad "is just" a monoid in the category of endofunctors.
Definitions/Theorems #
toMonassociates a monoid object inC ⥤ Cto any monad onC.monadToMonis the functorial version oftoMon.ofMonassociates a monad onCto any monoid object inC ⥤ C.monadMonEquivis the equivalence betweenMonad CandMon (C ⥤ C).
@[implicit_reducible]
@[simp]
theorem
CategoryTheory.Monad.mul_def
{C : Type u}
[Category.{v, u} C]
(M : Monad C)
:
MonObj.mul = M.μ
@[simp]
theorem
CategoryTheory.Monad.one_def
{C : Type u}
[Category.{v, u} C]
(M : Monad C)
:
MonObj.one = M.η
To every Monad C we associated a monoid object in C ⥤ C.
Instances For
@[simp]
@[simp]
theorem
CategoryTheory.Monad.toMon_mon
{C : Type u}
[Category.{v, u} C]
(M : Monad C)
:
M.toMon.mon = M.instMonObjFunctor
Passing from Monad C to Mon (C ⥤ C) is functorial.
Instances For
@[simp]
theorem
CategoryTheory.Monad.monadToMon_map_hom
(C : Type u)
[Category.{v, u} C]
{X✝ Y✝ : Monad C}
(f : X✝ ⟶ Y✝)
:
((monadToMon C).map f).hom = f.toNatTrans
@[simp]
theorem
CategoryTheory.Monad.monadToMon_obj
(C : Type u)
[Category.{v, u} C]
(M : Monad C)
:
(monadToMon C).obj M = M.toMon
To every monoid object in C ⥤ C we associate a Monad C.
Instances For
@[simp]
theorem
CategoryTheory.Monad.ofMon_η
{C : Type u}
[Category.{v, u} C]
(M : Mon (Functor C C))
:
(ofMon M).η = MonObj.one
@[simp]
theorem
CategoryTheory.Monad.ofMon_μ
{C : Type u}
[Category.{v, u} C]
(M : Mon (Functor C C))
:
(ofMon M).μ = MonObj.mul
@[simp]
theorem
CategoryTheory.Monad.ofMon_obj
{C : Type u}
[Category.{v, u} C]
(M : Mon (Functor C C))
(X : C)
:
Passing from Mon (C ⥤ C) to Monad C is functorial.
Instances For
@[simp]
theorem
CategoryTheory.Monad.monToMonad_obj
(C : Type u)
[Category.{v, u} C]
(M : Mon (Functor C C))
:
(monToMonad C).obj M = ofMon M
@[simp]
theorem
CategoryTheory.Monad.monToMonad_map_toNatTrans
(C : Type u)
[Category.{v, u} C]
{X Y : Mon (Functor C C)}
(f : X ⟶ Y)
:
((monToMonad C).map f).toNatTrans = f.hom
Oh, monads are just monoids in the category of endofunctors (equivalence of categories).
Instances For
@[simp]
theorem
CategoryTheory.Monad.monadMonEquiv_unitIso_hom_app_toNatTrans_app
(C : Type u)
[Category.{v, u} C]
(x✝ : Monad C)
(x✝¹ : C)
:
((monadMonEquiv C).unitIso.hom.app x✝).app x✝¹ = CategoryStruct.id (((Functor.id (Monad C)).obj x✝).obj x✝¹)
@[simp]
theorem
CategoryTheory.Monad.monadMonEquiv_inverse
(C : Type u)
[Category.{v, u} C]
:
(monadMonEquiv C).inverse = monToMonad C
@[simp]
theorem
CategoryTheory.Monad.monadMonEquiv_counitIso_inv_app_hom
(C : Type u)
[Category.{v, u} C]
(x✝ : Mon (Functor C C))
:
((monadMonEquiv C).counitIso.inv.app x✝).hom = CategoryStruct.id ((Functor.id (Mon (Functor C C))).obj x✝).X
@[simp]
theorem
CategoryTheory.Monad.monadMonEquiv_functor
(C : Type u)
[Category.{v, u} C]
:
(monadMonEquiv C).functor = monadToMon C
@[simp]
theorem
CategoryTheory.Monad.monadMonEquiv_counitIso_hom_app_hom
(C : Type u)
[Category.{v, u} C]
(x✝ : Mon (Functor C C))
:
((monadMonEquiv C).counitIso.hom.app x✝).hom = CategoryStruct.id (((monToMonad C).comp (monadToMon C)).obj x✝).X
@[simp]
theorem
CategoryTheory.Monad.monadMonEquiv_unitIso_inv_app_toNatTrans_app
(C : Type u)
[Category.{v, u} C]
(x✝ : Monad C)
(x✝¹ : C)
:
((monadMonEquiv C).unitIso.inv.app x✝).app x✝¹ = CategoryStruct.id ((((monadToMon C).comp (monToMonad C)).obj x✝).obj x✝¹)