Motivation
Aus dem Blickwinkel der Prädikatenlogik (ohne Sorten) sind Sorten einstellige Relationen (Sortenprädikate), falsche Sortenzuweisungen erscheinen dann aber nicht mehr als Syntaxfehler, sondern nach Zuweisung einer Semantik als falsch. Die Sortenlogik stellt dagegen für diese Prädikate eine Spezialbehandlung der eben erwähnten Form zur Verfügung.
Im Gegensatz zur Prädikatenlogik zweiter Stufe mit Relationsvariablen bietet die Sortenlogik daher keine Steigerung der Mächtigkeit, etwa in Bezug auf Fragen nach Beweisbarkeit. Da viele Deduktionschritte aber wegen der Sortenunverträglichkeit nicht in Betracht gezogen werden brauchen, verringert sich der Suchaufwand nach einem Beweis in der Praxis beträchtlich.
Mehrsortige Strukturen bilden ein mengentheoretisches Modell für die Datentypen in der Informationstechnologie, insbesondere bei Datenbanken, weshalb ihnen eine erhebliche praktische Bedeutung zukommt. Darüber hinaus ist Mehrsortigkeit eine Möglichkeit, den mit Typentheorien verbundenen Belangen auf mengentheoretischer Basis Rechnung zu tragen.
Vielsortige Logik
In der vielsortigen Logik wird die paarweise Disjunktheit der Wertebereiche (auch Trägermengen genannt) zu den verschiedenen Sorten vorausgesetzt.
Bei vielsortigen Signaturen kommen im Vergleich zu gewöhnlichen einsortigen Signaturen zu den Funktions- und Relations- und ggf. eigens ausgewiesenen Konstantensymbolen noch Bezeichnungen für die Sorten, d. h. die Wertebereiche hinzu. Jedes der Symbole wird jetzt nicht mehr nur durch die Stelligkeit gekennzeichnet, sondern durch die genaue Abfolge der Argumentsorten, und ggf. eine Wert- oder Bildsorte. Eine n-stellige Relation ist eine Teilmenge des n-fachen kartesischen Produktes einer Sequenz der Trägermengen. Der Argumentbereich einer n-stelligen Funktion ist ein ebensolches Produkt, dazu kommt noch eine der Trägermengen für das Bild (Funktionswert).
Beispiele
- Ein Beispiel bieten Taxa (Gruppen) biologischer Organismen, unter anderem
und
. Während eine Funktion
sinnvoll ist, würde das für eine ähnliche Funktion
im Allgemeinen nicht gelten. Sortenlogik erlaubt Terme der Art 

, verwirft aber 

