Monade (Kategorientheorie)

Monade (Kategorientheorie)

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

Inhaltsverzeichnis

Definition

Eine Monade ist ein Tripel (T,η,μ) aus

so dass die folgenden Bedingungen erfüllt sind:

Monad multiplication.svg
  • \mu\circ \eta T = \mu\circ T\eta = 1, d. h. das folgende Diagramm kommutiert:
Monad unit.svg

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

Monad multiplication explicit.svg und Monad unit explicit.svg

kommutieren. Die erste Bedingung ist analog zum Assoziativgesetz bei Monoiden, die zweite zur Existenz eines neutralen Elementes.

Beispiele

Adjungierte Funktoren

Ist ein Funktor F\colon C\to D zu einem Funktor G\colon D\to C linksadjungiert, und sind

\eta\colon 1_C\to GF bzw. \varepsilon\colon FG\to 1_D

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

  • T=GF\colon C\to C
  • μ = GεF, also μX = GF(X)) für Objekte X\in\mathrm{Ob}(C)

eine Monade.

Dies ist im gewissen Sinn auch schon das einzige Beispiel, da jede Monade auf diese Weise entsteht, jedenfalls bis auf Isomorphie: Wir betrachten dazu für eine Monade (T,η,μ) die Kategorie KT der sogenannten T-Algebren. Objekte dieser Kategorie sind Paare (X,α) wobei X ein Objekt von K und \alpha: TX \to X ein Morphismus in K ist. Ein Morphismus f: (X, \alpha) \to (Y,\beta) ist ein Morphismus f: X \to Y in K so, dass f \circ \alpha = \beta \circ Tf gilt. Wir haben Funktoren G^T: K^T \to K - den Vergissfunktor, der die Zusatzstruktur vergisst - und F^T: K \to K^T - den "freie Algebra"-Funktor - der auf Objekten durch FT(X) = (TXX) und auf Morphismen durch FT(f) = Tf wirkt (Tf ist wegen der Monadeneigenschaften wirklich ein Morphismus (TX, \mu_X) \to (TY, \mu_Y)). FT und GT sind adjungiert, die Einheit der Adjunktion ist durch die Einheit \eta: 1 \to G^TF^T = T gegeben, die Koeinheit durch \varepsilon_{(X,\alpha)} = \alpha: (TX, \mu_X) \to (X, \alpha). Die durch diese Adjunktion induzierte Monade (T,η,μT) ist gerade die Ausgangsmonade, denn wir haben

{\mu^T}_X = G^T(\varepsilon^T_{F^T(X)}) = G^T\bigl(\varepsilon^T_{(TX, \mu_X)}\bigr) = G^T(\mu_X) = \mu_X.

Listen

Ein Beispiel für eine Monade sind Listen. Wenn [x1,...,xn] die Liste mit den Elementen x1 bis xn bezeichnet, dann stellt das folgende Tripel (T,η,μ) eine Monade über der Kategorie der Mengen dar:

  1. Listen-Funktor:
    • Auf der Objektebene ergibt T(X) = \{ [x_1, ..., x_n] \mid n\in\N, x_1, ..., x_n \in X \} die Menge aller Listen, deren Elemente aus X kommen, für eine beliebige Menge X.
    • Für eine Abbildung f : X \to Y zwischen zwei Mengen ergibt T die entsprechende Abbildung T(f) : T(X) \to T(Y) zwischen den Listenmengen mit T(f)([x1,...,xn]) = [f(x1),...,f(xn)]
  2. Konstruktor für einelementige Listen: ηX(x) = [x]
  3. Konkatenation von Listen: \mu_X([l_1, ..., l_n]) = l_1 \cdot ... \cdot l_n, also \mu_X([[x_{11}, ... x_{1m_1}], ..., [x_{n1}, ..., x_{nm_n}]]) = [x_{11}, ... x_{1m_1}, ..., x_{n1}, ..., x_{nm_n}] - dies ist gewissermaßen das (einstufige) Flachklopfen einer Liste von Listen.

