File: Mathlib/CategoryTheory/Monad/Kleisli.lean

full_name: CategoryTheory.Kleisli
code: /-- The objects for the Kleisli category of the monad `T : Monad C`, which are the same
thing as objects of the base category `C`.
-/
@[nolint unusedArguments]
def Kleisli (_T : Monad C) 
goal: Type u

full_name: CategoryTheory.Kleisli.instInhabited
code: instance [Inhabited C] (T : Monad C) : Inhabited (Kleisli T) 
goal: Inhabited (CategoryTheory.Kleisli T)

full_name: CategoryTheory.Kleisli.category
code: /-- The Kleisli category on a monad `T`.
    cf Definition 5.2.9 in [Riehl][riehl2017]. -/
instance category : Category (Kleisli T) 
goal: CategoryTheory.Category.{v, u} (CategoryTheory.Kleisli T)

full_name: CategoryTheory.Kleisli.Adjunction.toKleisli
code: /-- The left adjoint of the adjunction which induces the monad `(T, η_ T, μ_ T)`. -/
@[simps]
def toKleisli : C ⥤ Kleisli T 
goal: CategoryTheory.Functor C (CategoryTheory.Kleisli T)

full_name: CategoryTheory.Kleisli.Adjunction.toKleisli_map
code: /-- The left adjoint of the adjunction which induces the monad `(T, η_ T, μ_ T)`. -/
@[simps]
def toKleisli : C ⥤ Kleisli T 
goal: (CategoryTheory.Kleisli.Adjunction.toKleisli T).map f = CategoryTheory.CategoryStruct.comp f (T.η.app Y)

full_name: CategoryTheory.Kleisli.Adjunction.toKleisli_obj
code: /-- The left adjoint of the adjunction which induces the monad `(T, η_ T, μ_ T)`. -/
@[simps]
def toKleisli : C ⥤ Kleisli T 
goal: (CategoryTheory.Kleisli.Adjunction.toKleisli T).obj X = X

full_name: CategoryTheory.Kleisli.Adjunction.fromKleisli_map
code: /-- The right adjoint of the adjunction which induces the monad `(T, η_ T, μ_ T)`. -/
@[simps]
def fromKleisli : Kleisli T ⥤ C 
goal: ∀ {x Y : CategoryTheory.Kleisli T} (f : x ⟶ Y),
  (CategoryTheory.Kleisli.Adjunction.fromKleisli T).map f = CategoryTheory.CategoryStruct.comp (T.map f) (T.μ.app Y)

full_name: CategoryTheory.Kleisli.Adjunction.fromKleisli_obj
code: /-- The right adjoint of the adjunction which induces the monad `(T, η_ T, μ_ T)`. -/
@[simps]
def fromKleisli : Kleisli T ⥤ C 
goal: (CategoryTheory.Kleisli.Adjunction.fromKleisli T).obj X = T.obj X

full_name: CategoryTheory.Kleisli.Adjunction.fromKleisli
code: /-- The right adjoint of the adjunction which induces the monad `(T, η_ T, μ_ T)`. -/
@[simps]
def fromKleisli : Kleisli T ⥤ C 
goal: CategoryTheory.Functor (CategoryTheory.Kleisli T) C

full_name: CategoryTheory.Kleisli.Adjunction.adj
code: /-- The Kleisli adjunction which gives rise to the monad `(T, η_ T, μ_ T)`.
    cf Lemma 5.2.11 of [Riehl][riehl2017]. -/
def adj : toKleisli T ⊣ fromKleisli T 
goal: CategoryTheory.Kleisli.Adjunction.toKleisli T ⊣ CategoryTheory.Kleisli.Adjunction.fromKleisli T

full_name: CategoryTheory.Kleisli.Adjunction.toKleisliCompFromKleisliIsoSelf
code: /-- The composition of the adjunction gives the original functor. -/
def toKleisliCompFromKleisliIsoSelf : toKleisli T ⋙ fromKleisli T ≅ T 
goal: (CategoryTheory.Kleisli.Adjunction.toKleisli T).comp (CategoryTheory.Kleisli.Adjunction.fromKleisli T) ≅ T.toFunctor