als syntaktische Fehlkonstruktion.
- Vielsortige Strukturen erster Stufe sind beispielsweise folgende heterogene Algebren:
- Vektorräume über einem Körper (Links-, Rechtsvektorräume bei einem Schiefkörper, Bivektorräume) – mit den Sorten Skalar und Vektor
- Moduln über einem kommutativen Ring (Links-, Rechtsmoduln bei beliebigem Ring, Bimoduln) – eine Verallgemeinerung des Begriffs (d. h. der Kategorie) Vektorraum
- Algebren über einem Körper oder kommutativen Ring – als spezielle Vektorräume
- Lie-Algebren und kommutative Algebren über einem Körper – beides spezielle Algebren über diesem Körper
- Affine Räume sind Beispiele für dreisortige Strukturen mit einem Punktraum
und einem Vektorraum mit Trägermenge
über einem Körper
, die Punkte sind mit den Vektoren über eine Parallelverschiebung genannte Operation verknüpft.
Definition
Es seien
und
disjunkte Mengen von nichtlogischen Zeichen.
Sei zudem
eine weitere davon disjunkte endliche und nichtleere Menge nichtlogischer Zeichen.
Man nennt dann
- jedes Zeichen in
ein Symbol und
eine Symbolmenge,
- jedes Zeichen in
eine Sorte,
wenn durch eine Abbildung
jedem Symbol als Typ eine Sequenz (Tupel) von Sorten zugeordnet wird, und zwar:
für alle
mit Stelligkeit
, und
für alle
, mit Stelligkeit
.
heißt dann eine mehr- oder vielsortige Signatur.
Anmerkungen
- Wie im einsortigen Fall wird jedes
als Funktionssymbol, jedes
als Relationssymbol (oder Prädikatsymbol) bezeichnet.
- Durch die vielsortige Signatur
wird zugeordnet
- den Relationssymbolen
der Stelligkeit
ein Typ (Argumenttyp)
bestehend aus den
Argumentsorten
und
- den Funktionssymbolen
der Stelligkeit
ein Typ
bestehend aus dem Argumenttyp
(d. h. den
Argumentsorten wie bei den Relationen) und zusätzlich der Bildsorte
.
- Die Sequenzen (Tupel) der Symboltypen (der Bildwerte von
) lassen sich interpretieren als Wörter (Zeichenketten) über dem Sortenalphabet
. Mengentheoretisch handelt es sich um Elemente der Kleeneschen Hülle
.
- Die nullstelligen Funktionssymbole
werden als Konstantensymbole der Sorte
interpretiert.
- Ggf. vorhandene nullstellige Relationssymbole
werden analog als – aussagenlogische (oder boolesche) Konstantensymbole interpretiert.
- Ähnlich wie im einsortigen Fall mit der Stelligkeit kann man hier statt der Abbildung
, die jedem Symbol seinen Typ aus
zuordnet, deren Urbildfasern betrachten. Konkret sind dies die Familien
und
; in Funktionschreibweise:
ordnet jeder Sequenz von Sorten die Menge der Relationssymbole mit dieser Sequenz als Typ zu (die Länge der Sequenz ist dabei die Stelligkeit); und
weist jeder nichtleeren Sequenz von Sorten die Menge der Funktionssymbole zu, wobei die jeweils letzte Sorte der Sequenz die Bildsorte bezeichnet und die anderen vorher den Argumenttyp.
- Für die Kennzeichnung der Signatur genügt dann die Angabe des Sortenalphabets zusammen mit diesen beiden Familien
.
- Statt
zur Kennzeichnung des Typs der Funktionssymbole wird auch
geschrieben. Bei Verwendung der Schreibweise ist stets zu bedenken, dass hier Bezeichnungen, Symbole, Sorten(bezeichner) gemeint sind, nicht die Objekte, Funktionen, Wertebereiche (Trägermengen) selbst. Die Schreibweise ist insbesondere bei Überladung gültig (die Bildsorte ist durch den Argumenttyp eindeutig bestimmt).
- Das gleiche Relationssymbol kann für Relationen unterschiedlichen Argumenttyps verwendet werden. Das Gleiche gilt für Funktionssymbole. Man spricht dann von einem überladenen Relationssymbol (Prädikat) bzw. Funktionssymbol. Betrachtet man dei Urbildfasern, dann sind die Menge der Relationssymbole und die Menge der Funktionssymbole zu jeder festen Bildsorte
bei Überladung nicht mehr notwendig paarweise disjunkt. Für einen festen Argumenttyp
sind jedoch weiterhin die Mengen der Funktionssymbole zu verschiedenen Bildsorten
disjunkt:
. Folglich bleiben auch in diesem Fall die Menge aller Relationssymbole
und die Gesamtheit aller Funktionssymbole
für jede Bildsorte
paarweise disjunkt.
Die Typzuordnung
ist bei Überladung eine Multifunktion ( :{\mathcal {S}}\multimap T^{*}}
statt :{\mathcal {S}}\to T^{*}}
). Aber auch in diesem Fall hat jedes Symbol bei festgelegtem Argumenttyp höchstens eine Bedeutung: Entweder ist es ein Relationssymbol, oder ein Funktionssymbol zu einer bestimmten Bildsorte
.
Bezeichnet
die Menge aller Funktionssymbole mit einem bestimmten Argumenttyp
(also die Vereinigung über alle Bildsorten
), dann sind die Einschränkungen von
auf einen bestimmten Argumenttyp (
) als Abbildungen immer eindeutig. Auch im Fall von Überladung ist die Abbildung
, die jedem Funktionssymbol die Bildsorte (als letzte Koordinate der Multifunktion
, also
mit Stelligkeit
) zuordnet, eindeutig.
Eine Logik ohne Überladungen heißt strikt.
- Eine Programmiersprache kann beispielsweise Ganzzahlen (int für integer) und Zeichenketten (string, mit lexikographischer Ordnung) zur Verfügung stellen. Das Kleinerzeichen < kann zum Vergleich zweier Ganzzahlen oder zweier Zeichenketten verwendet werden:
. Als Beispiele für mehrsortig überladene Funktionssymbole können wieder max und min dienen, die auf verschiedenen Totalordnungen nebeneinander mit gleicher Bezeichnung vorkommen können. Die Funktionssymbole min und max können entweder auf n Argumente vom Datentyp int oder auf n Argumente vom Typ string angewendet werden. Die Bildsorte ist dann durch den Typ der Argumente festgelegt, nämlich gleich der Sorte eines jeden einzelnen Arguments, int oder string.
- Eine spezielle Bedeutung kommt – wenn vorhanden – der Sorte der logischen Wahrheitswerte
zu; übliche Bezeichnungen für diese sind
(oder
). Relationen können entsprechend ihrer charakteristischen Funktion als Prädikate aufgefasst werden, siehe Relation, § Relationen und Funktionen. Entsprechend können Relationssymbole als boolesche Funktionssymbole mit Bildsorte
gedeutet werden. Dadurch kann eine weitere Vereinfachung erreicht werden. Ein Beispiel ist die Disjunktheitsforderung der Symbolmengen pro Bildsorte bei Überladung (Wegfall der Relationen als Sonderfall). Bei der Definition der Begriffe Term und Ausdruck (auch genannt Formel) und in ihrem Gebrauch kommt der Sorte
eine Sonderrolle zu, siehe unten: § Terme in vielsortiger Logik und § Ausdrücke in vielsortiger Logik.
Terme in vielsortiger Logik
- Definition
Bei gegebener Signatur
und Variablendeklaration
wird die Menge
der Terme der (nichtlogischn) Sorte
dann rekursiv definiert wie folgt:
- Jedes Variablensymbol
einer Sorte
ist per Deklaration ein Term der Sorte 
- Ist
ein (
-stelliges) Funktionssymbol vom Typ
, und ist weiter
ein Term der Sorte
,
ein Term der Sorte
,
ein Term der Sorte
, so ist
ein Term der Sorte
, insbesondere:
- Jede Konstante
der Sorte
ist per Signatur ein Term der Sorte 
Die Menge aller Terme
ist gegeben durch die disjunkte Vereinigung der
über alle nichtlogischen Sorten
. Bei leerer Variablendeklaration kann der Index
entfallen:
.
Durch die Funktionssymbole werden Verknüpfungen verschiedenen Typs zwischen den Elementen der
bzw.
der verschiedenen Sorten
induziert, mit denen diese verschiedensortigen Mengen von Zeichenketten selbst zu einer heterogenen Algebra als Termalgebra bzw. Grundtermalgebra werden.
- Anmerkungen
- Infix-Notation bei zweistelligen Funktionen:
statt
, wie oben. Präfixform: Klammerfreie Polnische Notation, ebenfalls wie oben. Seltener: Postfixnotation.
- Punktnotation
statt
,
statt
(wie in der objektorientierten Programmierung).
- Neuerdings gewinnt die Baumdarstellung von Termen zunehmend an Bedeutung.
Ausdrücke in vielsortiger Logik
- Definition
Sei gegeben eine Signatur
und eine Variablendeklaration
. Eine atomare Formel (auch atomarer Ausdruck) ist
für alle Terme
derselben Sorte
.
- Alle Aussagenvariablen, sofern diese Sorte zugelassen ist.
für alle
-stelligen Relationssymbole vom Typ
, wenn
Term der Sorte
,
Term der Sorte
,
Term der Sorte
ist.
- Nullstellige Relationssymbole (logische Konstanten), sofern zugelassen.
Ausdrücke (bzw. Formeln) allgemein sind in der mehrsortigen Logik wie folgt rekursiv definiert:
- Jeder atomare Ausdruck ist ein Ausdruck.
- Sind
und
Ausdrücke, so sind auch
,
,
,
Ausdrücke.
und
sind Ausdrücke, wenn
eine Sorte,
ein Variablensymbol, und
ein Ausdruck ist, in dem die lokale Variable
der Sorte
vorkommt.
- Anmerkung
Relationen können als Prädikate aufgefasst werden, d. h. als (Boolesche) Funktionen mit gleicher Stelligkeit und Argumenttyp sowie dem Wertebereich
, d. h. der Bildsorte
(siehe Relation, § Relationen und Funktionen). Werden die Junktoren als Symbole für ein- und zweistellige Boolesche Funktionen (in Präfix- bzw. Infix-Notation) aufgefasst, dann sind Ausdrücke – abgesehen von solchen mit Qantoren – quasi ‚Terme der Sorte
’.
Interpretation
- Semantik einer vielsortigen Signatur
sei eine vielsortige Signatur mit der Menge
der Funktionssymbole (Konstanten als nullstellige Funktionen) und der Menge
der Relationssymbole (ggf. auch nullstellige, d. h. logische Konstanten).
Sei
und
eine Abbildung mit folgenden Maßgaben:
sei für jede Sorte
ein Wertebereich (Grundmenge)
eine Relation für jedes
, und
eine Funktion (Verknüpfung) für jedes
.
Dann nennt man
eine Interpretationsfunktion und
eine vielsortige Struktur der Signatur
oder
-Struktur.
- Überladung
Im Fall von Überladung wird Eindeutigkeit hergestellt, indem zum Relations- bzw. Funktionssymbol noch der Argumenttyp angegeben wird:
,
.
Dabei ist die Stelligkeit
hier gegeben ist durch die (Wort-)Länge
des Argumenttyps
, und
ist die durch den Argumenttyp eindeutig bestimmte Bildsorte 
Es handelt sich um partielle Abbildungen, nur für Typen
mit
bzw.
kann es überhaupt Zuweisungen der Symbole zu Relationen bzw. Funktionen gegeben.
- Interpretation
Eine (ggf. nur partielle) Abbildung
auf
, die deklarierte Variablen
aus
auf Elemente der zugehörigen Sorte
(d. h. aus dem Wertebereich
) abbildet, heißt eine Belegung der vielsortigen
-Struktur
.
Für eine Interpretation
der Signatur
werden jetzt die Komponenten
benötigt.
Bei vorhandener Interpretation und Variablenbelgung (was ggf. eine Variablendeklaration voraussetzt) kann dann Sorte und Wert der Terme bestimmt werden (siehe Term, § Termauswertung), sowie die Gültigkeit logischer Ausdrücke beurteilt werden (siehe Term, § Gültigkeit von Ausdrücken).
- Termauswertung und Gültigkeit von Ausdrücken (Formeln)
Ordnungssortierte Logik
In der ordnungssortierten Logik sind die den Sorten
zugeordneten Wertebereiche
im Gegensatz zur vielsortigen Logik nicht notwendig disjunkt. Stattdessen ist die Menge der Sorten
mit einer partiellen Ordnung
versehen, so dass für alle Sorten
gilt: Wenn
, dann
. Dadurch wird die Sorte
zu einer Untersorte der Sorte
(Obersorte) erklärt. Diese Logik ist Grundlage der Vererbung von Klassen (Klassenhierarchie) in der objektorientierten Programmierung.
Ordnungssortierte Logik kann wie vielsortige Logik in gewöhnliche einsortige Logik umgesetzt werden. Die Sortenzugehörigkeit
wird wieder übersetzt in ein einstelliges Prädikat
, zusätzlich kommt für jede Untersortenbeziehung
ein Axiom
hinzu.
Der umgekehrte Ansatz war erfolgreich in einem automatisierten Theorembeweis: 1985 konnte Christoph Walther ein Benchmark-Problem lösen, indem er es in ordnungssortierter Logik formulierte und dadurch den Aufwand um Größenordnungen reduzierte, da viele einstelligen Prädikate zu Sortierungen wurden.
Beispiele
- Im obigen Beispiel wäre etwa
,
,
,
,
,
,
,
- und so weiter.
- Modellierung der Verhältnisse bei den Zahlenbereichen:
(ganze Zahlen)
(rationale Zahlen)
(reelle Zahlen)
(komplexe Zahlen)
(Quaternionen)
(Oktonionen)
(Sedenionen),
(algebraische Zahlen)
.
- In manchen Programmiersprachen (wie Pascal und Modula-2) dienen ganzzahlige Intervalle als Datentypen: Seien
mit
, dann gilt für den Intervall-Datentyp
Die (ungeprüfte) Zuweisung von beliebig ganzzahligen Werten an diesen Datentyp kann als syntaktisch falsch eingestuft werden.
- Eine besondere Situation ergibt sich, wenn die Sorte
Überschneidungen mit anderen Sorten hat. Die Wahrheitswerte
und
können als 0 ins 1 gedeutet werden. Dann stehen diese für Relationen wie
und Funktionen (Verknüpfungen) wie
und
zur Verfügung. Ein Beispiel dafür in der Informationstechnologie ist C-Language. In einer Erweiterung könnten die logischen Werte einer dreiwertigen Logik oder einfachen Fuzzy-Logik mit Zahlen aus dem reellen Intervall
gleichgesetzt werden, so dass in allen Fällen gilt: 
Vorgehensweise
Durch
wird dann eine Sortenstruktur erzeugt mit einer nochmals erweiterten ordnungsorientierten Signatur, etwa
Beispiele für ordnungssortierte Strukturen in der Mathematik sind
,
,
und
als kommutative und assoziative Algebren über dem Ring der ganzen Zahlen
(d. h. als spezielle
-Moduln), da
Teilmenge dieser Zahlenbereiche ist,
als unendlich-dimensionale assoziative und kommutative Algebra über dem Körper der rationalen Zahlen
(d. h. als spezieller
-Vektorraum mit Hamel-Basis), da
,
als zweidimensionale assoziative und kommutative Algebra über dem Körper
(d. h. als spezieller
-Vektorraum), da 
- Ein weiteres Beispiel bilden die verschiedenen Bereiche hyperkomplexer Zahlen, wie die Quaternionen
(respektive Oktonionen
bzw. Sedenionen
), etwa als vierdimensionale assoziative nicht-kommutative Algebra (respektive acht- bzw. 16-dimensionale nicht-assoziative nicht-kommutative Algebra) über dem Körper
, der wie schon bei
eine Teilmenge darstellt.
Die Halbordnung
wird auf kanonische Weise fortgesetzt auf
wie folgt:
genau dann, wenn
und
haben die gleiche Stelligkeit (d. h. Tupel- oder Wortlänge), hier bezeichnet mit 
- für alle
gilt 
Reguläre Signatur
Eine ordnungsorientierte Signatur heißt regulär genau dann, wenn für jedes Funktionssymbol
und jedes
die Menge

