You are on page 1of 36

2.

Logikkalküle

Grundthema:
Operationalisierung logischer Sprachen, d.h. automatische Ermittlung von
Wahrheitswerten bzw. Beweis logischer Formeln.

2.1 Aussagenlogik (Grundbegriffe)

Aussagenlogische Formeln - also die Sprache der Aussagenlogik - wurden bereits in


Kapitel 1.3 als "Boolesche Terme" eingeführt.
Es folgen nun Definition:en für einige Grundbegriffe der Aussagenlogik:

Definition: "Modell"

Sei A eine Basis von Elementaraussagen, F eine Formel über A sowie β : A→B eine
Belegung mit der Eigenschaft Iβ (F)=1. Dann heißt β ein Modell für F.

Definition: "erfüllbar"/"unerfüllbar"

Eine Formel, die (wenigstens) ein Modell besitzt heißt erfüllbar - sonst: unerfüllbar.

Definition: "gültig"

Eine Formel über A, für die jede Belegung von A ein Modell ist, heißt "gültig" oder
"eine Tautologie".

Nachfolgend ist für die drei Definition:en jeweils ein Beispiel gezeigt:

Gültige Formeln Erfüllbare aber nicht Unerfüllbare Formeln


(Tautologien) gültige Formeln
Für alle β gilt: β |=F Für einige β gilt: β |=F, für Für alle β gilt: β |≠ F
einige hingegen β |≠ F

Beispiel: A ∨¬ A Beispiel: A Beispiel: ¬ A ∧ A


Hinweis: β |=F bedeutet: β Modell von F

1
2.2 Normalformen (der Aussagenlogik)

Definition: "Literal"

Elementaraussagen A i oder deren direkte Negate ¬ Ai heißen "Literale".

Definition: "Normalformen"

a. Eine Formel heißt "in konjunktiver Normalform (KNF)", wenn sie die Form
n m


L ij hat, also als Konjunktion von Disjunktionen von Literalen


i  1 j  1

repräsentiert ist.

b. Eine Formel heißt "in disjunktiver Normalform (DNF)", wenn sie die Form
n m


L ij hat, also als Disjunktion von Konjunktionen von Literalen


i  1 j  1

repräsentiert ist.

Es gilt: Zu jeder Formel F gibt es (semantisch) äquivalente Formeln in KNF und


DNF. Eine entsprechende Umformung ergibt sich durch Anwendung


Der DeMorgan'schen Regeln ("Hineinpropagieren" der Negationen)




Distributivgesetze / Assoziativgesetz ("Ausmultiplizieren" und Umordnen)

Nachfolgend ist ein Beispiel für die Umformung einer Formel in DNF bzw. in KNF
gezeigt: Umformungsbeispiel

Ablesen einer DNF bzw. einer KNF aus einer Wahrheitswerte-Tabelle:

A B C F
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1

2
DNF:

Betrachte alle Zeilen, für die Iβ(F)=1 ist und bilde eine Disjunktion von
Konjunktionen von Literalen, wobei alle in der Wahrheitswertetabelle mit 0 belegten
Literale negiert werden müssen:

F= (¬ A∧ B∧ ¬ C)∨ (¬ A∧ B∧ C)∨ (A∧¬ B∧ C) ∨ (A∧ B∧ ¬ C)∨ (A∧ B∧ C)

KNF:

Betrachte alle Zeilen, für die Iβ(F)=0 ist und bilde eine Konjunktion von
Disjunktionen von Literalen, wobei alle in der Wahrheitswertetabelle mit 1 belegten
Literale negiert werden müssen:

F=(A∨ B∨ C)∧ (A∨ B∨ ¬ C)∧ (¬ A∨ B∨ C)

Satz: "Deduktionstheorem der Aussagenlogik"

Eine Formel D heißt Folgerung aus den Formeln F1, ... Fn über der Basis A, falls für
jede Belegung β : A→B gilt:
Wenn β |= Fi für alle i=1..n so auch β |= D.
Schreibweise: {F1, ..., Fn} |= D
Mit anderen Worten: Jede Belegung β, die ein Modell für {F1, ..., Fn} ist, ist auch ein
Modell für D.

Dies gilt g.d.w.

Fi D ist gültig


i 1
bzw.

F i andd D ist unerfüllbar.




i 1

2.3 Hornformeln und Markierungsalgorithmus

Unser Ziel ist ein algorithmisches Verfahren zur Bestimmung des Status (gültig /
unerfüllbar / erfüllbar) einer aussagenlogischen Formel.

Im Prinzip kann man die Erfüllbarkeit einer Formel immer mit Hilfe einer

3
Wahrheitswertetabelle nachweisen. Dies ist jedoch nicht immer zweckmäßig. Wollte
man z.B. die Erfüllbarkeit der Formel F1 = ((A∧ B→ O) ∧ (1 → A) ∧ (A∧ C → E) ∧
(A∧ F→ C) ∧ (1→ F)) über eine Wahrheitswertetabelle nachweisen, so müßte man 25
Fälle nachprüfen. Allgemein gilt: Wenn eine Formel F n verschiedene atomare
Formeln enthält, so muß man 2n Belegungen in der Wahrheitswertetabelle testen. Der
Aufwand kann dann schnell gewaltig werden. Für eine Formel mit 100 atomaren
Formeln wäre man selbst mit einem schnellen Rechner Tausende von Jahren
beschäftigt. Wir werden uns daher nachfolgend mit dem sog. Markierungsalgorithmus
beschäftigen, der einen sehr effizienten Erfüllbarkeitstest für Hornformeln darstellt.

Zunächst die Definition: von Hornformeln:

Definition: "Hornformel"

Als Hornformel bezeichnen wir Formeln in KNF mit maximal einem nicht negierten
Literal pro Disjunktionsglied.
Die allgemeine Form der Disjunktionsglieder ergibt sich wie folgt:

D = (¬ A1 ∨... ∨ ¬ An∨ B)
≡ (¬ (A1 ∧ ... ∧ An) ∨ B)
≡ ((A1 ∧... ∧ An ) → B)

Jedes Disjunktionsglied entspricht also einer Implikation bzw. einer Regel.

Der Markierungsalgorithmus arbeitet nun wie folgt:

Input: Eine Hornformel F

Markiere jede atomare Formel A in F, die in einer Teilformel der Art


(1→ A) vorkommt.
while es gibt in F eine Teilformel (Klausel) G der Form (A1∧ ... ∧ An→
B) oder (A1∧ ... ∧ An → 0), n ≥
1, wobei A1,..., An bereits markiert sind (und B noch nicht
markiert ist)
do
if G hat die erste Form then markiere jedes Vorkommen von B
else gib "unerfüllbar" aus und stoppe;
Gib "erfüllbar" aus und stoppe. (Hinweis: Die erfüllende Belegung β
wird hierbei durch die Markierung gegeben: β(Ai)=1 g.d.w. Ai
markiert ist.)

Anmerkungen zum Markierungsalgorithmus:


Der Markierungsalgorithmus stoppt nach maximal n Markierungsschritten, wobei n
die Anzahl der atomaren Formeln in F ist.
Der Markierungsalgorithmus liefert ein minimales Modell β in dem Sinne, daß für
jedes andere Modell β' von F gilt:
Iβ (B) ≤ Iβ '(B) für jede atomare Formel B in F.

4
Falls F keine Klauseln der Form A1 ∧ ... ∧ An → 0 enthält, ist F erfüllbar.

Nun zu einigen Beispielen: Beispiel 1:


F1 = ((A∧ B→ O) ∧ (1 → A) ∧ (A∧ C → E) ∧ (A∧ F→ C) ∧ (1→ F))

Damit F1 erfüllbar ist, muß auf jeden Fall gelten: A=1, F=1. Daraus ergibt sich in der
Folge, daß auch C=1 gilt und daraus wiederum folgt, daß auch E=1 sein muß. Setzt
man zusätzlich B=0, so ist F1 erfüllt.

