Zum Inhalt springen
Topos Uranos

Zusammenfassung

Ein und dieselbe Wahrheitsfunktion lässt unendlich viele Formeln zu, die sie darstellen, und keine von ihnen, aufs Geratewohl genommen, lässt erkennen, was sie sagt. Diese Lektion legt zwei Gussformen fest, in die jede Formel bis auf Äquivalenz passt: die disjunktive Normalform, eine Disjunktion von Konjunktionen von Literalen, und die konjunktive Normalform, eine Konjunktion von Disjunktionen von Literalen. Es werden die Literale, die Klauseln und die Elementarkonjunktionen definiert; es wird bewiesen, dass die Negation die eine Form in die andere überführt, wenn man jedes Literal in sein Komplement umwandelt, was die Dualität zwischen beiden ist; es werden aus der Wahrheitstafel die kanonischen Normalformen gebaut, und es wird bewiesen, dass sie eindeutig sind. Der Existenzsatz erhält zwei Beweise: durch die Tafel, als Korollar der funktionalen Vollständigkeit, und durch Induktion über die Komplexität, mit dem einzigen Fall des Peirce-Pfeils und mit der doppelten Voraussetzung, die dieser Beweis verlangt. Am Ende zeigt sich, warum sie die Mühe wert sind: Die Allgemeingültigkeit einer konjunktiven Form und die Erfüllbarkeit einer disjunktiven entscheidet man auf einen Blick.

Lernziele

  1. Literale, Klauseln, Elementarkonjunktionen und Formeln in disjunktiver oder konjunktiver Normalform erkennen und dabei die Form, die eine Eigenschaft der Zeichenkette ist, von der Äquivalenz unterscheiden, die eine Eigenschaft der Bedeutung ist.
  2. Aus der Wahrheitstafel die kanonische disjunktive und die kanonische konjunktive Normalform einer Formel bauen und beweisen, dass die kanonische Normalform eindeutig ist und die Äquivalenzklasse der Formel bestimmt.
  3. Durch Induktion über die Komplexität beweisen, dass jede Formel zu einer disjunktiven und zu einer konjunktiven Normalform äquivalent ist, mithilfe der Dualität, der verallgemeinerten De-Morgan- und Distributivgesetze und der semantischen Ersetzung.
  4. Die Allgemeingültigkeit einer konjunktiven Normalform und die Erfüllbarkeit einer disjunktiven auf einen Blick entscheiden und die Normalformen auf die semantische Folgerung und auf die Messung der Mindestgröße einer Normalform anwenden.

In den vorigen Lektionen dieser Einheit erhielten die Formeln eine Bedeutung: Die Lektion über die Semantik der Aussagenlogik setzte jede Belegung auf alle Formeln fort; die Lektion über semantische Folgerung und Äquivalenz definierte die Äquivalenz φ≡ψ\varphi \eqsem \psi und bewies die semantische Ersetzung; die Lektion über die verallgemeinerten De-Morgan- und Distributivgesetze dehnte diese Gesetze auf Konjunktionen und Disjunktionen aus nn Formeln aus; und die Lektion über die funktionale Vollständigkeit zeigte, dass jede Wahrheitsfunktion von irgendeiner Formel dargestellt wird. Nun wird eine Wahrheitsfunktion von unendlich vielen Formeln dargestellt, die sich stark voneinander unterscheiden können: (v1→v2)(v_1 \rightarrow v_2), ¬(v1∧¬v2)\neg(v_1 \wedge \neg v_2) und (((v1↓v1)↓v2)↓((v1↓v1)↓v2))(((v_1 \downarrow v_1) \downarrow v_2) \downarrow ((v_1 \downarrow v_1) \downarrow v_2)) sind drei Namen für dasselbe. Wenn dem so ist, empfiehlt es sich, in jeder Äquivalenzklasse einen Vertreter fester Form zu wählen, der sich mühelos lesen lässt und mit dem sich gewisse Fragen durch bloßes Hinsehen beantworten lassen. Das sind die Normalformen.

Literale, Klauseln und Normalformen

Man erinnere sich aus der Lektion über die verallgemeinerten Gesetze an die Schreibweise der Konjunktion und der Disjunktion von nn Formeln, die rekursiv und mit Assoziation nach links definiert ist; die einer einzigen Formel ist die Formel selbst.

