Tuvimos algo de tiempo para hablar, y durante el mismo me di cuenta de que había perdido menos miedo ante ciertos temas relacionados con las mónadas.
Las mónadas parecen molestar a mucha gente. Incluso hay un vídeo en YouTube titulado ¡Las mónadas me duelen la cabeza!... Poco después, la mujer que habla exclama:
¡¿Qué diablos?! ¿Cómo se explica siquiera qué es una mónada?
Juan Baez, [1]
En la teoría de categorías , una rama de las matemáticas , una mónada es una terna formada por un funtor T de una categoría a sí misma y dos transformaciones naturales que satisfacen condiciones como la asociatividad. Por ejemplo, si son funtores adjuntos entre sí, entonces junto con determinado por la relación adjunta es una mónada.
En términos concisos, una mónada es un monoide en la categoría de endofuntores de alguna categoría fija (un endofuntor es un funtor que mapea una categoría a sí mismo). Según John Baez, una mónada puede considerarse al menos de dos maneras: [1]
Las mónadas se utilizan en la teoría de pares de funtores adjuntos y generalizan operadores de cierre en conjuntos parcialmente ordenados a categorías arbitrarias. Las mónadas también son útiles en la teoría de tipos de datos , la semántica denotacional de lenguajes de programación imperativos y en lenguajes de programación funcional , permitiendo que los lenguajes sin estado mutable hagan cosas como simular bucles for ; consulte Mónada (programación funcional) .
A una mónada también se le llama, especialmente en la literatura antigua, triple , tríada , construcción estándar y construcción fundamental . [2]
Una mónada es un cierto tipo de endofuntor . Por ejemplo, si y son un par de funtores adjuntos , con adjunto izquierdo a , entonces la composición es una mónada. Si y son inversos entre sí, la mónada correspondiente es el funtor identidad . En general, las adjunciones no son equivalencias —relacionan categorías de diferente naturaleza. La teoría de las mónadas es importante como parte del esfuerzo por capturar lo que las adjunciones 'preservan'. La otra mitad de la teoría, de lo que se puede aprender igualmente a partir de la consideración de , se analiza en la teoría dual de las comonadas .
En este artículo, denota una categoría . Una mónada en consta de un endofuntor junto con dos transformaciones naturales : (donde denota el funtor identidad en ) y (donde el funtor es de a ). Estas son necesarias para cumplir las siguientes condiciones (a veces llamadas condiciones de coherencia ):
Podemos reescribir estas condiciones utilizando los siguientes diagramas conmutativos :
Consulte el artículo sobre transformaciones naturales para obtener una explicación de las notaciones y , o vea a continuación los diagramas conmutativos que no utilizan estas nociones:
El primer axioma es similar a la asociatividad en monoides si pensamos en la operación binaria del monoide, y el segundo axioma es similar a la existencia de un elemento identidad (que pensamos que viene dado por ). De hecho, una mónada en puede definirse alternativamente como un monoide en la categoría cuyos objetos son los endofunctores de y cuyos morfismos son las transformaciones naturales entre ellos, con la estructura monoidal inducida por la composición de endofunctores.
La mónada de conjunto potencia es una mónada de la categoría : Para un conjunto sea el conjunto potencia de y para una función sea la función entre los conjuntos potencia inducidos al tomar imágenes directas bajo . Para cada conjunto , tenemos una función , que asigna a cada el singleton . La función
lleva un conjunto de conjuntos a su unión . Estos datos describen una mónada.
Los axiomas de una mónada son formalmente similares a los axiomas de los monoides . De hecho, las mónadas son casos especiales de monoides, es decir, son precisamente los monoides entre los endofunctores , que están dotados de la multiplicación dada por la composición de endofunctores.
La composición de mónadas no es, en general, una mónada. Por ejemplo, el funtor de doble conjunto potencia no admite ninguna estructura de mónada. [3]
La definición de dual categórico es una definición formal de una comónada (o cotriple ); esto se puede decir rápidamente en términos de que una comónada para una categoría es una mónada para la categoría opuesta . Por lo tanto, es un funtor de a sí mismo, con un conjunto de axiomas para conteo y comultiplicación que surgen de invertir las flechas en todas partes en la definición que acabamos de dar.
Las mónadas son a los monoides lo que las comónadas son a los comonoides . Cada conjunto es un comonoide de una manera única, por lo que los comonoides son menos conocidos en el álgebra abstracta que los monoides; sin embargo, los comonoides en la categoría de espacios vectoriales con su producto tensorial habitual son importantes y se estudian ampliamente bajo el nombre de coalgebras .
El concepto de mónada fue inventado por Roger Godement en 1958 bajo el nombre de "construcción estándar". Se le ha llamado "construcción estándar dual", "triple", "monoide" y "tríada". [4] El término "mónada" fue utilizado a más tardar en 1967 por Jean Bénabou . [5] [6]
El funtor identidad de una categoría es una mónada. Su multiplicación y unidad son la función identidad de los objetos de .
Cualquier complemento
da lugar a una mónada en C. Esta construcción muy extendida funciona de la siguiente manera: el endofunctor es el compuesto
Se ve rápidamente que este endofunctor es una mónada, donde el mapa de unidad se deriva del mapa de unidad de la adjunción, y el mapa de multiplicación se construye utilizando el mapa de counit de la adjunción:
De hecho, cualquier mónada puede encontrarse como una adjunción explícita de funtores utilizando la categoría de Eilenberg-Moore (la categoría de las -álgebras). [7]
La mónada de doble dualización , para un cuerpo fijo k surge de la adjunción
donde ambos funtores se dan enviando un espacio vectorial V a su espacio vectorial dual . La mónada asociada envía un espacio vectorial V a su doble dual . Esta mónada es analizada, con mucha mayor generalidad, por Kock (1970).
Para las categorías que surgen de conjuntos parcialmente ordenados (con un único morfismo de a si y sólo si ), entonces el formalismo se vuelve mucho más simple: los pares adjuntos son conexiones de Galois y las mónadas son operadores de cierre .
Por ejemplo, sea el funtor olvidadizo de la categoría Grp de grupos a la categoría Set de conjuntos, y sea el funtor de grupo libre de la categoría de conjuntos a la categoría de grupos. Entonces es adjunto izquierdo de . En este caso, la mónada asociada toma un conjunto y devuelve el conjunto subyacente del grupo libre . La función unitaria de esta mónada está dada por las funciones
incluyendo cualquier conjunto en el conjunto de forma natural, como cadenas de longitud 1. Además, la multiplicación de esta mónada es la función
hecho de una concatenación natural o 'aplanamiento' de 'cadenas de cadenas'. Esto equivale a dos transformaciones naturales . El ejemplo precedente sobre grupos libres se puede generalizar a cualquier tipo de álgebra en el sentido de una variedad de álgebras en el álgebra universal . Por lo tanto, cada tipo de álgebra de este tipo da lugar a una mónada en la categoría de conjuntos. Es importante destacar que el tipo de álgebra se puede recuperar de la mónada (como la categoría de las álgebras de Eilenberg-Moore), por lo que las mónadas también pueden verse como variedades generalizadoras de álgebras universales.
Otra mónada que surge de una adjunción es cuando es el endofunctor en la categoría de espacios vectoriales que asigna un espacio vectorial a su álgebra tensorial y que asigna aplicaciones lineales a su producto tensorial. Entonces tenemos una transformación natural correspondiente a la incrustación de en su álgebra tensorial y una transformación natural correspondiente a la aplicación de a obtenida simplemente expandiendo todos los productos tensoriales.
En condiciones moderadas, los funtores que no admiten un adjunto izquierdo también dan lugar a una mónada, la llamada mónada de codensidad . Por ejemplo, la inclusión
no admite un adjunto izquierdo. Su mónada de codensidad es la mónada sobre conjuntos que envía cualquier conjunto X al conjunto de ultrafiltros sobre X . Este y otros ejemplos similares se analizan en Leinster (2013).
Las siguientes mónadas sobre la categoría de conjuntos se utilizan en la semántica denotacional de los lenguajes de programación imperativa , y se utilizan construcciones análogas en la programación funcional.
El endofunctor de la mónada tal vez o parcialidad añade un punto disjunto: [8]
La unidad viene dada por la inclusión de un conjunto en :
La multiplicación asigna elementos de a sí mismos, y los dos puntos disjuntos en al uno en .
Tanto en programación funcional como en semántica denotacional, la mónada maybe modela cálculos parciales , es decir, cálculos que pueden fallar.
Dado un conjunto , el endofunctor de la mónada de estado asigna cada conjunto al conjunto de funciones . El componente de la unidad en asigna cada elemento a la función
La multiplicación asigna la función a la función
En programación funcional y semántica denotacional, la mónada de estado modela cálculos con estado .
Dado un conjunto , el endofunctor de la mónada lectora o del entorno asigna cada conjunto al conjunto de funciones . Por lo tanto, el endofunctor de esta mónada es exactamente el functor hom . El componente de la unidad en asigna cada elemento a la función constante .
En programación funcional y semántica denotacional, la mónada de entorno modela cálculos con acceso a algunos datos de solo lectura.
La mónada de lista o no determinista asigna un conjunto X al conjunto de secuencias finitas (es decir, listas ) con elementos de X. La unidad asigna un elemento x en X a la lista singleton [x]. La multiplicación concatena una lista de listas en una sola lista.
En programación funcional, la mónada de lista se utiliza para modelar cálculos no deterministas . La mónada de conjunto potencia covariante también se conoce como mónada de conjunto y también se utiliza para modelar cálculos no deterministas.
Dada una mónada en una categoría , es natural considerar -álgebras , es decir, objetos de sobre los que actúa de una manera que es compatible con la unidad y la multiplicación de la mónada. Más formalmente, una -álgebra es un objeto de junto con una flecha de llamada el mapa de estructura del álgebra de tal manera que los diagramas
desplazarse.
Un morfismo de -álgebras es una flecha de tal manera que el diagrama
conmuta. -Las álgebras forman una categoría llamada categoría de Eilenberg-Moore y se denota por .
Por ejemplo, para la mónada de grupo libre analizada anteriormente, una -álgebra es un conjunto junto con una función del grupo libre generada por hacia sujeta a condiciones de asociatividad y unitaria. Una estructura de este tipo equivale a decir que es un grupo en sí misma.
Otro ejemplo es la mónada de distribución sobre la categoría de conjuntos. Se define enviando un conjunto al conjunto de funciones con soporte finito y tales que su suma sea igual a . En la notación de constructor de conjuntos, este es el conjunto Mediante la inspección de las definiciones, se puede demostrar que las álgebras sobre la mónada de distribución son equivalentes a conjuntos convexos , es decir, conjuntos equipados con operaciones para sujetos a axiomas que se asemejan al comportamiento de las combinaciones lineales convexas en el espacio euclidiano. [9]
Otro ejemplo útil de una mónada es el funtor de álgebra simétrica en la categoría de -módulos para un anillo conmutativo . enviando un -módulo a la suma directa de potencias tensoriales simétricas donde . Por ejemplo, donde el -álgebra de la derecha se considera como un módulo. Entonces, un álgebra sobre esta mónada son -álgebras conmutativas. También hay álgebras sobre las mónadas para los tensores alternantes y funtores tensoriales totales que dan -álgebras antisimétricas y -álgebras libres, por lo que donde el primer anillo es el álgebra antisimétrica libre sobre in -generadores y el segundo anillo es el álgebra libre sobre in -generadores.
Existe una construcción análoga para las -álgebras conmutativas [10] pág. 113 que da -álgebras conmutativas para una -álgebra conmutativa . Si es la categoría de -módulos, entonces el funtor es la mónada dada por donde -veces. Entonces hay una categoría asociada de -álgebras conmutativas de la categoría de álgebras sobre esta mónada.
Como se mencionó anteriormente, cualquier adjunción da lugar a una mónada. A la inversa, toda mónada surge de alguna adjunción, a saber, la adjunción libre-olvidada.
cuyo adjunto izquierdo envía un objeto X a la T -álgebra libre T ( X ). Sin embargo, normalmente hay varias adjunciones distintas que dan lugar a una mónada: sea la categoría cuyos objetos son las adjunciones tales que y cuyas flechas son los morfismos de las adjunciones que son la identidad en . Entonces la adjunción libre-olvidadiza anterior que involucra la categoría de Eilenberg-Moore es un objeto terminal en . Un objeto inicial es la categoría de Kleisli , que es por definición la subcategoría completa de que consiste únicamente en T -álgebras libres , es decir, T -álgebras de la forma para algún objeto x de C .
Dada cualquier adjunción con mónada asociada T , el funtor G puede factorizarse como
es decir, G ( Y ) puede estar naturalmente dotado de una estructura de T -álgebra para cualquier Y en D . La adjunción se llama adjunción monádica si el primer funtor produce una equivalencia de categorías entre D y la categoría de Eilenberg-Moore . [11] Por extensión, se dice que un funtor es monádico si tiene un adjunto izquierdo que forma una adjunción monádica. Por ejemplo, la adjunción libre-olvidada entre grupos y conjuntos es monádica, ya que las álgebras sobre la mónada asociada son grupos, como se mencionó anteriormente. En general, saber que una adjunción es monádica permite reconstruir objetos en D a partir de objetos en C y la T -acción.
El teorema de monadicidad de Beck establece una condición necesaria y suficiente para que una adjunción sea monádica. Una versión simplificada de este teorema establece que G es monádica si es conservativa (o G refleja isomorfismos, es decir, un morfismo en D es un isomorfismo si y solo si su imagen bajo G es un isomorfismo en C ) y C tiene y G conserva coecualizadores .
Por ejemplo, el funtor olvidadizo de la categoría de espacios compactos de Hausdorff a conjuntos es monádico. Sin embargo, el funtor olvidadizo de todos los espacios topológicos a conjuntos no es conservativo ya que hay aplicaciones biyectivas continuas (entre espacios no compactos o no de Hausdorff) que no son homeomorfismos . Por lo tanto, este funtor olvidadizo no es monádico. [12] La versión dual del teorema de Beck, que caracteriza las adjunciones comonádicas, es relevante en diferentes campos, como la teoría de topos y temas de geometría algebraica relacionados con la descendencia . Un primer ejemplo de una adjunción comonádica es la adjunción
para un homomorfismo de anillos entre anillos conmutativos. Esta adjunción es comonádica, por el teorema de Beck, si y sólo si B es fielmente plano como un módulo A. Por lo tanto, permite descender módulos B , equipados con un dato de descenso (es decir, una acción de la comonádica dada por la adjunción) a módulos A. La teoría resultante de descenso fielmente plano se aplica ampliamente en geometría algebraica.
Las mónadas se utilizan en programación funcional para expresar tipos de computación secuencial (a veces con efectos secundarios). Véase mónadas en programación funcional y el módulo b de Wikibook, más orientado a las matemáticas: Haskell/Teoría de categorías.
Las mónadas se utilizan en la semántica denotacional de lenguajes de programación impuros, funcionales e imperativos . [13] [14]
En lógica categórica, se ha establecido una analogía entre la teoría mónada-comónada y la lógica modal a través de operadores de cierre , álgebras interiores y su relación con los modelos de S4 y las lógicas intuicionistas .
Es posible definir mónadas en una categoría 2. Las mónadas descritas anteriormente son mónadas para .