full_name: CategoryTheory.Cokleisli
code: /-- The objects for the co-Kleisli category of the comonad `U : Comonad C`, which are the same
thing as objects of the base category `C`.
-/
@[nolint unusedArguments]
def Cokleisli (_U : Comonad C) 
goal: Type u

full_name: CategoryTheory.Cokleisli.instInhabited
code: instance [Inhabited C] (U : Comonad C) : Inhabited (Cokleisli U) 
goal: Inhabited (CategoryTheory.Cokleisli U)

full_name: CategoryTheory.Cokleisli.category
code: /-- The co-Kleisli category on a comonad `U`. -/
instance category : Category (Cokleisli U) 
goal: CategoryTheory.Category.{v, u} (CategoryTheory.Cokleisli U)

full_name: CategoryTheory.Cokleisli.Adjunction.toCokleisli_obj
code: /-- The right adjoint of the adjunction which induces the comonad `(U, ε_ U, δ_ U)`. -/
@[simps]
def toCokleisli : C ⥤ Cokleisli U 
goal: (CategoryTheory.Cokleisli.Adjunction.toCokleisli U).obj X = X

full_name: CategoryTheory.Cokleisli.Adjunction.toCokleisli_map
code: /-- The right adjoint of the adjunction which induces the comonad `(U, ε_ U, δ_ U)`. -/
@[simps]
def toCokleisli : C ⥤ Cokleisli U 
goal: ∀ {x : C} (f : X ⟶ x),
  (CategoryTheory.Cokleisli.Adjunction.toCokleisli U).map f = CategoryTheory.CategoryStruct.comp (U.ε.app X) f

full_name: CategoryTheory.Cokleisli.Adjunction.toCokleisli
code: /-- The right adjoint of the adjunction which induces the comonad `(U, ε_ U, δ_ U)`. -/
@[simps]
def toCokleisli : C ⥤ Cokleisli U 
goal: CategoryTheory.Functor C (CategoryTheory.Cokleisli U)

full_name: CategoryTheory.Cokleisli.Adjunction.fromCokleisli
code: /-- The left adjoint of the adjunction which induces the comonad `(U, ε_ U, δ_ U)`. -/
@[simps]
def fromCokleisli : Cokleisli U ⥤ C 
goal: CategoryTheory.Functor (CategoryTheory.Cokleisli U) C

full_name: CategoryTheory.Cokleisli.Adjunction.fromCokleisli_map
code: /-- The left adjoint of the adjunction which induces the comonad `(U, ε_ U, δ_ U)`. -/
@[simps]
def fromCokleisli : Cokleisli U ⥤ C 
goal: ∀ {x : CategoryTheory.Cokleisli U} (f : X ⟶ x),
  (CategoryTheory.Cokleisli.Adjunction.fromCokleisli U).map f = CategoryTheory.CategoryStruct.comp (U.δ.app X) (U.map f)

full_name: CategoryTheory.Cokleisli.Adjunction.fromCokleisli_obj
code: /-- The left adjoint of the adjunction which induces the comonad `(U, ε_ U, δ_ U)`. -/
@[simps]
def fromCokleisli : Cokleisli U ⥤ C 
goal: (CategoryTheory.Cokleisli.Adjunction.fromCokleisli U).obj X = U.obj X

full_name: CategoryTheory.Cokleisli.Adjunction.adj
code: /-- The co-Kleisli adjunction which gives rise to the monad `(U, ε_ U, δ_ U)`. -/
def adj : fromCokleisli U ⊣ toCokleisli U 
goal: CategoryTheory.Cokleisli.Adjunction.fromCokleisli U ⊣ CategoryTheory.Cokleisli.Adjunction.toCokleisli U

full_name: CategoryTheory.Cokleisli.Adjunction.toCokleisliCompFromCokleisliIsoSelf
code: /-- The composition of the adjunction gives the original functor. -/
def toCokleisliCompFromCokleisliIsoSelf : toCokleisli U ⋙ fromCokleisli U ≅ U 
goal: (CategoryTheory.Cokleisli.Adjunction.toCokleisli U).comp (CategoryTheory.Cokleisli.Adjunction.fromCokleisli U) ≅
  U.toFunctor