leer ist oder ein eindeutig bestimmtes kleinstes Element hat.
Zulässige Signatur
Eine reguläre Signatur heiß zulässig, wenn die folgenden Bedingungen erfüllt sind:
- Wenn für
und
mit
gilt
, dann gilt auch 
- Es kann keine unendliche Ketten
geben. Falls die Sorten- und Symbolmengen endlich sind (endliche Signatur), ist das stets gewährleistet.
- Abwärtsvollständigkeit: Wenn zwei Sorten
gemeinsame Untersorten haben, dann gibt es eine größte gemeinsame Untersorte (ggU, engl.: greatest common subset), in Zeichen
. Notfalls kann aber eine geeignete neue Sorte
zum Sortenalphabet
hinzugenommen werden, damit dann
erfüllt wird. Auf Objetebene besagt die Bedingung nichts anderes, als dass die Schnittmenge zweier Wertebereiche
und
(als größte gemeinsame Teilmenge) entweder leer ist, oder aber Wertebereich zu einer geeigneten Sorte
sein muss.
Um ordnungssortierte Logik in einen satzbasierten automatischen Theorembeweiser zu integrieren, ist ein entsprechender ordnungssortierter Unifikation-Algorithmus notwendig. Dies erfordert, dass für zwei erklärte Sorten
mit Ausnahme der Disjunktheit deren ggU
ebenfalls erklärtes Mitglied der Sortenmenge
ist
- Für alle
mit
ist auch die Menge