⋀i=11φi=φ1,⋀i=1n+1φi=(⋀i=1nφi∧φn+1)\bigwedge_{i=1}^{1} \varphi_i = \varphi_1, \qquad \bigwedge_{i=1}^{n + 1} \varphi_i = \left( \bigwedge_{i=1}^{n} \varphi_i \wedge \varphi_{n + 1} \right)
⋁i=11φi=φ1,⋁i=1n+1φi=(⋁i=1nφi∨φn+1)\bigvee_{i=1}^{1} \varphi_i = \varphi_1, \qquad \bigvee_{i=1}^{n + 1} \varphi_i = \left( \bigvee_{i=1}^{n} \varphi_i \vee \varphi_{n + 1} \right)

In derselben Lektion wurde bewiesen, dass Reihenfolge und Gruppierung der Glieder die Formel bis auf Äquivalenz nicht verändern (verallgemeinerte Assoziativität und Unabhängigkeit von Reihenfolge und Wiederholungen); deshalb schreiben wir auch φ1∧φ2∧⋯∧φn\varphi_1 \wedge \varphi_2 \wedge \cdots \wedge \varphi_n ohne Klammern, wobei die Gruppierung nach links zu verstehen ist.

Ein Literal ist eine Variable vnv_n, die positives Literal heißt, oder die Negation ¬vn\neg v_n einer Variablen, die negatives Literal heißt. Das Komplement eines Literals ℓ\ell, das wir ℓ∗\ell^{*} schreiben, ist das Literal derselben Variablen mit dem anderen Vorzeichen:

ℓ=vn  ⇒  ℓ∗=¬vn,ℓ=¬vn  ⇒  ℓ∗=vn\ell = v_n \;\Rightarrow\; \ell^{*} = \neg v_n, \qquad \ell = \neg v_n \;\Rightarrow\; \ell^{*} = v_n

Aus der Definition folgt (ℓ∗)∗=ℓ(\ell^{*})^{*} = \ell. Zwei Literale bilden ein komplementäres Paar, wenn das eine das Komplement des anderen ist, wie v3v_3 und ¬v3\neg v_3.

Eine Klausel ist eine Disjunktion von Literalen, ⋁j=1kℓj\bigvee_{j=1}^{k} \ell_j, und eine Elementarkonjunktion ist eine Konjunktion von Literalen, ⋀j=1kℓj\bigwedge_{j=1}^{k} \ell_j, in beiden Fällen mit k≥1k \geq 1; ein einzelnes Literal ist daher zugleich eine Klausel und eine Elementarkonjunktion. Man sagt, ein Literal steht in einer Klausel oder einer Elementarkonjunktion, wenn es eines ihrer ℓj\ell_j ist.

Eine Formel ist in disjunktiver Normalform, wenn sie eine Disjunktion von Elementarkonjunktionen ist, und in konjunktiver Normalform, wenn sie eine Konjunktion von Klauseln ist; das heißt, wenn sie jeweils eine der beiden folgenden Gestalten hat, wobei mm und k1,…,kmk_1, \ldots, k_m natürliche Zahlen sind und jedes ℓi,j\ell_{i,j} ein Literal ist:

⋁i=1m⋀j=1kiℓi,j,⋀i=1m⋁j=1kiℓi,j\bigvee_{i=1}^{m} \bigwedge_{j=1}^{k_i} \ell_{i,j}, \qquad \bigwedge_{i=1}^{m} \bigvee_{j=1}^{k_i} \ell_{i,j}

Wir sagen, Φ\Phi ist eine disjunktive Normalform von φ\varphi, wenn sie in disjunktiver Normalform ist und φ≡Φ\varphi \eqsem \Phi gilt, und ebenso für die konjunktive. Die Längen kik_i können von einer Konjunktion (oder Klausel) zur anderen verschieden sein: In allen dieselbe Anzahl von Literalen zu verlangen, würde zum Auffüllen mit Wiederholungen zwingen und nichts hinzufügen.

BeispielWas in Normalform ist und was nicht

Die Formel (v1∧¬v2)∨¬v3(v_1 \wedge \neg v_2) \vee \neg v_3 ist in disjunktiver Normalform, mit m=2m = 2, k1=2k_1 = 2 und k2=1k_2 = 1; sie ist nicht in konjunktiver Form, weil sie keine Konjunktion ist (ihre beiden Komponenten sind verschieden, und eine Konjunktion ist eine doppelte Negation), und sie ist auch keine Klausel: Als Disjunktion gelesen, hat sie ein Glied, (v1∧¬v2)(v_1 \wedge \neg v_2), das weder ein Literal noch eine Disjunktion von Literalen ist. Die Formel v1∧¬v2∧v3v_1 \wedge \neg v_2 \wedge v_3 ist in beiden Formen: als Disjunktion einer einzigen Elementarkonjunktion (m=1m = 1) und als Konjunktion von drei Klauseln aus je einem Literal. Ebenso ist (¬v1∨v2)(\neg v_1 \vee v_2) zugleich eine Klausel, das heißt eine konjunktive Form mit m=1m = 1, und eine disjunktive Form aus zwei Konjunktionen von je einem Literal.

