Aussagenlogik

Werbung
Kapitel 1
Aussagenlogik
1.1
Wahr“ und Falsch“
”
”
Wir werden im Folgenden logische Operationen als Verknüpfungen elementarer Aussagen einführen.
Hierzu benötigen wir zunächst zwei Zeichen, die die Rolle des umgangssprachlichen Wahr“ und Falsch“
”
”
übernehmen. Wir können diese einfach Wahr und Falsch nennen, oder auch 1 und 0 oder auch A und B
oder auch quimm und schnurz. Wichtig ist nur, dass wir zwei klar unterscheidbare Symbole einführen.
Der Einfachheit halber halten wir uns an die Konventionen und nennen diese Zeichen 1 und 0; wobei
der 1 die Rolle des umgangssprachlichen Wahr“ und der 0 die Rolle des umgangssprachlichen Falsch“
”
”
zukommen wird.
Bei allen folgenden Ausführungen sollte uns aber bewusst sein, dass die Wahl der konkreten Zeichen
beliebig ist, solange die daraus entstehende Sprache in sich konsistent und stimmig ist. In der Logik
werden wir zunächst versuchen, durch rein formale Definitionen umgangssprachliche Bedeutungen zu
modellieren.
Die Zeichen 0 und 1 bezeichnen wir auch als Wahrheitswerte.
1.2
Logische Operatoren
Wir beginnen zunächst mit einer Definition der logischen Grundoperationen und, oder und nicht. Wir
werden diese zunächst als ein- bzw. zweistellige Operatoren definieren, welche (Paare von) Werten aus
0 1 wieder auf 0 1 abbilden. Wir vernachlässigen dabei zunächst bewusst die Unterschiede zwischen Syntax (der formalen Schreibweise) und Semantik (der Bedeutung). Für jeden dieser Operatoren
geben wir das Formelzeichen und eine Auswertungstablelle (Wahrheitstafel) an. Diese gibt an, wie welcher Ausgangswert den jeweiligen Eingangskombinationen zugeordnet ist.
1.2.1
Das und“
”
Und: Zweistelliger Operator:
”
“
A
0
0
1
1
B
0
1
0
1
A B
0
0
0
1
9
Das zweistellige modelliert hierbei die umgangssprachliche Bedeutung des Wortes und“. Die Aussage
”
A B ist nur dann wahr, wenn beide Teilaussagen A und B wahr sind.
1.2.2
Das oder“
”
Oder: Zweistelliger Operator:
“
”
A
0
0
1
1
B
0
1
0
1
A B
0
1
1
1
Das zweistellige modelliert hierbei die umgangssprachliche Bedeutung des Wortes oder“. Die Aus”
sage A B ist dann wahr, wenn mindestens eine der Teilaussagen A und B wahr ist. Vorsicht: Man darf
das nicht mit dem umganssprachlichen entweder oder“ verwechseln, welches nur wahr ist wenn
”
genau eine der Teilaussagen wahr ist.
1.2.3
Das nicht“
”
Nicht: Einstelliger Operator:
”
“
A
0
1
A
1
0
Das einstellige modelliert hierbei die Umgangssprachliche Bedeutung des Wortes nicht“. Die Aussage
”
A nimmt immer genau den entgegengesetzten Zustand von A ein.
1.3
Syntax
In der Logik ist (wie wir bald feststellen werden) das strenge Auseinanderhalten von Syntax und Semantik
einer Formel von entscheidender Bedeutung.
Die Syntax beschreibt lediglich, aus welcher Zeichenfolge eine Formel zusammengesetzt ist. Insbesondere spricht man von einer syntaktisch korrekten Formel, sofern die Zeichenfolge gewissen Regeln gehorcht.
Die Semantik einer Formel spiegelt dagegen deren Sinngehalt“ oder Bedeutung“ wider. In der Aussa”
”
genlogik kann man sich die Semantik als die zu einer Formel zugehörige Wahrheitstafel vorstellen.
Definition 1.3.1 (Syntax der Aussagenlogik) Syntaktisch korrekte Formeln über einer Menge
atomaren Formeln : A B C A1 A2 sind durch folgende vier Regeln beschrieben:
(i) die atomaren Formeln aus
selbst sind syntaktisch korrekt,
(ii) sind f und g syntaktisch korrekt, so sind auch f
(iii) ist f syntaktisch korrekt, so ist auch
g und f
f syntaktisch korrekt,
10
g syntaktisch korrekt,
von
(iv) ausschliesslich Formeln die nach einer der Regeln (i)–(iii) syntaktisch korrekt sind, sind syntaktisch korrekt.
Auf den ersten Blick wirkt diese Definition von aussagelogischen Formeln etwas aufgesetzt für etwas,
was einem gut vertraut ist. Warum muss etwas so kompliziert erklärt werden, wenn es doch klar“ ist?
”
Eine solche Formalisierung hat jedoch mehrere Vorteile: Zum einen können wir uns dadurch einigen, was
denn nun genau gemeint“ ist. Zum anderen können auf Basis dieser Definition Aussagen über Formeln
”
gemacht und bewiesen werden oder genau angegeben werden, wie ihnen Werte zugewiesen werden (wie
wir im Folgenden sehen werden). Im übrigen entspricht die Definition auch dem, was wir intuitiv tun,
wenn wir eine Formel korrekt aufschreiben.
Beispiel 1.3.2 A B C A B ist eine Syntaktisch korrekte Formel. Man kann dies wie folgt
einsehen: A, B und C sind nach Regel (i) syntaktisch korrekt, da sie atomare Formeln sind. Nach Regel
(iii) ist C syntaktisch korrekt. Nach Regel ii (und der syntaktischen Korrektheit der vorherigen Aus
drücke) sind A B und A B syntaktisch korrekt. Nach Regel ii (und der syntaktischen Korrektheit
der vorherigen Ausdrücke) ist auch A B C syntaktisch korrekt. Schliesslich ist nach Regel ii (und allem bisher Gesagten) A B C A B ein syntaktisch korrekter Ausdruck.
Nun ist es nicht die (einzige) Aufgabe der Logik, solche langweiligen Schlussketten formal durchzuführen. Man sollte sich aber dennoch vergegenwärtigen, dass gerade durch dieses hochformelle Vorgehen sich ein solcher Syntaxcheck“ komplett automatisieren lässt und von einem Computer ausführen
”
lässt. Vergleichbares passiert z.B. in der ersten Phase beim Compilieren eines Programmes, wenn dieses
zunächst auf syntaktische Korrektheit geprüft wird.
Aus der Definition der Formelsyntax ergibt sich eine natürliche Art, den Aufbau einer Formel als baumartiges Diagramm darzustellen. Dafür schreibt man unter den verknüpfenden Operator die Teilformeln (und
diese wieder auf die gleiche eben beschriebene Art und Weise).
Für das Beispiel ergibt sich die Darstellung als sogenannter Ableitungsbaum:
PSfrag replacements
A B
C C
A B
A
A B
A
B
B
C
Abbildung 1.1: Ableitungsbaum
Zwei Formeln F und G nennen wir syntaktisch gleich, wenn sie aus den selben Zeichen in der selben
Reihenfolge aufgebaut sind, wenn sie also wortwörtlich gleich sind. Wir schreiben dann F G.
Syntax heisst also kurz: Was ist eine Formel.
11
1.4
Semantik
Durch sukzessive Anwendung der in Abschnitt 1.2 angegebenen Wahrheitstafeln können wir die Formel
aus dem letzten Beispiel für eine beliebige Belegung der Variablen ( atomaren Teilformeln) A, B und C
auswerten. Wir können zur Auswertung auch direkt den Ableitungsbaum zu Hilfe nehmen. Nachdem wir
die Blätter mit Wahrheitswerten belegt haben, können wir nacheinander den einzelnen Knoten ebenfalls
Wahrheitswerte (gemäss der Wahrheitstafeln für und, oder, nicht) zuordnen. Insbesondere ergibt sich für
A 1, B 0 und C 0, dass sich die Formel aus unserem Beispiel zu 1 auswertet (Siehe Abb. 1.2).
1
PSfrag replacements
1
1
0
1
0
1
0
1
0
Abbildung 1.2: Eine Auswertung
Eine Auswertung der Formel für alle acht verschiedenen Eingangsbelegungen ergibt die folgende Wahrheitstabelle
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
A B
C 0
0
1
0
1
0
1
1
A B Die Wahrheitstabelle drückt den inhaltlichen Gehalt einer Formel aus. Wir werden gleich den Begriff
der Semantik noch schärfer fassen. Für jetzt können wir ihn mit der Aufstellung der Wahrheitstabelle
gleichsetzen. Die Semantik einer Formel ist das, was man erhält, wenn man die Formel für alle möglichen
Eingangsbelegungen auswertet.
Semantik heisst also kurz: Was bedeutet eine Formel.
12
1.5
Semantische Äquivalenz
Zwei Formeln können unterschiedlich aussehen und dennoch die gleiche Bedeutung ( Semantik) haben.
Beispiel 1.5.1 Für die Formel
A
A
0
0
1
1
Für die Formel
B
0
1
0
1
B ergibt sich deren Semantik aus folgender Wahrheitstabelle.
A
1
1
0
0
B
1
0
1
0
A
1
1
1
0
B
A B ergibt sich deren Semantik aus folgender Wahrheitstabelle.
A
0
0
1
1
B
0
1
0
1
A B
0
0
0
1
A B
1
1
1
0
Die Auswertung der beiden (syntaktisch verschiedenen) Formeln führt zum gleichen Ergebnis.
Beide eben gezeigten Beispiele haben die gleiche Wahrheitstabelle, obwohl sie eine unterschiedliche
Syntax haben. Solche Formeln nennt man auch semantisch äquivalent. Sind zwei Formeln F und G
semantisch äquivalent, so schreiben wir F G.
1.6
Wenn
”
dann “
Wir wollen nun sehen, wie sich eine Aussage der Form Wenn A dann B“ in unser bisheriges Sy”
stem einfügen lässt. Wir führen hierfür die Schreibweise A B ein. Dies ist allerdings lediglich eine
Abkürzung für:
B
:
B
A
A Diese Definition lässt sich so begründen:
Wenn A dann B
Wenn A eintritt, dann tritt auch B ein
A tritt nicht ein oder (A tritt ein und B tritt ein)
A tritt nicht ein oder B tritt ein
(nicht A) oder B
Wir wollen uns diese etwas unanschauliche Äquivalenz von A B und A B nochmals an einem
Beispiel vergegenwärtigen. Betrachten wir den Satz Wenn es regnet werden die Strassen nass“. Wir
”
können ihn in die zwei Teilaussagen
A: Es regnet.
B: Die Strassen werden nass.
13
zerlegen. Was ist nun das logische Gegenteil dieses Satzes? Die Folgerung Wenn es regnet, werden
”
die Strassen nass“ kann durch die Angabe eines Gegenbeispiels widerlegt werden. Die Existenz eines
solchen Gegenbeispiels übernimmt somit die Rolle des logischen Gegenteils. Wie sieht nun ein solches
Gegenbeispiel aus? Es muss regnen, und die Strassen sind nicht nass“. Also in Formeln A B . Somit
”
muss gelten:
A
B A B Die letzen Formel lässt sich aber wie folgt umrechnen:
A
B A B A B A B
Dies war genau die Aussage unserer Definition.
1.7
Tautologien
Als Tautologien bezeichnet man Aussagen, die unabhängig von der Belegung der atomaren Formeln
immer wahr sind. Eine einfache Tautologie ist z.B. B
B , wie man sich leicht mit Hilfe einer Wahr heitstabelle klar machen kann.
Beispiel 1.7.1 Aussage: Wenn der Hahn kräht auf dem Mist, verändert sich das Wetter, oder es bleibt
”
wie es ist.“ Zerlegen wir den Satz in atomare Aussagen, erhalten wir
A : Hahn kräht auf dem Mist
B : Wetter ändert sich
B : Wetter bleibt
Als Formel sieht die Aussage folgendermassen aus:
A B
A
B
A
1
Der Satz ist also eine Tautologie.
14
B 1
B 1.8
Unterschied zwischen Syntax und Semantik
Die Symbole und haben eine Doppelrolle“, die sich aus ihrer Bedeutung in Syntax und Semantik
”
ergibt. Zur besseren Unterscheidung benutzen wir temporär zwei verschiedene Zeichensätze , , und
, , für die syntaktische bzw. für die semantische Ebene. Die Rollen der beiden Ebenen lassen sich
grob folgendermassen umreissen:
1. Syntax: Als Zeichen“ in einem syntaktisch korrekten Ausdruck, z.B. in A B C .
”
Die syntaktische Korrektheit einer solchen Formel lässt sich allein durch das in Abschnitt 1.3
angegebene Verfahren testen. Die konkrete Bedeutung der Zeichen ist dabei (abgesehen von deren
Stelligkeit) unerheblich.
2. Semantik: Als zweistellige Operatoren
0 1 .
x
0
0
1
1
y
0
1
0
1
x y
0
0
0
1
x
0
0
1
1
y
0
1
0
1
bzw. einstellige Operatoren
x y
0
1
1
1
x
0
1
auf den Werten
x
1
0
Die Wahrheitstafeln geben an, wie die Zeichen als Operatoren ausgewertet werden sollen.
Durch eine Kette von Definitionen wollen wir nun eine formale Definition des Begriffes Semantik“
”
erarbeiten. Wenn wir in folgenden von Formel“ sprechen, setzten wir immer stillschweigend voraus,
”
dass die Formel syntaktisch korrekt ist.
Definition 1.8.1 (Menge von atomaren Teilformeln passt zu Formel) Für eine Formel F sei F die
Menge aller atomaren Teilformeln von F. Eine Menge von atomaren Formeln passt zu einer Formel
F, wenn F gilt.
Mit anderen Worten passt die Menge
enthält.
zu F, wenn sie mindestens alle atomaren Teilformeln von F
Definition 1.8.2 (Semantik der Aussagenlogik) Sei
die Menge aller Formeln über .
eine Menge von atomaren Formeln und
Sei nun " : #
0 1 eine Belegung der atomaren Teilformeln mit Wahrheitswerten. ("
Funktion, die jeder atomaren Formel aus den Wert 0 oder 1 zuweist.)
Wir betrachten nun eine Fortsetzung $" : D
0 1 zuordnet. Wir definieren $" wie folgt:
%
$" &
$" &
$" F
F
&
$" A
:
G
:
"&
)
)
G
:
)
F
:
A
0 1 von " , die jeder Formel über
für alle atomaren Teilformeln A
1 falls &
$" F 1 und &
$" G 1
0 sonst
1 falls &
$" F 1 oder &
$" G 1
0 sonst
1 falls &
$" F 0
0 sonst
15
'("
!
sei
ist also eine
einen Wert aus
Die zugegebenermassen auf den ersten Blick etwas umständlich erscheinende Definition von $" formalisiert das Auswerten einer Formel nachdem Wahrheitswerte für deren atomare Teilformeln gegeben sind.
$" F Jede Belegung " : #
0 1 entspricht dabei einer konkreten Zuordung von Wahrheitswerten. &
ergibt dann genau die Auswertung der Formel unter dieser Belegung. Man beachte, dass es zu einer
gegebenen Menge von n atomaren Teilformen insgesamt 2n verschiedene Belegungen " gibt. Diese
entsprechen im Prinzip den einzelnen Zeilen der Wahrheitstafeln.
Bemerkung 1.8.3
*
*
Da es sich per Definition bei $" um eine Fortsetzung von "
halber im folgenden statt $" auch " .
handelt, schreiben wir der Einfachheit
Wir übertragen den Begriff, dass eine eine Menge von atomaren Teilformen zu F passt“ auf
”
0 1 zu einer Formel F passt“, falls F Belegungen. Wir sagen, dass eine Belegung " : ”
.
Wir können die in 1.8.2 gegebenen Auswertungsregeln unter Verwendung der Doppelbedeutung der
Zeichen und auch folgendermassen ausdrücken:
Der Belegungsoperator "
*
*
Eine Belegung "
*
*
"&
x y ,-"& x "&
x y ,-"& x "&
x ,
"&
hat vier Eigenschaften:
ordnet atomaren Formeln A B C + konkrete Wahrheitswerte zu,
"&
y ,
"&
y ,
x .
Eselsbrücke“: Der Belegungsoperator "
”
steht eigentlich für Auswertung“.
”
Beispiel 1.8.4 Der Belegungsoperator " kann mittels den oben genannten Eigenschaften in Formeln
hereingezogen werden. Haben wir zum Beispiel "& A . 0 "% B / 1 "& C / 1 und wollen die Formel
B C auswerten, ergibt sich:
A "%
A
B
C "&
0"&
A
A
" &
0
1 1
1 1
1
B
A "&
1
1
"&
B C
" B &
1
"&
C
"&
C
Die obige Definition einer konkreten Auswertung ermöglicht es uns nun zu sagen, was wir unter semantisch äquivalenten Formeln verstehen wollen.
Definition 1.8.5 (Semantisch äquivalent) Zwei Formeln F und G heissen semantisch äquivalent, wenn
für alle Belegungen " : 1
0 1 (die zu F und G passen) gilt: "& F ,2"% G .
Wir schreiben dann: F
G.
16
Bemerkung 1.8.6 Umgangssprachlich heisst F G: Beim Einsetzen kommt immer das Gleiche raus.
Verknüpft man diese Definition mit der Interpretation aus 1.8.2, erklärt sich jetzt auch: Zwei Formeln
sind semantisch äquivalent, wenn sie die gleichen Wahrheitstafeln haben.
Beispiel 1.8.7 Die Formeln F # A B und G
aus der Wahrheitstafel unschwer entnehmen kann.
A
0
0
1
1
B
0
1
0
1
F
1
0
0
0
A
B sind semantisch äquivalent wie man
G
1
0
0
0
Lägen die beiden Formel realisiert als (ideale) logische Schaltkreise vor, so gäbe es von aussen keine
Möglichkeit sie zu unterscheiden.
A
B
A
B
PSfrag replacements
G
F
Abbildung 1.3: F und G sind semantisch äquivalent
Beispiel 1.8.8 Auch die beiden Formeln F A B B und G A sind semantisch äquivalent,
obwohl die Fromel G weniger atomare Teilformeln hat als F. Wir können uns einfach vorstellen, dass
der Eingang“ B in G zwar existent ist, aber von G nicht weiter verwendet wird. Auch hier gilt wieder,
”
dass sich den Formeln entsprechende logische Schaltkreise von aussen nicht unterscheiden liessen.
A
B
A
B
PSfrag replacements
G
F
Abbildung 1.4: F und G sind semantisch äquivalent
17
1.9
Semantisch äquivalente Formeln
Der Begriff der semantischen Äquivalenz ermöglicht es nun mit Formeln zu rechnen“. Rechnen heisst
”
hier, dass bestimmte Ausdrücke durch semantisch äquivalente Ausdrücke ersetzt werden dürfen. Wir
geben zunächst eine Liste von semantisch äquivalenten Formeln, die letztlich die Rechenregen mit logischen Operationen widerspiegeln:
Idempotenz:
Kommutativität:
Assoziativität:
Absorption:
Distributivität:
De Morgansche Regeln:
Doppelte Negation:
F F F
F G G F F G H 4 F G H F F G 3 F
F G H 5 F G F H F G F G F , F
F F F
F G 3 G F F G H 4 F G H F F G 3 F
F G H 4 F G F H F G F G Man beachte, dass es für jede der Regeln (bis auf die letzte) zwei Varianten gibt, die vollkommen symmterisch in und sind. Man kann jede einzelne Regel leicht mit Hilfe einer Wahrheitstafel nachprüfen.
Nun noch eine Liste von Regeln welche direkt mit 0“ und 1“ in Verbindung stehen. Formal haben wir
”
”
auf der syntaktischen Ebene diese beiden Zeichen zunächst (noch) nicht eingeführt. Dies macht aber
nichts, da wir sie einfach als Abkürzungen für folgende Formeln definieren“ können:
”
1 A A 0 A A Der Ausdruck in der ersten Formel ist immer wahr ( 1). Der Ausdruck in der zweiten Formel ist immer
falsch ( 0). Wir erhalten so z.B. noch weitere Regeln:
A 1 3 1
A 0 3 A
A
1 , 1
A 0 0
A 1 A
0
A 1
Um mit formaler Sicherheit auch tatsächlich Ersetzungen durchführen zu können, benötigen wir noch
folgenden Satz:
Satz 1.9.1 (Schöning, S. 24) Sei F G, und F Teilformel von H. Dann gilt H
hervorgeht, wenn irgendein Vorkommen von F durch G ersetzt wird.
H 6 , wobei H 6 aus H
Der Beweis dieses Satzes erfolgt letztlich durch Induktion über die Länge der Formeln. Man findet in
z.B. im Schöning.
1.10 Weglassen von Klammern
Bisher haben wir versucht, gemäss unserer Regeln für syntaktisch korrekte Formeln mit Klammerungen
sehr streng umzugehen. Leider beschehrt uns dies sehr viel unnötige Schreibarbeit. Wir wollen diese
umgehen, indem wir (ähnich wie beim Rechnen mit Zahlen) ein paar vereinfachende Regeln einführen.
Diese werden zum Teil durch die im letzten Abschnitt angegebenen Äquivalenzen gerechtfertigt.
1.10.1 Weglassen äusserer Klammern
Die äusersten Klammern einer Formel können ohne Missverständnisse weggelassen werden. Wir schreiben also z.B. A B C statt A B C .
18
1.10.2 Weglassen von Klammern bei Folgen von 7 oder 8
Besteht eine Formel aus einer Hintereinanderausführung vieler und-Operationen, so sagt uns das Assoziativgesetz, dass es für semantische Äquivalenz auf die Reihenfolge der Auswertung (Klammerung)
nicht ankommt. Es gilt z.B.
A B
C D A B C
D A
B
C D Wir lassen dann kurzerhand einfach alle inneren Klammern bei einem solchen Ausdruck weg und schreiben einfach
A B C D
Dasselbe machen wir auch, wenn in einer Formel ausschliesslich oder-Operatoren vorkommen.
Vorsicht: Die Regel ist nicht anwendbar, wenn in einer Formel
und
gemischt vorkommen.
1.10.3 Prioritätsregeln
Weiterhin führen wir noch Regeln ein, die Auswertungsprioritäten der Operatoren angeben.
’ ’ bindet stärker als ’ ’ und ’ ’,
’ ’ und ’ ’ bindet stärker als ’ ’.
Somit können wir anstatt ’ A B C 59 A B ’ einfach ’ A B C
A B’ schreiben.
1.11 Der Äquivalenzoperator
Wir führen nun noch einen weiteren Operator ’ : ’ ein. Die Bedeutung“ des Operators ist A ist äquiva”
”
lent zu B“. Genauso wie schon beim Operator ’ ’ können wir den Äquivalenzoperator aus den elementaren Grundoperationen . , zusammensetzen. Wir definieren
A:
:
B
A B
A
B Die Wahrheitstafel dieses Operators ist:
A
0
0
1
1
A:
B
0
1
0
1
B
1
0
0
1
Der Operator wertet also immer dann zu 1 aus, wenn beide Eingänge identisch sind. Der folgende Satz
verknüpft den Begriff der semantischen Äquivalenz mit dem Äquivalenzoperator (Ein Beweis steht z.B.
im Schöning).
Satz 1.11.1 F
G, genau dann wenn F
:
G 1
Beispiel 1.11.2 Wir wissen bereits, dass die Formeln A B und A
B semantisch äquivalent sind.
Unter Anwendung des obigen Satzes lässt sich dies auch ohne Wahrheitstafel, rein durch Rechnen, über A B A
prüfen. Wir müssen nachweisen, dass A B A
B B eine
;
Tautologie ist.
19
Wir rechnen
A B A
A
B A
A
B A B
A B
A B
1
B B A B A
!
A B A B B (Zugegebenermassen, ist die Wahrheitstafelmethode einfacher, aber der Satz wird uns später noch von
Nutzen sein.)
1.12 Normalformen
Zunächst führen wir wieder eine abkürzende Schreibweise ein. Vergleichbar mit dem Summationsoperator ∑ in der Arithmetik erlauben wir es, mehrere oder Operatoren zusammenzufassen:
F1 F2 F3
F1 F2 F3
< k
Fk
Fk
i= 1
> k
Fi
Fi
i= 1
Definition 1.12.1 (Literal) Ein Literal ist eine atomare Formel oder eine negierte atomare Formel.
Definition 1.12.2 (Konjunktive Normalform) Eine Formel F ist in Konjunktiver Normalform (kurz
KNF), wenn sie die Gestalt
F
@?
> mi
<k
?
i= 1
j= 1
Li A j BCB
mit Literalen Li A j hat.
Definition 1.12.3 (Disjunktive Normalform) Eine Formel F ist in Disjunktiver Normalform (kurz DNF),
wenn sie die Gestalt
F
@?
>k
i= 1
?
< mi
j= 1
Li A j BCB
mit Literalen Li A j hat.
Eine KNF entsteht also aus der und-Verknüpfung mehrerer Terme, die nur oder-Operatoren und Literale
enthalten. Analog entsteht eine DNF aus der oder-Verknüpfung mehrerer Terme, die nur und-Operatoren
und Literale enthalten. Die einzelnen Terme die hierbei verknüpft werden nennt man auch Klauseln.
Neben ihrem strukturell sehr einfachen Aufbau, ist das bemerkenswerte an diesen Normalformen, dass es
zu jeder Formel eine semantisch äquivalente Darstellung als DNF (bzw. KNF) gibt. Allerdings ist diese
Darstellung im Allgemeinen nicht eindeutig. Durch sukzessives Anwenden der Distributivgesetze und
der De Morgan’schen Regeln lässt sich jede Formel durch Rechnen in eine DNF bzw. KNF umwandeln.
Es gibt allerdings auch eine einfache Methode wie man eine DNF quasi direkt aus der Wahrheitstafel
ablesen kann. Wir machen uns das Verfahren an einem Beispiel klar.
20
Beispiel 1.12.4 Betrachen wir eine Formel F mit der folgenden Wahrheitstafel:
B
0
0
1
1
0
0
1
1
A
0
0
0
0
1
1
1
1
C
0
1
0
1
0
1
0
1
F
0
0
1
1
1
1
0
1
Für eine DNF betrachten wir alle Zeilen der Wahrheitstafel, in denen F den Wert 1 hat und schreiben
diese Zeilen als und“–Klausel. Hat dabei eine atomare Formel in der Zeile den Wert 1, wird sie als
”
A übernommen. Eine solche
Literal Li A j A übernommen, hat sie den Wert 0 wird sie als Literal Li A j Klausel ist eine Formel, die genau nur an der betrachteten Zeile zu ’1’ evaluiert und ansonsten ein ’0’
ergibt. Alle so erhaltenen Formeln werden mit oder“ verknüpft.
”
Für das Beispiel ergibt sich (aus der 3., 4., 5., 6. und 8. Zeile der Tabelle):
A B
A B C
A
A
A B C
C
B
C
B C
Wir können auch eine KNF direkt aus der Wahrheitstafel ablesen, indem wir alle 0–Zeilen betrachten
A und bei einem Eintrag 0 als
und diesmal eine atomare Formel A mit dem Eintrag 1 als Literal Li A j Literal Li A j A übernehmen. Diese Literale werden mit oder“ verknüpft und die einzelnen Zeilen mit
”
und“.
”
Für das Beispiel ergibt sich (aus der 1., 2. und 7. Zeile der Tabelle):
A B C
A B
A
C
B C
Sowohl die DNF als auch die KNF sind semantisch äquivalent zu F.
Ein wenig Vorsicht ist geboten. Nach unserer Definition ist die DNF (bzw. KNF) einer Formel wie gesagt
keineswegs eindeutig. So hat z.B. die Formel F aus dem letzten Beispiel auch noch folgende kürzere
DNF (wie man unschwer nachprüft):
A B
A
A B C
B
Die ersten beiden Zeilen dieser DNF fassen praktisch immer zwei Zeilen unserer Langfassung“ zusam”
men.
21
1.13 Modell, Erfüllbarkeit, Tautologie
Nunmehr werden wir den Begriff des Modells einer Formel kennenlernen. Obwohl dieser Begriff (zumindest was die Aussagenlogik betrifft) in seiner Definition sehr einfach ist, spielt er eine zentrale Rolle
in der Logik. Zunächst erinnern wir uns, dass es zu einer Formel F mit n atomaren Teilformeln insgesamt
2n verschiedene dazu passende Belegungsoperatoren " gab — für jede Zeile der Wahrheitstabelle eine.
Wertet die Formel F für eine bestimmten Belegungsoperator " aus, so erhält man entweder eine ’1’ oder
eine ’0’. Im Falle einer "& F , 1 nennt man " ein Modell von F. Ist " Modell von F, so schreiben wir
auch abkürzend "ED F. Der Begriff des Modelles gestatted uns nun einige nützliche weitere Begriffe
einzuführen, die es uns erleichtern über Formeln zu reden“.
”
Definition 1.13.1 (Erfüllbarkeit, Tautologie)
*
*
F ist erfüllbar, falls es ein "
gibt mit "FD F.
*
F ist Tautologie“, wenn für jedes "
”
(Wir schreiben dann D F.)
F ist unerfüllbar, falls es kein "
gilt: "GD F.
gibt mit "GD F.
Eine Formel ist also erfüllbar, wenn ihre Wahrheitstabelle in der letzten Spalte mindestens eine ’1’
enthält. Hat die letzte Spalte nur Einsen (d.h. die Formel ist unabhängig von der Belegung wahr) so
ist sie Tautologie. Hat die letzte Spalte nur Nullen so ist sie unerfüllbar. (Auf einer etwas weniger formalen Ebene hatten wir den Begriff der Tautologie bereits eingeführt.) Auch der Begriff der logischen
Folgerung lässt sich mit dem Modellbegriff elegant formulieren.
Definition 1.13.2 (Folgerung) G ist Folgerung von F1 F2 Fk wenn für alle "
"FD mit
F1 "FD F2 H"GD Fk
auch "GD G gilt.
Diese Definition des Begriffes Folgerung fasst genau unserer umgangssprachliches Verständnis dieses
Wortes. Nehmen wir an F1 F2 Fk seien irgendwelche Aussagen und G sei eine Folgerung aus ihnen,
dann bedeutet das: wenn immer für eine Belegung " alle Fi erfüllt sind, dann ist auch G erfüllt“. In
”
dieser Definition des Folgerungsbegriffes liegt letztlich auch die Rechtfertigung der Definition unseres
’ ’-Operators. Dies wird durch den folgenden Satz deutlich.
Satz 1.13.3 G ist Folgerung von F1 Fk g.d.w. die Formel F1
Fk ,
G eine Tautologie ist.
Beweis: Wir haben die Äquivalenz der folgenden beiden Aussagen zu zeigen:
(1) Für alle "
mit "% F1 I"& Fk 1 gilt "& G , 1.
(2) Für alle "
gilt "% F1
Fk G 1
Wir benutzen den folgenden Zusammenhang:
"&
F1
Fk G 0"& F1 22
"&
Fk J "&
G Es sind zwei Richtungen zu zeigen. (1) (2): Sei " beliebig. Entweder gilt "& F1 JKLM"& Fk J 1
und somit nach (1) auch "& G , 1. Dann ist 0"& F1 "& Fk "& G K 1 1 J 1 1.
Andernfalls gibt es ein Fi mit "% Fi 3 0. Dann ist 0"& F1 "& Fk 3E"& G 3N 0 "& G 1.
(2) (1): Sei " so dass "& F1 5 1 O"& Fk 5 1. (2) impliziert 0"& F1 "& Fk b P"% G 5 1.
Einsetzen ergibt 1 1 3 "& G , 1. Und somit 1 Q"% G , 1. Also "& G 1.
1.14 Das Erfüllbarkeitsproblem
Wir wollen nun die Entscheidung, ob eine gegebene Formel F erfüllbar ist, als algorithmisches Problem
auffassen. In der Tat handelt es sich dabei um eine sehr fundamentale Fragestellung, da sich, wie wir
gleich sehen werden, viele (auch praxisrelavante) algorithmische Probleme darauf zurückführen lassen.
Durch unsere strenge Trennung von Syntax und Semantik können wir eine Formel als eine einfache
Zeichenreihe auffassen. Diese Zeichenreihe lässt sich in einen Computer eingeben. Man kann so nach
einem Algorithmus fragen, der entscheidet ob eine eingegebene Formel erfüllbar ist oder nicht. Es ist
nicht allzuschwer, ein Computerprogramm zu schreiben, welches dies leistet. Eine offensichtliche Herangehensweise hierfür ist es, ein Programm zu schreiben, welches alle möglichen Belegungen der Formel durchprobiert und feststellt, ob für irgendeine dieser Belegungen die Formel zu ’1’ auswertet. Hat
eine eingegebene Formel n atomare Teilformeln, so müssen mit dieser naiven Methode schlimmstenfalls
(wenn die Formel unerfüllbar ist) 2n verschiedene Belegungen durchgetestet werden. Die worst-case“
”
Laufzeit eines solchen Algorithmus wäre dann exponentiell in der Anzahl der atomaren Formeln.
Exkurs: Masse für die Geschwindigkeit (Komplexität) eines Algorithmus lassen sich mit Mitteln der
Komplexitätstheorie (siehe Vorlesung Theoretische Informatik“) formulieren. Exponentielle Algorith”
men gehören dabei zu den sehr langsamen“ Algorithmen. Die Frage ist berechtigt, ob es für die Erfüll”
barkeitsproblematik nicht ein wesentliche schnelleres (polynomiales) Verfahren geben könnte. In der Tat
handelt es sich hierbei um die wohl grösste derzeit ungelöste Frage der Informatik. Die Beantwortung
dieser Frage beantwortet genau das berühmte P NP?“-Problem der theoretischen Informatik.
”
Wir wollen nun sehen, dass sich zunächst innerhalb der Logik viele Probleme auf das Erfüllbarkeitsproblem zurückführen lassen. Hierzu führen wir die Abkürzung R F für die Aussage F ist erfüllbar“
”
ein. Der Ausdruck R F ist ‘1’ wenn F erfüllbar ist und ‘0’ andernfalls. Beispielsweise sind folgende
Probleme auf das Entscheidbarkeitsproblem zurückführbar:
*
R G 1“)
”
Fk gleichzeitig erfüllbar? (Teste:
*
Gegeben G, ist G unerfüllbar? (Teste:
*
Gegeben F1 O Fk , sind F1 O
*
Gegeben G, ist G eine Tautologie? (Teste:
Folgt G aus F1 H Fn ? (Teste:
”
S
”
S
F1 F2
”
S
F1 F2
Fk , 1“)
G 1“)
Fk ,
G 1“)
Wir wollen uns kurz zwei mehr praxisorientierte Probleme betrachten, die auf das Erfüllbarkeitsproblem
zurückgeführt werden können.
Beispiel 1.14.1 Zunächst betrachten wir das Problem das unter dem Namen bipartite graph matching
bekannt ist. Man kennt es auch unter dem Begriff Stabile Hochzeiten“. Betrachten wir ein virtuelles
”
Heiratsvermittlungsinstitut, welches in seiner Kartei n Männer und n Frauen hat. Aus den jeweiligen
23
replacements
angaben der PSfrag
Vorlieben
kann das Heiratsinstitut erkennen, wer mit wem eine hinreichend harmonische
Ehe verbringen kann. Nun ist das Heiratsinstitut daran interessiert, möglichst alle Männer und Frauen in
den stabilen Hafen der Ehe zu bringen (denn das bringt dem Institut am meisten Geld). Glücklicherweise
ist am Institut auch ein Logiker angestellt, der das Problem wie folgt modelliert:
Wir fassen die Männer und Frauen als Knoten in einem Graphen auf. Ein Mann und eine Frau werden
mit einer Kante verbunde, sofern sie potentielle Ehepartner sind. Ziel ist es nun eine Auswahl von Kanten
(Hochzeiten) zu treffen, so dass jeder Mann mit genau einer Frau verbunden ist. Eine Beispielsituation
ist in Abb. 1.5. gegeben.
M1
M2
A6
A2 A3
A4
A1
F1
M4
M3
A7
A5
F3
F2
F4
Abbildung 1.5: Beispiel eines Erfüllbarkeitsproblems
Wir ordnen nun jeder der Kanten eine entsprechende atomare Teilformel A1 H A7 zu. Das Vorhandensein bzw. nicht-Vorhandensein einer Kante codieren wir in den entsprechenden Wahrheitswert der
atomaren Formel. Die Tatsache, dass bei M1 genau eine der Kanten A1 bzw. A2 eingeht, lässt sich als
A1
A2 A1 A2 J 1. formulieren. Die Tatsache, dass A3 am Knoten M2 eingeht lässt sich ein
fach als A3 1 formulieren. Die Tatsache, dass von A4 , A5 , A6 genau eine Kante bei M3 eingeht ist
A4
A5
A6 A4 A5
A6 A4
A5 A6 . Und so weiter für jeden Knoten. Alle diese
Formeln sollen gleichzeitg erfüllbar sein. Wir erhalten also durch betrachten aller Knoten
A1
A3 A4
A7 A1 A2
A5
A6 A2 A5
A3
A7 A6 A1 A2 A4 A5
A4 A2 A3
A5 A7 A6 A4 A4
A2
A5 A6 A3 A4 Diese Formel ist genau dann erfüllbar, wenn es eine Möglichkeit gibt alle Personen zu verheiraten.
Tatsächlich sind die Formeln, die aus dem letztgenannten Beispiel entstehen, von sehr spezieller Natur.
Es existieren für diesen Spezialfall des Erfüllbarkeitsproblem sogar polynomiale (d.h. schnelle) Algorithmen. Das nächste Beipiel verdeutlicht, dass schon geringfügige Verallgemeinerungen zu wesentlich
schwierigeren Erfüllbarkeitsproblemen führen.
Beispiel 1.14.2 Stellen wir uns eine Firma vor, in der 3n Personen 1 2 3n arbeiten. Es ist bekannt,
dass nur bestimmte Paare von Personen (z.B. 1 2 H 1 7 H 2 9 TH ) gerne zusammenarbeiten. Ist es
möglich, n Dreierteams zu bilden, so dass in jedem Team jeder gerne mit jedem arbeitet? Wieder können
wir das Problem als Graph modellieren, bei dem gewisse Kanten ausgewählt werden müssen.
24
Dieses Problem ist formulierbar als Erfüllbarkeitsproblem (selbst probieren). Allerdings ist das Problem
nicht effizient lösbar: im wesentlichen ist nur Durchprobieren möglich.
1.15 Resolutionsalgorithmus
Wir haben gesehen, dass man zur Not durch Probieren das Erfüllbarkeitsproblem algorithmisch entscheiden kann. Wir wollen nun einen Algorithmus für das Erfüllbarkeitsproblem kennenlernen, der zumindest für einige wichtige Spzialfälle ein wesentlich besseres Geschwindigkeitsverhalten aufweist. Dieser
sogenannte Resolutionsalgorithms ist auch die Grundlage vieler Programmiersprachen in der LogikProgrammierung wie z.B. von PROLOG (siehe Kapitel 4).
Um uns im Folgenden ein wenig Schreibarbeit zu sparen, führen eine Mengenschreibweise für Formeln
in konjunktiver Normalform ein. Eine Formel F in KNF besteht aus einer ‘ ’-Verknüpfung vieler Klau
seln K1 K2 O Kn . Jede Klausel selbst besteht aus einer ‘ ’-Verknüpfung von Literalen.
Wir schreiben nun jede einzelne Klausel als eine Menge, die alle Literale enthält. So wird z.B. A
B C
zu A B C . Mehrfach auftretende Literale treten dabei in der Menge nur einmal auf. Dies trägt der
Tatsache Rechnung, dass eine Wiederholung des gleichen Literals innerhalb einer Klausel nichts an der
Semantik der Formel ändert (denn A A A). Alle Klausel der Formel F fassen wir wiederum in einer
Menge zusammen. Auch hier unterstützt die Mengenschreibweise die Tatsache, das Mehrfachvorkommen derselben Klausel keinen Einfluss auf die Semantik hat.
Beispiel 1.15.1 Die Formel
F
A B
C
A
E
C D E
C
D
C
entspricht in der neuen Schreibweise der Menge
F
L
A B C A E C D E C D C L
Wichtig ist hierbei, dass es sich bei der Mengenschreibweise tatsächlich nur um eine andere Art der
Darstellung der gleichen Formel handelt. Da nach Abschnitt 1.12 jede Formel F eine KNF besitzt, kann
man auch jede Formel in Mengenschreibweise darstellen.
Wir geben nun eine Regel an, wie man aus zwei Klauseln eine neue gewinnt: den sogenannten Resolventen.
Definition 1.15.2 (Resolvent) Seien K1 K2 und R Klauseln. R ist Resolvent von K1 und K2 , falls es ein
Literal L gibt, sodass L ' K1 und L ' K2 und
R K1 U
L VXWY K2 U
25
L V
Zwei Klauseln K1 und K2 sind also miteinander resolvierbar, wenn es ein Literal L gibt, welches in K1
vorkommt und welches negiert in K2 vorkommt. Der Resolvent entsteht dann, indem man aus K1 das
Literal L entfernt, aus K2 das Literal L entfernt, und die beiden so entstandenen Mengen vereinigt. So
haben z.B. die beiden Klauseln A B C und
A E den Resolventen B C E . Man notiert
einen solchen Resolutionsschritt auch oft in Form eines Resolutions-Diagramms:
PSfrag replacements
A B C
A E C H A
daraus folgt B
B C E A B
E
C
E
Abbildung 1.6: Resolutionsschritte
Warum ist man nun an Resolventen interessiert? Ein Resolvent ist eine logische Konsequenz seiner
beiden Klauseln. Hat man also eine Belegung, die Beide Klauseln wahr macht, so ist auch automatisch
der Resolvent wahr (Vorsicht, das Umgekehrte ist nicht der Fall).
Satz 1.15.3 (Resolvent ist Folgerung seiner Klauseln) Sei K1 und K2 Klauseln und R ein Resolvent
dieser Klauseln. Hat man eine Belegung " mit "& K1 J 1 und "& K2 1, so ist auch "& R J 1.
Beweis: Sei L ' K1 das Literal, welches zur Resolution führt. Nehmen wir an, wir haben eine Belegung
" , die K1 und K2 wahr macht. Wir unterscheiden zwei Fälle.
Fall 1 "& L Z 0: da "& K1 Z 1 ist, muss es in K1 ein weiteres Literal L6 mit "& L60/ 1 geben. Nach
Definition des Resolventen kommt dieses Literal L6 auch in R vor. Da R nur aus mit oder verknüpften
Literalen besteht, gilt somit "& R , 1.
Fall 2 "& L 4 1: Geht analog zu Fall 1. Nur müssen die Rollen von L, L und K1 , K2 vertauscht werden.
Der o.g. Satz hängt auch damit zusammen, dass es sich bei der folgenden Formel um eine Tautologie
handelt (wie man z.B. durch Wahrheitstafel nachprüfen kann):
L F
L G [ F
G Wir kommen auf diesen Sachverhalt später nochmals zurück.
Analogie: Beim Herleiten des Resolventen aus einer Klausel handelt es sich um einen ganz analogen
Vorgang zum Herauslösen von Variablen aus einem Gleichungssystem. Haben wir z.B. zwei Gleichungen
13x U y \ 2w 0 und y \ 5t U 2q 0 so können wir diese addieren und erhalten 13x \ 2w \ 5t U 2q 0.
Die letzte Gleichung ist eine logische Konsequenz der ersten beiden, die Variable y wurde herausgelöst.
Ist R Resolvent zweier Klauseln in F, so können wir R zu den Klauseln von F dazunehmen, ohne die
Semantik von F zu verändern. Nehmen wir alle möglichen Resolventen hinzu, so spricht man von der
Resolventenmenge von F.
Definition 1.15.4 (Resolventenmenge) Sei F eine Formel in KNF.
Res F R D R ist Resolvent zweier Klauseln in F JW F
26
Die Menge Res F besteht also aus allen Klauseln von F und allen möglichen Resolventen von F.
Insbesondere ist Res F wieder eine Formel in konjunktiver Normalform. Es gilt
Satz 1.15.5 F ist semantisch äquivalent zu Res F .
Beweis: Sei " eine zu F passende Belegung und seien K1 H Kn die Klauseln von F. Angenommen
"& F Z 1. In diesem Fall gilt für alle Klauseln "% Ki Z 1. Sei nun R Resolvent zweier Klauseln von
F. Nach Satz 1.15.3 gilt "& R ] 1 Somit werten alle Resolventen unter " zu ’1’ aus. und es gilt
"& Res F , 1.
Sei umgekehrt "& F 0, dann gilt sicher "& Res F , 0, da ja F
Res F .
Wir können nun den Prozess des Hinzunehmens von Resolventen wiederholt anwenden. Wir setzen:
Res0 F F
Res1 F Res Res0 F , Res F Res2 F Res Res1 F , Res Res F ..
.
Resi F , Res Resi ^
..
.
1
F Die Formel Resi F entsteht also durch i-mal wiederholtes Anwenden des Res _+ Operators. Bemerkenswerterweise gibt es dabei einen Punkt, wo bei dieser wiederholten Anwendung keine neuen Klauseln
mehr hinzu kommen.
Satz 1.15.6 (Sättigung der iterierten Resolution) Sei F eine Formel in KNF. Es gibt ein i mit
Resi F Resi `
1
F Beweis: Der Beweis wird in den Übungen durchgeführt. Er ist eine einfache Konsequenz aus der Tatsache, dass es über endlich vielen atomaren Teilformeln nur endlich viele semantisch verschiedene Klauseln geben kann.
Die gesättigte Resolventenmenge wird von uns bald von grosser Bedeutung sein. Für das i aus dem
obigen Satz setzen wir dafür
Res ab F J Resi F Insbesondere gilt:
Satz 1.15.7 F ist semantisch äquivalent zu Res a F .
Beweis: Der Satz folg durch wiederholte Anwendung von Satz 1.15.5. und der Sättigungsaussage von
Satz 1.15.6. Wir haben F Res0 F J Res1 F Nc Resi F ,KV Res a F 27
Wollen wir eine Aussage über die Erfüllbarkeit einer Formel F machen, so liefert Resa F sehr nützliche
Information. Für jedes Modell " von F müssen alle (!) Klauseln in Res a F erfüllt sein. Insbesondere,
wenn Res a F einelementige Klauseln enthält, können wir daraus direkt notwendige Variablenbelegungen von der atomaren Teilformeln von F ablesen.
Beispiel 1.15.8 Betrachten wir wieder die Formel
F
A B
C
A
E
C D E
C
D
C Das folgende Diagramm zeigt einige Resolutionsschritte.
d
dVf
Ce
dVf
PSfrag replacements
f
Dg Ce
dVf
De
dVf
C g Dg E e
d
Cg E e
d
Ce
dVf
Ee
dVf
f
Ag E e
d
Ae
d
f
Ag Bg Ce
f
d
Bg Ce
d
Ce
Be
Abbildung 1.7: Resolutionsschritte
Insbesondere stellen wir fest, dass in Res a F die Literale A, B, C, D und E auftreten. Für jedes
Modell von F müssen diese Literale zu ‘1’ auswerten. Die Belegung A 0, B 1, C 1, D 0, E 1
ist somit das einzig mögliche Modell von F.
28
1.16 Die leere Klausel
In unserer Betrachtung von Resolution und Resolutionsschritten müssen wir der Klausel, welche aus
einer leeren Menge von Literalen besteht, besondere Beachtung schenken. Erinnern wir uns, dass eine
Klausel L1 L2 H Lk einer oder-Verknüpfung L1 L2 Lk der Literale entspricht. Haben wir
eine Klausel L mit nur einem Literal, entspricht diese der Formel L, die nur aus dem Literal selbst
besteht. Tritt die leere Menge als Klausel auf, müssen wir uns Gedanken machen, was es bedeutet, wenn
man eine oder-Verknüpfung über eine leere Menge von Literalen durchführt. Letztlich bleibt uns hierfür
nichts anderes übrig, als dies “willkürlich” zu definieren. Dennoch sollte (um insgesamt ein stimmiges
System zu erhalten) diese Definition so getroffen werden, dass sie mit Eigenschaften in Einklang steht,
die man von verknüpften Literalen erwartet; und die wir später noch ausnutzen werden. Dies schränkt
uns, wie die folgenden Überlegungen zeigen, in der Wahl der Möglichkeiten für die Definition kräftig
ein.
Betrachten wir hierzu nochmals die Klausel L1 L2 H Lk . Für eine bestimmte Belegung " evaluiert
diese zu ’1’ genau dann, wenn es wenigstens ein Li in der Klausel gibt mit "% Li . 1. Übertragen wir
diese Eigenschaft auf die Menge , welche kein Literal enthält, so müssen wir diese singemäss immer
zu ’0’ auswerten (in gibt es kein Literal, das zu ’1’ auswertet). Wir definieren somit "& V/ 0 für
beliebige Belegungen " .
Bemerkung: Analog kann man argumentieren, dass eine und-Verknüpfung über eine leere Menge immer zu ’1’ evaluiert.
In Übereinstimmung mit der restlichen Logikliteratur führen wir für die aus der leeren Menge
hende Klausel noch das Zeichen ’ h ’ ein.
beste-
Unsere Definition "&ihCJ 0 steht in schönem Einklang mit der folgenden Beobachtung:
Satz 1.16.1 Ist hK' Resa F , so ist F unerfüllbar.
Beweis: Sei F eine Formel und hP' Res a F . Die leere Klausel h kann nur durch einen Resolutionsschritt zweier Klauseln der Form L und
L entstanden sein. Also gibt es ein Literal L mit
L j' Res a F und L k' Res a F . In jeder Belegung " mit "& F 1 muss wegen Satz 1.15.7 gelten
"& L 1 und "& L J 1. Dies ist aber unmöglich, also ist F unerfüllbar.
Beispiel 1.16.2 Wir zeigen mit Resolution die Unerfüllbarkeit der folgenden Klauselmenge:
F
L
A B A B L
Wir können die folgenden Resolutionsschritte durchführen:
A B
PSfrag replacements A
B
B
h
Also hK' Res a F , und nach Satz 1.16.1 folgt die Unerfüllbarkeit von F.
29
1.17 Exkurs: Beweismethoden
Im nächsten Kapitel werden wir uns damit beschäftigen, die Umkehrung von Satz 1.16.1 zu zeigen: “Ist
F unerfüllbar, so liegt h in Resa F .“ Bevor wir uns jedoch an dieses nicht ganz leichte Unterfangen
wagen, möchte ich an dieser Stelle noch ein paar prinzipielle Worte zu Beweisverfahren sagen.
Dem aufmerksamen Leser wird aufgefallen sein, dass wir uns beim Durchführen von formalen Beweisen auf dieser elementaren Stufe der Logik immer ein wenig aufs Glatteis begeben. Wie eingangs des
Skriptes erwähnt, soll ja Logik gerade (unter anderem) dazu da sein, die formalen Grundlagen des mathematischen Beweisens zu schaffen. Fängt man nun aber an, formale Beweise zu verwenden, um damit
die Grundlagen des formale Beweisens zu schaffen, läuft man ständig Gefahr, sich in einen Zirkelschluss
zu verfangen, der das ganze Gedankengebäude zum Einstürzen bringen kann. Wir werden später sehen,
das es hierfür Möglichkeiten gibt, sich quasi an den eigenen Haaren aus dem Sumpf zu ziehen“. Man
”
formuliert das Beweisen als einen rein syntaktischen Prozess der Formelmanipulation und stellt später
fest, dass dieser Beweisbegriff mit dem mehr oder weniger intuitiven Beweisbegriff übereinstimmt. Der
Rahmen unserer Vorlesung gestattet es jedoch im Moment nicht, auf diese Subtilitäten einzugehen, da
diese insbesondere einen erheblich grösseren technischen Aufwand benötigen. Wir gehen mehr oder weniger davon aus, dass irgend ein Logiker diese Arbeit bereits für uns gemacht hat und wir uns mit unseren
Beweisen, sofern wir uns nur an bestimmte Regeln halten, auf sicherem Boden befinden.
Dennoch möchte ich an dieser Stelle einmal explizit aufzählen, welche dieser Regeln bei unseren Beweisen ständig wiederverwendet werden. Viele dieser Regeln erscheinen nahezu banal und bedürfen
anscheinend keiner weiteren Begründung. Dennoch sollte man sich darüber im Klaren sein, dass es sich
beim Anerkennen dieser Regeln letztlich um eine Art gesellschaftliche Konvention handelt.
1.17.1 Schlussregel
Haben wir die Aussage Aus A folgt B“ bereits bewiesen, und wissen wir ferner, das die Aussage A“
”
”
wahr ist, so dürfen wir aus beiden Aussagen zusammen B“ folgern.
”
Wir haben hiervon z.B. beim Beweis von Satz 1.16.1 gebrauch gemacht. Einer der Beweisschritte bestand
(bei näherer Betrachtung) aus der folgenden Argumentation:
Wir wissen Aus "% F 1 folgt "& Res a F , 1“
”
und wissen "% F , 1“
”
also gilt "& Res a F , 1“.
”
1.17.2 Widerspruchsbeweis
Ein häufiges Muster zum Beweisen eines Sachverhaltes A“ ist der sogenannte Widerspruchsbeweis.
”
Man nimmt dazu temporär die Wahrheit der negierten Aussage A“ an und führt diese Aussage zu
”
einem Widerspruch. Widerspruch heisst hierbei, das man sowohl eine weitere Aussage B“ als auch
”
deren Negation B“ folgern kann. Diese können nicht gleichzeitig wahr sein, also muss die Annahme
”
A“ falsch gewesen sein und somit die eigentlich zu beweisende Aussage A“ stimmen.
”
”
Auch hiervon wurde im Beweis von Satz 1.16.1 Gebrauch gemacht. Um zu zeigen, dass F unerfüllbar
ist, nahmen wir vorübergehend an, es gäbe ein " mit "& F , 1. Daraus konnten wir wiederum folgern,
dass sowohl "& L J 1 als auch "& L kl 1 gelten muss: ein Widerspruch.
30
1.17.3 Vollständige Induktion
Eine weitere Beweistechnik ist die sogenannte vollständige Induktion. Vollständige Induktion wird oft
angewandt, wenn man nicht nur eine Aussage, sondern eine (abzählbar) unendliche Klasse von Aussagen
beweisen will. Abzählbar heisst hierbei, dass man die Aussagen durchnumerieren kann. Also angenommen wir haben eine unendliche Sequenz von Aussagen A0 A1 A2 und wollen die Aussage Für alle i
”
gilt Ai“ beweisen. Wir stehen hierbei vor dem Problem, dass wir womöglich nicht unendlich viele direkte
Beweise angeben können (und wollen). Einen Ausweg schafft die Methode der vollständigen Induktion.
Hierzu muss man zwei Aussagen beweisen:
1. A0 ist wahr“ (Induktionsanfang).
”
2. Aus Ai folgt Ai` 1“ (Induktionsschluss).
”
Hiermit hat man zwar nicht unendlich viele Beweise aufgeschrieben, aber eine Methode angegeben, wie
man im Bedarfsfall jede einzelne dieser Aussagen (unter Verwendung der Schlussregel) herleiten kann.
Verlangt jemand z.B. einen expliziten Beweis der Aussage A3 so kann man argumentieren
A ist wahr und aus A0 folgt A1 . Also ist auch A1 wahr.“
” 0
A ist wahr und aus A1 folgt A2 . Also ist auch A2 wahr.“
” 1
A ist wahr und aus A2 folgt A3 . Also ist auch A3 wahr.“
” 2
Diese Argumentation geht natürlich für jede beliebige Aussage Ai , die Schlusskette wird bloss länger.
Beispiel 1.17.1 Wir wollen zeigen, dass
n
n2 \ n
2
∑ j
j= 1
Wir zeigen zunächst, dass die Aussage für n=1 gilt: ∑1j =
Nun zeigen wir, dass aus der Aussage ∑ij =
i` 1
i
∑ j ∑ j\
j= 1
j= 1
i\ 1 i2 \ i
\ i\ 1 2
1
j
i2 ` i
2
1
j 1
12 ` 1
2 die Aussage ∑ij` =
i2 \ i 2i \ 2
\
2
2
1
1
j Gm i `
1n 2 ` i` 1n
2 m
i2 \ 2i \ 1 \ i \ 1
2
i\
folgt.
1
2 \o
1.18 Hauptsatz der Resolution
Wir zeigen nun, dass auch die Umkehrung von Satz 1.16.1 gilt.
Satz 1.18.1 (Hauptsatz der Resolution) F ist genau dann erfüllbar, wenn h#' l Res a F .
31
2
i \ 1
Beweis: Nachdem wir die eine Richtung des Beweises bereits durch Satz 1.16.1 abgedeckt haben, verbleibt zu zeigen, dass aus der Unerfüllbarkeit von F die Aussage hp' Resa F folgt. Ohne Beschrängung
der Allgemeinheit, können wir annehmen, dass F keine Klausel K enthält, die gleichzeitig ein Literal L
und dessen Negation L enthält. Eine solche Klausel wäre nämlich eine Tautologie und würde keinerlei
Beitrag zur gesamten Formel leisten.
Wir führen den Beweis durch vollständige Induktion über die Anzahl der atomaren Teilformeln, die in F
auftreten.
Induktionsanfang: Wir zeigen zunächst, dass die Aussage für alle Formeln mit lediglich einem Atom
A gilt. Eine solche Formel kann (unter unserer obigen Annahme) nur die Klauseln A und A ent
halten.
Enthält sie nur eine dieser Klauseln, so ist sie erfüllbar. Unerfüllbar ist also nur die Formel
L
F
A A L . Ein Resolutionsschritt zeigt hK' Res F .
Induktionsschluss: Nunmehr wollen wir aus der Tatsache, dass die Behauptung für alle Formeln mit
höchstens i Atomen gilt, zeigen, dass sie auch for alle Formeln mit höchstens i \ 1 Atomen gilt. Wir
können also als Induktionsannahme voraussetzen, dass für alle Formeln F mit i Atomen A1 Ai gilt:
“Aus F unerfüllbar folgt hK' Res a F ”.
Sei nun F unerfüllbar mit Atomen A1 O Ai Ai ` 1 . Wir betrachten fünf verschiedene Megen von Klauseln.
(Alle Klauseln, die Ai ` 1 enthalten.)
F0 K D K ' F Ai` 1 ' K (Alle Klauseln, die Ai ` 1 enthalten.)
F1 K D K ' F Ai ` 1 ' K (Alle Klauseln, die weder Ai noch Ai ` 1 enthalten.)
G F U F0 W F1 F06 K U Ai` 1 XD K ' F0 F16 K U
Ai ` 1 XD K ' F1 Unsere allgemeine Annahme, dass F keine Klauseln enthält, die gleichzeitig ein Literal und seine Negation enthalten, zeigt, dass F die disjunkte Vereinigung der Mengen F0 , F1 und G ist. Das heisst jede
Klausel von F kommt in genau einer dieser drei Mengen vor.
Wir machen nun eine Folge einfacher Beobachtungen:
(1) Falls G unerfüllbar, dann gilt (nach Induktionsvoraussetzung) hq' Res a G und damit hq' Res a F .
Wir können bis auf weiteres also die Annahme machen, dass G erfüllbar ist. Zur späteren Referenz
bezeichnen wir diese Aussage mit srV .
(2) G W F06 ist unerfüllbar.
Beweis: Wäre G W F06 erfüllbar mit Belegung " : A0 O Ai t
1 0 , so wählt man einfach
" i ` 1 0. Diese Belegung erfüllt G F0 und F1 . Dies ist ein Widerspruch zur Unerfüllbarkeit von
F.
(3) G W F16 ist unerfüllbar.
Beweis: analog zu (2).
(4)
hK'
Res a G W F06 Beweis: G W F06 hat nur i Atome und ist nach (2) unerfüllbar. Die Induktionsvoraussetzung impliziert, dass h' Res a G W F06 . Zur weitern Referenz bezeichnen wir die hier zum Herleiten von h
verwendeter Resolutionsfolge mit u 0 .
(5)
hK' Res a G W F16 Beweis: wie bei (4). Zur weitern Referenz bezeichnen wir die hier zum Herleiten von h verwendeter Resolutionsfolge mit u 1 .
32
(6) Ai ` 1 ' Res a G W F0 Beweis: Wir betrachten die Resolutionsfolge u 0 . Wir stellen zunächst fest, dass, weil G wegen
(*) erfüllbar ist, an u 0 mindestens eine Klausel aus F06 beteiligt ist. Nun ersetzen wir in u 0 jedes
Vorkommen einer Klausel K aus F06 durch die entsprechende Klausel K W Ai ` 1 aus F0 . Führen
wir die so veränderte Resolutionsfolge aus, so erzeugt diese das Literal Ai ` 1 .
(7)
(8)
Ai` 1 ' Res a G W F1 Beweis: analog bei (6) nur mit u
1
als Resolutionsfolge.
hK'
Res a F Beweis: Diese Aussage folgt direkt aus aus (6) und (7) und einem Resolutionsschritt.
Aussage (8) ist genau unsere herzuleitende Tatsache.
1.19 Resolutionsalgorithmus
Die Erkenntnisse der letzten Abschnitte können wir direkt in einen Algorithmus umformen, der entscheidet, ob eine Formel erfüllbar ist oder nicht. Wir müssen einfach der Reihe nach immer neue Resolventen
herleiten und feststellen, ob irgendwann dabei h in der Resolventenmenge auftaucht. In etwas salop”
per“ Schreibweise lässt sich der Algorithmus wie folgt formulieren (hierbei sind F und G geeignete
Datenstrukturen für Klauselmengen):
Algorithmus 1.19.1
Eingabe: Eine Formel F in KNF.
Ausgabe: Ja“ wenn F erfüllbar ist. Nein“ sonst.
”
”
repeat
G : F;
F : Res F ;
until
ihK'
F or F
G
if hK' F write(“No”);
else write(“Yes”);
Nach allem bisher Gesagten ist es klar, wie der Algorithmus arbeitet. Bei der sukzessiven Hinzunahme
von Resolventen, wird entweder irgendwann die leere Klausel h erzeugt. Dann sind wir fertig und wissen, dass F unerfüllbar ist. Oder es wird auf Grund der Sättigungseigenschaft der iterierten Resolution
der Punkt erreicht, an dem keine neuen Resolventen mehr erzeugt werden können und h noch nicht
abgeleitet wurde. Dann sind wir fertig und wissen nach Satz 1.18.1, dass F erfüllbar ist.
1.20 Folgerung von Literalen
Wir werden später, wenn wir die Logikprogrammiersprache PROLOG behandeln, sehen, dass man häufig
das Ziel hat, für eine gegebenen Formel F zu entscheiden, ob aus ihr ein bestimtes Literal L folgt. (Mit
anderen Worten: zu entscheiden ob für jede Belegung, mit "& F 1 automatisch "% L , 1 gilt).
33
Dar Hauptsatz der Resolution gestattet uns nun, in einem solchen Fall mit dem Resolutionsalgorithmus
zu überprüfen.
Satz 1.20.1 Sei F eine Formel in KNF und L ein Literal. L ist Folgerung von F genau dann, wenn
L V .
hK' Res a F W
Beweis: Nach Satz 1.18.1 genügt es zu zeigen, dass die Aussage L ist Folgerung von F“ gleichwertig
”
mit der Unerfüllbarkeit von F W
L ist. Sei also L Folgerung von F. Entweder ist F selbst unerfüll
bar, oder es gibt eine Belegung " mit "& F Z 1. Dann gilt aber auch "& L ! 1. Somit ist F W
L
unerfüllbar. Sei umgekehrt F W
L unerfüllbar. Entweder ist bereits F unerfüllbar, womit L trivialer
weise Folgerung von F ist. Andernfalls gibt e eine Belegung mit "% F J 1. Für diese muss aber, wegen
der Unerfüllbarkeit von F W
L gelten: "& L , 1. Somit ist L Folgerung von F.
Man könnte zunächst meinen, das Zeigen der Unerfüllbarkeit von F W
L sei ein umständlicher Weg,
um zu beweisen dass L Folgerung von F ist. In der Tat wird in vielen Fällen L einfach selbst in der
iterierten Resolventenmenge von F auftauchen. Dies muss jedoch nicht der Fall sein, wenn F unerfüllbar
ist. Das durch Satz 1.20.1 nahegelegte Verfahren fasst auf einfachste Weise diese beiden Fälle zusammen.
1.21 Hornklauseln
Abschliessend wollen wir unser Augenmerk noch auf eine spezielle Form von Klausen richten, die sogenannten Hornklauseln.
Definition 1.21.1 Eine Klausel, die höchstens ein positives Literal enthält heisst Hornklausel.
Hornklauseln sind aus zwei Gründen sehr wichtig. Erstens kann für eine Formel F, die nur aus mehreren Hornklauseln besteht relativ schnell“ entschieden werden, ob h1' Res a F . Zweitens modellieren
”
Hornklauseln genau das Auftreten von Fakten“, Regeln“ und Anfragen“ in einer Datenbank.
”
”
”
Um dies einzusehen, machen wir uns zunächst klar, welche Formen eine Hornklausel annehmen kann.
Betrachten wir eine Formel F welche eine Hornklausel K enthält.
Fall 1: Die Hornklausel K besteht nur aus einem einzigen positiven Literal L. Eine Belegung " , die F
wahr macht, muss dann notwendig "& L J 1 haben. Das Literal L ist ein Faktum.
Fall 2:
haben
Die Hornklausel K habe die Form
K
H1
Hk C
H1 Hk C für atomare Formeln H1 O Hk C. Wir
H1
Hk C
H1
Hk C
Sind in einer Belegung mit "& F 5 1 die Atome H1 Hk mit ’1’ belegt, so muss auch "& C 1 gelten.
Eine solche Hornklausel kann auch als Regel aufgefasst werden. Die Hypothesen H1 Hk implizieren
die Konklusion C.
Fall 3: Etwas subtiler ist der Fall wenn K lediglich aus negierten Literalen besteht. Sei K mit Atomen Q1 O Qk . Wir haben dann
K
Q1
Qk
Q1
Q1 Qk Qk Nehmen wir weiter an, dass F ansonsten nur aus Hornklauseln der Formen aus Fall 1 und Fall 2 besteht,
so können wir die Klausel K als die folgende Anfrage (Query) auffassen: Folgt aus allen Fakten und
”
Regeln in F die Aussage Q1 Qk ?“ Dies ist genau dann der Fall, wenn F W K unerfüllbar ist.
34
Beispiel 1.21.2 Betrachten wir die folgende Ansamlung von einem Faktum und vier Regeln:
1:
2:
3:
4:
5:
A
A B
A C D
A B C
B D E
Wir können all diese Klauseln in einer KNF, welche nur aus Hornklauseln besteht, zusammenfassen.
F
L
A A B A
C D A
B C B
D E L
Wir können F als Datenbank“ von Regeln und Fakten auffassen. An diese kann man jetzt zum Beispiel
”
die Anfrage gilt ’E’?“ stellen. Hierzu muss (nach Abschnitt 1.20) lediglich die Nicht-Erfüllbarkeit von
”
FW
E nachgewiesen werden. (Man beachte das E eine weitere Hornklausel ist.) Dies kann z.B. mit
dem Resolutionsalgorithmus geschehen. Aber auch ohne Resolutionsalgorithmus kann man sich leicht
klarmachen, dass E aus den Regeln und Fakten der Datenbank folgt. Faktum ’1’ in unserer Liste erzwingt, dass in jeder Belegung " die F wahrmacht "& A Z 1 gelten muss. Aus Regel ’2’ erhält man
dann "& B 5 1. Regel ’4’ liefert dann mit (zusammen mit "% A 5v"& B 5 1), dass auch "& C 3 1 gelten
muss. Regel ’3’ liefert nun "& D J 1. Schliesslich liefert Regel ’5’ gerade "& E 1. Diese Ableitungsfolge lässt sich natürlich eins zu eins in eine Resolutionsfolge übersetzen.
Für das Bearbeiten von Anfragen auf durch Hornklauseln gegebenen Datenbanken aus Regeln und Fakten
gibt es wesentliche effektivere Verfahren als das sture Ableiten aller möglichen Resolventen. Man kann
versuchen die Regelstruktur direkt auszunutzen. Hierbei gibt es zwei prinzipielle Vorgehensweisen:
bottom-up: Man markiert zunächst alle Fakten als bewiesene Aussagen“. Ausgehend hiervon markiert
”
man alle Literale als bewiesen“, die sich durch Regeln aus den schon bewiesenen Aussagen ableiten
”
lassen. Dies macht man solange bis entweder die Anfrage als bewiesene Aussage“ erreicht wird, oder bis
”
keine weiteren Aussagen bewiesen werden können. Dieses Markierungsalgorithmus genannte Verfahren
hat den Nachteil, dass eventuell viele Aussagen abgeleitet werden, die zur Anfrage überhaupt keinen
Beitrag leisten. Die in unserem Beispiel verfolgte Strategie entsprach genau diesem Vorgehen.
top-down: Man geht von der Anfrage aus und sucht nach Regeln, aus denen die Anfrage abgeleitet
werden kann. Die in diesen Regeln aufretenden Hypothesenliterale fasst man als neue Anfragen auf, die
rekursiv“ bearbeitet werden. Entweder kann man letztlich jede Anfrage auf Fakten zurückführen, oder
”
mann bleibt irgendwann stecken. Dieses Vorgehen entspricht dem in der Programmiersprache PROLOG
zumeist implementierten Algorithmus.
Beispiel 1.21.3 In userem obigem Beispiel würde eine top-down Strategie ungefähr so aussehen. Wir
wollen E beweisen. Regel ’5’ sagt, dass wir das nur erreichen wenn wir zunächst B und D beweisen.
Regel ’2’ sagt, dass B aus A bewiesen werden kann. Fakt ’1’ sagt, dass A aber Faktum ist. Somit ist B
bewiesen. Es bleibt also noch D zu beweisen. Und so weiter 1.22 Ein Ausblick auf PROLOG
Die Sprache PROLOG macht explizit Gebrauch davon, Fakten, Regeln und Anfragen als Hornklauseln
zu formulieren. Es wird allerdings eine zusätzliche Freiheit geschaffen: die Regeln dürfen Variablen
beinhalten, die durch beliebige Namen“ ersetzt werden dürfen. Eine PROLOG-Regel kann somit für
”
35
eine unendliche Menge von Regeln stehen, die entstehen, wenn man für eine solche Variable beliebige
Werte einsetzt.
Zum besseren Verständnis betrachten wir ein kleines konkretes PROLOG Programm zu Thema Fami”
lenbeziehungen“:
1:
2:
3:
4:
5:
6:
vater(adam,bertold).
vater(bertold,claus).
vater(adam,dieter).
bruder(X,Y):-vater(Z,X),vater(Z,Y).
opa(X,Y):-vater(X,Z),vater(Z,Y).
onkel(X,Y):-vater(Z,Y),bruder(Z,X).
Aussagen der wie vater(adam,claus) oder opa(dieter,adam) werden gelesen als Adam ist Vater
”
von Claus“ bzw. Dieter ist Opa von Adam“ und übernehmen die Rolle der atomaren Formeln. Sie
”
können entweder wahr oder falsch sein.
Bei den ersten drei Zeilen des Programms handelt es sich um Fakten. Die letzten drei Zeilen des Programms stellen Regeln dar. Jede Regel repräsentiert hierbei gleichzeitig alle Regeln, die entstehen wenn
man X, Y und Z durch beliebige Namen ersetzt. Hierbei muss der selbe Buchstabe innerhalb einer Regel
immer durch den selben Namen ersetzt weden. Die Regel opa(X,Y):-vater(X,Z),vater(Z,Y) besagt also, dass wenn z.B. vater(adam,bertold) und vater(bertold,claus) bereits bewiesen wurde,
auch die Aussage opa(adam,claus) gefolgert werden kann.
Typischerweise fasst man nun ein solches PROLOG-Programm als eine Datenbank auf, an die bestimmt Anfragen gestellt werden können, welche die Datenbank versucht mit JA oder NEIN zu beantworten. Die Suche der Antwort wird hierbei über Resolution durchgeführt. Wir wollen z.B. wissen ob
onkel(dieter,claus) gilt. In PROLOG Syntax stellen wir die Anfrage:
?-onkel(dieter,claus).
Prolog geht zum Beantworten dieser Frage ungefähr wie folgt vor: Aus Zeile ’6’ erkennt man dass
onkel(dieter,claus) nur gefolgert werden kann, wenn man ein Z findet mit vater(Z,claus) und
bruder(Z,dieter). Nun wird festgestellt, das nur in Zeile ’2’ die Möglichkeit besteht ein geeignetes Z
zu finden um vater(Z,claus) zu erfüllen. Es muss also gelten Z=bertold. Nunmehr bleibt zu zeigen
dass bruder(bertold,claus) ableitbar ist. Zeile ’4’ besagt, dass dies möglich ist, sofern ein (neues) Z
gefunden wird, welches vater(Z,dieter) und auch vater(Z,bertold) erfüllt. Die einzige Möglichkeit hierfür ist (Zeile ’1’ und ’3’) durch Z=adam gegeben, welches diese Forderung auch wirklich erfüllt.
Die Anfrage kann somit mit JA beantwortet werden.
Wir werden uns im vierten Teil der Vorlesung noch sehr ausführlich mit PROLOG beschäftigen. Allein
das eben diskutierte Beispiel zeigt, dass es dazu nötig sein wird, in vernünftiger formaler Weise mit
Variablen umzugehen, Aussagen über Existenz bestimmter Namen“ machen zu können, unendliche
”
Mengen von Regeln zu verwalten usw. Hiermit beschäftigt sich der zweite Teil unserer Vorlesung die
Prädikatenlogik“, den wir nunmehr betreten.
”
36
Herunterladen