- entweder leer oder hat ein größtes Element. Die Kombination dieser Forderung mit der Abwärtsvollständigkeit heißt Abwärtseindeutigkeit.
Aus praktischen Gründen ist Überladung der Normalfall. Alle Funktions- und Relationssymbole
müssten andernfalls für jeden Zahlenbereich
unterschiedlich sein und diesen z. B. als Index mitführen. Die Zahlenbereiche
mit den komplex-algebraischen Zahlen
und den Ketten
und
bilden auch ein Beispiel für (fehlende) Abwärtsvollständigkeit: Als Schnittmenge zweier Sorten-Wertebereiche sind die reell-algrbraischen Zahlen
eine Menge mit fehlenden Sortenzeichen, was der Vollständigkeit halber nachzutragen wäre.
Variablen in ordnungssortierter Logik
Wie bei der vielsortigen Logik gibt es die Möglichkeit, die Variablen in Mengen mit fester Sorte zuzuordnen, oder die Sortenzughöigkeit nachträglich und lokal modifizierbar per Deklaration :{\mathcal {V}}\to T}
festzulegen.
Termauswertung in ordnungssortierter Logik
Die Termauswertung auf Basis der Variablendeklaration und des Typs der Funktionen (einschließlich der Konstanten) ordnet den Termen
abhängig von der Signatur und der Variablendeklaration rekursiv soweit möglich einen Sortemenge
(Überladungen!) und einen Wert
zu.
- für Variablen
:
(Oberhalbmeng von
)
- für Konstanten
: 
- für Funktionen
: 
- Beispiel
Wenn
und
Variablen des Typs
bzw.
sind, dann hat die Gleichung
die Lösung
, wobei
gilt.