Die Aussage der Axiome lassen sich entsprechend auf das Listenbeispiel übertragen:

  1. Wird das Axiom μTμ = μμT auf das Beispiel angewandt, ergibt sich für eine Menge X zunächst \mu \circ \mu_{T(X)} = \mu \circ T(\mu_X). Auf das Listenbeispiel übertragen ergibt sich für l \in T(T(T(X))) auch μXT(X)(l)) = μX(TX)(l))), d.h. dass es bei mehrfach verschachtelten Listen egal ist, ob von innen oder von außen flachgeklopft wird, was bei Listen offensichtlich erfüllt ist.
  2. Das zweite Axiom sagt in diesem Beispiel aus, dass es beim Hinzufügen einer Listenebene egal ist, ob dies innen oder außen passiert, sofern danach flachgeklopft wird - es ist \mu_X(\eta_{T(X)}([x_1, ..., x_n])) = \mu_X([[x_1, ..., x_n]]) = [x_1, ..., x_n] = \mu_X([[x_1], ..., [x_n]]) = \mu_X(T(\eta_X)([x_1, \dotsc, x_n])).

Diese Monade gehört zu einem adjungierten Funktorpaar F,G (wie oben) zwischen den Kategorien der Mengen bzw. Halbgruppen. F ordnet einer Menge die freie Halbgruppe über dieser Menge zu, G einer Halbgruppe die zugrundeliegende Menge.

Anwendung

Monaden werden u.a. in der Informatik in der funktionalen Programmierung verwendet, z.B. als Listen- oder IO-Monade in Haskell, siehe Monade (Informatik)

Literatur

  • Saunders Mac Lane, Categories for the Working Mathematician. Springer-Verlag, Berlin 1971. ISBN 3-540-90035-7

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Monade — (gr. μονάς monás, Genetiv monádos; lat. monas, Genetiv monadis‚ „Einheit, Einzelheit“) bezeichnet: Monade (Biologie), die Form eines Einzellers Monade (Genetik), Bestandteil einer Dyade, der chromosomalen Wandereinheiten der Anaphase in der… …   Deutsch Wikipedia

  • Monade (Informatik) — In der funktionalen Programmierung sind Monaden ein abstrakter Datentyp. Sie repräsentieren verkettbare Berechnungen. Formal wird eine Monade durch einen Typkonstruktor M und durch die Definition zweier Operationen (bind und return), die… …   Deutsch Wikipedia

  • Monad — Monade (gr. μονάς monás, Genetiv monádos; lat. monas, Genetiv monadis‚ die Einzelheit, die Einheit) bezeichnet: Monade (Biologie), die Form eines Einzellers Monade (Genetik), Bestandteil einer Dyade Monade (Kategorientheorie), mathematisches… …   Deutsch Wikipedia

  • Funktionale Programmiersprache — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Funktionale Programmierung ist ein Programmierparadigma. Programme… …   Deutsch Wikipedia

  • Funktionionale Programmierung — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Funktionale Programmierung ist ein Programmierparadigma. Programme… …   Deutsch Wikipedia

  • Programmiersprache Haskell — Haskell Basisdaten Paradigmen: funktional, nicht strikt, modular …   Deutsch Wikipedia

  • Kleisli-Kategorie — Eine Kleisli Kategorie ist eine Kategorie, die sich auf natürliche Weise aus einer Monade ergibt. Definition Sei C eine Kategorie und M = (T,μ,η) eine Monade, mit als Endofunktor und , als die auf ihm festgelegten Monoid Operationen. Die zu C und …   Deutsch Wikipedia

  • Universelle Eigenschaft — Eine universelle Eigenschaft ist eine Methode der Mathematik, und dort insbesondere der abstrakten Algebra, sich eine gewünschte Struktur ohne Angabe einer konkreten Konstruktion zu verschaffen. Dabei wird für Objekte einer bestimmten Kategorie …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”