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, <<da igual>> 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 <<suma>>
    $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 <<identifica>> 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 <<doble
    evaluación>> $\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:
