Logik für Informatik Sommersemester 2003 Mathias Kegelmann Technische Universität Darmstadt Fachbereich Mathematik 20. Mai 2003 V. Resolution A Heute werden wir ein Beweisverfahren kennen lernen, das sich besonders gut zur maschinellen Implementierung eignet. Die Grundidee ist dabei die folgende. Zunächst übersetzt man das Problem der Allgemeingültigkeit einer Formel in ein Erfüllbarkeitsproblem: Sei dazu A ∈ PROP eine aussagenlogische Formel. Diese ist genau dann eine Tautologie, also allgemeingültig, wenn ¬A unerfüllbar ist. Man kann das Resolutionsverfahren auf mehrere Weisen verstehen, z.B. als Versuch eine Belegung zu konstruieren, die ¬A wahr macht. Scheitert dies, so ist ¬A unerfüllbar und somit A eine Tautologie. 1 Normalformen Das Resolutionsverfahren arbeitet nicht mit beliebigen Formeln sondern mit einer gewissen Repräsentation der konjunktiven Normalform. Wir sind (disjunktiven) Normalformen bereits im letzten Semester (Abschnitt A.2.4) und auch beim Beweis des Vollständigkeitssatzes (siehe Lemma 3.7) begegnet. Hier noch einmal die relevanten Begriffe: Definition 5.1. Ein Literal ist entweder eine atomare Aussage oder eine negierte atomare Aussage, also von der Form A oder ¬A für ein A ∈ ATOM. Eine Aussage B ∈ PROP ist in konjunktiver Normalform, wenn es eine Konjunktion von Disjunktionen von Literalen ist. Lemma 5.2. Jede aussagenlogische Formel ist zu einer in konjunktiver Normalform äquivalent. Dieses Lemma kann man auf viele Arten beweisen. Z.B. ist es eine Konsequenz aus Korrektheit und Vollständigkeit, da man die (kanonische) konjunktive Normalform an der Wahrheitstafel ablesen kann. In der Praxis will man aber gerade vermeiden, die gesamte Tafel aufzustellen. Also stellt sich die Frage, wie man zu einer gegeben Formel eine äquivalente in Normalform schnell bestimmen kann. Dabei kann man z.B. nach folgenden Schritten vorgehen: • Zunächst ersetzt man Implikationen A → B durch den äquivalenten Ausdruck ¬A → B. • Mit den de Morganschen Regeln ¬(A ∧ B) ∼ = ¬A ∨ ¬B und ¬(A ∨ B) ∼ = ¬A ∧ ¬B bringt man die Negationen nach “innen”. • Doppelte Negationen kann man wegen ¬¬A ∼ = A weglassen. • Schließlich benutzt man das Distributivgesetz A∨(B∧C) ∼ = (A∨B)∧(A∨C), um die Konjunktionen nach “außen” zu bekommen. Beispiel 5.3. Wir bestimmen eine konjunktive Normalform für die Formel ¬ (A → B) → (¬B → ¬A) nach diesem Verfahren: ¬ (A → B) → (¬B → ¬A)) ∼ = ¬ ¬(¬A ∨ B) ∨ (¬¬B ∨ ¬A) ∼ = ¬ ¬(¬A ∨ B) ∨ (B ∨ ¬A) ∼ = ¬¬(¬A ∨ B) ∧ ¬(B ∨ ¬A) ∼ = (¬A ∨ B) ∧ ¬(B ∨ ¬A) ∼ = (¬A ∨ B) ∧ (¬B ∧ ¬¬A) ∼ = (¬A ∨ B) ∧ ¬B ∧ A 1.1 Klauseln Eine Aussage in konjunktiver Normalform besteht aus einer Konjunktion von Disjunktionstermen D1 ∧ D2 ∧ · · · ∧ Dn und eine solche Formel ist genau dann unerfüllbar, wenn {D1 , D2 , . . . , Dn } unerfüllbar ist. Die Di sind von der Form Di = L1 ∨ L2 ∨ · · · ∨ Lm wobei die Lj Literale also entweder A oder ¬A für ein A ∈ ATOM sind. Einen solchen Disjunktionsterm Di können wir also einfach durch eine Menge von Literalen kodieren. Definition 5.4. Eine Klausel ist eine endliche Menge von Literalen, und eine Klauselmenge ist eine Menge von Klauseln. Jede konjunktive Normalform können wir also durch eine Klauselmenge kodieren. Da wir auch wissen, wie man eine beliebige Aussage in eine äquivalente konjunktive Normalform überführt, können wir nach der entsprechenden Umformung jede Aussage durch eine Klauselmenge repräsentieren. Beispiel 5.5. Wir setzten Beispiel 5.3 fort. Die Formel ¬ (A → B) → (¬B → ¬A) ist äquivalent zur konjunktiven Normalform (¬A ∨ B) ∧ ¬B ∧ A. Diese entspricht der Klauselmenge {¬A, B}, {¬B}, {A} . Es kann passieren, dass man beim Umformen einer Aussage redundante Disjunktionsterme bekommt: Jeder Ausdruck der Form A ∨ ¬A ∨ C ist unter jeder Belegung wahr und kann deshalb in einer Konjunktion weggelassen werden. Das motiviert folgende Definition. Definition 5.6. Eine Klausel K heißt reduziert, wenn sie für kein Atom A ∈ K dessen Negation ¬A enthält. Eine Klauselmenge heißt reduziert, wenn alle ihre Klauseln reduziert sind. Beispiel 5.7. Die Klauselmenge {¬A, B}, {¬B}, {A} aus Beispiel 5.5 ist reduziert. 2 Erfüllbarkeit Wir interessieren uns nun für die Unerfüllbarkeit solcher Klauselmengen. Wir verstehen darunter die Unerfüllbarkeit der konjunktiven Normalform, der solche Klauselmengen entsprechen. Eine Belegung ρ macht eine Klausel K wahr, wenn sie eine ihrer Literale L ∈ K wahr macht, also JLKρ = w erfüllt. Sie macht eine Klauselmenge wahr, wenn sie alle ihre Klauseln wahr macht. Bei der Frage nach der Erfüllbarkeit einer Klauselmenge können wir uns auf reduzierte Mengen beschränken, indem wir alle nicht-reduzierten Klauseln einfach weglassen, da sie zur Erfüllbar- bzw. Unerfüllbarkeit der Klauselmenge nichts beitragen. Es ist an dieser Stelle wichtig sich den Unterschied zwischen der leeren Klausel und der leeren Klauselmenge klar zu machen: • Die leere Klausel ∅ entspricht der leeren Disjunktion und somit ⊥. Somit ist diese Klausel unter keiner Belegung erfüllt und somit jede Klauselmenge, die ∅ enthält, unerfüllbar. • Die leere Klauselmenge ∅ entspricht der leeren Konjunktion und somit > und ist somit unter jeder Belegung erfüllt. Diese Spezialfälle, die bei unserer Definition von konjunktiver Normalform notationelle Probleme machen, sind also bei der Darstellung als Klauselmengen automatisch mitbehandelt. Das Resolutionsverfahren geht nun grob wie folgt vor. Beginnend mit einer Klauselmenge erzeugt man iterativ neue Klauseln, die zusammen mit den bisherigen Klauseln erfüllbar sein müssen, wenn die ursprüngliche Klauselmenge simultan erfüllbar ist. Kann man dabei ∅ — also eine bereits für sich unerfüllbare Klausel — herleiten, so ist damit auch die ursprüngliche Klauselmenge unerfüllbar. 2.1 Resolutionsschritt Die Grundidee steckt in folgender Beobachtung: Satz 5.8. Seien K ∪ {A} und K 0 ∪ {¬A} Klauseln sowie ρ eine Variablenbelegung, die diese beiden Klauseln wahr macht. Dann macht ρ auch K ∪ K 0 wahr. Beweis. Sei ρ eine Variablenbelegung, die K ∪ {A} und K 0 ∪ {¬A} erfüllt. Es gilt entweder ρ(A) = f oder ρ(¬A) = f. Im ersten Fall gibt es L ∈ K mit JLKρ = w und im zweiten Fall ein solches L ∈ K 0 . Also hat man in beiden Fällen ein L ∈ K ∪ K 0 mit JLKρ = w, und somit macht ρ die Klausel K ∪ K 0 wahr. Daraus können wir nun unmittelbar folgendes schließen: Korollar 5.9. Sei M eine erfüllbare Klauselmenge und K ∪ {A}, K 0 ∪ {¬A} ∈ M . Dann ist auch M ∪ {K ∪ K 0 } erfüllbar. Beweis. Ist M erfüllbar, dann gibt es eine Belegung ρ, die alle Klauseln in M also insbesondere auch K ∪ {A} und K 0 ∪ {¬A} wahr macht. Nach Satz 5.8 erfüllt ρ dann aber auch K ∪ K 0 und somit ist M ∪ {K ∪ K 0 } (durch ρ) erfüllbar. Die Menge {K ∪K 0 } heißt auch die Resolvente von K ∪{A} und K 0 ∪{¬A}. Das Korollar zeigt uns somit, wie wir nach und nach Resolventen zu einer Klauselmenge hinzufügen können, ohne die Erfüllbarkeit der Klauselmenge zu verändern. Das Hinzufügen einer solchen Resolvente nennen wir einen Resolutionsschritt. Korollar 5.10. Sei M eine Klauselmenge, für die wir in endlich vielen Resolutionsschritten die leere Klausel ∅ erzeugen können. Dann ist M unerfüllbar. Beispiel 5.11. Wir kehren zurück zu Beispiel 5.3 und 5.5. Wir können folgende Resolutionsschritte ausführen, wobei wir die beiden verwendeten Klauseln jeweils unterstreichen: {¬A, B}, {¬B}, {A} {¬A, B}, {¬B}, {A}, {¬A} {¬A, B}, {¬B}, {A}, {¬A}, ∅ Da in dieser letzten Klauselmenge die leere Klausel ∅ vorkommt, ist diese unerfüllbar. Damit ist auch die ursprüngliche Klauselmenge {¬A, B}, {¬B}, {A} unerfüllbar. Das bedeutet aber, dass diekonjunktive Normalform (¬A ∨ B) ∧ ¬B ∧ A und die äquivalente Formel ¬ (A → B) → (¬B → ¬A) unerfüllbar sind. Also ist (A → B) → (¬B → ¬A) eine Tautologie. 3 Resolutionsverfahren Im vorangegangenen Abschnitt haben wir eigentlich bereits das ganze Resolutionsverfahren erklärt; fassen wir es aber noch einmal zusammen: • Wir wollen zeigen, dass eine Formel A eine Tautologie ist. Dazu zeigen wir die Unerfüllbarkeit von ¬A wie folgt. • Zuerst überführen wir ¬A in konjunktive Normalform. • Diese Normalform repräsentieren wir durch eine Klauselmenge M , wobei wir nur reduzierte Klauseln aufnehmen. • Jetzt bilden wir iterativ Resolventen und nehmen diese, falls sie reduziert sind, zu unserer Klauselmenge hinzu; entstehen nicht-reduzierte Klauseln, so ignorieren wir diese. • Sobald wir die leere Klausel erhalten, wissen wir, dass unsere Klauselmenge und somit ¬A unerfüllbar ist, was die Allgemeingültigkeit von A zeigt. • Erhalten wir keine neuen Resolventen mehr (und wir haben ∅ noch nicht als Resolvente bekommen), so ist A keine Tautologie, wie wir später im Vollständigkeitsbeweis sehen werden. Beispiel 5.12. Als weiteres Beispiel zeigen wir nun mit dieser Methode, dass (A → B) → A → A eine Tautologie ist. Wir erhalten die konjunktive Normalform ¬ (A → B) → A → A ∼ ¬ ¬ ¬(¬A ∨ B) ∨ A ∨ A = ∼ = ¬(¬A ∨ B) ∨ A ∧ ¬A ∼ = (A ∧ ¬B) ∨ A ∧ ¬A ∼ = A ∧ (¬B ∨ A) ∧ ¬A und somit die Klauselmenge {A}, {A, ¬B}, {¬A} . Aus der Resolution von {A} und {¬A} erhalten wir sofort ∅ und somit ist (A → B) → A → A eine Tautologie. 3.1 Korrektheit Es stellt sich nun natürlich die Frage, ob das Resolutionsverfahren korrekt ist. Wegen Korollar 5.10 ist klar, dass jede Formel, die vom Verfahren als Tautologie erkannt wird, auch tatsächlich eine Tautologie ist. Schwieriger ist es zu zeigen, dass auch alle Tautologien auf diese Weise erkannt werden können. Das Problem ist also, ob Resolution auch vollständig ist, ob wir also im letzten Punkt oben zu recht schließen können, dass A keine Tautologie ist, wenn das Resolutionsverfahren die leere Klausel nicht erzeugen kann. 3.2 Multi-Resolution Dass dem so ist, zeigt man am einfachsten mit einer Modifikation des eigentlichen Verfahrens, in dem in jedem Schritt ein Atom aus der Klauselmenge vollständig eliminiert wird. Dazu führen wir den Multiresolutionsschritt ein, der durch folgenden Satz gerechtfertigt wird: Satz 5.13. Sei M eine reduzierte Klauselmenge und A ein Atom, dass in M vorkommt. Unterteilt man nun M in drei disjunkte Teile MA := {K ∈ M | A ∈ K} M¬A := {K ∈ M | ¬A ∈ K} M∗ := {K ∈ M | A ∈ / K, ¬A ∈ / K} dann ist M genau dann erfüllbar, wenn M 0 := M∗ ∪ K ∪ K 0 \ {A, ¬A} K ∈ MA , K 0 ∈ M¬A , K ∪ K 0 \ {A, ¬A} ist reduziert erfüllbar ist. Beweis. Der Beweis ist eine Verfeinerung des Arguments aus Satz 5.8. Dieser Multiresolutionsschritt hat folgende Eigenschaft. In M 0 kommen höchstens die Atome vor, die in M vorkommen, aber nicht A. Iteriert man also diesen Resolutionsschritt, so verändert man die Erfüllbarkeit der betrachteten Klauselmenge nicht, erhält aber immer weniger Atome. Startet man mit einer endlichen Klauselmenge M so erhält man schließlich entweder ∅ oder {∅}. Im ersten Fall ist die Klauselmenge erfüllbar, im zweiten nicht. Alle Klauseln, die man mit Multiresolutionsschritten erzeugen kann, kann man aber auch durch mehrere normale Resolutionsschritte bekommen. Das bedeutet folgendes: Kann das normale Verfahren die leere Klausel nicht herleiten, so kann das Multiresolutionsverfahren dies auch nicht und endet somit mit ∅. Das bedeutet aber, dass die zu ¬A korrespondierende Klauselmenge erfüllbar und ¬A somit keine Tautologie ist.