In der Prädikatenlogik erster Stufe beziehen sich
Quantoren auf Objekte. Manche Aussagen, zum Beispiel in der Mathematik,
quantifizieren aber nicht nur über Objekte, sondern über
Eigenschaften von Objekten. Ein Beispiel dafür stellt der
Satz 2.1.4
(Prinzip der strukturellen Induktion für aussagenlogische
Formeln) dar:
- Für jede Eigenschaft ε von
-Formeln
gilt: wenn ...
Andere Beispiele dieser Art sind
- Zwei Objekte sind genau dann gleich, wenn sie sich durch keine
Eigenschaft unterscheiden.
- Es gibt keine zweistellige Beziehung, die zwischen a und b
besteht und symmetrisch und antisymmetrisch ist.
Derartige Aussagen lassen sich nicht in der Prädikatenlogik
erster Stufe formulieren. Dort werden Eigenschaften von Objekten
und Beziehungen zwischen Objekten durch Relationssymbole
repräsentiert. Rein syntaktisch kann aber an der Stelle eines
Relationssymbols in einer Formel nie eine Variable stehen, und
Quantoren kommen nur in Verbindung mit Variablen vor.
Die Prädikatenlogik zweiter Stufe (PL2S)
ist eine Erweiterung der PL1S um Relations- und Funktionsvariablen,
mit denen Quantifizierungen der obigen Art möglich sind. Damit
ist die Prädikatenlogik zweiter Stufe ausdrucksstärker
als die Prädikatenlogik erster Stufe.
Gegeben seien Mengen von Funktions- und von Relationsvariablen
wie folgt. Die bisherigen Variablen entsprechen den nullstelligen
Funktionsvariablen. Sprache [PL2S]
Definition 2.10.1 (Sprache [PL2S])
Eine Sprache
der Prädikatenlogik zweiter Stufe ist gegeben durch ihre
Signatur. Zusätzlich gehören zu
die logischen Symbole der Prädikatenlogik zweiter Stufe.
- Die logischen Symbole der Prädikatenlogik
zweiter Stufe sind:
- Die Menge der Hilfszeichen ) und , und (
- Die Menge der nullstelligen Junktoren: {T,
⊥}.
Die Menge der einstelligen Junktoren: {¬}.
Die Menge der zweistelligen Junktoren: {∧, ∨, ⇒, ⇔}.
- Die Menge der Quantoren: {∀, ∃}.
- Für jede natürliche Zahl n ≥ 0 eine abzählbar
unendliche Menge von n-stelligen Relationsvariablen,
notiert X1n,X2n, ... mit oder ohne Indizes.
- Für jede natürliche Zahl n ≥ 0 eine abzählbar
unendliche Menge von n-stelligen Funktionsvariablen,
notiert F1n,F2n, ... (für n = 0 auch
u, v, w, x, y, z...) mit oder ohne Indizes.
- Das Gleichheitsrelationssymbol
falls vorhanden.
- Die Signatur einer Sprache
der Prädikatenlogik zweiter Stufe besteht aus folgenden
Symbolmengen:
- Für jede natürliche Zahl n ≥ 0 eine (eventuell leere)
Menge Reln
von n-stelligen Relationssymbolen.
0-stellige
Relationssymbole heißen auch Aussagenvariablen.
Enthält Rel
2 das besondere
zweistellige Relationssymbol , genannt
Gleichheitsrelationssymbol, so heißt
eine Sprache der Prädikatenlogik zweiter Stufe mit Gleichheit.
- Für jede natürliche Zahl n ≥ 0 eine (eventuell leere)
Menge Funn
von n-stelligen Funktionssymbolen.
0-stellige
Funktionssymbole heißen auch Konstanten.
Alle erwähnten Mengen sind abzählbar (üblicherweise
sogar aufzählbar) und paarweise disjunkt, und kein Symbol
einer dieser Mengen besteht aus einer Sequenz von Symbolen, in der
ein Symbol aus einer der anderen Mengen vorkommt.
Es wird vorausgesetzt, dass
mindestens eine Konstante enthält.
Terme werden ähnlich wie für eine Sprache der
Prädikatenlogik erster Stufe definiert. Der einzige
Unterschied ist, dass auch Funktionsvariablen anstelle von
Funktionssymbolen zum Termaufbau verwendet werden können.
Bei den Formeln ist der Aufbau ebenfalls analog zur PL1S.
Die Unterschiede sind zum einen, dass auch Relationsvariablen anstelle
von Relationssymbolen zum Aufbau von atomaren Formeln verwendet
werden können, zum anderen, dass Quantoren auch mit Relations-
und Funktionsvariablen erlaubt sind.
Die Eindeutigkeitssätze für Terme und Formeln
gelten natürlich ebenfalls für Sprachen der Prädikatenlogik
zweiter Stufe. Teilformeln und die Menge der in einem Term frei
oder nicht frei vorkommenden Relationsvariablen und
Funktionsvariablen werden ähnlich definiert wie für
Sprachen der Aussagenlogik bzw. PL1S.
Das dritte der eingangs genannten Beispiele kann jetzt (mit
vereinfachter Klammerung) folgendermaßen dargestellt
werden.
¬∃
X2(
X2(
a,
b)
∧∀
x∀
y[
X2(
x,
y) ⇒
X2(
y,
x)]
∧∀
x∀
y[
X2(
x,
y) ∧
X2(
y,
x) ⇒
x
y])
Bemerkung: Es erscheint vielleicht naheliegend, anstelle der
ausgeschriebenen Definitionen für symmetrisch und antisymmetrisch
entsprechende Bezeichner einzuführen und etwa so zu definieren:
∀
X2 (
symmetrisch(
X2) ⇔
∀
x∀
y[
X2(
x,
y)
⇒
X2(
y,
x)])
Das wäre aber keine Formel der PL2S, weil X2 kein
Term und folglich symmetrisch(X2) keine Formel ist.
Die Logik ist bezüglich der Syntax erheblich strikter als
zum Beispiel die Programmiersprache Prolog, deren Formalisierung
zwar eigentlich nur auf einem Fragment der Prädikatenlogik
erster Stufe beruht, die aber andererseits ähnliche
Ausdrücke wie den obigen erlaubt, die über die
Prädikatenlogik erster Stufe hinausgehen.
In dem unerlaubten Ausdruck symmetrisch(X2) steht
symmetrisch für eine Relation über Relationen. Das ist erst in
einer Sprache der dritten Stufe zugelassen. Sprachen höherer Stufen
sind Sprachen, in denen Relationen über Relationen über
Relationen usw. ausgedrückt werden können.