Monade (Kategorientheorie)

Monoid in der Kategorie der Endofunktoren

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

Definition

Bearbeiten

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

Bearbeiten

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

Bearbeiten

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

Bearbeiten

Linearkombinationen

Bearbeiten

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.

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

Bearbeiten

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

Bearbeiten

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

Bearbeiten

Einzelnachweise

Bearbeiten
  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 978-0-486-80903-8, 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 978-0-486-80903-8, Satz 5.2.12, S. 164.