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
.Functor.Adjoint.Monadic
Cat{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
: Functor D (Eilenberg-Moore C L∘R)
Comparison .F₀ x = R.₀ x , alg where
Comparison : Algebra-on C L∘R (R.₀ x)
alg .Algebra-on.ν = R.₁ (adj.counit.ε _)
alg .Algebra-on.ν-unit = adj.zag
alg .Algebra-on.ν-mult =
alg .₁ (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))) ∎ R
Construction of the functorial action of Comparison
.F₁ x = hom where
Comparison open Algebra-hom
: Algebra-hom C _ _ _
hom .morphism = R.₁ x
hom .commutes =
hom .₁ 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) ∎
R.F-id = ext R.F-id
Comparison .F-∘ f g = ext (R.F-∘ _ _) Comparison
An adjunction is monadic if Comparison
is an equivalence of categories, thus
exhibiting
as the category of
: Type _
is-monadic = is-equivalence Comparison is-monadic