# Mónade (teoria das categorias)

Na teoria das categorias, uma mónade, mônade ou mônada (ou tripla, nome porém menos usado) é um endofunctor, junto a duas transformações naturais, satisfazendo regras formalmente análogas às de um monoide. Aplicações do conceito incluem a determinação de equivalências com as categorias de álgebras sobre mônades, sendo centrais na álgebra universal, além do uso na ciência da computação como modelo conveniente para, por exemplo, a manipulação de estado global e o não determinismo.

## Definição

Uma mônade numa categoria C consiste de um functor T : C → C, uma transformação natural η : 1 ⇒ T, chamada unidade, e uma transformação natural μ : T$^2$ ⇒ T, chamada multiplicação, tais que os diagramas abaixo comutam:
| Diagrama do elemento neutro | Diagrama da associatividade |

## Álgebra sobre mônada

Dada mônada (T, η, μ) na categoria C, uma T-álgebra é uma dupla consistindo de objeto x ∈ C e morfismo h : T(x) → x tais que os diagramas abaixo comutam:
| Compatibilidade com a unidade | Compatibilidade com a multiplicação |
Um morfismo (x, h) → (x′, h′) entre T-álgebras é um morfismo f : x → x′ em C tal que o diagrama abaixo comuta:
Assim, as T-álgebras formam uma categoria, chamada categoria de Eilenberg–Moore para T, e denotada por C$^T$.

## Exemplos

* Toda adjunção (F, G, η, ε) : C ⇀ D determina uma mônade, com endofunctor T = G ∘ F : C → C, unidade η : 1 ⇒ T (isto é, a mesma que a unidade da adjunção) e multiplicação μ = GεF : T$^2$ ⇒ T. A seguir, exemplos de mônades provenientes de adjunções:
** A adjunção entre o functor livre ${\mathsf {Set}}\to {\mathsf {Mon}}$ e o functor "esquecidiço" ${\mathsf {Mon}}\to {\mathsf {Set}}$, em que ${\mathsf {Mon}}$ denota a categoria de monoides, origina a mônade de lista (como chamada na ciência da computação), na qual
    $T(A)=\coprod _{n\in \{0,1,\ldots \}}A^{n}$, isto é, o conjunto de sequências finitas de elementos de $A$,
    $\eta _{A}(a)=\iota _{1}(a)$, a sequência de um elemento,
    e $\mu$ pode ser descrito por concatenação de sequências.
*** As T-álgebras correspondem biunivocamente a monoides, de modo que o morfismo T(A) → A corresponde à família de funções A$^n$ → A, levando uma sequência (a$_1$, …, a$_n$) ao produto a$_1$ ∘ … ∘ a$_n$ (que será a identidade se n = 0).
** Denotando-se ${\mathsf {Set}}_{\star }$ a categoria dos conjuntos com um dos elementos selecionado, chamado "base", e com morfismos as funções de conjuntos que levam uma base a outra base, há a adjunção entre $F:{\mathsf {Set}}\to {\mathsf {Set}}_{\star }$ e $G:{\mathsf {Set}}_{\star }\to {\mathsf {Set}}$, onde $F(A)=(A\amalg \{\bullet \},\iota _{2}(\bullet ))$ (adiciona uma base) e $G(A,a)=A$ (esquece qual é a base). A mônade correspondente é chamada de mônade "talvez", na qual:
    $T(A)=T\amalg \{\bullet \}$, uma união disjunta com um novo elemento,
    $\eta _{A}(a)=\iota _{1}(a)$,
    $\mu _{A}(\iota _{1}(\iota _{1}(a)))=\iota _{1}(a)$, $\mu _{A}(\iota _{1}(\iota _{2}(\bullet ))=\mu _{A}(\iota _{2}(\bullet ))=\iota _{2}(\bullet )$.
*** A categoria C$^T$, neste caso, é isomorfa à categoria ${\mathsf {Set}}_{\star }$.
* Quando C é uma pré-ordem, uma mônada é uma função crescente T : C → C satisfazendo x ≤ T(x), T(T(x)) ≤ T(x), para cada x ∈ C; no caso em que a ordem é parcial, T é chamado operador de fecho, e as T-álgebras correspondem aos elementos fechados (isto é, aqueles satisfazendo T(x) = x).
* Para cada monoide (M, e, ∘), há uma mônada na categoria dos conjuntos, na qual T(A) = M × A, η$_A$(a) = (e, a) e μ$_A$(x, (y, a)) = (x ∘ y, a). Uma T-álgebra é uma ação de monoide.

## Adjunções a partir de mônadas

Dada mônada (T, η, μ) em C, há uma adjunção
    (F$^T$, G$^T$, η$^T$, ε$^T$) : C ⇀ C$^T$,
em que ${\begin{aligned}G^{T}\left((x,h){\xrightarrow {f}}(x',h')\right)&=x{\xrightarrow {f}}x'\\F^{T}\left(x{\xrightarrow {f}}x'\right)&=(T(x),\mu _{x}){\xrightarrow {T(f)}}(T(x'),\mu _{x'})\\(\eta ^{T})_{x}&=\eta _{x}\\(\epsilon ^{T})_{(x,h)}&=h,\end{aligned}}$ e ainda mais esta adjunção induz a mônada (T, η, μ) (isto é, T = G$^T$ ∘ F$^T$, η = η$^T$ e μ = G$^T$ ε$^T$ F$^T$).
A T-álgebra (T(x), μ$_x$), aparecendo na definição de F$^T$, é chamada T-álgebra livre.

