Monade (Kategorientheorie)

Eine Monade ist im mathematischen Teilgebiet der Kategorientheorie eine Struktur, die gewisse formale Ähnlichkeit mit den Monoiden der Algebra aufweist.

Definition

Eine Monade ist ein Tripel aus

  • einem Funktor von einer Kategorie in sich selbst, das heißt
  • 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:
  • , das heißt das folgende Diagramm kommutiert:

Explizit bedeutet die Kommutativität der Diagramme, dass für jedes Objekt in die beiden Diagramme

  und  

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]

Beispiel Listen

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.

Eilenberg-Moore-Algebren

Ist eine Monade, so ist ein Paar eine Eilenberg-Moore-Algebra (auch einfach nur Algebra genannt) für diese Monade, wenn die Gleichungen

  • und

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.

Weitere Beispiele

Linearkombinationen

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

(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.

Dcpos

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.

Adjungierte Funktoren

Ist ein Funktor zu einem Funktor linksadjungiert, und sind

bzw.

Einheit bzw. Koeinheit der Adjunktion, so ist mit

  • also für Objekte

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.

Anwendung in der Informatik

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).

Einzelnachweise

  1. 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
  2. Emily Riehl: Category Theory in Context. AMS Dover Publications, 2016, ISBN 0-486-80903-X, Definition 5.1.1, S. 154.
  3. 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
  4. Emily Riehl: Category Theory in Context. AMS Dover Publications, 2016, ISBN 0-486-80903-X, Satz 5.2.12, S. 164.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.