Documentation

Mathlib.CategoryTheory.Monad.Types

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✝ : α) :
    (ofTypeMonad m).η.app α a✝ = pure a✝
    @[simp]
    theorem CategoryTheory.ofTypeMonad_obj (m : Type u → Type u) [_root_.Monad m] [LawfulMonad m] (a✝ : Type u) :
    (ofTypeMonad m).obj a✝ = m a✝
    @[simp]
    theorem CategoryTheory.ofTypeMonad_μ_app (m : Type u → Type u) [_root_.Monad m] [LawfulMonad m] {α : Type u} (a : m (m α)) :
    (ofTypeMonad m).μ.app α a = joinM a
    @[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✝) :
    (ofTypeMonad m).map f a✝ = f <$> a✝

    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) :
      (eq m).functor.obj X = X
      @[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✝) :
      (eq m).functor.map f a✝ = f a✝
      @[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✝) :
      (eq m).inverse.map f a✝ = f a✝
      @[simp]