(v1∧¬v2)∨¬v3,v1∧¬v2∧v3,¬v1∨v2(v_1 \wedge \neg v_2) \vee \neg v_3, \qquad v_1 \wedge \neg v_2 \wedge v_3, \qquad \neg v_1 \vee v_2

Dagegen sind (v1↓v2)(v_1 \downarrow v_2) und ¬(v1→v2)\neg(v_1 \rightarrow v_2) in keiner der beiden Formen, obwohl die erste zu (¬v1∧¬v2)(\neg v_1 \wedge \neg v_2) und die zweite zu (v1∧¬v2)(v_1 \wedge \neg v_2) äquivalent ist, die es sind.

(v1↓v2)≡¬v1∧¬v2,¬(v1→v2)≡v1∧¬v2(v_1 \downarrow v_2) \eqsem \neg v_1 \wedge \neg v_2, \qquad \neg(v_1 \rightarrow v_2) \eqsem v_1 \wedge \neg v_2

Es lohnt sich, bei der Bedeutung von „in Normalform sein“ zu verweilen. Es ist eine Eigenschaft der Zeichenkette aus Kreisen und Scheiben, nicht ihrer Bedeutung: Die Lektion über die Induktion über die natürlichen Zahlen und über Formeln bewies die eindeutige Lesbarkeit, sodass die Frage, ob eine Formel eine Disjunktion ist, und wovon, eine einzige Antwort hat. Nun bewirken die offiziellen Abkürzungen, dass manche Formeln in Normalform sind, ohne so auszusehen. Die Implikation (v1→v2)(v_1 \rightarrow v_2) ist als (¬v1∨v2)(\neg v_1 \vee v_2) definiert: Sie ist nicht zu dieser Klausel äquivalent, sondern sie ist genau diese Zeichenkette und daher schon in Normalform. Überraschender ist die doppelte Negation. Nach den Definitionen von ¬\neg und von ∨\vee ist die Zeichenkette (φ∨φ)(\varphi \vee \varphi) gleich ¬(φ↓φ)\neg(\varphi \downarrow \varphi), das heißt ¬¬φ\neg\neg\varphi; daher ist ¬¬v1\neg\neg v_1 kein Literal, aber Zeichen für Zeichen die Klausel (v1∨v1)(v_1 \vee v_1).

(φ∨φ)=¬(φ↓φ)=¬¬φ(\varphi \vee \varphi) = \neg(\varphi \downarrow \varphi) = \neg\neg\varphi

Der Wert von Konjunktionen und Disjunktionen

Aus der Lektion über die Semantik übernimmt man die Werte der abgeleiteten Junktoren: v(¬φ)=1−v(φ)v(\neg\varphi) = 1 - v(\varphi); v(φ∧ψ)=v(φ) v(ψ)v(\varphi \wedge \psi) = v(\varphi)\,v(\psi), was genau dann gleich 11 ist, wenn beide gleich 11 sind; und v(φ∨ψ)=0v(\varphi \vee \psi) = 0 genau dann, wenn beide gleich 00 sind. Die Lektion über die verallgemeinerten De-Morgan- und Distributivgesetze dehnte sie auf nn Formeln aus, durch Induktion über die Anzahl der Glieder, im Wertlemma: Für jede Belegung vv hat die Konjunktion ⋀i=1nφi\bigwedge_{i=1}^{n} \varphi_i den Wert 11 unter vv genau dann, wenn jedes φi\varphi_i den Wert 11 unter vv hat, und die Disjunktion ⋁i=1nφi\bigvee_{i=1}^{n} \varphi_i hat den Wert 11 unter vv genau dann, wenn irgendein φi\varphi_i den Wert 11 unter vv hat. Dieses Lemma, das hier ohne Wiederholung seines Beweises angeführt wird, ist das Werkzeug, mit dem man den Wert jeder Normalform berechnet.

LemmaNegation eines Literals

