# Heterogene Algebra

Heterogene Algebren sind im mathematischen Teilgebiet der universellen Algebra untersuchte algebraische Strukturen und stellen in gewissem Sinn eine Verallgemeinerung von universellen Algebren (zu unterscheiden von der Disziplin) dar. Während bei universellen Algebren von einer einzelnen Menge als Grundmenge ausgegangen wird, ist die Grundmenge einer heterogenen Algebra ein Mengensystem.
Verwendung finden sie in der algebraischen Spezifikation, einer Form der Spezifikation eines Datentyps.

## Definition

Eine heterogene Algebra (engl. heterogeneous algebra) besteht aus einem System (einer Familie) von nichtleeren Grundmengen $A=(A_{j})_{j\in J}$ und einem System (einer Familie) von Operationen $\Omega =(\omega _{i})_{i\in I}$.
Die Operationen $\omega _{i}$ sind Abbildungen von einem (möglicherweise leeren) kartesischen Produkt der Grundmengen in eine der Grundmengen
    $\omega _{i}\colon A_{j_{1}}\times \dotsb \times A_{j_{\nu }}\times \dotsb \times A_{j_{n}}\longrightarrow A_{k}$.
Man beachte, dass $k,n$ und alle $j_{\nu }$ spezifisch für die jeweilige Operation sind. Das zu jeder Operation $\omega _{i}$ gehörende $(n+1)$-Tupel $(j_{1},\dotsc ,j_{\nu },\dotsc ,j_{n};k)\in J^{n+1}$ bezeichnet man als den Typ dieser Operation. Eine Operation $\omega _{i}$ vom Typ $(;k)$ entspricht einer Konstanten (aus der Grundmenge $A_{k}$).
Man kann die heterogene Algebra wie folgt angeben:
    ${\boldsymbol {A}}=(A,\Omega )={\bigl(A_{j})_{j\in J},(\omega _{i})_{i\in I}{\bigr )}$
In gegebenem Zusammenhang ist dafür auch gleichwertig die Schreibweise
    ${\boldsymbol {A}}=(A_{j}\mid j\in J,\Omega )$
gebräuchlich.
Die Familie der Typen der einzelnen Operationen $\omega _{i}$ mit Indexmenge $I$ nennt man die (vielsortige) Signatur (manchmal auch ebenfalls Typ) $\sigma$ der heterogenen Algebra. Haben zwei Algebren die gleiche Signatur, so sind ihre Operationen bijektiv zuordenbar.
Falls es nur eine Grundmenge gibt (wenn also $I$ eine Einermenge ist), dann liegt eine gewöhnliche (universelle) Algebra vor.

### Bemerkungen

* Manchmal erweist es sich auch als zweckmäßig, leere Mengen $A_{j}=\emptyset$ als Trägermengen zuzulassen, etwa damit sichergestellt ist, dass die Menge aller Unteralgebren (siehe unten) einer heterogenen Algebra einen algebraischen Verband bildet.
* Ersetzt man in der obigen Definition den Begriff Verknüpfung durch partielle Verknüpfung, dann spricht man von einer partiellen heterogenen Algebra. Vernüpfungswerte müssen hier nicht für alle Parameter ($n$-Tupel-Kombinationen) definiert sein.

## Verallgemeinerungen von aus universellen Algebren bekannten Begriffen

Da die heterogene Algebra eine Verallgemeinerung der universellen Algebra ist, ist es von Interesse, wie sich die bekannten Begriffe und Sätze übertragen lassen.

### Unteralgebren

Ein Mengensystem $U=(U_{j})_{j\in {J}}$, bei dem für jeden Index $j$ die Teilmengenrelation $U_{j}\subseteq A_{j}$ gilt, ist genau dann Unteralgebra der heterogenen Algebra ${\boldsymbol {A}}=(A_{j}\mid j\in J,\Omega )={\bigl(A_{j})_{j\in J},\Omega {\bigr )}$, wenn alle Operationen aus $\Omega$ abgeschlossen sind (insbesondere auch die nullstelligen Operationen), wenn also gilt:
    $\omega _{i}(u_{1},\dots ,u_{n})\in U_{k}$ für alle $\omega _{i}$ mit Typ $(j_{1},\dotsc ,j_{n};k)$ und für alle ${u_{1}}\in U_{j_{1}},\dotsc ,u_{n}\in U_{j_{n}}$
Für nullstellige Operationen $\omega _{i}$ (mit Typ $(;0)$, also $n=0$), d. h. Konstanten, bedeutet das, dass diese alle in $U$ liegen müssen:
    $\omega _{i}\in U$
