Eine Monade ist im mathematischen Teilgebiet der Kategorientheorie eine Struktur, die gewisse formale Ähnlichkeit mit den Monoiden der Algebra aufweist.
Eine Monade ist ein Tripel
aus
- einem Funktor
von einer Kategorie
in sich selbst, das heißt ![{\displaystyle T\colon {\mathcal {C}}\to {\mathcal {C}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7b31f2a03f65575bc4edf72aeea103b6fe5c9a30)
- einer natürlichen Transformation
(dabei steht
für den Identitätsfunktor
) - einer natürlichen Transformation
(dabei steht
für
),
so dass die folgenden Bedingungen, die man auch die Axiome der Monade nennt, erfüllt sind:
, das heißt das folgende Diagramm kommutiert:
![](//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Monad_multiplication.svg/125px-Monad_multiplication.svg.png)
, das heißt das folgende Diagramm kommutiert:
![](//upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Monad_unit.svg/124px-Monad_unit.svg.png)
Explizit bedeutet die Kommutativität der Diagramme, dass für jedes Objekt
in
die beiden Diagramme
und ![](//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Monad_unit_explicit.svg/220px-Monad_unit_explicit.svg.png)
kommutieren. Dabei sind
und
die durch
und
definierten natürlichen Transformationen, entsprechendes gilt für
und
. Die natürlichen Transformationen
und
nennt man auch Einheit und Multiplikation der Monade.[1][2]
Ein Beispiel für eine Monade sind Listen. Es bezeichne
die Liste mit den Elementen
bis
, wobei mit
auch die leere Liste zugelassen ist. Listen sind Tupel, die wir hier der Übersichtlichkeit wegen mit eckigen Klammen schreiben. Das folgende Tripel
ist eine Monade in der Kategorie der Mengen
:
Der Listen-Funktor
- Für ein Objekt
aus
, das heißt für eine Menge
, sei
die Menge aller endlichen Listen, deren Elemente aus
kommen. - Für eine Abbildung
zwischen zwei Mengen sei
zwischen den Listenmengen durch
definiert.
Einheit und Multiplikation
- Die Einheit
sei definiert durch
, das ist die Konstruktion einelementiger Listen. - Die Multiplikation ist die Konkatenation von Listen:
, also
– dies ist gewissermaßen das (einstufige) Zusammenfügen einer Liste von Listen zu einer Liste.
Diese Daten erfüllen die Definition der Monade.
- Die Gleichung
bedeutet für eine Liste von Listen von Listen
, dass
, das heißt, dass es bei mehrfach verschachtelten Listen egal ist, ob diese von innen oder von außen beginnend zu einer zusammengefügt werden. Betrachte zum Beispiel
, wobei
seien. Das ist die Liste der beiden Listen von Listen
und
, die ihrerseits aus den Listen
und
bzw.
und
bestehen. Dann ist
und
.
- Das zweite Axiom besagt in diesem Beispiel, dass jede Liste durch Zusammenfügen einelementiger Listen entsteht:
.
In einer algebraischen Sichtweise ist
die unterliegende Menge des freien Monoids über
. Die Einheit
bettet das Erzeugendensystem in den Monoid ein, die Multiplikation
ist die Monoidmultiplikation.
Ist
eine Monade, so ist ein Paar
eine Eilenberg-Moore-Algebra (auch einfach nur Algebra genannt) für diese Monade, wenn die Gleichungen
und ![{\displaystyle \alpha \circ \mu _{A}=\alpha \circ T(\alpha )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8e472324dbfc774a6a57ac001a42a8d5ce1c1bda)
gelten, das heißt, wenn die folgenden beiden Diagramme kommutieren:
Ein Homomorphismus von
nach
ist ein Pfeil
in
mit
, das heißt, dass nachstehendes Diagramm kommutiert:
Für beliebige Objekte
aus
ist daher z. B.
eine Algebra, und
ist ein Homomorphismus von
nach
. Im obigen Beispiel der Listen sind die Algebren
genau die Monoide
und
multipliziert alle Elemente der Liste.
Die Eilenberg-Moore-Algebren zur Monade
bilden mit den angegebenen Homomorphismen eine Kategorie, die man die Kategorie der
-Algebren nennt und mit
bezeichnet.[3] Im Falle der Listen-Monade
ist also
die Kategorie der Monoide.
Es sei
ein Körper. Legt man für Mengen
fest, dass
sei, also (eine Kodierung für) die Menge der formalen
-Linearkombinationen von Elementen von
, lässt sich
als Objektabbildung eines Funktors
auffassen, dessen Pfeilabbildung einer Funktion
die Funktion
, mit
, zuordnet.
trägt eine naheliegende Vektorraumstruktur: Für
und
ist
, definiert durch
, wieder Element von
, und für
ist
, definiert durch
, ebenfalls wieder Element von
.
Der Funktor
wird zusammen mit den Festlegungen
![{\displaystyle \eta _{X}(x)(y):={\begin{cases}1&x=y\\0&{\text{sonst}}\end{cases}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5de90f0491456a5d2a62082555804d815a928fe8)
![{\displaystyle \mu _{X}(l):=\sum _{v\in l^{-1}(K\setminus \{0\})}l(v)\cdot v}](https://wikimedia.org/api/rest_v1/media/math/render/svg/41608e4ace10e5103202f36615dbb575e99366e6)
- (hier verwenden wir der Übersichtlichkeit halber
und
aus dem vorangegangenen Satz)
zu einer Monade
.
berechnet dabei auf naheliegende Weise aus einer Linearkombination von Linearkombinationen von Elementen von
die entsprechende Zusammenfassung als Linearkombination von Elementen von
.
Die Algebren der Monade
sind gerade
-Vektorräume, in der zur Monade gehörenden Kleisli-Kategorie sind die Pfeile
gerade (Mengen-indizierte)
-
-Matrizen, die sich als Codes für lineare Abbildungen vom freien Vektorraum über
zum freien Vektorraum über
auffassen lassen.
Der Endofunktor
auf der Kategorie der partiell geordneten Mengen und monotonen Abbildungen ordne jedem
die partiell geordnete Menge
der Ordnungsideale in
zu. Seine Wirkung auf monotonen Abbildungen
sei
. Für eine partiell geordnete Menge
und eine Teilmenge
ist hierbei
.
Die Abbildungsfamilien
und
ergänzen den Funktor
zu einer Monade.
Die Strukturabbildung
einer
-Algebra
ist nun gerade
. Jedes Ideal in
(und somit jede gerichtete Teilmenge) hat also ein Supremum in
. Das heißt, eine
-Algebra ist dasselbe wie eine Dcpo. Ein Homomorphismus von
-Algebren ist eine Scott-stetige Abbildung.
Ist ein Funktor
zu einem Funktor
linksadjungiert, und sind
bzw. ![{\displaystyle \varepsilon \colon FG\to 1_{\mathcal {D}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/62807b837551b49f63459ca8472b292ed76251ff)
Einheit bzw. Koeinheit der Adjunktion, so ist
mit
![{\displaystyle T=GF\colon {\mathcal {C}}\to {\mathcal {C}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/85da59a6e88a863e4c43121b25cc0c5e5e3ec3f3)
also
für Objekte ![{\displaystyle X\in \mathrm {Ob} ({\mathcal {C}})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/9900be4a0ed48823077db0dc0dc9855c219129f0)
eine Monade.
Dies ist im gewissen Sinn auch schon das einzige Beispiel, da jede Monade auf diese Weise entsteht, jedenfalls bis auf Isomorphie: Die Tripel
mit
,
,
und
sind Objekte einer Kategorie
. In dieser Kategorie ist ein Morphismus von
nach
ein Funktor
, für den
und
gelten.
Anfangsobjekt in
ist
, wobei
die Kleisli-Kategorie zu
ist.
, für
ist
.
, für
ist
.
Endobjekt in
ist
wobei
die Kategorie der Eilenberg-Moore-Algebren zu
ist.
, für
ist
.
,
.[4]
Für eine vorgegebene Adjunktion
gibt es daher eindeutig existierende Funktoren
und
wie im nachfolgenden Diagramm, so dass die oben genannten Gleichungen bestehen, das heißt
,
,
und
Den Funktor
nennt man auch den Vergleichsfunktor, weil der die Kategorie
mit einer Kategorie von Algebren vergleicht. Man nennt die Adjunktion
monadisch, wenn der Vergleichsfunktor eine Äquivalenz
ist. Man nennt einen Funktor
monadisch, wenn es eine Linksadjungierte
gibt, so dass die Adjunktion
monadisch ist.
Monaden werden in der Informatik, besonders in funktionalen Programmiersprachen u. a. zur Abstraktion von Nebeneffekten verwendet. Es ist Haskell hervorzuheben, wo Monaden zur Integration von Ein- und Ausgabe in die sonst komplett von Seiteneffekten freie Sprache verwendet werden. Siehe dazu auch Monade (Informatik).
- ↑ Saunders Mac Lane, Categories for the Working Mathematician. Springer-Verlag, Berlin 1971, ISBN 3-540-90035-7, Kap. VI.1 Monads in a Category, Definition auf S. 137
- ↑ Emily Riehl: Category Theory in Context. AMS Dover Publications, 2016, ISBN 0-486-80903-X, Definition 5.1.1, S. 154.
- ↑ Saunders Mac Lane, Categories for the Working Mathematician. Springer-Verlag, Berlin 1971, ISBN 3-540-90035-7, Kap. VI.1 Algebras for a Monad, Definition auf S. 140
- ↑ Emily Riehl: Category Theory in Context. AMS Dover Publications, 2016, ISBN 0-486-80903-X, Satz 5.2.12, S. 164.