Monade (Kategorientheorie)

Aus testwiki
Zur Navigation springen Zur Suche springen

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 (T,η,μ) aus

  • einem Funktor T von einer Kategorie 𝒞 in sich selbst, das heißt
    T:𝒞𝒞
  • einer natürlichen Transformation η:1𝒞T (dabei steht 1𝒞 für den Identitätsfunktor 𝒞𝒞)
  • einer natürlichen Transformation μ:T2T (dabei steht T2 für TT),

so dass die folgenden Bedingungen, die man auch die Axiome der Monade nennt, erfüllt sind:

  • μTμ=μμT, das heißt das folgende Diagramm kommutiert:
  • μηT=μTη=1, das heißt das folgende Diagramm kommutiert:

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

  und  

kommutieren. Dabei sind Tμ und μT die durch (Tμ)X:=T(μX) und (μT)X:=μT(X) definierten natürlichen Transformationen, entsprechendes gilt für Tη und ηT. 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 [x1,,xn] die Liste mit den Elementen x1 bis xn, wobei mit n=0 auch die leere Liste zugelassen ist. Listen sind Tupel, die wir hier der Übersichtlichkeit wegen mit eckigen Klammen schreiben. Das folgende Tripel (T,η,μ) ist eine Monade in der Kategorie der Mengen 𝐒𝐞𝐭:

Der Listen-Funktor

  • Für ein Objekt X aus 𝐒𝐞𝐭, das heißt für eine Menge X, sei T(X)={[x1,,xn]n,x1,,xnX} die Menge aller endlichen Listen, deren Elemente aus X kommen.
  • Für eine Abbildung f:XY zwischen zwei Mengen sei T(f):T(X)T(Y) zwischen den Listenmengen durch T(f)([x1,,xn])=[f(x1),,f(xn)] definiert.

Einheit und Multiplikation

  • Die Einheit η sei definiert durch ηX(x)=[x], das ist die Konstruktion einelementiger Listen.
  • Die Multiplikation ist die Konkatenation von Listen: μX([l1,,ln])=l1ln, also μX([[x11,,x1m1],,[xn1,,xnmn]])=[x11,,x1m1,,xn1,,xnmn] – 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 μTμ=μμT bedeutet für eine Liste von Listen von Listen lT(T(T(X))), dass μX(T(μX)(l))=μX(μT(X)(l)), 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 l=[[[x,y],[x]],[[x,y,z],[x,x]]], wobei x,y,zX seien. Das ist die Liste der beiden Listen von Listen [[x,y],[x]] und [[x,y,z],[x,x]], die ihrerseits aus den Listen [x,y] und [x] bzw. [x,y,z] und [x,x] bestehen. Dann ist
μX(T(μX)(l))=μX([[x,y,x],[x,y,z,x,x]])=[x,y,x,x,y,z,x,x] und
μX(μT(X)(l))=μX([[x,y],[x],[x,y,z],[x,x]])=[x,y,x,x,y,z,x,x].
  • Das zweite Axiom besagt in diesem Beispiel, dass jede Liste durch Zusammenfügen einelementiger Listen entsteht:
μX(ηT(X)([x1,,xn]))=μX([[x1,,xn]])=[x1,,xn]=μX([[x1],,[xn]])=μX(T(ηX)([x1,,xn])).

In einer algebraischen Sichtweise ist T(X) die unterliegende Menge des freien Monoids über X. Die Einheit ηX bettet das Erzeugendensystem in den Monoid ein, die Multiplikation μX ist die Monoidmultiplikation.

Eilenberg-Moore-Algebren

Ist (T:𝒞𝒞,η,μ) eine Monade, so ist ein Paar (A,α:T(A)A) eine Eilenberg-Moore-Algebra (auch einfach nur Algebra genannt) für diese Monade, wenn die Gleichungen

  • αηA=1A und
  • αμA=αT(α)

gelten, das heißt, wenn die folgenden beiden Diagramme kommutieren:

Ein Homomorphismus von (A,α) nach (B,β) ist ein Pfeil h:AB in K mit hα=βT(h), das heißt, dass nachstehendes Diagramm kommutiert:

Für beliebige Objekte X aus 𝒞 ist daher z. B. (T(X),μX) eine Algebra, und μX ist ein Homomorphismus von (T(T(X)),μT(X)) nach (T(X),μX). Im obigen Beispiel der Listen sind die Algebren (A,α:TAA) genau die Monoide A und α multipliziert alle Elemente der Liste.

Die Eilenberg-Moore-Algebren zur Monade T bilden mit den angegebenen Homomorphismen eine Kategorie, die man die Kategorie der T-Algebren nennt und mit 𝒞T bezeichnet.[3] Im Falle der Listen-Monade T ist also 𝐒𝐞𝐭T die Kategorie der Monoide.

Weitere Beispiele

Linearkombinationen

