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