Monadic adjunctionsπŸ”—

An adjunction between functors and is monadic if the induced comparison functor (where the right-hand side is the Eilenberg-Moore category of the monad of the adjunction) is an equivalence of categories.

module
  Cat.Functor.Adjoint.Monadic
  {o₁ h₁ oβ‚‚ hβ‚‚ : _}
  {C : Precategory o₁ h₁}
  {D : Precategory oβ‚‚ hβ‚‚}
  {L : Functor C D} {R : Functor D C}
  (L⊣R : L ⊣ R)
  where

The composition of R.₁ with the adjunction counit natural transformation gives R an Algebra structure, thus extending R to a functor

Comparison-EM : Functor D (Eilenberg-Moore L∘R)
Comparison-EM .Fβ‚€ x = R.β‚€ x , alg where
  alg : Algebra-on C L∘R (R.β‚€ x)
  alg .Algebra-on.Ξ½ = R.₁ (adj.counit.Ξ΅ _)
  alg .Algebra-on.Ξ½-unit = adj.zag
  alg .Algebra-on.Ξ½-mult = R.weave (adj.counit.is-natural _ _ _)
Construction of the functorial action of Comparison-EM
Comparison-EM .F₁ x .hom = R.₁ x
Comparison-EM .F₁ x .preserves = R.weave (sym (adj.counit.is-natural _ _ _))
Comparison-EM .F-id    = ext R.F-id
Comparison-EM .F-∘ f g = ext (R.F-∘ _ _)

An adjunction is monadic if Comparison-EM is an equivalence of categories, thus exhibiting as the category of

is-monadic : Type _
is-monadic = is-equivalence Comparison-EM