Convert from Monad
(i.e. Lean's Type
-based monads) to CategoryTheory.Monad
#
This allows us to use these monads in category theory.
A lawful Control.Monad
gives a category theory Monad
on the category of types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.ofTypeMonad_η_app
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
{α : Type u}
(a✝ : α)
:
@[simp]
theorem
CategoryTheory.ofTypeMonad_obj
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
(a✝ : Type u)
:
@[simp]
theorem
CategoryTheory.ofTypeMonad_μ_app
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
{α : Type u}
(a : m (m α))
:
@[simp]
theorem
CategoryTheory.ofTypeMonad_map
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
{X✝ Y✝ : Type u}
(f : X✝ ⟶ Y✝)
(a✝ : m X✝)
:
The Kleisli
category of a Control.Monad
is equivalent to the Kleisli
category of its
category-theoretic version, provided the monad is lawful.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
CategoryTheory.eq_functor_obj
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
(X : KleisliCat m)
:
@[simp]
theorem
CategoryTheory.eq_functor_map
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
{X✝ Y✝ : KleisliCat m}
(f : X✝ ⟶ Y✝)
(a✝ : X✝)
:
@[simp]
@[simp]
@[simp]
theorem
CategoryTheory.eq_inverse_map
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
{X✝ Y✝ : Kleisli (ofTypeMonad m)}
(f : X✝ ⟶ Y✝)
(a✝ : X✝)
:
@[simp]
theorem
CategoryTheory.eq_inverse_obj
(m : Type u → Type u)
[_root_.Monad m]
[LawfulMonad m]
(X : Kleisli (ofTypeMonad m))
: