Loading …
link-time Logo
Was sind eigentlich Kategorien?
Was sind eigentlich Kategorien? Was sind eigentlich Kategorien?
Was sind eigentlich Kategorien?
Was sind eigentlich Kategorien? Was sind eigentlich Kategorien? Was sind eigentlich Kategorien?

Was sind eigentlich Kategorien?

1. Eine Klasse von Objekten

Die Klasse der Objekte einer Kategorie ist das primär definierende Element einer jeden Kategorie.

Die Möglichkeiten für diese Objekte reichen hierbei von einzelnen "Dingen" (z.B. der Zahl 1) bis hin zu Kategorien, eine Kategorie der Kategorien also.

Notation

Für eine Kategorie \(\mathcal{K}\) bezeichnet \(Ob(\mathcal{K})\) oder alternativ \(\lVert\mathcal{K}\rVert\) die Klasse der Objekte in \(\mathcal{K}\).

Beispiel

Nehmen wir als Beispiel die Kategorie der Listen \(\mathcal{L}\):

Es gilt

\[Ob(\mathcal{L}) \Leftrightarrow \lVert\mathcal{L}\rVert = \mathbb{L}\]

wobei \(\mathbb{L}\) die Menge aller Listen darstellt.

Die Klasse der Objekte in der Kategorie der Listen ist also die Menge aller Listen, so weit - so trivial.

2. Morphismen

Als etwas kryptisch anmutender Begriff, steht der Morphismus für das, was in der linearen Algebra als Abbildung (auch Morphismus) und in der Analysis als Funktion bezeichnet wird.

Ein Morphismus (von morphé - Form/Gestalt) ist also etwas "formendes", etwas das aus einer Sache eine andere Sache macht.

Ein Morphismus bezieht sich immer auf zwei Mengen, welche Domäne und Co-Domäne genannt werden.

Notation

Ein Morphismus \(f\) wird in der Regel in folgender Form notiert:

$$f:\mathbb{A}\rightarrow\mathbb{B}$$

wobei \(\mathbb{A}\) als die Domäne von \(f\) und \(\mathbb{B}\) als die Co-Domäne von \(f\) bezeichnet wird.

Beispiel

Wir definieren den Inkrement-Morphismus \(+1\) folgendermaßen:

$$+1:\mathbb{N}\rightarrow\mathbb{N}$$

$$+1: n\mapsto n+1$$

Domäne und Co-Domäne sind also die Natürlichen Zahlen \(\mathbb{N}\) .

Da in unserem Beispiel Domäne und Co-Domäne identisch sind sprechen wir bei \(+1\) von einem "Endomorphismus". Der Präfix "Endo" wird uns wird uns erneut begegnen wenn wir Funktoren behandeln, dazu aber Mehr, wenn es soweit ist.

3. Identitätsmorphismus

Der Identitätsmorphismus ist wie der Name schon verrät ein Morphismus. Die Eigenschaft welche den Identitätsmorphismus von anderen Morphismen unterscheidet ist, dass er jedes Objekt auf sich selbst abbildet.

Notation

Der Identitätsmorphismus wird als \(Id_{\mathcal{X}}\) notiert, folglich gilt:

$$\forall x\in\lVert\mathcal{X}\rVert(Id_{\mathcal{X}}:x\mapsto x)$$

Sprich "Für alle (\(\forall\)) Objekte in \(\mathcal{X}\) bildet der Identitätsmorphismus das jeweilige Objekt auf sich selber ab".

4. Die Kompositions-Verknüpfung

Die Kompositions-Verknüpfung \(\circ\) (auch Komposition) ist eine zentrale Komponente in der Kategorien-Theorie und beschreibt die Möglichkeit Morphismen zu Komponieren. Die Komposition von zwei Morphismen liefert als Ergebnis einen neuen Morphismus.


Notation

Die Komposition von zwei Morphismen \(f\) und \(g\) wird folgendermaßen notiert:

$$f:\mathbb{A}\rightarrow\mathbb{B}$$

$$g:\mathbb{B}\rightarrow\mathbb{C}$$

$$g\circ f:\mathbb{A}\rightarrow\mathbb{C}$$

Wir sprechen von "\(g\) komponiert \(f\)", oder "\(g\) Kringel \(f\)".


Assoziativität

Eine Anforderung welche die Kategorientheorie an die Komposition stellt, ist dass sie assoziativ sein muss.

Das bedeutet die Abarbeitungsfolge mehrerer Kompositionen hat keinen Einfluss auf das Endergebnis, oder formalisiert:

Seien \(f\), \(g\) und \(h\) Morphismen in \(\mathcal{K}\), so gilt

$$f\circ (g\circ h)\Leftrightarrow (f\circ g)\circ h$$

Beispiel

Sei \(halbiert\) der Morphismus, welcher eine ganze Zahl auf dessen Hälfte abbildet.

Sei \(floor\) zudem der Morphismus, welcher eine Zahl auf die nächste ganze Zahl abrundet.

Es gilt folglich

$$halbiert:\mathbb{Z}\rightarrow\mathbb{Q}$$

$$floor:\mathbb{R}\rightarrow\mathbb{Z}$$

mit \(\mathbb{Q}\subset\mathbb{R}\) gilt

$$floor\circ halbiert:\mathbb{Z}\rightarrow\mathbb{Z}$$

\(floor\) komponiert \(halbiert\) ist also ein Endomorphismus.

Preview

Im nächsten Eintrag werden wir uns den Funktoren widmen und zeigen, inwiefern viele Typen in Kotlin Funktoren sind.


Patrick Louis

Patrick Louis

› github.com/p-louis

› Alle Artikel anzeigen

Ihr Browser ist veraltet

Bitte aktualisieren Sie Ihren Browser, um diese Website korrekt darzustellen. Browser jetzt aktualisieren!

×