### Categoria de Kleisli

A categoria de Kleisli C$_T$ para uma mônada (T, η, μ) é definida por:
* ter os seus objetos a$_T$ em correspondência biunívoca com os objetos a de C;
* ter os seus morfismos f$_T$ : a$_T$ → b$_T$ em correspondência biunívoca com os morfismos f : a → T(b), com identidades e composições ${\begin{aligned}a_{T}{\xrightarrow {1_{a_{T}}}}a_{T}&=\left(a{\xrightarrow {\eta _{a}}}T(a)\right)_{T}\\a_{T}{\xrightarrow {f_{T}}}b_{T}{\xrightarrow {g_{T}}}c_{T}&=\left(a{\xrightarrow {f}}T(b){\xrightarrow {T(g)}}T^{2}(c){\xrightarrow {\mu _{c}}}T(c)\right)_{T}.\end{aligned}}$
Há também uma adjunção
    (F$_T$, G$_T$, η$_T$, ε$_T$) : C ⇀ C$_T$,
em que ${\begin{aligned}F_{T}(a{\xrightarrow {f}}b)&=\left(a{\xrightarrow {f}}b{\xrightarrow {\eta _{b}}}T(b)\right)_{T}\\G_{T}(a_{T}{\xrightarrow {g_{T}}}b_{T})&=T(a){\xrightarrow {T(g)}}T^{2}(b){\xrightarrow {\mu _{b}}}T(b)\\a{\xrightarrow {(\eta _{T})_{a}}}G_{T}(F_{T}(a))&=a{\xrightarrow {\eta _{a}}}T(a)\\F_{T}(G_{T}(a_{T})){\xrightarrow {(\epsilon _{T})_{a_{T}}}}a_{T}&=\left(T(a){\xrightarrow {1_{T(a)}}}T(a)\right)_{T},\end{aligned}}$ e ainda mais esta adjunção induz a mesma mônada.

### Functor monádico

