Tuvimos algo de tiempo para hablar y durante el transcurso me di cuenta de que me habían asustado menos ciertos temas relacionados con las mónadas.
Las mónadas parecen molestar a mucha gente. ¡Incluso hay un vídeo de YouTube llamado The Monads Hurt My Head! ... Poco después, la mujer que habla exclama:
¡¿Que demonios?! ¿Cómo se explica siquiera qué es una mónada?
Juan Báez, [1]
En la teoría de categorías , una rama de las matemáticas , una mónada es una tripleta que consta de un funtor T de una categoría hacia sí misma y dos transformaciones naturales que satisfacen condiciones como la asociatividad. Por ejemplo, si hay funtores adjuntos entre sí, entonces, junto con lo determinado por la relación adjunta, hay una mónada.
En términos concisos, una mónada es un monoide en la categoría de endofunctores de alguna categoría fija (un endofunctor es un funtor que asigna 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 los lenguajes de programación imperativos y en los lenguajes de programación funcionales , permitiendo que los lenguajes sin estado mutable hagan cosas como simular bucles for; ver Monad (programación funcional) .
A la 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 functores adjuntos , con adjunto izquierdo a , entonces la composición es una mónada. Si y son funtores inversos, 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 importa como parte del esfuerzo por captar qué es lo que las adjunciones "preservan". La otra mitad de la teoría, de lo que también se puede aprender considerando , se analiza en la teoría dual de las comonadas .
A lo largo de este artículo, denota una categoría . Una mónada on consta de un endofunctor junto con dos transformaciones naturales : (donde denota el funtor de identidad on ) y (donde es el funtor de a ). Estos deben cumplir las siguientes condiciones (a veces llamadas condiciones de coherencia ):
Podemos reescribir estas condiciones usando los siguientes diagramas conmutativos :
Consulte el artículo sobre transformaciones naturales para obtener la explicación de las notaciones y , o consulte a continuación los diagramas conmutativos que no utilizan estas nociones:
El primer axioma es similar a la asociatividad en monoides si lo consideramos como la operación binaria del monoide, y el segundo axioma es similar a la existencia de un elemento de identidad (que consideramos dado por ). De hecho, una mónada puede definirse alternativamente como un monoide en la categoría cuyos objetos son los endofunctores y cuyos morfismos son las transformaciones naturales entre ellos, con la estructura monoide inducida por la composición de los endofunctores.
La mónada del conjunto de potencias es una mónada en la categoría : Para un conjunto, sea el conjunto de potencias de y, para una función, sea la función entre los conjuntos de potencias inducida al tomar imágenes directas debajo . Para cada conjunto , tenemos un mapa , que asigna a cada uno 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 monoides . De hecho, las mónadas son casos especiales de monoides, es decir, son precisamente los monoides entre los endofunctores , que están equipados con la multiplicación dada por la composición de los endofunctores.
La composición de las mónadas no es, en general, una mónada. Por ejemplo, el funtor de doble conjunto de potencias no admite ninguna estructura de mónada. [3]
La definición dual categórica es una definición formal de comonada (o cotriple ); Esto se puede decir rápidamente en términos de que una comonada para una categoría es una mónada para la categoría opuesta . Por lo tanto, es un functor de hacia sí mismo, con un conjunto de axiomas de cuenta y comultiplicación que surgen de invertir las flechas en todas partes de la definición que acabamos de dar.
Las mónadas son a los monoides lo que las comonadas son a los comonoides . Cada conjunto es un comonoide de una manera única, por lo que los comonoides son menos familiares en álgebra abstracta que los monoides; sin embargo, los comonoides en la categoría de espacios vectoriales con su producto tensorial habitual son importantes y ampliamente estudiados bajo el nombre de coalgebras .
La noción de mónada fue inventada por Roger Godement en 1958 con el nombre de "construcción estándar". Monad ha sido denominada "construcción de doble estándar", "triple", "monoide" y "tríada". [4] El término "mónada" es utilizado a más tardar en 1967, por Jean Bénabou . [5] [6]
El funtor de 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
Este endofunctor se ve rápidamente como una mónada, donde el mapa de unidades surge del mapa de unidades de la conjunción, y el mapa de multiplicación se construye usando el mapa de unidades de la conjunción:
De hecho, cualquier mónada se puede encontrar como un complemento explícito de funtores utilizando la categoría de Eilenberg-Moore (la categoría de -álgebras). [7]
La mónada de doble dualización , para un campo fijo k surge de la conjunció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 . Kock (1970) analiza esta mónada con mucha mayor generalidad.
Para las categorías que surgen de conjuntos parcialmente ordenados (con un único morfismo de a si y solo 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 Grupo de grupos a la categoría Conjunto de conjuntos, y sea el funtor de grupo libre de la categoría de conjuntos a la categoría de grupos. Luego queda adjunto a . En este caso, la mónada asociada toma un conjunto y devuelve el conjunto subyacente del grupo libre . El mapa unitario de esta mónada está dado por los mapas.
incluyendo cualquier conjunto en el conjunto de forma natural, como cadenas de longitud 1. Además, la multiplicación de esta mónada es el mapa
hecho de una concatenación natural o "aplanamiento" de "cadenas de cuerdas". Esto equivale a dos transformaciones naturales . El ejemplo anterior sobre grupos libres se puede generalizar a cualquier tipo de álgebra en el sentido de una variedad de álgebras del álgebra universal . Por tanto, cada tipo de álgebra 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 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 asignaciones lineales a su producto tensorial. Entonces tenemos una transformación natural correspondiente a la incorporación de en su álgebra tensorial , y una transformación natural correspondiente al mapa de a obtenido simplemente expandiendo todos los productos tensoriales.
En condiciones suaves, los functores 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 de conjuntos que envía cualquier conjunto X al conjunto de ultrafiltros de 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 imperativos , y se utilizan construcciones análogas en la programación funcional.
El endofunctor de la mónada quizás 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 el de .
Tanto en programación funcional como en semántica denotacional, la mónada quizás modela cálculos parciales , es decir, cálculos que pueden fallar.
Dado un conjunto , el endofunctor de la mónada estatal 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 ambiental asigna cada conjunto al conjunto de funciones . Así, el endofunctor de esta mónada es exactamente el funtor 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 ambiental modela cálculos con acceso a algunos datos de solo lectura.
La lista o mónada de no determinismo 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 de potencias covariante también se conoce como mónada de conjuntos 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 sobre los que actúa de una manera que sea compatible con la unidad y multiplicación de la mónada. Más formalmente, un -álgebra es un objeto de junto con una flecha de llamado mapa de estructura del álgebra tal que los diagramas
desplazarse.
Un morfismo de -álgebras es una flecha de tal que el diagrama
viaja. -Las álgebras forman una categoría llamada categoría de Eilenberg-Moore y denotada por .
Por ejemplo, para la mónada de grupo libre analizada anteriormente, un -álgebra es un conjunto y un mapa del grupo libre generado por sujeto a condiciones de asociatividad y unidad. Semejante estructura equivale a decir que es un grupo en sí mismo.
Otro ejemplo es la mónada de distribución de la categoría de conjuntos. Se define enviando un conjunto al conjunto de funciones con soporte finito y tales que su suma es igual a . En notación constructora de conjuntos, este es el conjunto. Al examinar 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 sujetas a axiomas que se asemejan al comportamiento de combinaciones lineales convexas en Espacio euclidiano. [9]
Otro ejemplo útil de mónada es el functor 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 un módulo. Entonces, un álgebra sobre esta mónada son álgebras conmutativas. También hay álgebras sobre las mónadas para los tensores alternos y funtores tensoriales totales que dan álgebras antisimétricas y álgebras libres, de modo que donde el primer anillo es el álgebra antisimétrica libre sobre ingeneradores y el segundo anillo es el álgebra libre álgebra sobre in -generadores.
Existe una construcción análoga para álgebras conmutativas [10] pg 113 que proporciona álgebras conmutativas para un álgebra conmutativa . Si es la categoría de -módulos, entonces el functor es la mónada dada por donde -times. Luego 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. Por el contrario, cada mónada surge de alguna adjunción, a saber, la adjunción libre-olvidable.
cuyo adjunto izquierdo envía un objeto X a la T -álgebra libre T ( X ). Sin embargo, generalmente hay varios complementos distintos que dan lugar a una mónada: sea la categoría cuyos objetos son los complementos tales que y cuyas flechas son los morfismos de los complementos que son la identidad en . Entonces, la conjunción libre-olvidable 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 que consta únicamente de T -álgebras libres , es decir, T -álgebras de la forma para algún objeto x de C.
Dada cualquier conjunción con la mónada T asociada , el funtor G se puede factorizar como
es decir, G ( Y ) puede estar naturalmente dotado de una estructura de álgebra T para cualquier Y en D. La adjunción se denomina 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 functor es monádico si tiene un adjunto izquierdo que forma una conjunción monádica. Por ejemplo, la conjunción libre y olvidadiza 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 conjunción es monádica permite reconstruir objetos en D a partir de objetos en C y la acción T.
El teorema de monádica de Beck da 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ádico si es conservador (o G refleja isomorfismos, es decir, un morfismo en D es un isomorfismo si y sólo 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 functor olvidadizo de todos los espacios topológicos a conjuntos no es conservador ya que existen mapas biyectivos continuos (entre espacios no compactos o no de Hausdorff) que no logran ser homeomorfismos . Por tanto, este funtor olvidadizo no es monádico. [12] La versión dual del teorema de Beck, que caracteriza las conjunciones comonádicas, es relevante en diferentes campos como la teoría del topos y temas de geometría algebraica relacionados con la descendencia . Un primer ejemplo de adjunción comonádica es la adjunción
para un homomorfismo de anillo entre anillos conmutativos. Esta conjunción es comonádica, según el teorema de Beck, si y sólo si B es fielmente plano como un módulo A. Permite así descender los módulos B , dotados de un punto de referencia de descenso (es decir, una acción de la comonada dada por la conjunción) hasta los módulos A. La teoría resultante del descenso fielmente plano se aplica ampliamente en geometría algebraica.
Las mónadas se utilizan en programación funcional para expresar tipos de cálculo secuencial (a veces con efectos secundarios). Consulte mónadas en programación funcional y el módulo b de Wikibook, más orientado matemáticamente: Haskell/Teoría de categorías.
Las mónadas se utilizan en la semántica denotacional de lenguajes de programación imperativos y funcionales impuros . [13] [14]
En lógica categórica, se ha establecido una analogía entre la teoría de mónada-comónada y la lógica modal mediante operadores de cierre , álgebras interiores y su relación con los modelos de S4 y la lógica intuicionista .
Es posible definir mónadas en 2 categorías . Las mónadas descritas anteriormente son mónadas para .