Al igual que cuando el dominio y el codominio de un morfismo coinciden hablamos de un \conc{endomorfismo}, cuando esto le ocurre a un funtor hablamos de un \conc{endofuntor}. Los endofuntores son particularmente relevantes en tanto que se puede estudiar, por ejemplo, la relación de un objeto o morfismo con su imagen, o lo que ocurre al aplicar el endofuntor varias veces. Por ejemplo, tomemos el endofuntor $\power:\bSet\to\bSet$. Dado un conjunto $X$, entre $X$ y $\power X$ podemos tomar una inyección $\eta_X:X\to\power X$ dada por $\eta_X(x)\coloneqq\{x\}$, que es natural. Por otro lado, aunque podemos aplicar este funtor a $X$ varias veces, siempre podemos volver de $\power^nX$ a $\power X$ aplicando sucesivamente la unión, que podemos ver como una función $\mu_X:\power\power X\to\power X$ dada por $\mu_X(\cA)\coloneqq\bigcup\cA$. Esto también define una transformación natural, que, además, <> en qué orden se aplique, en el sentido de que, si $S\in\power^3X$, aplicar primero $\mu_{\power X}$ a $S$ y luego $\mu_X$ al resultado es lo mismo que aplicar $\mu_X$ a cada elemento de $S$ y a continuación aplicar $\mu_X$ al resultado. Además, intuitivamente $\mu$ se puede ver como una inversa por un lado de $\eta$, en tanto que $\mu_X(\eta_{\power X}(S))\equiv S$. Muchos endofuntores relevantes admiten transformaciones naturales con propiedades similares, y para estudiar estos casos existe el concepto de mónada. Este capítulo se basa principalmente en \cite[VI]{maclane}. \begin{definition} Una \conc{mónada} en una categoría $\cC$ es una tupla $(T,\eta,\mu)$ formada por un funtor $T:\cC\to\cC$ y dos transformaciones naturales $\eta:1_\cC\to T$ y $\mu:T^2\to T$ que cumplen las siguientes condiciones, ilustradas en la figura \ref{fig:monad}. \begin{enumerate} \item $\mu\cdot T\mu = \mu\cdot\mu T$. \item $\mu\cdot\eta T = \mu\cdot T\eta = 1$. \end{enumerate} \end{definition} \begin{proposition} Si $(T,\eta,\mu)$ es una mónada en $\cC$ y $c$ es un objeto de $\cC$, $\eta_c:c\monicTo Tc$ es una sección y $\mu_c:TTc\epicTo Tc$ es una retracción. \end{proposition} \begin{figure} \centering \begin{subfigure}{.45\linewidth} \centering \begin{diagram} \path (0,2) node(TTT){$T^3$} (2,2) node(TTP){$T^2$}; \path (0,0) node(PTT){$T^2$} (2,0) node(T){$T$}; \draw[->] (TTT) -- node[above]{$T\mu$} (TTP); \draw[->] (TTT) -- node[left]{$\mu T$}(PTT); \draw[->] (TTP) -- node[right]{$\mu$} (T); \draw[->] (PTT) -- node[below]{$\mu$} (T); \end{diagram} \caption{Conmutatividad de la unión} \end{subfigure} \hfil \begin{subfigure}{.45\linewidth} \centering \begin{diagram} \path (0,2) node(IT){$1\circ T$} (2,2) node(TT){$T^2$} (4,2) node(TI){$T\circ 1$}; \path (2,0) node(T){$T$}; \draw[->] (IT) -- node[above]{$\eta T$} (TT); \draw[->] (TI) -- node[above]{$T\eta$} (TT); \draw[->] (TT) -- node[right]{$\mu$} (T); \draw[->] (IT) -- node[left]{$1$} (T); \draw[->] (TI) -- node[right]{$1$} (T); \end{diagram} \caption{Relación entre la unidad y la unión} \end{subfigure} \caption{Condiciones de coherencia de las mónadas.} \label{fig:monad} \end{figure} \begin{example}\; \begin{enumerate} \item $\power:\bSet\to\bSet$ es una mónada con las operaciones indicadas en la introducción del capítulo. \item Sea $(^*):\bSet\to\bSet$ el endofuntor que asocia a cada objeto $X$ el conjunto subyacente de su monoide libre, dado por $\bigcup_{n\in\sNat}X^n$, y que lleva cada función $f:X\to Y$ a la función $(x_1,\dots,x_k)\mapsto(fx_1,\dots,fx_k)$. Este endofuntor es una mónada con las transformaciones naturales $\eta:1\to(^*)$ que lleva cada elemento de un conjunto a la lista de un elemento ($\eta_X(x)=(x)$) y $\mu:(^*)^2\to(^*)$ que concatena una lista de listas en una sola lista. \item Esto se puede generalizar a todas las variedades algebraicas. El álgebra libre sobre un conjunto $X$ es un conjunto cociente de árboles formados por operadores y elementos de $X$ (\ref{prop:free-algebra}), y las funciones entre conjuntos se pueden llevar a morfismos de álgebras libres operando sobre los elementos del dominio en el árbol. Entonces el equivalente a la lista de un elemento sería (la clase de equivalencia de) un árbol cuya raíz es dicho elemento, y el equivalente a concatenar listas es sustituir cada elemento base del árbol, que es a su vez una clase de equivalencia de árboles, por un representante de esta clase a modo de subárbol. Claramente estas transformaciones son naturales y forman una mónada. \item Sean $\cC$ una categoría con coproductos finitos y $d$ un objeto de $\cC$. Sea $E:\cC\to\cC$ un endofuntor que a cada objeto $c$ le asocia $c\oplus d$ y a cada morfismo $f:b\to c$ el morfismo <> $Ef=f\oplus 1_d:b\oplus d\to c\oplus d$. Si $\eta_c:c\monicTo c\oplus d$ es la inclusión canónica y $\mu_c:c\oplus d\oplus d\epicTo c\oplus d$ es la función que <> las dos copias de $d$ en el sentido evidente, entonces $(E,\eta,\mu)$ es una mónada. \item Sean $s$ un conjunto y $S\coloneqq\hom(s,-\times s)$ un endofuntor en $\bSet$ que lleva cada conjunto $X$ al conjunto de funciones $s\to X\times s$ y cada función $f$ a $\hom(s,f\times 1_s)$. Entonces $S$ es una mónada con las transformaciones naturales $\eta:1\to S$ y $\mu:S^2\to S$ dadas por la formación de pares $\eta_X(x)(y)\coloneqq(x,y)$ y la <> $\mu_X(f)(y)\coloneqq (p_1fy)(p_2fy)$, donde $p_1$ y $p_2$ son las proyecciones canónicas de $\hom(X,s)\times s$. % \begin{proof} % Escribiendo $e(f,y)\coloneqq f(y)$, se tiene $\mu_X(f)(y)\equiv e(f(y))$ y % $\mu_X(f)\equiv e\circ f$ (por abuso de notación, $e$ no representa una % función fija, sino cualquier función expresada así independientemente de % dominio y codominio). Entonces, para $f\in S^3X$, % \begin{multline*} % \mu_X((S\mu_X)(f))=\mu_X(\hom(s,\mu_X\times 1_s)(f))=\mu_X((\mu_X\times 1_s)\circ f)= % e\circ(\mu_X\times 1_s)\circ f=\\ % =(y\mapsto e(\mu_Xpfy,qfy))=(y\mapsto(\mu_Xpfy)(qfy))=(y\mapsto e((pfy)(qfy)))=\\ % =e\circ e\circ f=e\circ(\mu_{SX}\circ f)=\mu_X(\mu_{SX}(f)), % \end{multline*} % y para $f\in SX$, % \begin{multline*} % \mu_X((S\eta_X)(f))=\mu_X(\hom(s,\eta_X\times 1_s)(f))=e\circ(\eta_X\times 1_s)\circ f=\\ % =(y\mapsto e(\eta_Xpfy,qfy))= % (y\mapsto(\eta_Xpfy,qfy))=(y\mapsto fy)=f\\=e\circ(y\mapsto(f,y))= % =e\circ(\eta_{SX}(f))=\mu_X(\eta_{SX}(f)). % \end{multline*} % \end{proof} \item En un conjunto parcialmente ordenado $(S,\leq)$ visto como categoría, un endofuntor es una función $f:S\to S$ monótona, es decir, tal que $x\leq y\implies fx\leq fy$. Las transformaciones naturales asociadas a $f$ en una mónada están unívocamente determinadas y existen si y sólo si, para todo $x\in S$, $x\leq fx$ y $f^2x\leq fx$, pues al ser una categoría fina los diagramas correspondientes siempre conmutan. Estas ecuaciones implican que $f$ es idempotente. Así, las mónadas en conjuntos parcialmente ordenados son \conc{operaciones de clausura}, funciones monótonas e idempotentes con $x\leq fx$ para todo $x$. Este término se usa especialmente cuando el orden es la inclusión de conjuntos. \end{enumerate} \end{example} \begin{proposition} Si $(F,G,\eta,\eps)$ es una adjunción entre las categorías $\cB$ y $\cC$, entonces $(G\circ F, \eta, G\eps F)$ es una mónada. \end{proposition} \begin{proof} Al componer horizontalmente $\eps$ consigo mismo (\ref{def:comp-horiz}) obtenemos que $\eps\circ\eps=\eps\cdot\eps FG=\eps\cdot FG\eps$, y añadiendo $G$ al principio y $F$ al final obtenemos $G\eps F\cdot G\eps FGF=G\eps F\cdot GFG\eps F$, que es la primera ley de las mónadas. Para la segunda, basta añadir $F$ al final en la identidad $G\eps\cdot\eta G=1$ y $G$ al principio en $\eps F\cdot F\eta=1$. \end{proof} \begin{definition} Dada una categoría $\cC$, la \conc{categoría de mónadas} de $\cC$ es una categoría $\Mnd{\cC}$ cuyos objetos son las mónadas sobre $\cC$ y cuyos morfismos $(S,\eta,\mu)\to(T,\eta',\mu')$ son las transformaciones naturales $\tau:S\to T$ tales que los diagramas en la figura \ref{fig:monad-morph} conmutan. \begin{figure} \centering \begin{subfigure}{.45\linewidth} \centering \begin{diagram} \path (0,2) node(ID){$1$} (2,2) node(S){$S$}; \path (2,0) node(T){$T$} node[below]{$\phantom{\mu'}$}; \draw[->] (ID) -- node[above]{$\eta$} (S); \draw[->] (ID) -- node[left]{$\eta'$} (T); \draw[->] (S) -- node[right]{$\tau$} (T); \end{diagram} \caption{Conmutatividad de la unidad} \end{subfigure} \hfil \begin{subfigure}{.45\linewidth} \centering \begin{diagram} \path (0,2) node(SS){$S^2$} (2,2) node(S){$S$}; \path (0,0) node(TT){$T^2$} (2,0) node(T){$T$}; \draw[->] (SS) -- node[above]{$\mu$} (S); \draw[->] (TT) -- node[below]{$\mu'$} (T); \draw[->] (SS) -- node[left]{$\tau\circ\tau$} (TT); \draw[->] (S) -- node[right]{$\tau$} (T); \end{diagram} \caption{Conmutatividad de la unión} \end{subfigure} \caption{Morfismos de mónadas.} \label{fig:monad-morph} \end{figure} \end{definition} % TODO Todo esto el viernes: % TODO Definición de la categoría de mónadas % TODO Álgebras de una mónada (sin llegar al teorema de Beck) % TODO Categorías de Kleisli %%% Local Variables: %%% mode: latex %%% TeX-master: "main" %%% End: