Zum Inhalt springen
Topos Uranos

Zusammenfassung

Die Semantik versprach Methoden, um die Unerfüllbarkeit zu entscheiden, ohne die Wahrheitstafel zu durchlaufen; diese Lektion liefert die wichtigste davon. Man schreibt eine Formelmenge als Klauselmenge, jede Klausel eine endliche Menge von Literalen, mittels der konjunktiven Normalform oder, um deren exponentielles Wachstum zu vermeiden, mittels Definitionsklauseln mit neuen Variablen, die die Erfüllbarkeit erhalten. Auf die Klauseln wirkt eine einzige Regel, die Resolutionsregel: Aus einer Klausel, die ein Literal enthält, und einer anderen, die sein Komplement enthält, schließt man auf die Vereinigung beider ohne dieses Paar. Eine Widerlegung ist eine Herleitung, die bei der leeren Klausel ankommt. Bewiesen werden die Korrektheit (gibt es eine Widerlegung, so ist die Menge unerfüllbar), durch Induktion über die Länge der Herleitung, und die Widerlegungsvollständigkeit (ist eine endliche Menge unerfüllbar, so gibt es eine Widerlegung), durch Induktion über die Anzahl der Variablen, indem man sie eine nach der anderen eliminiert; mit dem Kompaktheitssatz überträgt sich die Vollständigkeit auf unendliche Mengen. Daraus ergeben sich eine Methode zur Entscheidung von Folgerungen, die mit den Tafeln verglichen wird, und eine Darstellung des Erfüllbarkeitsproblems mit zwei Fällen, die sich schnell entscheiden lassen: den Horn-Klauseln und den Klauseln aus zwei Literalen.

Lernziele

  1. Eine Formelmenge als Klauselmenge darstellen, mittels der konjunktiven Normalform oder mittels Definitionsklauseln mit neuen Variablen, und begründen, dass die Darstellung die Erfüllbarkeit und die Folgerung erhält.
  2. Widerlegungen durch Resolution konstruieren und mit ihnen Folgerungen und Unerfüllbarkeit entscheiden, ohne die typischen Fehler zu begehen, etwa zwei komplementäre Paare in einem einzigen Schritt zu eliminieren.
  3. Die Korrektheit der Resolution durch Induktion über die Länge der Herleitungen und ihre Widerlegungsvollständigkeit durch Elimination von Variablen beweisen und diese mit dem Kompaktheitssatz auf unendliche Mengen übertragen.
  4. Das Erfüllbarkeitsproblem, seinen bekannten Aufwand und die schnell entscheidbaren Fälle (Horn-Klauseln und Klauseln aus zwei Literalen) erklären und die Resolution mit den Wahrheitstafeln vergleichen.

Die Lektion über die Semantik der Aussagenlogik zeigte, dass Allgemeingültigkeit und Erfüllbarkeit mit der Wahrheitstafel entscheidbar sind, zu einem Aufwand, der sich mit jeder Variablen verdoppelt, und kündigte Methoden an, die nicht verlangen, sie zu durchlaufen. Die Lektion über semantische Folgerung und Äquivalenz führte jede Folgerung auf eine Unerfüllbarkeit zurück: Γ⊨φ\Gamma \models \varphi genau dann, wenn Γ∪{¬φ}\Gamma \cup \{\neg\varphi\} unerfüllbar ist. Die Lektionen über die Normalformen und über ihren Algorithmus gaben jeder Formel eine konjunktive Form, deren Allgemeingültigkeit man auf einen Blick sieht, deren Erfüllbarkeit aber nicht. Wenn dem so ist, fehlt ein Verfahren, das die Unerfüllbarkeit einer Konjunktion von Klauseln entscheidet, indem es auf den Klauseln selbst operiert. Dieses Verfahren ist die Resolution, 1965 von John Alan Robinson auf der Grundlage von Ideen von Martin Davis und Hilary Putnam (1960) vorgeschlagen; sie ist der Kern der Programme, die heute die Erfüllbarkeit von Formeln mit Millionen von Variablen entscheiden. Anders als der Kalkül der Einheit über die Deduktion, dessen Beziehungen zur Semantik die Lektionen über Korrektheit und Vollständigkeit und über den Kompaktheitssatz untersuchen, leitet die Resolution keine Konklusionen ab: Sie widerlegt Mengen. Diese Lektion beweist, dass sie dies korrekt und vollständig tut.

Wie in den vorigen Lektionen bezeichnen pp, qq, rr, ss und tt die Variablen v1v_1 bis v5v_5; der Buchstabe vv ohne Index, und ebenso ww, bezeichnen Belegungen; und V(φ)V(\varphi) ist die Menge der Variablen von φ\varphi.

Klauseln und Klauselmengen

Man erinnere sich aus der Lektion über die Normalformen, dass ein Literal eine Variable oder die Negation einer Variablen ist und dass das Komplement eines Literals ℓ\ell, geschrieben ℓ∗\ell^{*}, das Literal derselben Variablen mit dem anderen Vorzeichen ist; zwei zueinander komplementäre Literale bilden ein komplementäres Paar. Nach dem Lemma über die Negation eines Literals gilt v(ℓ∗)=1−v(ℓ)v(\ell^{*}) = 1 - v(\ell) für jede Belegung vv. Dort war eine Klausel eine Disjunktion von Literalen; hier ist es zweckmäßig, Reihenfolge und Wiederholungen, die den Wert nicht ändern, zu vergessen und sich an die Menge zu halten.

Eine Klausel ist eine endliche Menge von Literalen. Die Klausel ohne Literale heißt leere Klausel und wird □\Box geschrieben. Eine Belegung vv erfüllt eine Klausel CC, geschrieben v⊨Cv \models C, wenn irgendein Literal von CC den Wert 11 unter vv hat; andernfalls widerlegt vv sie. Eine Klausel aus einem einzigen Literal heißt Einheitsklausel. Die Variablen einer Klausel bilden die Menge V(C)V(C); die einer Menge SS von Klauseln die Menge V(S)V(S), die Vereinigung der vorigen. Eine Belegung erfüllt eine Menge SS von Klauseln, v⊨Sv \models S, wenn sie jede ihrer Klauseln erfüllt; SS ist erfüllbar, wenn irgendeine Belegung sie erfüllt, und andernfalls unerfüllbar. Ist schließlich SS eine Klauselmenge und CC eine Klausel, so bedeutet S⊨CS \models C, dass jede Belegung, die SS erfüllt, auch CC erfüllt.

v⊨C  ⇔  (∃ℓ∈C)  v(ℓ)=1,v⊨S  ⇔  (∀C∈S)  v⊨Cv \models C \;\Leftrightarrow\; (\exists \ell \in C)\; v(\ell) = 1, \qquad v \models S \;\Leftrightarrow\; (\forall C \in S)\; v \models C

Zwei Grenzfälle folgen aus der Definition, und es lohnt sich, sie festzuhalten. Die leere Klausel hat keine Literale; daher hat keines ihrer Literale den Wert 11, und keine Belegung erfüllt sie: □\Box ist unerfüllbar, und ebenso jede Menge, die sie enthält. Die leere Klauselmenge dagegen hat keine Klauseln, die zu erfüllen wären, und jede Belegung erfüllt sie. Man darf beide nicht verwechseln: {□}\{\Box\} ist unerfüllbar, und ∅\emptyset wird von allen Belegungen erfüllt.

LemmaDie Klausel und ihre Disjunktion

Sei C={ℓ1,…,ℓk}C = \{\ell_1, \ldots, \ell_k\} eine nichtleere Klausel, deren Literale in beliebiger Reihenfolge und ohne Wiederholung geschrieben sind. Für jede Belegung vv gilt v⊨Cv \models C genau dann, wenn v(⋁j=1kℓj)=1v\left( \bigvee_{j=1}^{k} \ell_j \right) = 1. Insbesondere sind alle Disjunktionen der Literale von CC, in beliebiger Reihenfolge und mit Wiederholungen, zueinander äquivalent. Außerdem wird CC genau dann von jeder Belegung erfüllt, wenn sie ein komplementäres Paar enthält.

Beweis

  1. v(⋁j=1kℓj)=1  ⇔  (∃j≤k)  v(ℓj)=1v\left( \bigvee_{j=1}^{k} \ell_j \right) = 1 \;\Leftrightarrow\; (\exists j \leq k)\; v(\ell_j) = 1

    Nach dem Wertlemma für Disjunktionen aus nn Formeln, bewiesen in der Lektion über die verallgemeinerten De-Morgan- und Distributivgesetze, hat die Disjunktion genau dann den Wert 11, wenn irgendeines ihrer Glieder den Wert 11 hat.

  2. v(⋁j=1kℓj)=1  ⇔  v⊨Cv\left( \bigvee_{j=1}^{k} \ell_j \right) = 1 \;\Leftrightarrow\; \resaltar{v \models C}

    Dass irgendein ℓj\ell_j den Wert 11 hat, heißt, dass irgendein Literal von CC den Wert 11 hat, das heißt, dass vv die Klausel CC erfüllt. Die Bedingung hängt weder von der Reihenfolge noch von den Wiederholungen ab, weil sie nur fragt, welche Literale vorkommen.

  3. (∀v)  v⊨C  ⇔  (∃ℓ)  ℓ∈C,  ℓ∗∈C(\forall v)\; v \models C \;\Leftrightarrow\; (\exists \ell)\; \ell \in C, \; \ell^{*} \in C

    Nach dem Lemma über Elementarkonjunktionen und Klauseln (Lektion über die Normalformen) ist eine Disjunktion von Literalen genau dann allgemeingültig, wenn sie ein komplementäres Paar enthält; nach dem Vorigen gilt dasselbe für CC.

Eine Klausel, die ein komplementäres Paar enthält, heißt tautologisch: Sie stellt keine Bedingung und kann aus jeder Menge entfernt werden, ohne deren Modelle zu ändern. Die Klauseln als Mengen zu schreiben ist keine Laune der Notation. Will man aus (p∨q)(p \vee q) und (p∨¬q)(p \vee \neg q) die Formel pp gewinnen, so liefert die Disjunktion (p∨p)(p \vee p), die zu pp äquivalent, aber nicht dieselbe Formel ist; mit Mengen gilt {p}∪{p}={p}\{p\} \cup \{p\} = \{p\}, und die Verschmelzung wiederholter Literale geschieht von selbst.

BeispielEine Klauselmenge erfüllen

Sei S={{p,q},{¬p,r},{¬q}}S = \{ \{p, q\}, \{\neg p, r\}, \{\neg q\} \}. Die Klausel {¬q}\{\neg q\} erzwingt v(q)=0v(q) = 0; dann erzwingt {p,q}\{p, q\} die Gleichung v(p)=1v(p) = 1, und dann erzwingt {¬p,r}\{\neg p, r\} die Gleichung v(r)=1v(r) = 1. Die Belegung, die 11 an pp und an rr und 00 an die übrigen Variablen vergibt, erfüllt SS, und sie ist die einzige Möglichkeit auf V(S)={p,q,r}V(S) = \{p, q, r\}. Fügt man die Klausel {¬r}\{\neg r\} hinzu, so erfüllt keine Belegung die erweiterte Menge: Sie ist unerfüllbar, obwohl sie □\Box nicht enthält.

v(q)=0  ⇒  v(p)=1  ⇒  v(r)=1v(q) = 0 \;\Rightarrow\; v(p) = 1 \;\Rightarrow\; v(r) = 1