Für jedes Literal ℓ\ell ist die Negation von ℓ\ell zu seinem Komplement äquivalent, ¬ℓ≡ℓ∗\neg\ell \eqsem \ell^{*}; insbesondere gilt v(ℓ∗)=1−v(ℓ)v(\ell^{*}) = 1 - v(\ell) für jede Belegung vv.

Beweis

  1. ℓ=vn  ⇒  ¬ℓ=¬vn=ℓ∗\ell = v_n \;\Rightarrow\; \neg\ell = \neg v_n = \ell^{*}

    Ist ℓ\ell eine Variable vnv_n, so ist ihr Komplement ¬vn\neg v_n, und das ist genau die Zeichenkette ¬ℓ\neg\ell: Es ist nichts zu beweisen.

  2. ℓ=¬vn  ⇒  ¬ℓ=¬¬vn≡vn=ℓ∗\ell = \neg v_n \;\Rightarrow\; \neg\ell = \resaltar{\neg\neg v_n} \eqsem v_n = \ell^{*}

    Ist ℓ\ell gleich ¬vn\neg v_n, so ist seine Negation ¬¬vn\neg\neg v_n, die kein Literal ist; nach dem Gesetz der doppelten Negation (Lektion über semantische Folgerung und Äquivalenz) ist sie äquivalent zu vnv_n, dem Komplement von ℓ\ell.

  3. v(ℓ∗)=v(¬ℓ)=1−v(ℓ)v(\ell^{*}) = v(\neg\ell) = 1 - v(\ell)

    In beiden Fällen haben ℓ∗\ell^{*} und ¬ℓ\neg\ell unter jeder Belegung denselben Wert, und den von ¬ℓ\neg\ell liefert der Wert der Negation.

Der zweite Fall wird leicht übersehen: Beim Negieren einer Normalform neigt man dazu, ¬ℓi,j\neg\ell_{i,j} anstelle eines Literals zu schreiben, und ¬¬vn\neg\neg v_n ist keines. Die doppelte Negation ist es, die das Ergebnis in die Gussform zurückbringt.

LemmaElementarkonjunktionen und Klauseln

Eine Elementarkonjunktion ist genau dann erfüllbar, wenn sie kein komplementäres Paar enthält. Eine Klausel ist genau dann allgemeingültig, wenn sie ein komplementäres Paar enthält.

Beweis

  1. v(ℓ) v(ℓ∗)=v(ℓ) (1−v(ℓ))=0v(\ell)\,v(\ell^{*}) = v(\ell)\,(1 - v(\ell)) = 0

    Enthält eine Elementarkonjunktion ℓ\ell und ℓ∗\ell^{*}, so hat unter jeder Belegung eines der beiden den Wert 00, nach dem vorigen Lemma; nach dem Wertlemma hat die Konjunktion unter jeder Belegung den Wert 00.

  2. vn=ℓj  ⇒  v(vn)=1,¬vn=ℓj  ⇒  v(vn)=0\dato{val}{v_n = \ell_j \;\Rightarrow\; v(v_n) = 1, \qquad \neg v_n = \ell_j \;\Rightarrow\; v(v_n) = 0}

    Enthält sie kein komplementäres Paar, so definiert man eine Belegung, die jeder Variablen, die in ihr als positives Literal steht, den Wert 11 gibt und jeder Variablen, die in ihr als negatives Literal steht, den Wert 00 (den übrigen 00). Die Definition ist nicht widersprüchlich, weil keine Variable auf beide Weisen in ihr steht.

  3. v(⋀j=1kℓj)=1v\left( \bigwedge_{j=1}^{k} \ell_j \right) = 1

    Unter dieser Belegung haben alle ihre Literale den Wert 11, und nach dem Wertlemma hat die Konjunktion den Wert 11: Sie ist erfüllbar.

  4. v(ℓ)+v(ℓ∗)=1v(\ell) + v(\ell^{*}) = 1

    Enthält eine Klausel ℓ\ell und ℓ∗\ell^{*}, so hat unter jeder Belegung eines der beiden den Wert 11, und die Klausel hat den Wert 11: Sie ist allgemeingültig.

  5. v(⋁j=1kℓj)=0v\left( \bigvee_{j=1}^{k} \ell_j \right) = 0

    Enthält sie kein komplementäres Paar, so gibt die Belegung, die ihren positiven Variablen den Wert 00 und ihren negierten Variablen den Wert 11 gibt, allen ihren Literalen den Wert 00; nach dem Wertlemma hat die Klausel unter ihr den Wert 00 und ist nicht allgemeingültig.