A categoria de Eilenberg–Moore e a categoria de Kleisli satisfazem a propriedade universal a seguir. Para cada adjunção (F, G, η, ε) : C ⇀ D, denotando-se por (T, η, μ) a mônada associada, há único functor L : C$_T$ → D tal que G ∘ L = G$_T$ e L ∘ F$_T$ = F, e há único functor K : D → C$^T$ tal que G$^T$ ∘ K = G e K ∘ F = F$^T$; com efeito, eles têm definições: ${\begin{aligned}K(d{\xrightarrow {g}}d')&=(G(d),G(\epsilon _{d})){\xrightarrow {G(g)}}(G(d'),G(\epsilon _{d'}))\\L(a_{T}{\xrightarrow {f_{T}}}b_{T})&=F(a){\xrightarrow {F(f)}}F(G(F(b))){\xrightarrow {\epsilon _{F(b)}}}F(b).\end{aligned}}$
Um functor G é dito monádico (respectivamente estritamente monádico) se e só se faz parte de uma adjunção (F, G, η, ε) : C ⇀ D (que é chamada uma adjunção monádica) para a qual o functor de comparação K : D → C$^T$ é uma equivalência de categorias (respectivamente um isomorfismo de categorias).

## Teorema de monadicidade

Dado functor G : D → C, um coequalizador que G-cinde para uma dupla de morfismos paralelos f, g : x → y em D é um coequalizador que cinde para a dupla G(f), G(g) : G(x) → G(y). O functor G : D → C é dito
* estritamente criar coequalizadores que G-cindem quando, sempre que h é coequalizador que cinde para uma dupla G(f), G(g), existe único morfismo k em D tal que G(k) = h, e ainda mais este k é coequalizador para f, g (não necessariamente que cinde).
* criar coequalizadores que G-cindem quando, sempre que f, g tem coequalizador que G-cinde, f, g tem coequalizador (não necessariamente que cinde) preservado por G, e ainda mais, sempre que k satisfaz k ∘ f = k ∘ g e é tal que G(k) é coequalizador que cinde para G(f), G(g), então k deve ser coequalizador para f, g (não necessariamente que cinde).
(Saunders Mac Lane usa o termo criar em vez de estritamente criar.)
Denotando-se por (T, η, μ) a mônada associada a uma adjunção (F, G, η, ε) : C ⇀ D, o functor G$^T$ : C$^T$ → C estritamente cria coequalizadores que G$^T$-cindem. Como, para cada T-álgebra (a, h : T(a) → a), o diagrama a seguir é coequalizador que cinde${\begin{array}{c c c c c}&{\overset {\eta _{T(a)}}{\curvearrowleft }}&&{\overset {\eta _{a}}{\curvearrowleft }}\\T^{2}(a)&{\overset {\mu _{a}}{\underset {T(h)}{\rightrightarrows }}}&T(a)&{\underset {h}{\rightarrow }}&a\end{array}}$tem-se o diagrama de coequalizador em C$^T$${\begin{array}{c c c c c}(T^{2}(a),\mu _{T(a)})&{\overset {\mu _{a}}{\underset {T(h)}{\rightrightarrows }}}&(T(a),\mu _{a})&{\underset {h}{\rightarrow }}&(a,h)\end{array}}$ chamado de presentação canônica da T-álgebra (a, h : T(a) → a); ela generaliza, por exemplo, a representação de um grupo como um quociente de um grupo livre.
O teorema de monadicidade de Beck diz que um functor adjunto direito G : D → C é monádico (respectivamente estritamente monádico) se e só se cria (respectivamente estritamente cria) coequalizadores que G-cindem.
Há uma versão "reflexiva" do teorema de monadicidade. Uma dupla de morfismos f, g : a → b é dita ser reflexiva quando existe s : b → a tal que f ∘ s = 1$_b$ = g ∘ s. Então, dado functor G : D → C, se
* G é functor adjunto direito,
* G reflete isomorfismos (isto é, f é isomorfismo sempre que G(f) é isomorfismo),
* e D admite coequalizadores de duplas reflexivas que G-cindem e G preserva esses coequalizadores,
então o functor G é monádico.
O resultado permite demonstrar que os seguintes functores são monádicos:
* Os functores "esquecidiços" da categoria de monoides, grupos, anéis, e outras estruturas algébricas, para a categoria dos conjuntos.
* O functor "esquecidiço" da categoria de espaços compactos de Hausdorff para a categoria dos conjuntos.
* O functor P : Set$^{op}$ → Set de conjuntos de partes e pré-imagens.
* A inclusão D → C de uma subcategoria reflexiva (plena) D em C.
A utilidade do teorema de Beck é que uma equivalência entre D e C$^T$ faz com que essas duas categorias compartilhem algumas propriedades. Por exemplo:
* O functor G$^T$ : C$^T$ → C reflete isomorfismos e estritamente cria todos os limites existentes em C.
* O functor G$^T$ : C$^T$ → C estritamente cria todos os colimites existentes em C que são preservados por T e T$^2$.
* Se C é cocompleta e C$^T$ admite coequalizadores, então C$^T$ também é cocompleta.