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