Wie auch bei universellen Algebren gilt: Der mengentheoretische Durchschnitt von Unteralgebren ist stets eine Unteralgebra (sofern er nicht leer ist). Dabei ist der Durchschnitt für jedes $j\in J$ getrennt durchzuführen und keiner der Durchschnitte darf leer sein.

### Homomorphismen

Seien ${\boldsymbol {A}}=(A_{j}\mid j\in J,\Omega )$ und ${\boldsymbol {B}}=(B_{j}\mid j\in J,\Omega ')$ heterogene Algebren derselben Signatur, d. h., für jedes $i$ seien $\omega _{i}$ und $\omega '_{i}$ vom gleichen Typ, etwa $(j_{1},\dotsc ,j_{n};k)$.
Weiter sei gegeben ein System (eine Familie) von Abbildungen $(f_{j})_{j\in J}$ mit $f_{j}\colon A_{j}\to B_{j}$ für jedes $j$.
Seien die Funktionen $f_{j}$ nun in folgendem Sinne mit den Operationen $\omega _{i}$ vertauschbar:
    Für alle $\omega _{i},\omega '_{i}$ mit gemeinsamem Typ $(j_{1},\dotsc ,j_{n};k)$ und für alle $(a_{1},\dotsc ,a_{n})\in A_{j_{1}}\times \dotsb \times A_{j_{n}}$ gilt:
       $f_{k}(\omega _{i}(a_{1},\dotsc ,a_{n}))=\omega '_{i}(f_{j_{1}}(a_{1}),\dotsc ,f_{j_{n}}(a_{n}))$
Speziell im Fall von Konstanten, d. h. für die $\omega _{i}$ mit Typ $(;k)$, muss also gelten: $f_{k}(\omega _{i})=\omega '_{i}$ mit $\omega _{i}\in A_{k}$ und $\omega '_{i}\in B_{k}$.
Dann spricht man von einem Homomorphismus von ${\boldsymbol {A}}$ in ${\boldsymbol {B}}$. Sind zusätzlich alle Funktionen $f_{j}$ bijektiv, so spricht man von einem Isomorphismus.

### Homomorphiesatz

Für jeden Homomorphismus $f$ auf einer heterogenen Algebra ist das homomorphe Bild isomorph zu ihrer Faktoralgebra nach der Kongruenzrelation $\theta _{f}$.

## Beispiele für heterogene Algebren
### Vektorräume

Ein Vektorraum $(V,\oplus ,\odot )$ über einem Körper $(K,+,\cdot )$ ist eine heterogene Algebra mit den zwei Grundmengen $A_{1}=V$ und $A_{2}=K$. Für die zweistelligen Operationen gilt Folgendes:
* $\oplus \colon A_{1}\times A_{1}\to A_{1}$ hat Typ $(1,1;1)$.
* $\odot \colon A_{2}\times A_{1}\to A_{1}$ hat Typ $(2,1;1)$.
* $+\colon A_{2}\times A_{2}\to A_{2}$ hat Typ $(2,2;2)$.
* $\cdot \colon A_{2}\times A_{2}\to A_{2}$ hat Typ $(2,2;2)$.
In quantorenfreier Notation der Axiome (ohne Existenzquantor) kommen noch dazu als einstellige Operationen die Bildung des additiven Inversen (Negativen) in $(V,\oplus )$ und des additiven und multiplikativen Inversen in $(K,+,\cdot )$, sowie als Konstanten (nullstellige Operationen) der Nullvektor $0_{V}$ in $(V,\oplus )$ und Null- und Einselement $0,1$ in $(K,+,\cdot )$:
* $\ominus \colon A_{1}\to A_{1}$ hat Typ $(1;1)$.
* $-\colon A_{2}\to A_{2}$ hat Typ $(2;2)$.
* $\operatorname {inv} =^{-1}\colon A_{2}\not \to A_{2}$ hat Typ $(2;2)$ (als partielle Operation).
* $0_{V}\in A_{1}$ hat Typ $(;1)$ (als Konstante ${A_{1}}^{0}=\{\emptyset \}\to A_{1}$, siehe leeres Produkt).
* $0\in A_{2}$ und $1\in A_{2}$ haben beide Typ $(;2)$.
Streng genommen ist der Vektorraum also eine partielle heterogene Struktur. Verallgemeinerungen sind Links- und Rechtsvektorräume über Schiefkörpern (Wegfall der multiplikativen Kommutativität der Skalare). Spezielle Vektorräume sind die Algebren über einem Körper (K-Algebren, veraltet auch: lineare Algebren) und Lie-Algebren.

### Moduln

Ein Modul $(M,\oplus ,\odot )$ über einem kommutativen Ring $(R,+,\cdot )$ mit Einselement $1$ ist eine heterogene Algebra mit den zwei Grundmengen $A_{1}=M$ und $A_{2}=R$. Moduln sind verallgemeinerte Vektorräume, für die Operationen gelten analoge Regeln wie oben. Weitere Verallgemeinerungen bestehen im Wegfall der multiplikativen Kommutativität der Skalare (wobei dann zwischen Links- und Rechtsmoduln unterschieden werden muss) oder des Einselements.

### Peirce-Algebren

Eine Peirce-Algebra ist eine abstrakte Relationsalgebra zusammen mit Links- und Rechtsverknüfungen mit Elementen weiterer Trägermengen. Ein Beispiel sind zweistellige Relationen $R\subseteq A\times B$ zwischen Elementen zweier Mengen $A$ und $B$ (Vor- und Nachbereich) zusammen mit Vor- und Nachbeschränkung auf Teilmengen von $A$ bzw. $B$.

### Köcher

Ein Köcher $\Gamma =(V,E,\operatorname {s} ,\operatorname {t} )$ in der Graphentheorie ist eine heterogene Algebra mit zwei Grundmengen $A_{1}=V$ (Punkten oder Knoten genannt) und $A_{2}=E$ (Pfeile oder gerichtete Kanten genannt). Die einstelligen Operationen $\operatorname {s}$ und $\operatorname {t}$ sind beide vom Typ $(2;1)$ und ordnen jedem Pfeil seinen Anfangs- und Endpunkt zu.

### Kleine Kategorien

Eine kleine Kategorie ${\mathcal {C}}=({\mathit {\Omega }},M,\operatorname {dom} ,\operatorname {cod} ,\circ ,\operatorname {id} )$ in der Kategorientheorie ist eine (partielle) heterogene Algebra mit zwei Grundmengen $A_{1}={\mathit {\Omega }}=\operatorname {Ob} ({\mathcal {C}})$ (Objekte genannt) und $A_{2}=M=\operatorname {Ar} ({\mathcal {C}})$ (Morphismen oder Pfeile genannt). Die einstelligen Operationen $\operatorname {dom}$ und $\operatorname {cod}$ sind beide vom Typ $(2;1)$ und ordnen jedem Morphismus (Pfeil) sein Quell- und Zielobjekt zu. $\circ$ ist eine zweistellige partielle Verknüpfung vom Typ $(2,2;1)$ und ordnet je zwei Morphismen $f,g$ mit $\operatorname {cod} (f)=\operatorname {dom} (g)$ die Verknüpfung $g\circ f$ zu. Die Identitätsabbildung $\operatorname {id}$ ist eine einstellige Verknüpfung vom Typ $(1;2)$, die jedem Objekt $X$ seinen Identitätsmorphismus $\operatorname {id} _{X}$ mit $\operatorname {dom} (\operatorname {id} _{X})=\operatorname {cod} (\operatorname {id} _{X})=X$ zuordnet. Die ersten vier Komponenten einer kleinen Kategorie ${\mathcal {C}}=({\mathit {\Omega }},M,\operatorname {dom} ,\operatorname {cod} ,\circ ,\operatorname {id} )$ definieren einen Köcher $\Gamma =({\mathit {\Omega }},M,\operatorname {dom} ,\operatorname {cod} )$.

### Endliche Automaten

Ein endlicher Automat $(\Sigma ,S,s_{0},\delta ,F)$ in der Automatentheorie ist eine heterogene Algebra mit den zwei Grundmengen $A_{1}=\Sigma$ (dem Eingabealphabet) und $A_{2}=S$ (der Menge der Zustände). Für die Operationen gilt Folgendes:
* Der Anfangszustand $s_{0}\colon \to A_{2}$ hat Typ $(;2)$.
* Die Zustandsübergangsfunktion $\delta \colon A_{2}\times A_{1}\to A_{2}$ hat Typ $(2,1;2)$.

## Anmerkungen und Einzelnachweise

* ↑ Man kann die Indexmenge $I$ verstehen als ein Alphabet von Bezeichnern (Sorten) der Grundmengen und die Indexmenge $J$ als eine Menge von Funktionssymbolen (oder -bezeichnern).
* ↑ Die Beschränkung auf Grundmengen bedeutet, dass ${\mathcal {C}}$ eine kleine Kategorie ist. In der Kategorientheorie bilden allerdings die Objekte und Morphismen der betrachteten Kategorien gewöhnlich eigentliche Klassen statt Mengen.
* ↑ Opolka 2010, S. 141.