Beispiel 2:
F2 = ((A∧ E→ O) ∧ (1 → A) ∧ (A∧ C → E) ∧ (A∧ F→ C) ∧ (1→ F))

Damit F2 erfüllbar ist, müßte zunächst gelten: A=F=C=E=1. Daraus ergibt sich aber,
daß A∧ E→ 0 nicht erfüllt ist. Somit ist F2 nicht erfüllbar.

Nun zu einer weiteren grundlegenden Definition: im Zusammenhang mit der


Resolution: der Resolvente.

Definition: "Resolvente"

Satz: "Erhalt von Hornklauseln"

Seien K, K' Klauseln in Hornform und R eine Resolvente aus K, K'. Dann ist R
ebenfalls eine Hornklausel.

Beweis:

Seien
K={¬ A1, ..., ¬ Am, B}
K'={¬ A1', ..., ¬ Am', B'}

5
Damit überhaupt eine Resolvente von K, K' existiert muß gelten
B' = Ai für ein i∈ {1,...,n} oder
B = Ai' für ein i∈ {1,...,n}

Wegen der Symmetrie genügt es einen Fall zu betrachten: B = Ai'


Dann ist R=(K-{B}) ∪ (K' - {Ai'})
={¬ A1, ..., ¬ Am, ¬ A1', ..., ¬ Ai-1', ¬ Ai+1', ..., ¬ An', B'}

Letzteres ist wieder eine Hornklausel

2.4 Aussagenlogische Resolution

Die aussagenlogische Resolution ist eine algorithmische Methode zur Bestimmung


der Erfüllbarkeit bzw. Gültigkeit von Formeln. Es handelt sich um ein rein
syntaktisches Umformungsverfahren. Dabei liegt folgende Idee zugrunde:

6
Hinweis: Das ⊕ steht für die Ableitbarkeit eines Widerspruchs, das "minus"
entsprechend für die "Nicht-Ableitbarkeit" eines Widerspruchs.
Es genügt, sich auf Unerfüllbarkeitstests zu beschränken (zweites Bild), da eine
Formel F gültig ist genau dann, wenn ¬ F unerfüllbar ist. Um also die Gültigkeit einer
Formel F festzustellen, gibt man einfach ¬ F in einen Unerfüllbarkeitstest ein.

Beweis:

Sei F eine Formel über einer Basis Avon Elementaraussagen sowie β : A→B eine
Belegung. Dann ist F gültig g.d.w. für alle β gilt: Iβ (F)=1. Berechne
I   F I  F 0
g.d.w. ¬ F unerfüllbar.

Voraussetzung für die Anwendung der Resolution ist, daß die Formel in KNF
vorliegt, d.h. die Formel muß ggf. erst in KNF umgeformt werden. Für die
Anwendung der Resolution werden die Formeln, die in KNF vorliegen, in einer
anderen Notation geschrieben, der Mengenschreibweise:

Mengenschreibweise:

Sei F eine Formel in KNF aus Literalen Lij.


F=((L1,1 ∨ ... ∨ L1,n1 ) ∧ ... ∧ (Lk,1 ∨ ... ∨ Lk,nk ))
F={{L1,1 , ... , L1,n1 } , ... , {Lk,1 , ... , Lk,nk }}
als Klauselmenge. Hierbei sind {L1,1 , ... , L1,n1 } und {Lk,1 , ... , Lk,nk } Klauseln.
Die Notation ist anordnungsunabhängig und außerdem können keine Doubletten
vorkommen. Ersteres gilt wegen der Kommutativität und der Assoziativität von "∨
"und "∧ ", letzteres wegen des Absorptionsgesetzes A1∨ A1≡A1.

7
Definition: "Komplementäre Literale"

Sei L ein Literal. Wir definieren das komplementäre Literal wie folgt:

Resolvente

Zwei Klauseln können ggf. mehrere Resolventen bilden. Dies ist in nachfolgendem
Beispiel gezeigt.

Die Resolvente zweier Klauseln K1 und K2 stellt man grafisch wie folgt dar:

Resolutions-Lemma:

Es sei F eine Formel in KNF mit Klauseln K1, K2, die eine Resolvente R besitzen.
Dann gilt: F≡ F∪ {R}. Hinweis: Der Ausdruck F∪ {R} entspricht dem Ausdruck F∧
R.

Beweis: "Resolutionslemma"

Sei F eine Formel über A, β :A→B eine beliebige Belegung sowie


R
K1 L

K2
L wobei L, L Literale in K1, K2.
β |= F∪ {R} dann β |= F (wg. Konjunktion)

8
I. Sei β |= F
Dann ist auch β |= K1, β |= K2
Es gilt entweder β |= L oder β |= L

Fall 1: Wenn β |= L dann gilt: K2 bleibt wahr


Fall 2: Wenn β |= L dann gilt: K1 bleibt wahr
Dann gilt: β |= K2- {L} in Fall 1 oder β |= K1-{ L } in Fall 2.
Daher β |= R und somit β |= F∪ {R}

Wir definieren nun das eigentliche Resolutionsverfahren:

Resolutionsverfahren:

Sei F eine Formel in Mengenschreibweise (KNF vorausgesetzt).

Res(F):= F∪ {R / R Resolvente zweier Klauseln in F)


Res0(F):=F
Resk+1(F):=Res(Resk(F)) für k ≥ 0

Da die Menge der über einer gegebenen Basis A bildbaren Klauseln endlich ist, gibt
es ein n, so daß
Resm(F)=Resn(F) falls m ≥ n
=: Res*(F)

Satz: "Resolutionssatz der Aussagenlogik"

F ist unerfüllbar g.d.w. ∈ Res*(F)

Beweis:

a. Korrektheit:

Es sei ∈ Res*(F), d.h. ein Widerspruch ist ableitbar.


Zeige: F unerfüllbar
Zunächst gilt wegen des Resolutionslemmas Res*(F) ≡ Resn(F) ≡ F. Dann
enthält Resn(F) neben auch die Ausgangsklauseln K1 und K2 aus denen
gebildet wurde.

9
Für alle β : A→B gilt β |= K1 g.d.w.β |≠ K2. D.h. es gibt kein Modell für F.

b. Vollständigkeit: Immer wenn F unerfüllbar, ist ableitbar. (s. Schöning: Logik


für Informatiker, S.43)

Am Schluß noch einige Beispiele für die Anwendung der Resolution:

1. Beispiel: Modus ponens

2. Beispiel:

F 2 = ((A∧ E→ 0) ∧ (1 → A) ∧ (A∧ C → E) ∧ (A∧ F→ C) ∧ (1→ F))


Die Umwandlung dieser Formel in Mengenschreibweise ergibt:
{{¬ A,¬ E}, {A}, {F}, {¬ A, ¬ C, E}, {¬ A, ¬ F, C}}
Die Anwendung des Resolutionsverfahrens ergibt:

10
Somit ist die Formel F 2 unerfüllbar.

2.5 Prolog

Variablen, Klauseln und Prädikate

Ein Prolog-Programm besteht aus Fakten und Regeln, die zusammen eine sog.
Daten- oder Wissensbasis bilden. Hinzu kommen noch Anfragen des Benutzers.
Fakten, Regeln und Anfragen sind aus der Prädikatenlogik bekannte Horn-
Klauseln.

In Prolog spricht man in diesem Zusammenhang von Variablen, Klauseln und


Prädikaten:

Definition 13 (Logische Variable)

Eine logische Variable beginnt in Prolog mit Großbuchstaben oder einem


Unterstrich "_". Sie steht als Platzhalter für logische Terme, daß heißt, sie kann
mit logischen Termen belegt (unifiziert) werden. Der Skopus der Variable ist genau
die Klausel, in der sie verwendet wird.

Eine spezielle logische Variable ist die sog. anonyme Variable.

Definition 14 (Klausel)

Klauseln sind Fakten oder Regeln.

11
Definition 15 (Prädikat)

Ein Prädikat umfaßt alle Klauseln mit identischem Funktor und gleicher Stelligkeit
in der Datenbasis.

Weitere Hinweise zur Wissensbasis finden sich in 7. Metaprädikate und die


Wissensbasis.

Fakten

Das Fakt person(karl) bedeutet, daß das Objekt karl die Eigenschaft
person besitzt. person ist der Funktor des Ausdrucks, karl das Argument.
Gemäß der Syntax von Prolog beginnt der Funktor mit einem Kleinbuchstaben,
gefolgt von beliebig vielen Buchstaben, Zahlen oder Unterstrichen. Darauf folgt
eine öffnende Klammer, die Argumente, durch Kommata getrennt, und eine
schließende Klammer. Fakten werden immer mit einem ``.``(Punkt)
abgeschlossen. (Syntax: Fakt)

Betrachten wir folgende Faktenbasis einer Modellfamilie:

% Personen in der Familie Meier:

person(karl). % karl ist eine person


person(lore).
person(gerd).
person(gitte).
person(uli).

% Die Frauen

weiblich(lore). % lore ist weiblich


weiblich(gitte).

% Die Maenner

maennlich(karl). % karl ist maennlich


maennlich(gerd).
maennlich(uli).

% Der Hund heisst Fido

hund(fido).

Hierbei handelt es sich um einstellige Fakten. Eine mehrstellige Relation ist zum
Beispiel die Eltern-Kind-Relation:

kind_von(gerd, karl). % gerd ist kind von karl

12
kind_von(gitte, gerd).
kind_von(gitte, lore).
kind_von(uli, gerd).
kind_von(uli, lore).

Zu beachten:

Die Anzahl der Argumente eines Faktums heißt Stelligkeit.


Fakten unterscheiden sich durch ihre Stelligkeit und ihren Funktor.


Die beiden Fakten

kind_von(gerd, karl). kind_von(karl,gerd).

drücken nicht den gleichen Sachverhalt aus.


Fakten mit gleicher Stelligkeit und Funktor (und auch Regeln) müssen in
compilierenden Prolog-Systemen direkt untereinander stehen.

Anfragen

Eine weitere Form der Aussage ist die Anfrage.

Definition 11 (Anfrage)

Anfragen sind Mittel zur Gewinnung von Informationen aus Logikprogrammen.


Eine Anfrage fragt, ob eine bestimmte Beziehung zwischen Objekten gilt oder ob
gewisse Objekte Eigenschaften besitzen.

Eine Anfrage kann als Hornformel ohne Klauselkörper verstanden werden.

Der Anfrageprompt, den das Prolog-System zur Verfügung stellt, hat die Form
``?-``. Einige Beispiele zu unserer Familienwissensbasis:

?- hund(fido).
yes
?- person(karl).
yes
?- kind_von(uli, karl).
no

Das Prolog-System gibt den Wahrheitswert der Aussage zurück.

Komplexe Anfragen

In Prolog können auch komplexe Anfragen formuliert werden:


In Anfragen können auch Variable verwendet werden.


Man unterscheidet bei Anfragen zwischen Existenzaussagen, wie z. B.


kind( klaus ), in denen keine Variable vorkommen und Anfragen, in

13
denen Variable vorkommen, wie z.B. mutter( X ) .

Um eine weitere Lösung zu erhalten, kann ein `;' eingegeben werden.


Prolog versucht dann, eine weitere Lösung zu finden.

Bei Anfragen mit Variablen versucht der Prologinterpreter, logische


Terme an die Variablen zu binden, um ``Werte`` zu erhalten.

Der Prologinterpreter geht bei der Lösungssuche systematisch vor.


Zunächst versucht er, den ersten Fakt oder die erste zutreffende Regel,
die in der Datenbasis (textuell) steht, zu erfüllen; wenn dies nicht gelingt,
den zweiten Fakt bzw. Regel usw.. Er geht also bei der Auswahl der
Regeln und Fakten von oben nach unten vor! .

Beispiel: Anfrage mit Variable

Für diese Anfrage erweitern wir unsere Wissensbasis um die Klausel

vater(X) :-
kind_von(Y,X),
maennlich(X).
?- vater(X).
karl;
gerd;
no
?-

Das Prolog-System hat durch die Eingabe des ``;`` jeweils versucht, neue
Lösungen zu finden. Eine dritte Alternative konnte nicht gefunden werden.

Konjugierte Anfragen

Anfragen können konjugiert gestellt werden, z.B.:

Ist gitte Kind von lore und gerd Kind von uli?

Diese Anfrage lautet in Prolog:

?- kind_von( gitte, lore ), kind_von( gerd, uli ).

Diese Anfrage besteht aus zwei Zielen, die es zu erfüllen gilt. Um die Anfrage zu
erfüllen, müssen beide Ziele erfüllt werden. Prolog versucht zunächst das erste
Ziel zu erfüllen und dann das zweite. Innerhalb von Anfragen (und auch dem
Regelrumpf) wird versucht, die Ziele von ``links nach rechts`` zu erfüllen.

Disjunktion von Anfragen

Das logische ``Oder`` wird in Prolog durch das Semikolon `;' dargestellt.

Ist gitte Kind von lore oder gerd Kind von uli?

14
Diese Anfrage lautet in Prolog:

?- kind_von( gitte, lore ); kind_von( gerd, uli ).

Der Prologinterpreter versucht nun, zunächst das erste Ziel zu erfüllen und
dann das andere, falls das erste Ziel nicht erfüllt werden kann. Die Anfrage
gelingt, wenn eines der beiden Ziele erfüllt werden kann.

Konjugierte Anfragen mit Variablen

In Anfragen können ebenfalls Variable auftauchen:

Wer ist das Kind von margarete und von hans?

In Prolog:

?- kind_von( gitte, X ), kind_von( gerd, X ).

Rekursive Regeln

Anhand eines weiteren Beispiels soll die Konstruktion von rekursiven


Prädikaten erläutert werden. Zu obigem Familienbeispiel soll eine Regel
``vorfahr/2`` definiert werden, die dann wahr wird, wenn Argument 1 in der
Ahnenreihe von Argument 2 steht:

vorfahr( Vorf, Kind ) :-


kind_von( Vorf, Kind ).

vorfahr( Vorf, Enkel ) :-


kind_von( Vorf, Kind ),
vorfahr( Kind, Enkel ).

Von Interesse ist die Reihenfolge der Klauseln in der Datenbasis. Die Klausel, die
zuvorderst steht, ist die Abbruchbedingung der Rekursion: Kinder sind
Nachfahren der Eltern. In der zweiten Klausel ist die
``Komplexitätsveringerung`` (Die ``Beziehungslücke`` wird eine Generation
geringer) und die rekursive Beschreibung der Restbeziehung formuliert. Dies
kann prozedural als Rekursionsaufruf interpretiert werden. Würde man die
Reihenfolge der Regeln vertauschen, so würde der Prolog-Interpreter in eine
unendliche Rekursio 'abtauchen' (obwohl das Programm aus logischer Sicht
immer noch korrekt wäre).

Das nachfolgende rekursive Programm berechnet zu einer Person alle Personen,


die sich in der gleichen Generation befinden, also gemeinsame
Eltern/Großeltern/... bzw. Kinder/Enkel/... haben.

gleichgen(Name, Name) :-
kind_von( Eltern, Name )
gleichgen(Eltern, Eltern) :-

15
kind_von( Eltern, Name).
gleichgen(Name1, Name2) :-
kind_von( Eltern1, Name1 ),
kind_von( Eltern2, Name2 ),
gleichgen( Eltern1, Eltern2 ).

Negation

Negierte Literale im Regelrumpf verstoßen eigentlich gegen die Definition von


Horn-Klauseln. In Prolog sind sie dennoch erlaubt, und zwar werden sie unter
dem Konzept „Negation as failure“ interpretiert.
p:- a, not b, c. a. c.
b nicht beweisbar heißt in diesem Falle not b=true, so dass hier p true wäre.

In unserem Familien-Beispiel können wir die Menge aller kinderlosen Personen


definieren:

kinderlos(Name) :-
kind_von( Eltern, Name ),
not kind_von( Name, Name_1 ).

Hierbei ist zu beachten, dass alle Variablen des Regelkopfes in einem positives
Literal im Rumpf auftauchen müssen, um Werte an sie zu binden.

Generell sollte man Negation nur mit großer Vorsicht verwenden, um


unerwünschte Effekte zu vermeiden.

2.6 Resolution für Hornformeln und Prolog

Bei einem Prolog-Programm stellt sich das folgende Problem:


Man hat eine Menge P von Programmklauseln gegeben und stellt eine Frage an
das Prolog-System. Diese Frage ist (sind) nun unsere Zielklausel(n) G.
Programmklauseln werden auch als "definite" Klauseln bezeichnet und sie
umfassen jeweils genau ein positives Literal. Zielklauseln weisen dagegen kein
positives Literal auf, z.B.: { ¬ G 1, ... , ¬ G n }.
Man will nun wissen, ob G aus der Menge von Programmklauseln, der sog.
Wissensbasis eines Prolog-Programms, folgt (mit anderen Worten P|=G gilt).
Das Deduktionstheorem besagt, daß diese Frage gleichbedeutend ist mit der
Frage, ob P ∧ ¬ G unerfüllbar ist. Wir müssen also mittels Resolution testen, ob
P ∧ ¬ G unerfüllbar ist. Ist das der Fall, wissen wir, daß G aus der Wissensbasis
folgt.
Aussagenlogische Konstrukte werden in Prolog anders dargestellt. Die
nachfolgende Tabelle gibt einen Überblick über aussagenlogische Konstrukte
und ihre Entsprechungen in Prolog.

Aussagenlogischer Prolog-Schreibweise Beispiel


Ausdruck

16
(A1 ∧... ∧ An →B) "Regeln": glücklich(peter):- sonne, freizeit.

B:- A 1, ..., An . glücklich(lisa):- glücklich(peter),


i-d-nähe(liusa,peter)
(1→ A) "Fakten": sonne:-true.

A:- true.
oder einfach
A. freizeit.
(G 1 ∧ ... ∧ G n →0) "Ziele": :-glücklich(lisa)

:-G 1, ..., G n .

Nun zu einem Beispiel für einen Resolutionsbeweis in Prolog, der sich an obigem
Beispiel orientiert:

Durch das obige Resolutionsschema wird das Vorgehensweise von Prolog beim
Ableiten der leeren Klausel beschrieben:

17
a. Der Beweisgraph ist eine Kette, d.h. linear.
b. In jedem Resolutionsschritt wird die Zielklausel mit einer Programmklausel
resolviert. Das Ergebnis ist eine neue Zielklausel.
c. Es bestehen folgende Freiheitsgrade:

Auswahl des Literals aus der Zielklausel und


Auswahl der Programmklausel.

Die oben beschriebene Form der Resolution nennt man SLD-Resolution (Selection,
Linear, Definite Klausel).

Resolution mit Variablensubstitution

In Prologprogrammen kommen meist auch Variablen vor (Beispiel). Daher müssen


wir unser Resolutionsschema erweitern und führen an dieser Stelle die Resolution mit
Variablensubstitution ein.

Nun zu einem komplexeren Beispiel. Das hier dargestellte Prolog-Programm definiert

18
die Peano-Zahlen und beschreibt, wie man sie addiert.
An diesem Beispiel kann man die Antworterzeugung durch Prolog veranschaulichen.
Zunächst sind nur die Substitutionen dargestellt:

Nun zur Antworterzeugung:

Hinweise:

Substitutionen sind mit rot gekennzeichnet


Die Antworterzeugung ist blau dargestellt.

19
Erweiterungen:

Variablenumbenennung ("standardising apart")


Term-Vergleich ("Unifikation") statt einfacher Substitution

2.7 Syntax und Semantik der Prädikatenlogik (1.Stufe)

Man kann die Prädikatenlogik unter einem syntaktischen und einem


semantischen Gesichtspunkt sehen. Bei der Behandlung syntaktischer Aspekte
macht man sich Gedanken darüber, welche prädikatenlogischen Formeln
zulässig sind und welche formalen Schlüsse mit diesen Formeln zulässig sind.
Beschäftigt man sich hingegen mit semantischen Fragen, so untersucht man die
Bedeutungen, die den Symbolen in einer prädikatenlogischen Formel
zuordenbar sind. Nachfolgend wird auf die Unterscheidung zwischen Syntax und
Semantik Wert gelegt. Zunächst jedoch zu einigen grundlegenden Begriffen aus
der Prädikatenlogik:

Definition: "Syntax"

a. Die "Sprache" der Prädikatenlogik (1.Stufe) besteht aus den folgenden


Elementen (Alphabet):
(i) Variablen: x, y, z, ... (aufzählbare Menge)
(ii) Funktionssymbole: f, g, h, ...
Hinweis: Es handelt sich um eine aufzählbare Menge. Jedes Symbol hat
eine bestimmte "Stelligkeit", wobei 0-stellige Symbole Konstanten sind: a,
b, c, ...
(iii) Relationssymbole oder Prädikate: P, Q, R ...
Hinweis: Es handelt sich um eine aufzählbare Menge. Relationssymbole
drücken Relationen zwischen den ihnen übergebenen Argumenten aus.
Wiederum hat jedes Symbol hat eine bestimmte Stelligkeit.
(iv) Logische Konnektoren wie ¬ ∧ ∨ → und ≡
(v) Quantoren: ∃ (Existenzquantor) und ∀ (Allquantor)
Auf der Grundlage dieses "Symbolvorrates" soll nun die Definition: der
prädikatenlogischen Sprache durchgeführt werden:
b. Ein (funktionaler) Term ist induktiv definiert durch
(i) Jede Variable ist ein Term
(ii) Jede Konstante ist ein Term
(iii) Sei f ein n-stelliges Funktionssymbol und seien t 1, ..., t n Terme. Dann
ist auch f(t 1, ..., t n ) ein Term.
c. Induktiver Aufbau prädikatenlogischer Formeln:
(i) Sei P ein n-stelliges Relationssymbol und seien t 1, ..., t n Terme. Dann ist
P(t1, ..., tn) eine atomare Formel.

20
(ii) Sind F, G Formeln, so auch ¬ F, (F ∧ G), (F ∨ G) sowie abgeleitete
Verknüpfungen (z.B. (F → G)).
(iii) Ist F eine Formel und x eine Variable, so sind auch ∃x F und ∀x F
Formeln.

Die prädikatenlogische Sprache ist die Menge aller Formeln, die sich in der oben
beschriebenen Weise aus dem Alphabet konstruieren lassen.

Um beim Aufschreiben von prädikatenlogischen Formeln die exzessive


Verwendung von Klammern zu vermeiden, wird folgende Vorrangregelung
vereinbart:


, , 

, 

Die Priorität nimmt von oben nach unten ab.

Beispiele:

a. Terme: f(g(x), y) oder auch g(a, f(x,b))


b. Formeln:
Man unterscheidet geschlossene und offene Formeln. In geschlossenen
Formeln kommen keine freien Variablen vor, in offenen Formeln
hingegen schon.
Beispiel geschlossene Formel: ∀x ∀y (P(f(x), y) ∨ Q(x, g(y)))
Beispiel offene Formel: ∀y ∃z (Q(x, g(x, y) ∧ ¬ P(x, y))
x kommt hier als freie Variable, d.h. nicht an einen Quantor gebunden
vor.

Hinweis :


Eine gebundene Variable in einer Formel ist eine Variable, die an einen
Quantor der Formel gebunden ist und damit innerhalb des
Gültigkeitsbereichs dieses Quantors liegt.


Eine freie Variable in einer Formel ist eine Variable, die nicht an einen
Quantor der Formel gebunden ist und mithin nicht innerhalb des
Gültigkeitsbereichs eines Quantors liegt.

Interpretation bzw. Semantik der Prädikatenlogik

Nachfolgend soll nun beschrieben werden, wie einer prädikatenlogischen


Sprache eine Semantik zugeordnet werden kann. Die Semantik der
Prädikatenlogik beruht wiederum auf der Angabe einer Interpretation, die allerdings

21
wesentlich komplexer ist als in der Aussagenlogik. Zunächst benötigen wir eine
Interpretationsstruktur, auch α -Struktur genannt:
Sα = (Uα , Iα )

Die Interpretationsstruktur ist ein Paar, wobei Uα eine beliebige nicht leere Menge
darstellt, die "Universum", "Interpretationsbereich" oder "Individuenbereich" genannt
wird. Diese Menge ist die Grundmenge von Sα.
Die Interpretation Iαist eine Abbildung mit heterogener Grundmenge. Sie ist definiert
für n-stellige Relationssymbole P, n-stellige Funktionssymbole f sowie für Variablen
x, wobei folgendes gilt:

i. Iα : P→ Pα wobei Pα ∈ Uαn
Es wird jedem n-stelligen Relationssymbol P eine Relation über Uα mit
derselben Stelligkeit zugeordnet.
ii. Iα : f→ fα wobei fα ∈ Uα n→ Uα Es wird jedem n-stelligen Funktionssymbol f
eine Funktion über Uα mit derselben Stelligkeit zugeordnet.
iii.Iα : x→ xα wobei xα ∈ Uα
Jeder Variablen x wird ein Wert aus Uα zugeordnet.

Für eine gegebene Formel F "passt" eine α-Struktur, wenn Iα für alle in F
vorkommenden Relationssymbole, Funktionssymbole und Variablen definiert ist.
Die Interpretation von Termen wird folgendermaßen definiert:

i. I α (t) = x α falls t=x. Hierbei ist x eine Variable.


ii. I α(t) = f α (Iα (t1), ..., Iα (tn)) falls t=f(t1, ..., tn)

Bemerkung: Für Konstanten c ergibt sich aus (ii) der folgende Spezialfall: Iα (c) = cα

Für atomare Formeln gilt folgende Wahrheitswert-Interpretation:

1 falls Iα (t1), ..., Iα (tn)∈ Pα


Iα (P(t1, ..., tn): = 
0 sonst

22
t 1,


1 falls I t 1 ,


I tn P


Die Verrechnung der Wahrheitswerte für Formeln vom Typ ¬ F, (F∧ G), (F∨ G)
I P ,t : 0 sonst
entspricht dern Aussagenlogik.

Definition: "Variablenbelegung"

Zur Behandlung der Quantoren wird der Begriff "Belegung von Variablen mit
Werten" (kurz: Variablenbelegung) eingeführt. Die Belegung einer in einer Formel
freien Variablen x mit einem Wert v∈ Uα entsteht dadurch, dass jedes Vorkommen
von x durch v ersetzt wird.

Hiermit definieren wir:

(i) Sei F=∀x G

1 falls Iα (G')=1 für alle Varianten von G' die durch Belegungen von x
 entstehen.

(F):=
0 sonst
(ii) Sei F=∃x G

 1entstehende
falls ein v ∈ U existiert so dass für die durch Belegung von x mit v
α

Variante G' von G gilt I (G')=1 α
(F):=
0 sonst

Definition: "Modell":

Eine zu einer Formel F passende Interpretationsstruktur S α


=(Uα , I α ) heißt ein
Modell für F (geschrieben S α
|= F) falls I α (F)=1.

23
Definition: "Erfüllbarkeit" und "Gültigkeit"

Falls F mindestens ein Modell besitzt, heißt F erfüllbar, sonst unerfüllbar.




F heißt gültig, wenn jede zu F passende Interpretationsstruktur ein Modell von


F ist. Dafür schreiben wir |=F.

Beispiel:

F=(P(0) ∧ ∀z (P(n(z)) ∨ ¬ P(z)) ∧ ∀x∀y∀s ((S(x, 0, x) ∨ ¬ P(x)) ∧ (S(x, n(y), n(s)) ∨


¬ S(x, y, s))))

Modell 1:
Uα = IΝ0 = {0, 1, 2, ...}
Iα (P) = Pα = IN0 (=Uα )
Iα (S) = Sα = {(x ,y, z) ∈ IN03 / x + y = z}
Iα (n) = nα = Nachfolgerfunktion (v∈ Uα → v+1)
Iα (0) = 0α = 0∈ IN0

Damit folgt für die Interpretation Iα der Formel F also für Iα (F):
Iα (P(0))=1 da 0α ∈ Pα
Iα (∀z (P(n(z)) ∨ ¬ P(z)))=1 da für alle v∈ IN0 (v+1)∈ Pα falls v∈ Pα
Iα (∀x∀y∀s ((S(x, 0, x) ∨ ¬ P(x)) ∧ (S(x, n(y), n(s)) ∨ ¬ S(x, y, s))))=1 da für alle u,
v, w ∈ IN0 gilt: u+0=u falls u∈ Pα sowie u+(v+1)=s+1 falls u+v=s.

Das obige Modell ist aber nicht das einzige Modell für F. Nachfolgend werden
weitere Modell vorgestellt:

Modell 2:
Uα = {a, b}
Iα (P) = Pα = {a, b}
Iα (S) = Sα = {x, y, z}∈ {a, b}3 / z = a falls x = y, z = b sonst
Iα (n) = nα = "Alternierungsfunktion", d.h. n(v) = a falls v = b, n(v) = b falls v=a.
Iα (0) = 0α =a

Modell 3:
Uα = {0, n(0), n(n(0)), ...}

24
Iα (P) = Pα = Uα
Iα (S) = Sα = {(x ,y, z) ∈ Uα3 / wobei x=z und y=0 oder y=n(y'), z=n(z') und (x, y',
z')∈ Sα }
Iα (n) = nα : v∈ Uα → n(v)
Iα (0) = 0

Ein Modell ist dadurch gekennzeichnet, dass die (semantische) Interpretation


sozusagen als konstruktive Deutung der syntaktischen Struktur entsteht. Man
bezeichnet solche Modelle als Herbrand-Modelle.

Eine wichtige Eigenschaft der Prädikatenlogik 1.Stufe ist, dass wenn eine Formel
überhaupt erfüllbar ist, sie auch ein Herbrand-Modell besitzt.

2.8. Normalformdarstellung

Zunächst benötigen wir zusätzliche Äquivalenzumformungen für Formeln mit


Quantoren:

i. ¬ ∀x F ≡ ∃x ¬ F
¬ ∃x ¬ F ≡ ∀x ¬ F
ii. (∀x F ∧ ∀x G) ≡ ∀x (F ∧ G)
(∃x F∨ ∃x G) ≡ ∃x (F ∨ G)
iii.∀x ∀y F ≡ ∀y ∀x F
∃x ∃y F ≡ ∃y ∃x F

Falls in einer Formel der Form F ∧ Qx G (Q steht für Quantor) bzw. F ∨ Qx G die
Variable x in F nicht frei vorkommt, kann F mit in den Geltungsbereich des Quantors
hineingezogen werden: Qx (F∧ G) bzw. Qx (F∨ G).

Substitution:

F[x/t] bezeichne die Formel, die aus F entsteht, wenn man jedes freie Vorkommen der
Variablen x durch den Term t ersetzt. Substitutionen können durch
Hintereinanderausführung kombiniert werden.

Beispiel:

Sei s1=[x / (g(y)] und s2=[y / a]


Dann ist für F = P(x, f(y)) ∧ ∀y Q(y, x)
Fs1 = P(g(y), f(y)) ∧ ∀y Q(y, g(y))
Fs1s2 = P(g(a), f(a)) ∧ ∀y Q(y, g(y))

25
Hierbei muß beachtet werden, daß s1s2 ≠ [x / g(a)] ist.

Hiermit kann nun das "gebundene Umbenennen" definiert werden:

Definition: "gebundenes Umbenennen"

Sei F = Qx G (Q: Quantor) und sei y eine Variable, die in G nicht vorkommt. Dann
gilt: F ≡ Qy G[x/y]

Normalformen

Unser Ziel ist, eine prädikatenlogische Formel F, in der evtl. freie Variablen
vorkommen, in Klauselform umzuwandeln. Die Klauseldarstellung wird u.a. für die
prädikatenlogische Resolution benötigt, auf die wir später noch eingehen werden. Die
Umwandlung einer prädikatenlogischen Formel in die Klauselform durchläuft
mehrere Zwischenstufen: zunächst wird eine bereinigte Pränexform gebildet, die dann
in eine Skolemform umgewandelt wird. Letztere dient dann als Ausgangsbasis für die
Umformung in KNF, die man dann nur noch in Klauselform umschreiben muß.

Definition: "Pränexform"

Eine Formel heißt in Pränexform, wenn sie den folgenden Aufbau besitzt
Q1y1Q2y2...Qnyn F,
wobei Qi Quantoren und yi Variablen sind. Es kommt außerdem kein Quantor in F
vor. Man nennt in diesem Zusammenhang Q1y1Q2y2...Qnyn auch Präfix und F Matrix.

Mit anderen Worten: Eine Pränex-Normalform ist eine Normalform, bei der alle
Quantoren links von einem quantorenfreien Ausdruck erscheinen, der Matrix genannt
wird.

Definition: "Matrix"

Streicht man aus einer prädikatenlogischen Formel F alle Vorkommen der Quantoren
∃ bzw. ∀ inklusive der dahinterstehenden Variablen, so erhält man die Matrix zu
dieser Formel. Man bezeichnet die Matrix einer Formel F meist symbolisch mit F*.
Gegeben sei nun eine prädikatenlogische Formel F mit eventuellem Vorkommen von
freien Variablen. Um diese Formel in Pränexform zu überführen, sind folgende
Schritte zu durchlaufen:

1. Reduktion der logischen Operatoren auf ∧ , ∨ und ¬ , d.h. Eliminierung aller


Vorkommen von → und ↔ durch Reduktion auf ∧ , ∨ , ¬ in der neu
entstehenden Formel G. Dabei können die folgenden Äquivalenzen verwendet
werden:

26
A ↔ B ≡ (¬ A ∨ B) ∧ (¬ B ∨ A) sowie A → B ≡ ¬ A ∨ B. Außerdem müssen
die Negationen nach innen gezogen werden.
Ergebnis: Es entsteht eine Formel G, die "erfüllbarkeitsäquivalent" ist zu F
2. Umbenennen der gebundenen Variablen, so dass verschiedene Vorkommen
von Quantoren verschiedene Variablen binden und keine freie Variable den
gleichen Namen wie eine gebundene Variable trägt ("Bereinigung").
Hinweis: Es gibt zu jeder Formel F eine äquivalente Formel G in bereinigter
Form. Man nennt eine Formel "bereinigt", wenn es keine Variable gibt, die in
der Formel sowohl gebunden als auch frei vorkommt, und wenn hinter allen in
der Formel befindlichen Quantoren verschiedene Variablen stehen.
Ergebnis: Es entsteht eine zu F und G äquivalente Formel H.
3. "Nach-vorne-Ziehen" der Quantoren durch wiederholte Anwendung von
Äquivalenzumformungen (s. Anfang Kap. 2.6) und Existenz-Abschluss der
freien Variablen.
Ergebnis: Eine Formel I, die erfüllbarkeitsäquivalent zu F, G und H ist.

Nach Durchführung der Schritte (1) bis (3) erhält man die sog. bereinigte
Pränexform.

Definition: "Skolemisierung" und "Skolemform"

Unter Skolemisierung versteht man das Ersetzen von an Existenzquantoren


gebundenen Variablen in einer bereinigten Pränexform durch Konstanten
(Skolem-Konstanten) oder geeignete Funktionen (Skolem-Funktionen), sowie
die Eliminierung der Existenzquantoren. Die aus diesem Prozeß resultierende
Normalform wird Skolemform genannt.
Wir betrachten eine Formel in bereinigter Pränexform F = ∀x1 ... ∀xn ∃y Q1z1
... Qmzm G wobei Qi Quantoren sind. Die Skolemisierung der Variablen y
führt dann zu der Formel
F' = ∀x1 ... ∀xn Q1z1 ... Qmzm G[y / f(x1, ..., xn)] wobei f ein beliebiges n-
stelliges "neues" (d.h. nicht in G vorkommendes) Funktionssymbol ist. Auf
diese Weise können sukzessive alle ∃ eliminiert werden.
Es gilt: F und F' sind "erfüllbarkeitsäquivalent", d.h. F ist erfüllbar g.d.w. F'
unerfüllbar ist.

Beispiel:

Die bereinigte Pränexform (∀x) (∀y)(∃z)(∀u)((¬ A(x, y, z) ∨ C(u, z)) ∧ (¬


B(y) ∨ C(u, z))) kann in die folgende Skolemform umgewandelt werden:
(∀x)(∀y)(∀u)((¬ A(x, y, f(x, y)) ∨ C(u, f(x, y))) ∧ (¬ B(y) ∨ C(u, f(x, y)))

4. Wir gehen von der obigen Pränexform I aus und bilden eine zu I
erfüllbarkeitsäquivalente Skolemform J.
5. Umformung der Matrix von J in KNF und Aufschreiben dieser Formel als
Klauselmenge.

27
Das beschriebene Vorgehen (1) - (5) soll nun nachfolgend noch einmal an einem
Beispiel verdeutlicht werden:

F = ∀y (∀x (P(z, x) ∨ Q(x, y)) → (∃ x P(z, x) ∨ ∀ x Q(x, y)))

1. Reduktion der logischen Operatoren auf ∧ , ∨ und ¬ :


F ≡ ∀y (∃x (¬ P(z, x) ∧ ¬ Q(x, y)) ∨ (∃x P(z, x) ∨ ∀x Q(x, y)))
2. Bereinigung:
F ≡ ∀y (∃x (¬ P(z, x) ∧ ¬ Q(x, y)) ∨ (∃ x P(z, x) ∨ ∀x' Q(x', y)))
3. "Nach-vorne-Ziehen" der Quantoren:
F ≡ ∃z ∀y ∃x ∀x' ((¬ P(z, x) ∧ ¬Q(x, y)) ∨ P(z, x) ∨ Q(x', y))
4. Skolemisierung:
Zu diesem Zweck wird z durch die Konstante a und x durch f(y) ersetzt. Damit
folgt:
F ≡ ∀y ∀x' ((¬ P(a, f(y)) ∧ ¬Q(f(y), y)) ∨ P(a, f(y)) ∨ Q(x', y))
5. Umformen der Matrix von F in KNF und Aufschreiben in Klauselform:
(¬ P(a, f(y)) ∨ P(a, f(y)) ∨ Q(x', y)) ∧ (¬ Q(f(y), y) ∨ P(a, f(y)) ∨ Q(x', y))
Damit folgt für F in KNF:
F ≡ ∀y ∀x' 1 ∧ (¬Q(f(y), y) ∨ P(a, f(y)) ∨ Q(x', y))
F ≡ {{¬Q(f(y), y), P(a, f(y)), Q(x', y)}}

Allgemein gilt:

Jede prädikatenlogische Formel F lässt sich in eine Skolem-Normalform F'


überführen, wobei F' von der Form F' = ∀x ... ∀xn G (G quantorenfrei und in KNF)
und F und F' erfüllbarkeitsäquivalent.

2.9 Grundresolution

Das Verfahren der Grundresolution führt die Resolution prädikatenlogischer Formeln


auf den aussagenlogischen Fall zurück. Es beruht auf der Theorie von Jacques
Herbrand (französischer Mathematiker, 1908 - 1931).
Wir führen zunächst den Begriff des Herbrand-Universums ein:

Definition: "Herbrand-Universum"

Sei F eine prädikatenlogische Formel in Skolem-Normalform. Das "Herbrand-


Universum" (Hα) zu F ist die Menge aller variablenfreien Terme, die aus den in F
vorkommenden Konstanten und Funktionssymbolen durch Einsetzen gebildet werden
können. Im speziellen Fall, daß in F keine Konstante vorkommt, wählt man ein
beliebiges nullstelliges Funktionssymbol c und bildet dann mit diesem
Funktionssymbol die variablenfreien Terme. Formaler ausgedrückt wird Hα wie folgt
induktiv definiert:

28
1. Alle in F vorkommenden Konstanten sind in Hα . Falls F keine Konstante
enthält, so ist das nullstellige Funktionssymbol c in Hα .
2. Für jedes in F vorkommende n-stellige Funktionssymbol f und Terme t1, t2, ...,
tn in Hα ist der Term f(t1, t2, ..., tn) ebenso in Hα .

Beispiel: Gegeben seien die Formeln F und G:


F = ∀u ∀v ∀w P(u, f(v), g(w, u))
Für die Formel F liegt der Spezialfall vor, da keine Konstanten vorkommen. Daher
ergibt sich mit der Konstante c das Herbrand-Universum wie folgt:
Hα = {c, f(c), g(c, c), f(g(c, c)), f(f(c), g(c, f(c)), g(f(c), c), ...}

Definition: "Herbrand-Interpretation"

Die zu einem Herbrand-Universum Hα zugehörige Interpretation Iαidentifiziert alle


Funktionssymbole (und Konstanten) mit sich selbst. Da keine freien Variablen
vorkommen, bleibt als Freiheitsgrad die Interpretation der Relationssymbole

Iα: P→ Pα ⊂ Hαn für n-stelliges P

d.h. die Entscheidung, welcher Wahrheitswert jeder "grund-instanziierten" atomaren


Formel P(t1, ..., tn) mit ti∈ C zugeordnet wird. (Eine atomare Formel oder eine
Klausel heißt grund-instanziiert, wenn alle Variablen durch Terme aus Hα ersetzt
wurden.

Hiermit gilt nun der folgende "Satz von Herbrand":

Eine als Klauselmenge dargestellte Formel F ist unerfüllbar g.d.w. es eine endliche
Menge von Grundinstanzen von Klauseln aus F gibt, die unerfüllbar ist.

Bemerkungen:

1. Hier ist wesentlich, dass die Grundsubstitution auf Klauselebene stattfindet.


Eine Klausel kann auf verschiedene Arten substituiert werden.
2. Der Satz von Herbrand begründet ein algorithmisches Verfahren zum
Nachweis der Unerfüllbarkeit einer prädikatenlogischen Formel (Gilmore
1960): Da das Herbrand-Universum aufzählbar ist, die Menge der Klauseln
endlich, und jede Klausel nur endlich viele "Einsetzungsstellen" hat, lässt sich
auch die Menge der Grundinstanzen von Klauseln aufzählen. Das Aufzählen
erfolgt in der Weise, dass zunächst jeweils alle Grundklauseln bis zu einer
gewissen Komplexität von Termen aus Hα gebildet werden: G = {G1, G2, ...}
Betrachte nun die Formelsequenz : F1=G1 bzw. Fi+1 = Fi ∧ Gi+1 und wende

29
darauf sukzessive die aussagenlogische Resolution an. Dies ist möglich, da die
Formelsequenz variablenfrei ist. Sobald für ein i gilt:

wird mit dem Resultat "unerfüllbar" abgebrochen. Der Satz von Herbrand
garantiert die Korrektheit des Verfahrens sowie seine Terminierung, falls F
unerfüllbar ist. Falls F erfüllbar und Hα unendlich, terminiert das Verfahren
nicht. Eine solche Situation bezeichnet man auch als semi-entscheidbar: Das
Verfahren terminiert falls F unerfüllbar ist, es terminiert nicht, falls F erfüllbar
ist. In der Praxis genügt es, eine Menge von Grundinstanzen zu "raten", die die
Ableitung der leeren Klauseln erlaubt ("Orakel").

Beispiel:

Sei F = ∀x ∀y ((P(x) ∨ ¬ Q(x)) ∧ Q(y) ∧ (¬ P(f(x)) ∨ ¬ Q(c)))

Die Klauseldarstellung dieser Formel lautet:


{{P(x) , ¬ Q(x)}, {Q(y)}, {¬ P(f(x)), ¬ Q(c)}}

Die Formel F ist unerfüllbar. Dies kann man wie folgt zeigen:

Die Pfeile stehen für Grundsubstitutionen. Auf die sich aus den Grundsubstitutionen
ergebenden Grundinstanzen kann sukzessive die aussagenlogische Resolution
angewendet werden.
Man erkennt an diesem Beispiel, daß es für die Resolutionsherleitung der leeren
Klausel erforderlich sein kann, aus einer prädikatenlogischen Klausel mehrere
verschiedene Grundinstanzen zu generieren.

30
Mit dem Verfahren von Gilmore können nur sehr einfache Formeln (Klauselmengen)
bewiesen werden. Das liegt vor allem daran, daß die Grundinstanzen der Klauseln
völlig ziellos gefunden werden (sie werden geraten). Der ganze Prozeß ist damit nicht
auf das Ziel der Widerlegung der Klauselmenge ausgerichtet und es werden unnötig
viele Zwischenklauseln generiert. Das Verfahren wurde daher von Robinson 1965
noch zur sog. prädikatenlogischen Resolution verfeinert. Dieses Verfahren ist im
nächsten Kapitel beschrieben.

2.10 Prädikatenlogische Resolution

Ein Nachteil der Grundresolution besteht darin, daß man beim ersten Resolvieren
schon alle Variablen der Elternklauseln durch passende Grundterme in
vorausschauender Art und Weise ersetzen muß. D.h. man generiert durch passende
Grundsubstitutionen Grundinstanzen der Elternklauseln und prüft, ob diese zu einer
Resolutionsherleitung der leeren Klausel führen. Das systematische Durchprobieren
(generate and test) aller Grundsubstitutionen ist vor allem bei größeren Klauseln sehr
ineffizient.
Dieser Nachteil wird durch die prädikatenlogische Resolution nach Robinson
beseitigt: Der Zeitpunkt der Substitution einer Variablen durch variablenfreie
Grundterme wird erst ausgeführt, wenn klar ist, welche Ersetzung der Variablen zum
Ziel, d.h. Ableitung von der leeren Klausel, führt. Zunächst werden in
zurückhaltender Art und Weise "variablenbehaftete" Grundterme substituiert, wobei
prädikatenlogische Resolventen erzeugt werden können. Diese "variablenbehafteten"
Grundterme kann man später - wenn nötig - durch einen spezielleren Term ersetzen,
in dem die Variable durch eine Konstante ersetzt ist. Man spricht in diesem
Zusammenhang auch vom "specialize to solution" Ansatz.
Die beiden Verfahren werden nachfolgend anhand eines Beispiels gegenübergestellt:

Gegeben seien die Klauseln {P(x), ¬ Q(x)} und {¬ P(y)} sowie {Q(c)} wobei x und y
Variablen sind und c eine Konstante.

1. Grundresolution:

31
2. Prädikatenlogische Resolution nach Robinson:

Es genügt also an dieser Stelle, die Substitution [x/y] durchzuführen, um den


prädikatenlogischen Resolventen {¬ Q(y)} zu erhalten. In einem weiteren Schritt
wird der Term ¬ Q(y) dann durch den spezielleren Term ¬ Q(c) ersetzt, der direkt auf
die leere Klausel führt.
Nachfolgend wird nun der Begriffsapparat zur Beschreibung der prädikatenlogischen
Resolution eingeführt:
Zentral für die prädikatenlogische Resolution ist das Finden von Substitutionen, die
eine Menge von Literalen identisch macht, d.h. unifiziert. Dieser Begriff wird
nachfolgend definiert.

32
Definition: "Unifikation" und "Unifikator":

Eine Substitution σ ist Unifikator für eine endliche Menge von Literalen {E1, ..., En},
falls gilt: E1σ = ... = Enσ . Mit anderen Worten: Durch Anwenden der Substitution σ
auf jedes Literal in der Menge entsteht immer das gleiche Literal (|Eσ | = 1). Man
nennt die Menge {E1, ..., En} in diesem Fall unifizierbar.

Definition: "allgemeinster Unifikator" (auch genannt: most general unifier, kurz: m.g.u)

Ein allgemeinster Unifikator für eine Menge von Literalen {E1, ..., En} ist ein
Unifikator, von dem jeder andere Unifikator für {E1, ..., En} eine Variante ist.
Beispielsweise für {P(x, y, f(z)), P(a, g(z), w)} ist σ ={a/x, g(z)/y, f(z)/w} der m.g.u.
Hinweis: Der m.g.u. ist nicht eindeutig bestimmt, Varianten beruhen aber lediglich
auf Variablenumbenennungen.

"Unifikationssatz von Robinson":

Jede unifizierbare Menge von Literalen besitzt auch einen m.g.u.

Definition: "Abweichungsmenge":

Die Abweichungsmenge D(E1, ..., En) für Ausdrücke E1, ..., En, die aus
Prädikatensymbolen und Termen bestehen, wird wie folgt definiert:

1. Lies die Ausdrücke simultan von links nach rechts und brich an der Stelle ab,
an der nicht alle Ei dasselbe Symbol enthalten.
2. Bestimme zu jedem Ei den entsprechenden an der ersten Abweichungsstelle
beginnenden Unterausdruck ti.
3. Ergebnis: D(E1, ..., En) = (t1, ..., tn)

Hiermit läßt sich nun der Unifikationsalgorithmus formulieren:

Seien E1, ..., En wie oben und σ ist der m.g.u.

1. Setze σ ={}
2. Prüfe ob gilt: E1 = ... = En
falls ja: Fertig, return σ
falls nein:
Enthält D(E1, ..., En) eine Variable v und einen Term t, in dem v nicht
vorkommt (occurs-check)?

33
Ja:
µ := [v/t]
σ ' := σ µ
Ei' := Eiµ für alle i (d.h. es werden überall Substitutionen durchgeführt) und
fahre bei 2. fort.
Nein: return "fail" (d.h. Ausdrücke sind nicht unifizierbar).

Anmerkungen:


Der Algorithmus liefert im Erfolgsfall einen allgemeinsten Unifikator (m.g.u).




Der Algorithmus terminiert nach endlich vielen Schritten, da jeder Schritt zur
Erweiterung der Substitution σ eine Variable eliminiert.


Der Test, ob die Variable v in einem Term t vorkommt, heißt üblicherweise


Occur-Check. Wird auf ihn (aus Effizienzgründen) verzichtet, kann die
Korrektheit dieser die Unifikation nutzenden Resolutionsmethode nicht mehr
garantiert werden. Prolog-Interpreter führen in der Regel keinen Occur-Check
aus.

Beispiel zur Unifikation:

Betrachte folgende Ausdrücke:


E1 = P(x, h(x, g(y)), z)
E2 = P(x, h(x, v), w)
E3 = P(x, h(x, a), b), wobei a und b Konstanten sind.

Von links nach rechts gelesen unterscheiden sich


E1 und E2 zunächst in der Position g(y) und v.
E2 und E3 zunächst in der Position v und a.
E1 und E3 zunächst in der Position g(y) und a.

Das Ziel ist nun eine minimale Substitution zu finden, um die Ausdrücke jeweils
gleich zu machen (unifizieren):

a. E1 , E2: σ = [v/g(y)] [w/z]. Damit folgt E1σ = E2σ = P(x, h(x, g(y)), z).
b. E2 , E3: σ = [v/a] [w/b]. Damit folgt E1σ = E2σ = P(x, h(x, a), b).
c. E1 , E3: σ = "fail" weil die Funktion g(y) nicht mit der Konstante a zur
Deckung gebracht werden kann.

Definition: "Prädikatenlogische Resolution":

Seien K1 und K2 zwei prädikatenlogische Klauseln.

34
1. Bilde K1'=K1s1 und K2'=K2s2 mit Substitutionen s1 und s2 derart, dass K1' und
K2' keine gemeinsamen Variablen enthalten (standardising apart).
2. Falls es eine Menge von Literalen {L1, ..., Lm} ⊆ K1' sowie {Lm+1, ..., Ln} ⊆
K2' gibt, für die

unifizierbar mit m.g.u σ , so bezeichnen wir R=(( K1' - {L1, ..., Lm}) ∪
(K2' - {Lm+1, ..., Ln}))σ als prädikatenlogische Resolvente von K1 und
K2.

Anmerkungen:

1. Für zwei Klauseln K1 und K2 ist die Resolvente R nicht eindeutig bestimmt. Es
bestehen Freiheitsgrade bei der Wahl der Li sowie der Unbestimmtheit von σ .
2. Bei der prädikatenlogischen Resolution können mehrere Literale in einem Schritt
verschwinden (vgl. hierzu Beispiel "Arzt" unten)
3. Wir definieren wie in der Aussagenlogik für eine Formel F: Res(F), Resk(F),
Res*(F).

Hiermit formulieren wir den Resolutionssatz der Prädikatenlogik (Robinson 1965):

Sei F eine prädikatenlogische Formel (Skolemform) in Klauselschreibweise. Dann


gilt: F unerfüllbar g.d.w.

Beispiel:

Betrachte folgende Aussagen:


(a1) Jeder Arzt behandelt alle Personen, die sich nicht selbst behandeln.
(a2) Kein Arzt behandelt jemanden, der sich selbst behandelt.

Es soll gezeigt werden, daß es keine Ärzte gibt.

Diese Aussagen lassen sich wie folgt formalisieren:

Arzt: einstelliges Relationssymbol A


behandelt: zweistelliges Relationssymbol B
a1: ∀ x(A(x) → ∀ y (¬ B(y, y) → B(x, y)))
a2: ¬ ∃ x' (A(x') ∧ ∃ y' (B(y', y') ∧ B(x', y')))
F=(∀x ∀y (A(x) ∧ ¬ B(y, y)) → B(x, y)) ∧ (¬ (∃x' ∃y' (A(x') ∧ B(y', y') ∧ B(x', y'))))
=(∀x ∀y (¬ A(x) ∨ B(y, y) ∨ B(x, y)) ∧ ∀x' ∀y' (¬ A(x') ∨ ¬ B(y', y') ∨ ¬ B(x', y')))

35
Behauptung: Es gibt keine Ärzte: Z = ¬ ∃x A(x)

Widerspruchsannahme: ¬ Z = ∃x A(x)
Skolemform A(b), wobei b die Skolemkonstante ist.

In obigem Beispiel macht man sich die Beweisstrategie "reductio ad absurdum"


zunutze, die meist von sog. Resolutionsbeweisern eingesetzt wird. Die
Vorgehensweise bei dieser Beweisstrategie läßt sich wie folgt verallgemeinern:

Das Negat ¬ F der zu beweisenden Formel F wird angenommen.

Es wird nachgewiesen, daß die Konjunktion aus dem Axiomsystem A und ¬ F


unerfüllbar ist, d.h.

Aufgrund der Annahme der Gültigkeit der Axiome wird die Unwahrheit von ¬F und
damit die Wahrheit von F erschlossen.

36