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 : Functor D (Eilenberg-Moore C L∘R)
Comparison .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.(adj.counit.ε _) C.∘ M₁ (R.(adj.counit.ε _))        ≡⟨ sym (R.F-∘ _ _)
    R.(adj.counit.ε _ D.∘ L.(R.(adj.counit.ε _)))       ≡⟨ ap R.(adj.counit.is-natural _ _ _)
    R.(adj.counit.ε x D.∘ adj.counit.ε (L.(R.₀ x)))       ≡⟨ R.F-∘ _ _
    R.(adj.counit.ε x) C.∘ R.(adj.counit.ε (L.(R.₀ x)))
Construction of the functorial action of Comparison
Comparison .F₁ x = hom where
  open Algebra-hom
  hom : Algebra-hom C _ _ _
  hom .morphism = R.₁ x
  hom .commutes =
    R.₁ x C.∘ R.(adj.counit.ε _)        ≡⟨ sym (R.F-∘ _ _)
    R.(x D.∘ adj.counit.ε _)            ≡⟨ ap R.(sym (adj.counit.is-natural _ _ _))
    R.(adj.counit.ε _ D.∘ L.(R.₁ x))  ≡⟨ R.F-∘ _ _
    R.(adj.counit.ε _) C.∘ M₁ (R.₁ x)
Comparison .F-id    = ext R.F-id
Comparison .F-∘ f g = ext (R.F-∘ _ _)

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

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