Es sei K ein Körper. Legt man für Mengen X fest, dass L(X):={v:XKv1(K{0}) endlich} sei, also (eine Kodierung für) die Menge der formalen K-Linearkombinationen von Elementen von X, lässt sich L als Objektabbildung eines Funktors L:𝐒𝐞𝐭𝐒𝐞𝐭 auffassen, dessen Pfeilabbildung einer Funktion f:XY die Funktion L(f):L(X)L(Y), mit L(f)(v)(y):=xf1({y})v(x), zuordnet. L(X) trägt eine naheliegende Vektorraumstruktur: Für λK und vL(X) ist λv, definiert durch (λv)(x):=λv(x), wieder Element von L(X), und für v,wL(X) ist v+w, definiert durch (v+w)(x):=v(x)+w(x), ebenfalls wieder Element von L(X).

Der Funktor L wird zusammen mit den Festlegungen

  • ηX(x)(y):={1x=y0sonst
  • μX(l):=vl1(K{0})l(v)v
(hier verwenden wir der Übersichtlichkeit halber + und aus dem vorangegangenen Satz)

zu einer Monade 𝐒𝐞𝐭𝐒𝐞𝐭. μX berechnet dabei auf naheliegende Weise aus einer Linearkombination von Linearkombinationen von Elementen von X die entsprechende Zusammenfassung als Linearkombination von Elementen von X.

Die Algebren der Monade (L,η,μ) sind gerade K-Vektorräume, in der zur Monade gehörenden Kleisli-Kategorie sind die Pfeile XY gerade (Mengen-indizierte) X-Y-Matrizen, die sich als Codes für lineare Abbildungen vom freien Vektorraum über X zum freien Vektorraum über Y auffassen lassen.

Dcpos

Der Endofunktor Idl:𝐏𝐨𝐬𝐏𝐨𝐬 auf der Kategorie der partiell geordneten Mengen und monotonen Abbildungen ordne jedem (A,) die partiell geordnete Menge (Idl(A),) der Ordnungsideale in A zu. Seine Wirkung auf monotonen Abbildungen f:AB sei Idl(f):I{f(a)aI}. Für eine partiell geordnete Menge X und eine Teilmenge UX ist hierbei U:={xXuU. xu}.

Die Abbildungsfamilien μA: und ηA:a{a} ergänzen den Funktor Idl zu einer Monade.

Die Strukturabbildung α einer Idl-Algebra (A,α:Idl(A)A) ist nun gerade IsupI. Jedes Ideal in A (und somit jede gerichtete Teilmenge) hat also ein Supremum in A. Das heißt, eine Idl-Algebra ist dasselbe wie eine Dcpo. Ein Homomorphismus von Idl-Algebren ist eine Scott-stetige Abbildung.

Adjungierte Funktoren

Ist ein Funktor F:𝒞𝒟 zu einem Funktor G:𝒟𝒞 linksadjungiert, und sind

η:1𝒞GF bzw. ε:FG1𝒟

Einheit bzw. Koeinheit der Adjunktion, so ist (T,η,μ) mit

  • T=GF:𝒞𝒞
  • μ=GεF, also μX=G(εF(X)) für Objekte XOb(𝒞)

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 (𝒟,F,G) mit F:𝒞𝒟, G:𝒟𝒞, GF=T und FG sind Objekte einer Kategorie 𝔄. In dieser Kategorie ist ein Morphismus von (𝒟1,F1,G1) nach (𝒟2,F2,G2) ein Funktor K:𝒟1𝒟2, für den KF1=F2 und G2K=G1 gelten.

Anfangsobjekt in 𝔄 ist (𝒞T,FT,GT), wobei 𝒞T die Kleisli-Kategorie zu T ist. FTX:=X, für f𝒞(X,Y) ist FT(f):=ηYf. GTX:=TX, für f𝒞T(X,Y) ist GT(f):=μYT(f).

Endobjekt in 𝔄 ist (𝒞T,FT,GT) wobei 𝒞T die Kategorie der Eilenberg-Moore-Algebren zu T ist. FTX:=(TX,μX), für f𝒞(X,Y) ist FT(f):=T(f). GT(X,α):=X, GT(f):=f.[4]

Für eine vorgegebene Adjunktion FG gibt es daher eindeutig existierende Funktoren J und K wie im nachfolgenden Diagramm, so dass die oben genannten Gleichungen bestehen, das heißt JFT=F, GJ=GT, KF=FT und GTK=G

Den Funktor K nennt man auch den Vergleichsfunktor, weil der die Kategorie 𝒟 mit einer Kategorie von Algebren vergleicht. Man nennt die Adjunktion FG monadisch, wenn der Vergleichsfunktor eine Äquivalenz 𝒟𝒞T ist. Man nennt einen Funktor G monadisch, wenn es eine Linksadjungierte F gibt, so dass die Adjunktion FG 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. Vorlage:Literatur
  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. Vorlage:Literatur

Vorlage:Navigationsleiste Kategorientheorie