Logik für Informatiker/innen

Werbung
Vorlesung
Logik für Informatiker/innen
Einführung in mathematische Logik und Logik in der Informatik
Thomas Wilke
27. November 2008
LfI.tex Rev 84 2008-11-27
Inhaltsverzeichnis
1 Einleitung
1
2 Aussagenlogik
2.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Modellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Beispiel: Bipartite Graphen . . . . . . . . . . . . . . . . . .
2.3.2 Beispiel: Sudoku . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Eindeutige Konstruktion von Formeln . . . . . . . . . . . . . . . .
2.5 Formeln in Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Äquivalenz und Normalformen . . . . . . . . . . . . . . . . . . . .
2.6.1 Das Koinzidenzlemma . . . . . . . . . . . . . . . . . . . . .
2.6.2 Aussagenlogische Gesetze . . . . . . . . . . . . . . . . . . .
2.6.3 Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.4 Negationsnormalform . . . . . . . . . . . . . . . . . . . . .
2.6.5 Konjunktive und disjunktive Normalform . . . . . . . . .
2.7 Erfüllbarkeitstests . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Der DPLL-Algorithmus . . . . . . . . . . . . . . . . . . . .
2.7.2 Der DP-Algorithmus . . . . . . . . . . . . . . . . . . . . . .
2.7.3 Unendliche Formelmengen und der Endlichkeitssatz . .
2.8 Die Folgerungsbeziehung . . . . . . . . . . . . . . . . . . . . . . .
2.8.1 Beispiel: Schaltnetzüberprüfung . . . . . . . . . . . . . . .
2.8.2 Folgerungsbeziehung, Erfüllbarkeit und Endlichkeitssatz
2.9 Beweissysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9.1 Unerfüllbarkeit und Resolution . . . . . . . . . . . . . . . .
2.9.2 Ein Hilbert-System . . . . . . . . . . . . . . . . . . . . . . .
2.9.3 Ein natürliches Beweissystem . . . . . . . . . . . . . . . .
2.9.4 Ableitungssysteme . . . . . . . . . . . . . . . . . . . . . . .
2.10 Horn-Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10.1 Beispiel: Erreichbarkeit in gerichteten Graphen . . . . . .
2.10.2 Beispiel: Schaltnetz-Auswertung . . . . . . . . . . . . . . .
2.10.3 Beispiel: Erreichbarkeitsspiele auf endlichen Graphen . .
2.10.4 Der Markierungsalgorithmus für Horn-Formeln . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
10
10
12
16
18
20
21
22
24
26
29
32
34
38
41
47
49
53
55
55
59
60
63
66
67
69
71
72
Lösungen
76
Index
85
ii
LfI.tex Rev 84 2008-11-27
1 Einleitung
Die mathematische Logik ist ein neueres Teilgebiet der Mathematik, in dem auf die Logik –
also auf die Lehre vom schlüssigen Argumentieren – mathematische Methoden angewendet werden. Darunter versteht man insbesondere einen formalen Zugang zur Logik, der
sich nicht der gewöhnlichen Sprache, sondern formaler Sprache bedient.
Zu Beginn des zwanzigsten Jahrhunderts versuchte man unter anderem, die gesamte
Mathematik in einen formalen logischen Rahmen zu pressen, ja sogar ein Verfahren zu entwickeln, das alle mathematischen Aussagen auf ihren Wahrheitsgehalt überprüfen könnte.
Später musste man jedoch erkennen, dass diesen Ideen Grenzen gesetzt sind, was wiederum zu neuen Fragen führte. Heute geht die mathematische Logik weit über das oben genannte hinaus. Sie hat innerhalb der Mathematik einen festen Platz, weil sie nicht nur die
Grundlagen der Mathematik erklärt, sondern weil ihre Methoden in klassischen Teilgebieten der Mathematik erfolgreich eingesetzt werden können.
Um die anfängliche Geschichte der mathematischen Logik besser begreifen zu können,
sehen wir uns in Folie 1 zunächst zwei Zitate aus demselben Lehrbuch, allerdings aus verschiedenen Ausgaben, an. In der ersten Auflage von 1928 wird noch die Suche nach einer
Lösung des Entscheidungsproblems als vorrangigste Aufgabe angesehen und implizit davon ausgegangen, dass es ein solches gibt, während aus der sechsten Auflage von 1972 die
Einsicht spricht, dass das Entscheidungsproblem nicht gelöst werden kann.
Desweiteren betrachten wir ein Zitat von Kurt Gödel aus dem Jahr 1931, siehe Folie 2, das
zum einen deutlich macht, dass zu Beginn des zwanzigsten Jahrhunderts Anstrengungen
unternommen wurden, die gesamte Mathematik zu formalisieren. Zum anderen wird aber
auch deutlich, dass diese Anstrengungen zum Scheitern verurteilt sind.
Der Schritt von der mathematischen Logik zur Informatik ist nicht weit: Bei der Spezifikation von Informatiksystemen möchte man genauso wie in der Logik zu formalen, eindeutigen, nicht fehlinterpretierbaren Aussagen kommen. Wenn es um die Korrektheit von
Informatiksystemen geht, wären formale Beweise – ein zentraler Gegenstand der mathematischen Logik – äußerst wünschenswert.
1
Einleitung.tex Rev 15 2008-10-31
1 Einleitung
David Hilbert und Wilhelm Ackermann
Grundzüge der theoretischen Logik
Erste Auflage, 1928, S. 72:
Das Entscheidungsproblem ist gelöst, wenn man ein
Verfahren kennt, das bei einem vorgelegten logischen
Ausdruck durch endlich viele Operationen die
Entscheidung über die Allgemeingültigkeit bzw.
Erfüllbarkeit erlaubt. [. . . ] das Entscheidungsproblem
muss als das Hauptproblem der mathematischen Logik
bezeichnet werden.
Sechste Auflage, 1972, S. 120:
Es konnte nun zuerst von A. Church [5] gezeigt werden,
daß die obengenannte, einem allgemeinen
Entscheidungsverfahren entsprechende Funktion nicht zu
den berechenbaren Funktionen gehört.
Folie 1
2
Einleitung.tex Rev 15 2008-10-31
1 Einleitung
Kurt Gödel
Über formal unentscheidbare Sätze der Principia mathematica und verwandter Systeme I,
Monatshefte für Mathematik und Physik 38, 173–198
Seite 173:
Die Entwicklung der Mathematik in der Richtung zu
größerer Exaktheit hat bekanntlich dazu geführt, daß
weite Gebiete von ihr formalisiert wurden, in der Art, daß
das Beweisen nach einigen wenigen mechanischen Regeln
vollzogen werden kann. [. . . ] Diese beiden Systeme sind
so weit, daß alle heute in der Mathematik angewendeten
Beweismethoden in ihnen formalisiert, d. h. auf einige
wenige Axiome und Schlußregeln zurückgeführt sind. Es
liegt daher die Vermutung nahe, daß diese Axiome und
Schlußregeln dazu ausreichen, alle mathematischen
Fragen, die sich in den betreffenden Systemen überhaupt
formal ausdrücken lassen, auch zu entscheiden. Im
folgenden wird gezeigt, daß dies nicht der Fall ist [. . . ]
Folie 2
3
Einleitung.tex Rev 15 2008-10-31
1 Einleitung
David Hilbert, 1862–1943
Kurt Gödel, 1906–1978
Folie 3
4
Einleitung.tex Rev 15 2008-10-31
2 Aussagenlogik
2.1 Einleitung
Wir beschäftigen uns zunächst mit Aussagen. Darunter versteht man üblicherweise Behauptungen, die für sich wahr oder falsch sind. Interessant wird es, wenn Aussagen aus
anderen Aussagen durch logische Verknüpfungen (Junktoren) wie oder und nicht zusammengesetzt werden.
Beispiel 2.1 (Aussagen).
• Eine einfache Aussage: Der Mond ist eine Kugel.
• Eine zusammengesetzte Aussage: Der Mond ist eine Kugel oder der Mond ist ein Würfel.
• Eine weitere zusammengesetzte Aussage: Wenn der Mond kein Würfel ist, dann ist die
Erde eine Kugel.
Interessanter wird es, wenn man zwischen Aussagen logische Schlüsse zieht.
Beispiel 2.2.
• Erste Aussage: Es ist Sonntag.
• Zweite Aussage: Wenn es Samstag oder Sonntag ist, dann ist Wochenende.
• Schlussfolgerung: Es ist Wochenende.
Bei solchen Überlegungen ist es nicht wichtig, von welcher Art die Basisaussagen sind,
sondern lediglich, ob sie wahr oder falsch sind und wie die Zusammensetzung ist. Genau
das ist der Ausgangspunkt der Aussagenlogik.
2.2 Syntax und Semantik
Eine Aussagenvariable hat die Form X i , wobei i eine natürliche Zahl ist. Die Menge aller
Aussagenvariablen bezeichnen wir mit VAL . Wir benutzen zwei aussagenlogischen Konstantensymbole, 0 und 1.
Die Menge F AL der aussagenlogische Formeln ist induktiv (siehe Folie 4) definiert wie
folgt.
1. Basiselemente:
• Jedes der beiden Konstantensymbole ist eine aussagenlogische Formel.
• Jede Aussagenvariable ist eine aussagenlogische Formel.
Diese aussagenlogischen Formeln heißen atomar.
2. Induktionsregeln:
• Ist ϕ eine aussagenlogische Formel, dann ist auch ¬ϕ eine aussagenlogische
Formel.
• Sind ϕ und ψ aussagenlogische Formeln, so sind auch (ϕ ∨ ψ), (ϕ ∧ ψ), (ϕ → ψ)
und (ϕ ↔ ψ) aussagenlogische Formeln.
5
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Die so entstehenden aussagenlogischen Formeln heißen zusammengesetzt.
Erinnerung: Induktive Mengendefinitionen
Definition einer Menge M:
1. Basismenge: Es wird eine Menge M0 von Basiselementen, die
alle zu M gehören sollen, vorgegeben.
2. Induktionsregeln: Es werden Regeln der Form
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M.
angegeben.
M ist die kleinste Menge, die M0 enthält und den Regeln
entspricht.
Folie 4
Beispiel 2.3.
• Aussagenlogische Formeln sind: 0, (X 0 ∨ X 1 ), ((X 0 → X 312 ) ∧ ¬X 1 ).
• Keine aussagenlogischen Formeln sind: 01, X 1 ∧ X 4 .
Wir benutzen im Zusammenhang mit Formeln die Terminologie, die auf Folie 5 zu finden
ist.
Wir werden häufig Funktionen definieren wollen, die auf der Menge aller aussagenlogischen Formeln definiert sind. Zum Beispiel wollen wir jeder Formel die Menge der in ihr
vorkommenden Variablen oder ihre Länge oder ihre Schachtelungstiefe zuordnen. Dazu
benutzen wir in der Regel induktive Definitionen, wie sie auf Folie 6 erläutert sind.
Dabei ist es wichtig, einzusehen, dass jede aussagenlogische Formel nur auf eine Art
zustande kommen kann. Das glauben wir gern, wollen es aber auch beweisen, was nicht
schwierig, aber aufwändig ist. Wir stellen dies deshalb zurück.
Jeder Formel weisen wir die Menge der in ihr vorkommenden Variablen per Induktion
(siehe Folie 6) zu:
1. Basiszuordnung: vars(0) = ;, vars(1) = ;, vars(X i ) = {X i }.
6
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Terminologie zu aussagenlogischen Formeln
Form
Lesart
(ϕ ∨ ψ)
(ϕ ∧ ψ)
(ϕ → ψ)
(ϕ ↔ ψ)
oder
Disjunktion
und
Konjunktion
wenn . . . , so . . . genau dann, wenn
Konditional
Bikonditional
Formeltyp
ϕ
Disjunktionsglied
Konjunktionsglied
Antezedenz
ψ
Disjunktionsglied
Konjunktionsglied
Sukzedenz
Eine aussagenlogische Formel der Form ¬ϕ heißt Negation und
wird nicht ϕ gelesen.
0 und 1 heißen Wahrheitswerte und werden falsch und
wahr genannt.
Folie 5
2. Induktionsregeln: vars(¬ϕ) = vars(ϕ), vars(ϕ ∗ ψ) = vars(ϕ) ∪ vars(ψ) für ∗ ∈ {∨, ∧, →
, ↔}.
Eine (aussagenlogische) Variablenbelegung ist eine partielle Funktion VAL 99K {0, 1}. Eine
aussagenlogische Variablenbelegung β passt zu ϕ ∈ F AL , falls vars(ϕ) ⊆ dom(β).
Bei der Definition der Semantik der Aussagenlogik wollen wir zu den Junktoren korrespondierende so genannten boolesche Operationen benutzen. Diese Operationen werden
˙ ∧,
˙ →
wir zur Unterscheidung von den Junktoren mit einem Punkt versehen: ¬,
˙ ∨,
˙ und ↔.
˙
Dabei ist ¬
˙ eine Funktion {0, 1} → {0, 1} und alle anderen sind Funktionen sind von der Form
{0, 1}2 → {0, 1}. Wir schreiben die zweistelligen Operationen in Infix-Notation, d. h., anstelle
˙ 0 , b 1 ) schreiben wir b 0 ∧b
˙ 1.
von ∧(b
Alle booleschen Operationen sind auf Folie 7 definiert.
Wir definieren nun eine Funktion J·K· , die jeder Variablenbelegung β und jeder Formel
ϕ ∈ F AL , die zu β passt, ihren Wahrheitswert (Interpretation) unter β zuordnet, induktiv wie
folgt:
1. Basisvorschriften: J0Kβ = 0, J1Kβ = 1, J X i Kβ = β(X i ) für jede X i ∈ dom(β).
2. Induktionsregeln:
7
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Erinnerung: Definitionen über induktiv definierten Mengen
Annahme
M ist eine eindeutig induktiv definierte Menge (siehe oben).
Definition einer Funktion f auf M:
1. Basiszuordnung: Zu jedem Element m ∈ M0 wird f (m)
angegeben.
2. Induktionsregeln: Zu jeder Regel der Mengendefinition wird
eine korrespondierende Regel der Form
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so
f (h(x0 , . . . , xr −1 )) = h0 (f (x0 ), . . . , f (xr −1 )).
angegeben.
Folie 6
• Ist ϕ ∈ F AL , so
J¬ϕKβ = ¬
˙ JϕKβ .
• Sind ϕ, ψ ∈ F AL und ∗ ∈ {∨, ∧, →, ↔}, so
J(ϕ ∗ ψ)Kβ = JϕKβ ∗˙ JψKβ .
Für zusammengesetzte Formeln wird der Wahrheitswert gemäß Abbildung 7 zusammengesetzt.
Beispiel 2.4. Sei Variablenbelegung β gegeben durch β(V0 ) = 1, β(V1 ) = 1 und β(V2 ) = 0.
Dann gilt J¬((¬V0 ∧ V1 ) ∨ V2 )Kβ = 1.
Aufgabe 2.1. Welche der folgenden Formeln ist (mit bzw. ohne Vereinfachungsregeln) syntaktisch korrekt?
(a) ¬(X 1 ∨ X 2 )
(b) (¬X 1 ) ∨ (X 1 ∧ X 0 )
8
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Boolesche Operationen
Negation
b ¬b
˙
0 1
1 0
Zweistellige Operationen
˙ 1 b0 ∧b
˙ 1 b0 →b
b0 b1 b0 ∨b
˙ 1 b0 ↔b
˙ 1
0 0
0
0
1
1
0 1
1
0
1
0
1 0
1
0
0
0
1 1
1
1
1
1
Folie 7
(c) X 1 ∨ X 2 ∨ X 3 ∨ ¬(X 1 ∧ X 2 ∧ X 3 )
(d) ¬(¬X 1 ∨ X 2 ) ∨ (X 1 → X 2 )
(e) ¬(0 ∨ X 2 ) ∨ (1 → X 2 )
Aufgabe 2.2. Betrachten Sie die folgenden aussagenlogischen Formeln:
(a) ((X 1 → X 2 ) ↔ (X 2 → X 1 ))
(b) (¬X 1 → ¬X 2 )
(c) (¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))
(d) (((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)
(e) ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))
Geben Sie zu jeder Formel jeweils eine Variablenbelegung an, für die der Wahrheitswert der
Formel 1 (wahr) bzw. 0 (falsch) ist, falls eine solche Belegung existiert.
Wichtige Begriffe
• Aussage
• atomare / zusammengesetzte (aussagenlogische) Formel
9
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
• Syntax
• Wahrheitswert
• Semantik
2.3 Modellierung
Wir wollen nun beispielhaft Sachverhalte formal durch aussagenlogische Formeln beschreiben.
Beispiel 2.5. Altes Beispiel: Wenn es Samstag oder Sonntag ist, dann ist Wochenende.
Wir benutzen drei Variablen: X 0 , X 1 und X 2 , wobei X 0 beschreiben soll, ob es Samstag ist,
X 1 beschreiben soll, ob es Sonntag ist, und X 2 beschreiben soll, ob es Wochenende ist. Dann
schreiben wir:
((X 0 ∨ X 1 ) → X 2 ) .
Manchmal ist es praktischer, wenn Variablen – wie bei der Programmierung – aussagekräftige Bezeichnungen erhalten. Deshalb erlauben wir die Benutzung anderer Variablennamen in Beispielen und stellen uns vor, dass diese bei einer formalen Umsetzung durch
die Variablen aus VAL ersetzt werden.
Die obige Formel könnten wir zum Beispiel besser in der Form
((X Sams ∨ X Sonn ) → X WE )
schreiben.
Die folgenden zwei Beispiele sind von ähnlicher Art. Das Ziel ist es, gewisse »gute« Elemente aus einer vorgegebenen Menge auszusondern: In dem eine Beispiel geht es darum,
aus der Menge aller 2-Färbungen eines Graphen die zulässigen auszuwählen, während in
dem anderen aus allen Möglichkeiten, eine Sudokuinstanz zu vervollständigen, die korrekte ausgewählt wird.
2.3.1 Beispiel: Bipartite Graphen
Wir erinnern uns an ungerichtete Graphen und Graphfärbungen durch Folie 8.
Wir können uns eine Färbung des Beispielgraphen vorstellen als eine Variablenbelegung
β mit Definitionsbereich {X 0 , . . . , X 6 }. Genauer: Wir identifizieren jede 2-Färbung c mit der
Belegung βc definiert durch βc (X i ) = c(v i ). Dass eine solche Färbung gültig ist, können wir
dann beschreiben durch die Formel ϕ, die definiert ist durch:
ϕ = ((((((((X 0 ↔ ¬X 1 ) ∧ (X 0 ↔ ¬X 2 )) ∧ (X 1 ↔ ¬X 4 ))
∧ (X 2 ↔ ¬X 4 )) ∧ (X 1 ↔ ¬X 3 )) ∧ (X 1 ↔ ¬X 5 )) ∧ (X 3 ↔ ¬X 6 )) ∧ (X 5 ↔ ¬X 6 ))
Sie drückt aus, dass die Eckpunkte jeder Kante unterschiedlich gefärbt sind.
β
Also: Eine 2-Färbung c von G ist gültig genau dann, wenn JϕKc = 1.
Die obige Formel ist schwer zu lesen, weshalb wir die folgenden üblichen Konventionen
vereinfachen die Lesbarkeit:
10
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ungerichtete Graphen
Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus
I
I
einer Menge V von Knoten und
einer Menge E ⊆ E2 von Kanten.
v4
v3
v2
v1
v6
v0
v5
Eine k-Färbung ist eine Funktion c : V → {0, . . . , k − 1}. Sie heißt
gültig, wenn c(v ) 6= c(w ) für alle (v , w ) ∈ E gilt.
Ein Graph heißt bipartit, wenn es eine zulässige 2-Färbung gibt.
Folie 8
• Das äußerste Klammerpaar kann weggelassen werden.
• Ein Ausdruck der Form ((. . . ((ϕ0 ∗ ϕ1 ) ∗ ϕ2 ) . . . ) ∗ ϕr −1 ) kann für ∗ ∈ {∨, ∧, ↔} durch
(ϕ0 ∗ ϕ1 ∗ ϕ2 ∗ · · · ∗ ϕr −1 ) ersetzt werden.
• Ein Ausdruck der obigen Form kann auch ganz kurz durch ∗i <r ϕ abgekürzt werden.
Wir können nun die obige Formel in der Form
(X 0 ↔ ¬X 1 ) ∧ (X 0 ↔ ¬X 2 ) ∧ (X 1 ↔ ¬X 4 )
∧ (X 2 ↔ ¬X 4 ) ∧ (X 1 ↔ ¬X 3 ) ∧ (X 1 ↔ ¬X 5 ) ∧ (X 3 ↔ ¬X 6 ) ∧ (X 5 ↔ ¬X 6 )
und in der Form
^
(X i ↔ ¬X j ) .
i , j : i < j <7 und {i , j }∈E
schreiben.
Abschließend wollen wir die obige Beobachtung verallgemeinern:
11
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Lemma 2.1 (bipartite Graphen). Sei G = (V, E ) ein ungerichteter endlicher Graph mit Knotenmenge {0, . . . , n − 1} und ϕ die Formel definiert durch
^
(X i ↔ ¬X j ) .
(2.1)
i , j : i < j <n und {i , j }∈E
1. Für jede 2-Färbung c von G gilt: JϕKβc = 1 genau dann, wenn c gültig ist.
2. G ist bipartit genau dann, wenn es eine Belegung β mit {X 0 , . . . , X n−1 } ⊆ dom(β) gibt,
die ϕ durch 1 interpretiert.
Dem Beweis wenden wir uns später zu.
Abschließend treffen wir noch die folgende wichtige Definition, die durch das vorangehende Beispiel gut motiviert ist: Eine Belegung β, die zu einer Formel ϕ passt, wird erfüllend genannt, wenn JϕKβ = 1 gilt. Eine Formel ϕ heißt erfüllbar, wenn es eine erfüllende
Belegung für sie gibt.
2.3.2 Beispiel: Sudoku
Wir betrachten zunächst Folie 9, um uns an Sudoku zu erinnern.
Um Sudoku modellieren zu können, setzen wir N = {1, . . . , 9}, M = N ∪{?} und R = {0, 1, 2}.
Eine Sudokuinstanz ist dann eine Matrix S ∈ M 9×9 . Ein Lösungskandidat ist eine Matrix
L ∈ N 9×9 , die in den von ? verschiedenen Einträgen mit S übereinstimmt. Sie heißt Lösung,
wenn die auf der Folie angegebenen Sudokubedingungen erfüllt sind.
Ziel ist es, zu einer gegebenen Sudokuinstanz eine Formel ϕS zu entwickeln, deren erfüllende Belegungen genau die Lösungen von S beschreiben.
Dazu benutzen wir Aussagenvariablen der Form X ik, j mit i , j , k ∈ N (insgesamt 729 Variablen). Dann lassen sich Sudokulösungskandidaten leicht in Belegungen der Variablen
umsetzen: Zu L ∈ N 9×9 definieren wir die Belegung βL durch
(
1 , falls L i , j = k,
βL (X ik, j ) =
0 , sonst.
Mit anderen Worten, X ik, j bedeutet, dass in Zeile i und Spalte j die Zahl k steht.
Offensichtlich kann nicht jeder Belegung der Variablen ein Lösungskandidat zugeordnet
werden, denn wir befänden uns zum Beispiel dann in einer widersprüchlichen Situation,
4
5
wenn X 1,3
und X 1,3
der Wert 1 zugeordnet würde.
Deshalb verschaffen wir uns zunächst eine Formel, die dieses Problem behebt. Die Formel ϕMatrix soll besagen, dass eine Belegung einer Matrix entspricht:
1. In jedem Matrixeintrag steht mindestens ein Element aus N .
2. In jedem Matrixeintrag steht höchstens ein Element aus N .
Das kann wie folgt formuliert werden:
^
^ _ k
0
(2.2)
Xi ,j ∧
¬(X ik, j ∧ X ik, j ) .
ϕMatrix =
i , j ∈N k∈N
i , j ,k,k 0 ∈N :k6=k 0
Dann können wir festhalten:
12
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Sudoku
5
6
1
8
4
7
9
2
3
3
7
9
5
2
1
6
8
4
4
2
8
9
6
3
1
7
5
6
1
3
7
8
9
5
4
2
7
9
4
6
5
2
3
1
8
8
5
2
1
3
4
7
9
6
9
3
5
4
7
8
2
6
1
1
4
6
2
9
5
8
3
7
2
8
7
3
1
6
4
5
9
Bedingungen
Sei N = {1, . . . , 9}.
I
In jeder Zeile jedes Element aus N genau einmal.
I
In jeder Spalte jedes Element aus N genau einmal.
I
In jeder Region jedes Element aus N genau einmal.
Dabei ist eine Region eine durch fette Linien eingegrenzte
3 × 3-Matrix.
Folie 9
Bemerkung 2.1.
1. Ist β eine Variablenbelegung, die zu ϕMatrix passt, und für die JϕMatrix Kβ
β
gilt, so ist die Matrix L β ∈ N 9×9 mit L i , j = k, falls β(X ik, j ) = 1, wohldefiniert.
2. Ist M ∈ N 9×9 , so gilt JϕMatrix KβM = 1.
Jetzt wollen wir die Lösungskandidaten zu einer gegeben Sudokuinstanz S beschreiben.
Das können wir machen, in dem wir zusätzlich zu ϕMatrix fordern, dass in jedem von ? verschiedenen Eintrag von S die entsprechende Zahl steht. Dazu benutzen wir die Formel ψS
gegeben durch
ψS =
^
i , j ,k∈N :S i , j =k
Bemerkung 2.2.
X ik, j .
(2.3)
1. Ist L ein Lösungskandidat für S, dann gilt JϕMatrix ∧ ψS KβL = 1.
2. Ist β eine Variablenbelegung, die zu ϕMatrix ∧ ψS passt und für die JϕMatrix ∧ ψS Kβ = 1
gilt, dann ist L β ein Lösungskandidat für S.
13
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ganz zum Schluss müssen wir nur noch sagen, wann ein Lösungskandidat eine Lösung
ist, was wir ausdrücken können durch:
1. In jeder Zeile steht jedes Element aus N mindestens einmal.
2. In jeder Spalte steht jedes Element aus N mindestens einmal.
3. In jeder Region steht jedes Element aus N mindestens einmal.
Diese drei Bedingungen spiegeln sich wieder in:
 ^ _
X ik, j
i ,k∈N
∈N
^ j_
^

X ik, j
ϕLösung = 
 j ,k∈N
^i ∈N _

p,q∈D,k∈N p 0 ,q 0 ∈D
(2.4)
k
X p3+p
0 +1,q3+q 0 +1
Für die gesuchte Formel können wir also
ϕS = ϕMatrix ∧ ψS ∧ ϕLösung
(2.5)
nehmen:
Lemma 2.2 (Sudoku). Sei S eine Sudokuinstanz.
1. Ist L eine Lösung von S, so ist βL eine erfüllende Belegung für ϕS .
2. Ist β : {X ik, j | i , j , k ∈ N } → {0, 1} eine erfüllende Belegung für ϕS , dann ist L β eine Lösung
von S.
Die gesamte Formel ist noch einmal auf Folie 10 zu sehen.
Die Weise, nach der wir gerade vorgegangen sind, ist typisch. Man kann sie kurz wie
folgt beschreiben. Die Gesamtformel ist eine Konjunktion von drei Formeln, die folgende
Zwecke erfüllen:
1. Beschreibung der Menge aller Belegungen, die zu Lösungskandidaten passen.
2. Einschränkung auf die Lösungskandidaten zu einer gegebenen Instanz.
3. Weitere Einschränkung auf die eigentlichen Lösungen.
Zum Abschluss werfen wir noch einmal einen Blick auf Folie 11, die das Spiel Superhirn
erläutert. Eine Aufgabe, die man sich hier stellen kann, besteht darin, zu einem gegebenen
Zeitpunkt eine neue Reihe zu bestimmen, die noch für die verdeckte Wahl in Frage kommt.
Eine entsprechende Formel zu konstruieren ist etwas schwieriger (warum?), weshalb wir
davon vorerst absehen.
Aufgabe 2.3. Das so genannte Schubfachprinzip (engl. pigeonhole principle) kann folgendermaßen beschrieben werden:
Falls man n Objekte auf m Mengen (n, m > 0) verteilt, und n größer als m ist,
dann gibt es mindestens eine Menge, in der mehr als ein Objekt landet.
14
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Sudokuformel
ϕS = ϕMatrix ∧ ψS ∧ ϕLösung
mit
ϕMatrix =
^ _
k
Xi,j
∧
i,j∈N k∈N
ψS =
^
^
i,j,k,k 0 ∈N:k6=k 0
0
k
k
¬Xi,j
∨ ¬Xi,j
,
k
Xi,j
,
i,j,k∈N:Si,j =k

ϕLösung
^ _
k
Xi,j


i,k∈N j∈N
^
 ^ _ k

Xi,j
=

j,k∈N i∈N

_
 ^
k

Xp3+p
0 +1,q3+q 0 +1
p,q∈D,k∈N p 0 ,q 0 ∈D
Folie 10
Seien nun n, m ∈ N, wobei n die Anzahl der Objekte und m die Anzahl der Mengen bezeichnet. Zur Modellierung wollen wir Variablen X i , j mit i ∈ {1, . . . , n} und j ∈ {1, . . . , m} verwenden. Dabei soll die Belegung der Variable X i , j festlegen, ob das Element i in der Menge j
enthalten ist.
(a) Geben Sie eine Formel ϕ an, die sicherstellt, dass jedem Objekt genau eine Menge
zugeordnet ist.
Formaler: Für jede Variablenbelegung β, die zu ϕ passt, soll gelten:
(
1 falls jedem Objekt genau eine Menge zugeordnet ist
JϕKβ =
0 sonst.
(b) Geben Sie eine Formel ψ an, die sicherstellt, dass jeder Menge höchstens ein Objekt
zugeordnet ist.
Formaler: Für jede Variablenbelegung β, die zu ψ passt, soll gelten:
(
1 falls jeder Menge höchstens ein Element zugeordnet ist
JψKβ =
0 sonst.
15
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Superhirn
I
scharzer Stecker: an einer Position
stimmt Farbe überein
I
weißer Stecker: Farbe stimmt,
Position aber nicht
Ziel
Finde Formel, die beschreibt, welche
Reihen mit der bisherigen Information
verträglich sind.
Schwieriger . . .
Folie 11
(c) Was kann man über J(ϕ ∧ ψ)Kβ in Abhängigkeit von n und m aussagen?
2.4 Eindeutige Konstruktion von Formeln
Wir haben bislang bei induktiven Definitionen von Funktionen, deren Definitionsbereich
die Menge der aussagenlogischen Formeln ist, angenommen, dass jede Formel auf nur eine Weise zusammengesetzt werden kann. Das wollen wir noch beweisen und zwar per vollständiger Induktion über die Länge aller Formeln. Auf Folie 12 ist dafür das Beweisprinzip
der vollständigen Induktion noch einmal dargestellt.
Wir beginnen damit, zu zeigen, dass keine Formel ein echtes Anfangsstück einer anderen
Formel sein kann. Dabei benutzten wir folgende Notation. Wir schreiben u @ v für zwei
Zeichenreihen, wenn u ein echtes Anfangsstück von v ist.
Lemma 2.3. Sind ϕ, ψ ∈ F AL , so gilt ϕ 6@ ψ.
Beweis. Wir beweisen dies per vollständiger Induktion über die Länge. Die Eigenschaft ist:
Ist ψ ∈ F AL mit l (ψ) = n + 1, so gilt ϕ 6@ ψ für alle ϕ ∈ F AL .
16
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Erinnerung: Das Beweisprinzip der vollständigen Induktion
Beweis dafür, dass jede natürliche Zahl eine gewisse Eigenschaft
besitzt:
1. Induktionsanfang: Man zeigt, dass die Zahl 0 die Eigenschaft
besitzt.
2. Induktionsschritt:
2.1 Induktionsannahme: Man nimmt an, dass eine beliebige Zahl n
die Eigenschaft besitzt.
2.2 Man zeigt, dass die Induktionsbehauptung gilt.
Induktionsbehauptung: Die Zahl n + 1 besitzt die Eigenschaft.
Variante
Allgemeinere Induktionsannahme:
2.1 Man nimmt an, dass für eine natürliche Zahl n alle Zahlen
m ≤ n die Eigenschaft besitzen.
Folie 12
Induktionsanfang. Wir müssen zeigen, dass für jedes ψ ∈ F AL mit l (ψ) = 1 und für alle
ϕ ∈ F AL ϕ @
6 ψ gilt. Wegen l (ψ) = 1 gibt es nur eine Zeichenreihe ϕ mit ϕ @ ψ, nämlich die
leere Zeichenkette. Diese Zeichenreihe ist aber kein Element von F AL .
Induktionsschritt. Sei n ∈ N. Wir nehmen an (Induktionsannahme), dass ϕ @
6 ψ0 für alle
0
0
ϕ ∈ F AL und ψ ∈ F AL mit l (ψ ) ≤ n +1 gilt. Für ein beliebiges ψ ∈ F AL mit l (ψ) = n +2 müssen
wir zeigen, dass ϕ @
6 ψ gilt. Wir führen eine Fallunterscheidung nach der Form von ψ durch.
0
1. Fall, ψ = ¬ψ . Wir nehmen an, dass ϕ @ ψ mit ϕ ∈ F AL gilt. Wenn l (ϕ) = 1, dann ist
ϕ = ¬, was keine Formel ist – Widerspruch. Wenn l (ϕ) > 1, dann können wir ϕ in der Form
¬ϕ0 schreiben, wobei ϕ0 eine Formel ist. Dann haben wir ϕ0 @ ψ0 – Widerspruch zur Induktionsannahme.
2. Fall, ψ = (ψ0 ∗ ψ1 ) mit ∗ ∈ {∨, ∧, →, ↔}. Wir nehmen an, dass ϕ ∈ F AL ein echtes Anfangsstück von ψ ist (genau wie oben). Es muss l (ϕ) > 1 gelten, denn ( ist keine Formel.
Also können wir ϕ als (ϕ0 ◦ ϕ1 ) schreiben mit ϕ0 , ϕ1 ∈ F AL und ◦ ∈ {∨, ∧, →, ↔}. Wir treffen
nun eine Fallunterscheidung danach, wo ∗ im Vergleich zu ◦ steht:
• l (ϕ0 ) < l (ψ0 ): Dann gilt ϕ0 @ ψ0 – Widerspruch zur Induktionsannahme.
• l (ϕ0 ) > l (ψ0 ): Dann gilt ψ0 @ ϕ0 – Widerspruch zur Induktionsannahme.
17
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
• l (ϕ0 ) = l (ψ0 ): Dann gilt (∗ = ◦, was aber nicht interessiert, und) ϕ1 @ ψ1 – Widerspruch zur Induktionsannahme.
Nun können wir die eigentliche Behauptung beweisen:
Satz 2.1 (eindeutige Konstruktion). Jede aussagenlogische Formel kann nur in einer Weise
im Sinne von Folie 6 konstruiert werden.
Beweis. Hier reicht es, eine einfache Fallunterscheidung durchzuführen. Sei ϕ ∈ F AL beliebig.
1. Fall, ϕ ist eine atomare Formel. Jede atomare Formel hat die Länge 1 und kann nicht
durch eine der Induktionsregeln erzeugt werden.
2. Fall, ϕ = ¬ψ0 mit ψ0 ∈ F AL . Eine solche Formel kann nur eine Negation sein und deshalb
nur auf eine Weise konstruiert werden.
3. Fall, ϕ = (ϕ0 ∗ ϕ1 ) mit {∗} ∈ {∨, ∧, →, ↔} und ϕ0 , ϕ1 ∈ F AL . Wir nehmen an, dass außerdem ϕ = (ϕ00 ◦ ϕ01 ) mit {◦} ∈ {∨, ∧, →, ↔}, ϕ00 , ϕ01 ∈ F AL und l (ϕ0 ) 6= l (ϕ1 ) gilt. Dann gilt
entweder ϕ0 @ ϕ00 oder ϕ00 @ ϕ0 – ein Widerspruch zum vorigen Lemma.
Aufgabe 2.4. Als Länge einer Formel bezeichnen wir die Anzahl der Symbole, die in der
Formel vorkommen. Dabei zählen wir jede Variable als ein Symbol.
Definieren Sie induktiv eine Funktion l : F AL → N, die zu jeder aussagenlogischen Formel
ψ ∈ F AL die Länge von ψ liefert.
Beispiel. Ist ψ = ((X 1 ∨ X 3 ) ∧ (X 2 ∨ (X 3 → ¬X 1 ))), dann ist l (ψ) = 18.
Aufgabe 2.5. Als Schachtelungstiefe einer Formel bezeichnen wir die maximale Rekursionstiefe der Formel (siehe Bild).
Definieren Sie induktiv eine Funktion d : F AL → N, die zu jeder aussagenlogischen Formel
ψ ∈ F AL die Schachtelungstiefe von ψ liefert.
Beispiel. Ist ψ = ((X 1 ∨ X 3 ) ∧ (X 2 ∨ (X 3 → ¬X 1 ))), dann ist d (ψ) = 4.
ψ
X1 ∨ X3
X1
Tiefe 0
X 2 ∨ (X 3 → ¬X 1 )
X3
Tiefe 1
X 3 → ¬X 1
X2
X3
Tiefe 2
¬X 1
Tiefe 3
X1
Tiefe 4
2.5 Formeln in Scheme
Um mit aussagenlogischen Formeln in Scheme umgehen zu können, definieren wir eine
Reihe von Strukturen, und zwar für die Modellierung von Variablen und für die Modellierung der Junktoren.
18
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Variablenbelegungen modellieren wir durch Listen von Paaren bestehend aus Variablenindex und Wahrheitswert. Das Bestimmen der Belegung einer Variablen kann dann durch
einfaches Durchsuchen der Liste bewerkstelligt werden.
Will man eine Formel bezüglich einer Variablenbelegung bewerten, kann man dann einfach rekursiv vorgehen.
Die Details sind zu finden auf den Folien 13–15.
Formeln in Scheme
; Structures for constructing formulas.
(define-struct variable (index))
(define-struct negation (negated))
(define-struct disjunction (left right))
(define-struct conjunction (left right))
(define-struct conditional (left right))
(define-struct biconditional (left right))
Folie 13
Aufgabe 2.6. Entwickeln Sie eine (Scheme-)Prozedur formula->string, die eine aussagenlogische Formel in eine Zeichenreihe umwandelt. Verwenden Sie dabei die auf Folie 13
vorgestellten Strukturen.
Stellen Sie die Junktoren gemäß folgender Kodierung dar:
Junktor
¬
→
↔
∧
∨
Kodierung
->
<->
/\
\/
19
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Variablenbelegungen in Scheme
; Structure for a single assignment: variable |-> truth value.
(define-struct sass (index value))
; Structure for an undefined value.
(define-struct undefined ())
; Look-up of a variable value; an assignment is a list of sass.
(define (look-up index assignment)
(if (null? assignment)
(make-undefined)
(if (= index (sass-index (first assignment)))
(sass-value (first assignment))
(look-up index (rest assignment)))))
Folie 14
Beispiel. ((X_12 /\ -X_15) -> 0) ist eine typische Ausgabe.
Hinweis. Die Ausgabe einer Zeichenreihe kann in Scheme zum Beispiel wie folgt aussehen:
(display (string-append "X_" (number->string 1) " \\/ " "1")).
2.6 Äquivalenz und Normalformen
Neben der Erfüllbarkeit, die wir schon kennengelernt haben, ist die Äquivalenz ein wichtiger Begriff.
Formeln ϕ, ψ ∈ F AL heißen äquivalent, falls für alle Belegungen β, die zu ϕ und ψ passen,
JϕKβ = JψKβ
gilt. Wir schreiben ϕ ≡ ψ in diesem Fall.
20
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Auswertung von Formeln in Scheme
; Evaluate formula w.r.t. a variable assignment.
(define (evaluate formula assignment)
(cond ((eq? formula #t) #t)
((eq? formula #f) #f)
((variable? formula)
(look-up (variable-index formula) assignment))
((negation? formula)
(not (evaluate (negation-negated formula) assignment)))
((disjunction? formula)
(or (evaluate (disjunction-left formula) assignment)
(evaluate (disjunction-right formula) assignment)))
((conjunction? formula)
(and (evaluate (conjunction-left formula) assignment)
(evaluate (conjunction-right formula) assignment)))
((conditional? formula)
(or (not (evaluate (conditional-left formula) assignment))
(evaluate (conditional-right formula) assignment)))
((biconditional? formula)
(eq? (evaluate (biconditional-left formula) assignment)
(evaluate (biconditional-right formula) assignment)))))
Folie 15
2.6.1 Das Koinzidenzlemma
Wir wollen uns zunächst überlegen, dass wir nicht immer alle passenden Variablenbelegungen untersuchen müssen. Es ist ausreichend, wenn man solche mit minimalem Definitionsbereich betrachtet.
Lemma 2.4 (Koinzidenzlemma). Sei ϕF AL und seien β und β0 Variablenbelegungen, die zu
ϕ passen. Falls β|vars(ϕ) = β0 |vars(ϕ) , so
JϕKβ = JϕKβ .
0
Beweis. Den Beweis führen wir per Induktion.
Induktionsanfang. Sei ϕ eine atomare Formel. Dann ist ϕ ∈ {0, 1, X 0 , X 1 , . . . }. Für ϕ ∈ {0, 1}
ist die Behauptung trivial. Für X i ist die Behauptung aber auch sofort einzusehen:
J X i Kβ = β(X i ) = β0 (X i ) = J X i Kβ .
0
Induktionsschritt. Wir nehmen an, dass eine Formel ϕ durch eine der Induktionsregeln
entstanden ist aus anderen Formeln, für die die Behauptung gilt, und wollen zeigen, dass
sie dann auch für ϕ gilt. Wir betrachten jede Regel einzeln.
21
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
1. Fall, ϕ = ¬ψ. Dann haben wir
JϕKβ = ¬
˙ Jϕ0 Kβ
(Semantik der Negation)
0 β0
=¬
˙ Jϕ K
= JϕK
(Induktionsannahme)
β0
(Semantik der Negation) .
2. Fall, ϕ = (ϕ0 ∗ ϕ1 ) mit ∗ ∈ {∨, ∧, →, ↔} und ϕ0 , ϕ1 ∈ F AL . Dann erhalten wir analog zu
oben:
JϕKβ = J(ϕ0 ∗ ϕ1 )Kβ
˙ Jϕ1 Kβ
= Jϕ0 Kβ ∗
˙ Jϕ1 Kβ
= Jϕ0 Kβ ∗
0
= J(ϕ0 ∗ ϕ1 )Kβ
(Semantik des Junktors)
0
(Induktionsannahme)
0
(Semantik des Junktors)
= JϕKβ .
0
Als Konsequenz erhalten wir insbesondere:
Folgerung 2.1. Sei ϕ ∈ F AL und β eine zu ϕ passende Variablenbelegung. Dann gilt
JϕKβ = JϕKβ|vars(ϕ) .
2.6.2 Aussagenlogische Gesetze
Aufgrund der algebraischen Eigenschaften der booleschen Operationen können wir sofort
die folgenden nützlichen Äquivalenzen festhalten:
Satz 2.2. Für alle Formeln ϕ, ψ, χ ∈ F AL gilt:
1. Idempotenz:
ϕ∨ϕ ≡ ϕ ,
ϕ∧ϕ ≡ ϕ .
(Idp)
2. Kommutativität:
ϕ∨ψ ≡ ψ∨ϕ ,
ϕ∧ψ ≡ ψ∧ϕ .
(Kom)
3. Assoziativität:
(ϕ ∧ ψ) ∧ χ ≡ ϕ ∧ (ψ ∧ χ) ,
(ϕ ∨ ψ) ∨ χ ≡ ϕ ∨ (ψ ∨ χ) .
(Ass)
4. Absorption:
ϕ ∧ (ϕ ∨ ψ) ≡ ϕ ,
ϕ ∨ (ϕ ∧ ψ) ≡ ϕ .
22
Aussagenlogik.tex Rev 113 2008-12-03
(Abs)
2 Aussagenlogik
5. Distributivität:
(ϕ ∧ ψ) ∨ χ ≡ (ϕ ∨ χ) ∧ (ψ ∨ χ) ,
(ϕ ∨ ψ) ∧ χ ≡ (ϕ ∧ χ) ∨ (ψ ∧ χ) .
(Dis)
6. Doppelte Negation:
¬¬ϕ ≡ ϕ
(DN)
7. De Morgan:
¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ ,
¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ .
(DM)
8. Tertium non datur:
ϕ ∧ ¬ϕ ≡ 0 ,
ϕ ∨ ¬ϕ ≡ 1 .
(Tnd)
ϕ∧0 ≡ 0 ,
ϕ∨1 ≡ 1 ,
(GK)
¬0 ≡ 1 ,
¬1 ≡ 0 .
(Kmp)
ϕ ↔ ψ ≡ (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) .
(Elm)
9. Größtes und kleinstes Element:
10. Komplementierung:
11. Elimination von Konditional und Bikonditional:
ϕ → ψ ≡ ¬ϕ ∨ ψ ,
12. Kontraposition: Für alle ϕ, ψ ∈ F AL gilt
ϕ → ψ ≡ ¬ψ → ¬ϕ .
(Knt)
Beweis. Wie gesagt, die Gesetze folgen direkt aus den Eigenschaften der booleschen Operationen. Zum Beispiel kann man leicht nachrechnen, dass
b 0 →b
˙ 1 = ¬b
˙ 1→
˙ ¬b
˙ 0
für alle b 0 , b 1 ∈ {0, 1}
(*)
gilt. Daraus folgt die Gültigkeit der Kontraposition wie folgt: Sei β eine Belegung, die zu ϕ
und ψ passt. Dann gilt
Jϕ → ψKβ = JϕKβ →
˙ JψKβ
=¬
˙ JψKβ →
˙¬
˙ JψKβ
(Anwendung von (*))
= J¬ψKβ →
˙ J¬ψKβ
(Semantik von ¬)
= J¬ψ → ¬ϕKβ .
(Semantik von →)
Damit ist die Behauptung bewiesen.
23
Aussagenlogik.tex Rev 113 2008-12-03
(Semantik von →)
2 Aussagenlogik
Diese obigen Gesetze beschreiben zwar viele aussagenlogischen Gesetzmäßigkeiten. Will
man aber weitere Gesetzmäßigkeiten mit ihrer Hilfe beweisen, benötigt man eine weitere
Erkenntnis. Dazu wollen wir uns ein Beispiel ansehen.
Es lässt sich leicht wie im Beweis von Satz 2.2 direkt nachrechnen, dass
ϕ ↔ ψ ≡ (ϕ → ψ) ∧ (ψ → ϕ)
(2.6)
für alle ϕ, ψ ∈ F AL gilt. Allein mit den Gesetzen aus Satz 2.2 gelingt dies aber nicht.
Was wir brauchen, um weitere interessante Äquivalenzen beweisen zu können, ist eine
Aussage darüber, dass man innerhalb einer Formel eine Teilformel durch eine äquivalente
ersetzen darf. Das ist Thema des nächsten Abschnitts.
2.6.3 Substitution
Eine Substitution ist eine partielle Funktion VAL 99K F AL . Sei σ eine Substitution. Gilt X i ∈
dom(σ), so nennen wir σ(X i ) den Substituenten für X i . Für jede Formel ϕ ∈ F AL definieren
wir das Ergebnis der Anwendung von σ auf ϕ, was wir mit ϕσ bezeichnen.
Die Definition von ϕσ erfolgt per Induktion:
Basiszuordnung. Wir setzen 0σ = 0, 1σ = 1 und X i σ = X i für alle i mit X i ∉ dom(σ). Für
X i ∈ dom(σ) setzen wir X i σ = σ(X i ).
Induktionsschritt. Hier setzen wir (¬ϕ)σ = ¬(ϕσ) und (ϕ∗ψ)σ = (ψσ∗ψσ) für ∗ ∈ {∨, ∧, →
, ↔} und ϕ, ψ ∈ F AL .
Ist σ eine Substitution und β eine Belegung, so bezeichnet βσ die Belegung definiert
durch (βσ)(X i ) = J X i σKβ für i ∈ N.
Zunächst beweisen wir:
Lemma 2.5 (Substitutionslemma). Sei ϕ ∈ F AL , σ eine Substitution und β eine Belegung, die
zu ϕσ passt. Dann gilt
JϕσKβ = JϕKβσ .
Beweis. Der Beweis erfolgt durch eine einfache Induktion.
Induktionsanfang. Gilt ϕ = 0, so gilt
JϕσKβ = J0Kβ = JϕKβσ .
Ähnlich ist der Beweis für ϕ = 1. Ist X i ∉ dom(σ), so ist die Behauptung leicht einzusehen.
Für X i ∈ dom(σ) erhalten wir:
JϕσKβ = J X i σKβ = Jσ(X i )Kβ = J X i Kβσ .
Induktionsschritt. Wir betrachten den Fall ϕ = (ϕ0 ∨ ϕ1 ). Dann gilt:
˙ Jϕ1 σKβ = Jϕ0 Kβσ ∨
˙ Jϕ1 Kβσ = J(ϕ0 ∨ ϕ1 )Kβσ .
JϕσKβ = J(ϕ0 ∨ ϕ1 )σKβ = J(ϕ0 σ ∨ ϕ1 σ)Kβ = Jϕ0 σKβ ∨
Die anderen Fälle lassen sich in gleicher Weise beweisen.
24
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Daraus können wir zunächst ableiten:
Folgerung 2.2 (1. Ersetzungslemma). Sind ϕ, ψ ∈ F AL mit ϕ ≡ ψ und ist σ eine Substitution,
so gilt ϕσ ≡ ψσ.
Beweis. Für jede Variablenbelegung β, die zu ϕσ und ψσ passt, gilt:
JϕσKβ = JϕKβσ = JψKβσ = JψσK .
Wir können aus dem Substitutionslemma auch noch ein weiteres sehr hilfreiche Lemma
ableiten. Dazu führen wir folgende Schreibweise ein. Wenn X i ∈ VAL und ψ ∈ F AL , so [ψ/X i ]
die Substitution, die definiert ist durch
(
Xi ,
falls i = j ,
[ψ/X j ] =
undefiniert, sonst.
In analoger Weise schreiben wir [ψi 0 /X i 0 , . . . , ψi r −1 /X i r −1 ] für Substitutionen, die mehrere
Variablen ersetzen.
Folgerung 2.3 (2. Ersetzungslemma). Ist χ ∈ F AL , X i ∈ VAL , ρ, ρ 0 ∈ F AL mit ρ ≡ ρ 0 . Dann gilt
χ[ρ/X i ] ≡ χ[ρ 0 /X i ] .
Beweis. Wir wenden das Substitutionslemma an und nehmen an, dass β eine beliebige
Belegung ist, die zu χ passt. Dann gilt:
Jχ[ρ/X i ]Kβ = JχKβ[ρ/X i ] = JχKβ[ρ /X i ] = Jχ[ρ 0 /X i ]Kβ .
0
Daraus folgt die Behauptung.
Die obige Formulierung des Ersetzungslemmas ist technisch, während die Anwendung
des Lemmas sehr intuitiv ist, was wir an Formel 2.6 zeigen wollen.
Beweisen wollten wir, dass
ϕ ↔ ψ ≡ (ϕ → ψ) ∧ (ψ → ϕ)
für alle ϕ, ψ ∈ F AL gilt.
Im Folgenden seien deshalb ϕ, ψ ∈ F AL und es sei i derart, dass X i ∉ vars(ϕ)∪vars(ψ) gilt.
1. Aus (Elm) erhalten wir
ϕ ↔ ψ ≡ (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ)
2. Nun wenden wir auf die rechte Seite das 2. Ersetzungslemma mit χ = X i ∧ (ϕ ∨ ¬ψ),
ρ = ¬ϕ ∨ ψ und ρ 0 = ϕ → ψ an. Letzteres dürfen wir wegen (Elm). Dann erhalten wir:
(¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) ≡ (ϕ → ψ) ∧ (ϕ ∨ ¬ψ) .
25
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
3. Jetzt wenden wir auf die rechte Seite wieder das 2. Ersetzungslemma an, jetzt mit
χ = (ϕ → ψ) ∧ X i , ρ = ϕ ∨ ¬ψ und ρ 0 = ¬ψ ∨ ϕ an. Letzteres dürfen wir wegen (Kom).
Dann erhalten wir:
(ϕ → ψ) ∧ (ϕ ∨ ¬ψ) ≡ (ϕ → ψ) ∧ (¬ψ ∨ ϕ) .
4. Erneut wenden wir das 2. Ersetzungslemma an, dieses Mal mit χ = (ϕ → ψ) ∧ X i ,
ρ = ¬ψ ∨ ϕ und ρ 0 = ψ → ϕ, wobei letzteres durch (Elm) rechtfertigt ist. Wir erhalten:
(ϕ → ψ) ∧ (¬ψ ∨ ϕ) ≡ (ϕ → ψ) ∧ (ψ → ϕ) .
Insgesamt ist nun die vorgegebene Äquivalenz bewiesen.
Aufgabe 2.7. Sei σ : VAL 99K F AL eine Substitution mit
σ(X 1 ) = (ψ ∧ X 2 )
σ(X 2 ) = ¬X 1
σ(X 4 ) = X 1 .
Sei ϕ := ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 3 ) ∧ ¬X 2 )).
(a) Berechnen Sie ϕσ durch Anwendung der induktiven Definition der Substitution.
(b) Was erhält man bei intuitiver Substitution?
(c) Wie kann man sinnvoll die Komposition von zwei Substitutionen definieren?
2.6.4 Negationsnormalform
Häufig ist es günstig, ohne Einschränkung annehmen zu können, dass eine beliebige aussagenlogische Formel eine eingeschränkte Form hat. Das führt zur Definition und Untersuchung so genannter Normalformen.
Eine aussagenlogische Formel ist in Negationsnormalform (NNF) oder positiver Normalform, wenn sie zur Menge NNF AL gehört, deren induktive Definition auf Folie 16 zu sehen
ist.
Satz 2.3 (Negationsnormalform). Jede aussagenlogische Formel ist äquivalent zu einer Formel in Negationsnormalform.
Beweis. Per Induktion definieren wir zwei Funktion 0 : F AL → NNF AL und : F AL → NNF AL ,
so dass für alle ϕ ∈ F AL sowohl ϕ ≡ ϕ0 wie auch ¬ϕ ≡ ϕ gilt. Wir definieren die beiden Funktione per Induktion und beweisen gleichzeitig, dass die Definition korrekt ist (also die beiden Eigenschaften erfüllt).
Basiszuordnung. Für ϕ = 0 setzen wir ϕ0 = 0 und ϕ = 1, was offensichtlich korrekt ist.
Analog verfahren wir für 1. Für ϕ = X i setzen wir ϕ0 = X i und ϕ = ¬X i , was auch korrekt
ist. Und für ¬X i setzen wir ϕ0 = ¬X i und ϕ = X i . Dass letzteres richtig ist, folgt aus der
Elimination der doppelten Negation, denn diese besagt ¬¬X i ≡ X i .
26
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Negationsnormalform
Die Menge NNF AL ist induktiv definiert durch:
1. Basismenge: Die Basiselemente sind 0, 1, Xi und ¬Xi für
i ∈ N.
2. Induktionsregeln: Sind ϕ, ψ ∈ NNF AL , so sind
(ϕ ∨ ψ) ∈ NNF AL und (ϕ ∧ ψ) ∈ NNF AL .
Folie 16
Induktionsschritt. Wir betrachten zunächst eine Formel ϕ = ¬ϕ0 und nehmen an, dass
es ϕ00 und ϕ0 mit den entsprechenden Eigenschaften gibt. Dann gilt mit dem Gesetz der
Elimination der doppelten Negation:
ϕ0 ≡ ¬ϕ0 = ϕ
¬ϕ = ¬¬ϕ0 ≡ ϕ0 ≡ ϕ00 .
und
Deshalb können wir ϕ0 = ϕ0 und ϕ = ϕ00 setzen.
Die anderen vier Junktoren können in ähnlicher Weise behandelt werden. Beispielhaft
behandeln wir den Fall des Konditionals. Das heißt, wir nehmen an, dass ϕ = (ϕ0 → ϕ1 )
gilt und dass es ϕ00 , ϕ0 , ϕ01 und ϕ1 mit den entsprechenden Eigenschaften gibt. Für die Anwendung des Ersetzungslemmas nehmen wir an, dass i derart ist, dass X i ∉ vars(ϕ). Dann
gilt:
ϕ ≡ ¬ϕ0 ∨ ϕ1
(Elimination von →)
≡ ϕ0 ∨ ϕ1
≡ ϕ0 ∨ ϕ01
(Ersetzungslemma mit X i ∨ ϕ1 , Ind.-Ann.)
(Ersetzungslemma mit ϕ0 ∨ X i , Ind.-Ann.)
∈ NNF AL
27
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Analog erhalten wir:
¬ϕ ≡ ¬(¬ϕ0 ∨ ϕ1 )
(Elimination von →)
≡ ¬¬ϕ0 ∧ ¬ϕ1
(De Morgan)
≡ ϕ0 ∧ ¬ϕ1
(Doppelte Negation und Ersetzungslemma)
≡ ϕ00 ∧ ¬ϕ1
≡ ϕ00 ∧ ϕ1 ∈ NNF AL
(Ersetzungslemma und Ind.-Ann.)
(Ersetzungslemma und Ind.-Ann.)
Also setzen wir ϕ0 = ϕ0 ∨ ϕ01 und ϕ = ϕ00 ∧ ϕ1 .
Ein Algorithmus, der eine Formel umwandelt, ist auf Folie 17 zu sehen. Er orientiert sich
an dem Beweis.
Wir haben nun häufig genug gesehen, wie das 2. Ersetzungslemma anzuwenden ist. Da
es sehr intuitiv und leicht anwendbar ist, werden wir seine Anwendung in Zukunft nicht
mehr erähnen.
Umwandlung in NNF
NNF(ϕ)
Vorbedingung: ϕ ∈ FAL .
if ϕ ∈ {Xi , 0, 1} then
return ϕ
if ϕ = ¬ψ then
return NegNNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return NNF(ϕ0 ) ∨ NNF(ϕ1 )
if ϕ = ϕ0 ∧ ϕ1 then
return NNF(ϕ0 ) ∧ NNF(ϕ1 )
if ϕ = ϕ0 → ϕ1 then
return NNF(¬ϕ0 ∨ ϕ1 )
if ϕ = ϕ0 ↔ ϕ1 then
return NNF(¬ϕ0 ∨ ϕ1 ) ∧ . . .
Nachbedingung: return
∈ NNF AL und return ≡ ϕ.
NegNNF(ϕ)
Vorbedingung: ϕ ∈ FAL .
if ϕ = Xi then
return ¬Xi
if ϕ = 0 then
return 1
if ϕ = 1 then
return 0
if ϕ = ¬ψ then
return NNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return NegNNF(ϕ0 ) ∧ NegNNF(ϕ1 )
...
Nachbedingung: return ∈ NNF AL und
return ≡ ¬ϕ.
Folie 17
Aufgabe 2.8. Zu jeder Formel ϕ ∈ NNF AL definieren wir die zu ihr duale Formel ϕ induktiv:
28
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
1. Basiszuordnung: 0 = 1, 1 = 0, X i = ¬X i , ¬X i = X i .
2. Induktionsregeln: Für alle ϕ, ψ ∈ NNF AL : ϕ ∧ ψ = ϕ ∨ ψ, ϕ ∨ ψ = ϕ ∧ ψ.
(Beachten Sie, dass eindeutige Konstruktion hier gegeben ist.)
Zeigen Sie per Induktion, dass für jedes ϕ ∈ NNF AL gilt: ¬ϕ ≡ ϕ.
2.6.5 Konjunktive und disjunktive Normalform
Wir beginnen mit einer Vorüberlegung: Weil ∧ kommutativ, assoziativ und idempotent ist,
kommt es bei ∧ weder auf die Klammerung, noch auf die Reihenfolge, noch auf die Vielfachheit der Konjunktionsglieder an. Wir wollen dies etwas formaler beschreiben.
Die Menge der einfachen Konjunktionen ist induktiv wie folgt definiert.
Basismenge. Jedes X i ∈ VAL ist eine einfache Konjunktion und 1 ist eine einfache Konjunktion.
Induktionsregeln. Sind ϕ und ψ einfache Konjunktionen, so ist auch (ϕ∧ψ) eine einfache
Konjunktion.
Nun können wir formulieren:
Lemma 2.6. Sind ϕ und ψ einfache Konjunktionen mit vars(ϕ) = vars(ψ), so gilt ϕ ≡ ψ.
Beweis. Man beweist dies leicht per Induktion, indem man zeigt, dass für jede einfache
Konjunktion ϕ und für jede Belegung β, die zu ϕ passt, gilt: JϕKβ = 1 genau dann, wenn
β(X i ) = 1 für alle X i ∈ vars(ϕ).
Beispiel 2.6. (((X 0 ∧ ¬X 1 ) ∧ (¬X 1 ∧ X 2 )) ∧ X 2 ) ist äquivalent zu ((X 0 ∧ ¬X 1 ) ∧ X 2 ).
Aus dem ersten Ersetzungslemma folgt dann, dass unter den Voraussetzungen des Lemma auch ϕσ ≡ ψσ für alle Substitutionen σ gilt. D. h., wir können uns anstelle der X i beliebige Formeln denken.
V
Diese Überlegungen rechtfertigen Schreibweisen wie Φ, wobei Φ eine endliche Menge
V
Vr −1
von Formeln ist. Wir stellen uns Φ als Formel i =0 ϕi vor, sofern Φ = {ϕ0 , . . . , ϕr −1 } gilt.
Dazu vereinbaren wir, dass die leere Konjunktion (r = 0) für 1 steht.
W
Analoges gilt selbstverständlich für Disjunktionen; die Schreibweise ist Φ; die leere Disjunktion steht für 0.
VW
Ist M eine endliche Menge von endlichen Formelmengen, so schreiben wir auch
M
VW
WV
für { Φ : Φ ∈ M } und benutzen
in analoger Weise. Ein Literal ist von der Form X i oder
¬X i mit X i ∈ VAL . Literale der Form X i heißen positiv, die anderen negativ. Wir schreiben
X i für ¬X i und ¬X i = X i . Eine Klausel ist eine endliche Menge von Literalen. Eine Klauselmenge ist eine endliche Menge von Klauseln.
VW
WV
Mit
und
lässt sich im Zusammenhang mit Klauselmengen leicht rechnen:
Lemma 2.7. Seien M und M 0 Klauselmengen und K 0 eine Klausel. Dann gilt
^_
_
^_
M ∧ K0 ≡
(M ∪ {K 0 }) ,
^_
_
^_
M ∨ K0 ≡
{K ∪ K 0 : K ∈ M } ,
^_
^_ 0 ^_
M∧
M ≡
(M ∪ M 0 ) ,
^_
^_ 0 ^_
M∨
M ≡
{K ∪ K 0 : K ∈ M und K 0 ∈ M 0 } .
29
Aussagenlogik.tex Rev 113 2008-12-03
(2.7)
(2.8)
(2.9)
(2.10)
2 Aussagenlogik
Beweis. Wir beweisen nur den zweiten und vierten Teil und zwar jeweils per vollständiger
Induktion.
Zum Beweis von (2.8) führen wir eine Induktion über die Anzahl der Klauseln in M .
VW
VW
Induktionsanfang, |M | = 0. Dann gilt M = ;, also
M ≡ 1 und damit auch
M∨
W
VW
K 0 ≡ 1. Andererseits gilt {K ∪ K 0 : K ∈ M } = ;, so dass auch
{K ∪ K 0 : K ∈ M } = 1 gilt.
Induktionsschritt mit Induktionsannahme, dass (2.8) für alle M mit |M 0 | = n gilt. Sei N
eine Klauselmenge mit n + 1 Klauseln, etwa N = M ∪ {K 0 } für eine Klauselmenge M der
Mächtigkeit n und eine Klausel K 0 . Es gilt dann:
^_
N ∨
_
M ∧ K 0) ∨ K0
^_
_
_
_
≡(
M ∨ K0) ∧ ( K 0 ∨ K0)
^_
_
≡
{K ∪ K 0 : K ∈ M } ∧ (K 0 ∪ K 0 )
^_
≡
({K ∪ K 0 : K ∈ M } ∪ {K 0 ∪ K 0 })
^_
≡
{K ∪ K 0 : K ∈ N } .
K0 ≡ (
^_
_
_
(nach (2.7))
(Distributivität)
(Induktionsannahme)
(nach (2.7))
Für den Beweis von (2.10) führen wir eine vollständige Induktion über die Anzahl der
Klauseln in M 0 durch.
VW 0
VW
Induktionsanfang, |M 0 | = 0. Dann gilt M 0 = ;, also
M ≡ 1 und damit auch
M∨
VW 0
VW
0
0
0
0
M ≡ 1. Andererseits gilt {{K ∪ K } : K ∈ M und K ∈ M } = ;, also
{{K ∪ K } : K ∈
M und K 0 ∈ M 0 } ≡ 1.
Induktionsschritt mit Induktionsannahme, dass die Äquivalenz für alle M 0 mit |M 0 | = n
gilt. Sei N eine Klauselmenge mit n + 1 Klauseln, etwa N = M 0 ∪ {K 0 } für eine Klauselmenge M 0 der Mächtigkeit n und eine Klausel K 0 . Es gilt dann:
^_
M∨
^_
N ≡
^_
M ∨(
M 0 ∧ K0)
(nach (2.7))
^_
^_ 0
^_
_
≡(
M∨
M )∧(
M ∨ K0)
(Distributivität)
^_
^_
_
0
0
0
≡
{{K ∪ K } : K ∈ M und K ∈ M } ∧ (
M ∨ K 0 ) (Ind.-Ann.)
^_
^_
0
0
0
≡
{{K ∪ K } : K ∈ M und K ∈ M } ∧
{K ∪ K 0 : K ∈ M }
≡
^_
^_
_
(nach (2.8))
{{K ∪ K } : K ∈ M und K ∈ N } .
0
0
(nach (2.9))
Die Beweise von (2.7) und (2.9) können in ähnlicher Form geführt werden, sie sind jedoch
einfacher.
VW
Eine Formel in konjunktiver Normalform ist von der Gestalt
M für eine KlauselmenWV
ge M . Und eine Formel in disjunktiver Normalform ist von der Gestalt
M für eine Klauselmenge M . Die entsprechenden Formelmengen werden mit KNF AL und DNF AL bezeichnet.
Beispiel 2.7. Die Formel (X 0 ↔ ¬X 1 ) ist äquvialent zu (¬X 0 ∨ ¬X 1 ) ∧ (X 0 ∨ X 1 ), was eine
Formel in konjunktiver Normalform ist. In Klauselschreibweise lautet diese Formel:
^_
{{X 0 , X 1 }, {¬X 0 , ¬X 1 }} .
30
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Unser wichtigster Satz ist nun der folgende.
Satz 2.4. Zu jeder Formel ϕ ∈ F AL gibt es eine äquivalente Formel knf(ϕ) ∈ KNF AL und eine
äquivalente Formel dnf(ϕ) ∈ DNF AL .
Beweis. Wir beweisen dies per Induktion, setzen aber voraus, dass ϕ ∈ NNF AL gilt. Das ist
keine Einschränkung, da wir schon Satz 2.3 bewiesen haben.
Induktionsanfang. Für X i , ¬X i , 0 und 1 gilt die Behauptung trivialerweise, denn wir können in diesen Fällen einfach knf(ϕ) = ϕ setzen.
Induktionsschritt. Gilt ϕ = ϕ0 ∧ ϕ1 mit ϕ0 , ϕ1 ∈ NNF AL , so gibt es nach InduktionsanVW
VW
nahme Klauselmengen M0 , M1 mit
M0 ≡ ϕ0 und
M1 ≡ ϕ1 . Durch die zweifache
Anwendung des Ersetzungslemmas 2.3 und des Lemmas 2.7 ergibt sich
^_
^_
^_
ϕ≡
M0 ∧
M1 ≡
(M0 ∪ M1 ) .
Für ϕ = ϕ0 ∨ ϕ1 ist die Situation etwas anders. Wir erhalten – wiederum unter Benutzung
der bereits oben benutzten Lemmas:
^_
^_
^_
ϕ≡
M0 ∨
M1 ≡
{K ∪ K 0 : K ∈ M0 und K 0 ∈ M1 } .
Auf Folie 18 ist ein entsprechender Algorithmus zu sehen.
Wir bemerken, dass die Formeln, die wir im Abschnitt 2.3 entwickelt haben, entweder
schon in KNF sind oder leicht in KNF überführt werden können. Die Einschränkung auf
Formeln in KNF ist deshalb in vielen Fällen keine wirkliche Einschränkung.
Aufgabe 2.9. Überführen Sie die folgende aussagenlogische Formel in eine äquivalente
Formel in KNF dargestellt als Klauselmenge.
^
(X i ↔ ¬X j ).
1≤i < j ≤n
Zur Erinnerung: Formeln dieser Art traten bei der Frage auf, ob ein Graph bipartit ist.
Aufgabe 2.10. Beweisen Sie für alle ϕ, ψ, χ, ρ ∈ F AL die folgende Äquivalenz:
((ϕ ∧ ψ) ∧ χ) → ρ ≡ ϕ → (ψ → (χ → ρ)) .
Verwenden Sie dabei die in der Vorlesung vorgestellten aussagenlogischen Gesetze. Geben
Sie für jeden Schritt an, welches Gesetz und welche Substitution verwendet worden ist.
Hinweis. Orientieren Sie sich an dem Beweis der Gültigkeit der Äquivalenz (2.6).
Aufgabe 2.11. Beweisen Sie Lemma 2.6.
Aufgabe 2.12. Überführen Sie die folgenden Formeln in NNF, KNF und DNF.
(a) ¬((X 1 ∨ X 2 ) ∧ X 3 )
(b) (¬(X 1 → X 2 ) ↔ X 3 )
31
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Umwandlung in KNF
KNF(ϕ)
Vorbedingung: ϕ ∈ NNF AL .
if ϕ = 0 then
return {∅}
if ϕ = 1 then
return {}
if ϕ = ¬Xi then
return {{¬Xi }}
if ϕ = Xi then
return {{Xi }}
if ϕ = ϕ0 ∧ ϕ1 then
return KNF(ϕ0 ) ∪ KNF(ϕ1 )
if ϕ = ϕ0 ∨ ϕ1 then
return {K0 ∪ KV
: K0 ∈ KNF(ϕ0 ) und K1 ∈ KNF(ϕ1 )}
1W
Nachbedingung:
return ≡ ϕ.
Folie 18
2.7 Erfüllbarkeitstests
Wir haben schon im Abschnitt 2.3 gesehen, dass es aus informatischer Sicht wichtig ist,
die Erfüllbarkeit einer aussagenlogischen Formel überprüfen zu können. Prinzipiell ist dies
leicht, denn man braucht nach dem Koinzidenzlemma nur alle möglichen Belegungen
durchzugehen, wie dies auf Folie 19 zu sehen ist.
Dieser Algorithmus hat den großen Nachteil, dass die Struktur der betrachteten Formel
in keinster Weise berücksichtigt wird.
Um etwas über die Laufzeit des Algorithmus sagen zu können, halten wir zunächst fest:
Lemma 2.8. Ist V ⊆ VAL eine Menge der Mächtigkeit n, so gibt es 2n Funktionen V → {0, 1}.
Beweis. Ein Beweis erfolgt per vollständiger Induktion.
Induktionsanfang, n = 0. Dann hat V genau 0 Elmente, also V = ;. Es gibt aber genau
eine Funktion, die auf der leeren Menge definiert ist, nämlich die leere Menge selbst.
Induktionsschritt. Wir nehmen an, dass es für jede Menge V ⊆ VAL der Mächtigkeit n
genau 2n Funktionen V → {0, 1} gibt. Nun sei V 0 ⊆ VAL eine Menge mit n + 1 Elementen.
Dann besitzt V 0 mindestens ein Element, d. h., es gibt ein i ∈ N, für das X i ∈ V 0 gilt, und
32
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Naiver Erfüllbarkeitstest
NaiveSAT(ϕ)
Vorbedingung: ϕ ∈ FAL .
let V = vars(ϕ)
forall β : V → {0, 1}
if JϕKβ = 1 then return 1
return 0
Nachbedingung: ϕ ist erfüllbar genau dann, wenn return = 1.
Folie 19
wir setzen V = V 0 \ {X i }. Sei M 0 die Menge aller Funktionen V 0 → {0, 1}; wir setzen M 0 =
{β ∈ M 0 | β(X i ) = 0} und M 1 = {β ∈ M 0 | β(X i ) = 1}. Dann gilt |M 0 | = |M 0 | + |M 1 |. Nun gilt aber
offensichtlich auch |M 0 | = |M |, wobei M die Menge aller Funktionen V → {0, 1} ist. Genauso
gilt |M 1 | = |M |. Nach Induktionsannahme gilt aber |M | = 2n , also
|M 0 | = |M 0 | + |M 1 | = 2n + 2n = 2n+1 .
Bemerkung 2.3. Wenn eine Formel ϕ genau n Variablen enthält, dann wird die forallSchleife im schlechtesten Fall – wenn die Formel unerfüllbar ist – 2n mal durchlaufen.
Wenn wir feststellen wollen, ob eine Formel unerfüllbar ist, können wir auch auf die aussagenlogischen Sätze und das zweite Ersetzungslemma zurückgreifen, genauer, wir können logische Äquivalenz nutzen:
Lemma 2.9. Sei ϕ ∈ F AL . Dann ist ϕ genau dann unerfüllbar, wenn ϕ ≡ 0 gilt.
33
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Beweis. Wenn ϕ unerfüllbar ist, dann gilt JϕKβ = 0 für alle zu ϕ passenden Belegungen. Für
jede Belegung gilt aber J0Kβ = 0.
Gilt umgekehrt ϕ ≡ 0 und ist β eine beliebige Belegung, die zu ϕ passt, so passt β auch
zu 0, und wir erhalten JϕKβ = J0Kβ = 0, also β 6|= ϕ. Also ist ϕ nicht erfüllbar.
Wir können also wie in dem Beispiel in Abschnitt 2.6.3 die aussagenlogischen Gesetze
und das zweite Ersetzungslemma nutzen, um ϕ ≡ 0 zu zeigen und damit auch unfb(ϕ)
nachzuweisen.
Aufgabe 2.13. Seien ϕ, ψ, θ ∈ F AL . Zeigen Sie mit Hilfe der aussagenlogischen Gesetze und
unter Benutzung des 2. Ersetzunglemmas, dass folgende Formeln unerfüllbar sind.
(a) ϕa = ¬((((θ ∧ ϕ) ∧ ¬ϕ) ∨ ψ) → ψ)
(b) ϕb = ((¬(¬ψ → ¬ϕ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ))
(c) ϕc = (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬ψ → θ)))
2.7.1 Der DPLL-Algorithmus
Wir werden im Folgenden annehmen, dass Formeln in KNF gegeben sind. Denn dann können wir einen Algorithmus angeben, der in vielen Fällen, auch wenn die Formel unerfüllbar
ist, besser als der naive Algorithmus ist.
Die Vorüberlegung für den verbesserten Algorithmus ist einfach: Wenn man den Variablen nacheinander Werte zuweist, kann man hoffen, dass möglicherweise frühzeitig mit geringem Aufwand festgestellt werden kann, dass die Belegung, die gerade konstruiert wird,
die Formel (nicht) erfüllt. Zum Beispiel ist für
(¬X 0 ∨ X 1 ) ∧ X 0 ∧ (¬X 1 ∨ X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ ¬X 3 ,
(2.11)
sofort ersichtlich, dass jede Belegung mit β(X 0 ) = 0 wegen des zweiten Konjunktionsglieds
nicht zum Wahrheitswert 1 führt.
Wir beginnen mit neuer Notation und einigen einfachen Feststellungen. Zukünftig soll
β |= ϕ bedeuten, dass β eine Belegung ist, die zu ϕ passt und für die JϕKβ = 1 gilt. Wir
schreiben erfb(ϕ), falls ϕ erfüllbar ist.
Bemerkung 2.4. Sei M eine Klauselmenge.
VW
1. Gilt M = ;, dann auch erfb( M ).
VW
2. Gilt ; ∈ M , dann auch unfb( M ).
VW
3. Ist M 0 eine Klauselmenge, für die M ⊆ M 0 und erfb( M 0 ) gilt, so gilt auch erfb(M ).
Wie sich das Belegen von Variablen auf Formeln in KNF auswirkt, wollen wir zunächst
studieren. Eine einelementige Klausel nennen wir Einheitsklausel.
Ist M eine Klauselmenge und L ein Literal, so setzen wir
M |L = {K \ {L} : K ∈ M und L ∉ K } .
Die so definierte Operation auf Klauselmengen spielt eine zentrale Rolle in dem zu beschreibenden Algorithmus. Die wichtigste Eigenschaft dieser Operation kann dem folgenden Lemma entnommen werden.
34
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Lemma 2.10.
1. Sei M eine Klauselmenge und i ∈ N. Dann gilt
erfb(
^_
M)
gdw.
erfb(
^_
M | X i ) oder erfb(
^_
M |¬X i ) .
2. Sei M eine Klauselmenge und E = {L} eine Einheitsklausel. Dann gilt
^_
erfb(
M)
gdw.
^_
erfb(
M |L ) .
VW
W
Beweis. Zu Behauptung 1. Wir nehmen zunächst β |=
M an. Dann gilt β |= K für alle
K ∈ M . Wir unterscheiden zwei Fälle: β(X i ) = 0 und β(X i ) = 1.
Zum ersten Fall: Sei K ∈ M . Dann muss JL Kβ = 1 für ein L ∈ K gelten. Da J X i Kβ = 0, muss
VW
auch JL Kβ = 1 für ein L ∈ K \{X i } gelten. Also gilt auch erfb( M |¬X i ). Der zweite Fall führt
VW
in analoger Weise zu erfb( M | X i ).
VW
Gelte umgekehrt β |=
M | X i . Wir setzen β0 = β[1/X i ]. Dann gilt trivialerweise β0 |= K
für alle K ∈ M mit X i ∈ K . Sei nun K ∈ M mit X i ∉ K und K 0 definiert durch K 0 = K \ {¬X i }.
W
W
Dann gilt K 0 ∈ M | X i , also β |= K 0 . Da X i ∉ vars( K 0 ), gilt nach dem Koinzidenzlemma
W
VW
auch β0 |= K 0 , also schließlich auch β0 |= K . Insgesamt erhalten wir also β0 |=
M . Der
VW
VW
Fall erfb( M |¬X i ) führt in analoger Weise zu erfb( M ).
Zu Behauptung 2. Folgt direkt aus Behauptung 1.
Wir benutzen Lemma 2.10, um zu zeigen, dass ein Dreieck nicht bipartit ist, siehe Folie 20.
Auf Folie 21 ist zu sehen, wie Lemma 2.10 in einen rekursiven Erfüllbarkeitstest umgewandelt werden kann. Dieser wurde im Jahr 1962 von M ARTIN D AVIS, H ILARY P UTNAM,
G EORGE L OGEMANN und D ONALD W. L OVELAND vorgeschlagen. Auf Folie 22 ist eine einfache Erweiterung des DPLL-Algorithmus zu sehen, die zusätzlich eine erfüllende Belegung
ausgibt, wenn die Formel erfüllbar ist.
Es gibt eine Reihe sehr leistungsfähiger Erfüllbarkeitstest, die im Englischen SAT solver
heißen. Will man diese benutzen, so beachte man, dass diese als Eingabe (meistens) Ausdrücke in Form von so genannten DIMACS-Daten erwarten:
(1) Eine Datei besteht aus einer Präambel und den Klauseln.
(2) Die Präambel besteht aus Kommentarzeilen, die mit c beginnen, gefolgt von einer
Zeile, die mit p beginnt.
(3) Diese Zeile hat das Format p <format> n m, wobei <format> hier den Wert cnf annimmt, n die Anzahl der Variablen und m die Anzahl der Klauseln ist.
(4) Danach folgenden die Klauseln, wobei jede Klausel eine Liste von Zahlen ist, die mit
0 endet. Dabei steht die Zahl i für das Literal X i und die Zahl −i für ¬X i .
Die einzelnen Listenelemente werden durch Leerzeichen oder Zeilenumbrüche getrennt.
Beispiel 2.8. Die Formel (X 1 ∨ ¬X 2 ) ∧ (X 2 ∨ ¬X 3 ∨ ¬X 4 ) ∧ (X 1 ∨ ¬X 4 ) würde im DIMACSDatenformat folgendermaßen aussehen:
c Beispielformel
c
35
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein Dreieck ist nicht bipartit
Anwendung des DPLL-Lemmas
Zu zeigen:
VW
unfb( {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }})
Beweis mit Hilfe des Lemmas:
^_
erfb(
{{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }})
gdw. (Lemma, Teil 1, i = 0)
^_
erfb(
{{¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {¬X2 }}) oder
^_
erfb(
{{X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 }, })
gdw. (Lemma, Teil 2, L = ¬X1 bzw. L = X1 )
^_
^_
erfb(
{{X2 }, {¬X2 }}) oder erfb(
{{¬X2 }, {X2 }, })
gdw. (Lemma, Teil 2, L = X2 bzw. L = ¬X2 )
^_
^_
erfb(
{∅}) oder erfb(
{∅})
—
unmöglich!
Folie 20
p cnf 4 2
1 -2 0
2 -3 -4 0
1 -4 0
Aufgabe 2.14. (a) Entwickeln Sie eine Prozedur, die eine Sudoku-Instanz in die zugeordnete Formel ϕS (siehe Skript Kapitel 2.3.2) in Klauseldarstellung umwandelt.
(b) Entwickeln Sie eine Prozedur, die eine in Klauseldarstellung gegebene Formel in das
DIMACS-Datenformat umwandelt.
Stellen Sie Literale durch ganze, von 0 verschiedene Zahlen und Klauseln durch Listen von
Listen von Literalen dar. Eine Sudoku-Instanz sei durch eine 9-elementige Liste von 9elementigen Listen von Zahlen aus {0, . . . , 9} dargestellt. Dabei kodieren wir ein unbelegtes
Feld durch die Zahl 0.
Beispiel.
(list
(list 0 0 0
(list 4 0 0
(list 0 2 0
0 0 0
0 0 0
0 0 0
0 1 0 )
0 0 0 )
0 0 0 )
36
Aussagenlogik.tex
Rev 113
2008-12-03
2 Aussagenlogik
DPLL-Algorithmus
DPLL-SAT(M)
Vorbedingung: M Klauselmenge
if M = ∅ then return 1
if ∅ ∈ M then return 0
while exists unit clause {L} ∈ M do
let M = M|L
let Xi ∈ vars(M)
if DPLL-SAT(M|Xi ) = 1 then return 1
return DPLL-SAT(M|V¬X
Wi)
Nachbedingung: erfb( M) genau dann, wenn return = 1.
Folie 21
(list
(list
(list
(list
(list
(list
0
0
0
3
0
0
0
0
0
0
5
0
0
8
1
0
0
0
0
0
0
4
1
8
5
0
9
0
0
0
0
0
0
0
0
6
4
3
0
2
0
0
0
0
0
0
0
0
7
0
0
0
0
0
)
)
)
)
)
))
Aufgabe 2.15. Entwickeln Sie eine Prozedur, die mit Hilfe des DPLL-Algorithmus eine Klauselmenge (KNF) auf Erfüllbarkeit testet und eine erfüllende Belegung ausgibt.
Hinweis. Orientieren Sie sich an der zweiten Fassung des DPLL-Algorithmus.
Zum Testen können Sie zum Beispiel eine erfüllende Belegung der Klauselmenge einer
Sudoku-Instanz aus Aufgabe 2.14 suchen.
37
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
DPLL-Algorithmus mit erfüllender Belegung
DPLL-SAT(M, β)
Vorbedingung: M Klauselmenge
while exists unit clause {L} ∈ M do
let M = M|L
if L positiv then β(L) = 1 else β(L̄) = 0
if ∅ ∈ M then return unerfüllbar
if M = ∅ then return β
let Xi ∈ vars(M)
let γ = DPLL-SAT(M|Xi , β[1/Xi ]) = 1
if γ 6= unerfüllbar then return γ
return DPLL-SAT(M|¬Xi , β[0/Xi ])
Nachbedingung:
VW
VW
Falls erfb( VWM β), dann β ⊆ return und return |=
M.
Falls unfb( M β), dann return = unerfüllbar.
Folie 22
2.7.2 Der DP-Algorithmus
Der Vorgänger des DPLL-Algorithmus, der unter dem Namen DP-Algorithmus bekannt ist
und von Martin Davis und Hilary Putnam 1960 vorgestellt wurde, ist deutlich schlechter, er
ist aber von theoretischem Interesse, wie wir in Abschnitt 2.9.1 feststellen werden.
Auch hier gibt es ein Lemma, der den Algorithmus motiviert.
Wir sagen, dass eine Klausel K tautologisch ist, wenn es ein i ∈ N gibt, für das X i , ¬X i ∈ K
gilt.
Lemma 2.11.
1. Für jede tautologische Klausel K und jede Belegung β gilt β |=
W
K.
2. Sei M eine Klauselmenge. Dann gilt:
^_
erfb(
M)
gdw.
erfb(
^_
{K ∈ M : K nicht tautologisch}) .
3. Sei M eine Klauselmenge ohne tautologische Klauseln und X i ∈ vars(M ). Dann gilt
38
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
VW
VW
erfb( M ) genau dann, wenn erfb( M 00 ), wobei
M 0 = M ∪ {K ∪ K 0 : K ∪· {X i } ∈ M und K 0 ∪· {¬X i } ∈ M } ,
M 00 = {K ∈ M 0 : X i ∉ vars(K )} .
Beweis. Zu Behauptung 1. Trivialerweise richtig.
VW
W
Zu Behauptung 2. Wenn β |=
M gilt, dann gilt β |= K für alle K ∈ M , also gilt
VW
VW
auch β |=
{K ∈ M : K nicht tautologisch}. Zur umgekehrten Richtung: Wenn β |=
{K ∈
VW
W
M : K nicht tautologisch} gilt, so gilt auch β |=
M , da β |= K für alle tautogischen
Klauseln wegen Behauptung 1 gilt.
VW
VW
VW
Zu Behauptung 3. Wir zeigen a) erfb( M ) genau dann, wenn erfb( M 0 ) und b) erfb( M 0 )
VW 00
V
W
V
W
genau dann, wenn erfb( M ). Zu a). Da M ⊆ M 0 gilt, folgt aus erfb( M 0 ) sofort erfb( M ).
VW
VW
Für die umgekehrte Reichtung nehmen wir erfb( M ) an, etwa β |=
M , etwa mit β(X i ) =
0 – der andere Fall ist symmetrisch. Sei nun K 00 ∈ M 0 \ M . Dann gilt K 00 = K ∪ K 0 mit
K ∪· {X i } ∈ M und K 0 ∪· {¬X i } ∈ M . Da β(X i ) = 0 und β |= K ∪· {X i }, gilt β |= K . Deshalb
existiert ein Literal L ∈ K , für das β |= L gilt. Daraus ergibt sich aber auch β |= K 00 . Da K 00
beliebig war, erhalten wir insgesamt β |= M 0 .
VW
VW
Zu b). Da M 00 ⊆ M 0 gilt, gilt auch, wie bei a), erfb( M 00 ), sofern erfb( M 0 ) gilt. NehVW
VW 00
men wir also umgekehrt an, es gelte erfb( M 00 ), etwa β |=
M . Wir betrachten die
Mengen M+ = {K : K ∪· {X i } ∈ M } und M− = {K : K ∪· {¬X i } ∈ M }. Da M keine Tautologien
enthält, gilt M+ ⊆ M 00 und M− ⊆ M 00 . Wir führen eine Fallunterscheidung durch:
1. Fall, β |= K für alle K ∈ M+ . Dann setzen wir β0 = β[0/X i ]. Dann gilt wegen des KoinVW
W
zidenzlemmas β0 |=
(M+ ∪ M 00 ), und auch β0 |= (K ∪{¬X i }) für alle K ∈ M− , so dass wir
VW 0
insgesamt β0 |=
M erhalten.
2. Fall, β |= K für alle K ∈ M− . Dieser Fall ist symmetrisch zum 1. Fall.
W
W
3. Fall, der Rest. Es gibt K + ∈ M+ und K − ∈ M− mit β 6|= K + und β 6|= K − . Nach DeW
finition von M 0 und M 00 gilt K + ∪ K − ∈ M 00 und damit β |= (K + ∪ K − ). Damit existiert
W
W
ein Literal L ∈ K + ∪ K − mit β |= L. Dann gilt aber entweder β |= K + oder β |= K − . Ein
Widerspruch.
Der Erfüllbarkeitstest lässt sich nun leicht formulieren, siehe Folie 23.
Dass der Algorithmus in jedem Fall terminiert, lässt sich leicht erkennen: Die Menge
vars(M ) wird durch jeden Schleifendurchlauf um Eins verringert. Allerdings kann sich die
Anzahl der Klauseln (und deren Länge) durch Ausführen eines Schleifendurchlaufs drastisch (quadratisch) erhöhen, so dass sich insgesamt eine pessimale exponentielle Laufzeit
ergibt.
Satz 2.5.
1. DP-SAT ist korrekt.
2. Die pessimale Laufzeit von DP-SAT ist exponentiell.
Für einen Spezialfall können wir allerdings eine recht ermutigende Aussage treffen. Eine
2-Klausel ist eine Klausel, die höchstens zwei Literale enthält. Eine 2-Klauselmenge ist eine
Klauselmenge, die ausschließlich aus 2-Klauseln besteht.
39
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
DP-Algorithmus
DP-SAT(M)
Vorbedingung: M Klauselmenge ohne tautologische Klauseln
while M 6= ∅ und ∅ ∈
/M
let Xi ∈ vars(M) 6= ∅
let M 0 = M ∪ {K ∪ K 0 : K ∪· {Xi } ∈ M und K 0 ∪· {¬Xi } ∈ M}
let M 00 = {K ∈ M 0 : Xi ∈
/ vars(K )}
let M = {K ∈ M 00 : K nicht tautologisch}
if ∅ ∈ M then
return 0
else
return 1
VW
Nachbedingung: erfb( M) genau dann, wenn return = 1.
Folie 23
Satz 2.6. Für 2-Klauselmengen ist die Laufzeit des DP-Algorithmus polynomiell in der Anzahl der Variablen. D. h., das Erfüllbarkeitsproblem ist für 2-Klauselmengen in Polynomzeit
erfüllbar.
Beweis. Sei M eine 2-Klauselmenge und m = vars(M ). Wir haben uns schon überlegt,
dass die Schleife dann höchstens m-mal durchlaufen wird. Eine einmalige Ausführung des
P
Schleifendurchlaufs benötigt eine Laufzeit, die grob geschätzt polynomiell in K ∈M |K | ist,
was wir auch mit N bezeichnen wollen. Entscheidend ist jetzt eine gute Abschätzung von
N . Dafür halten wir zunächst einmal fest, dass durch die Manipulationen im Schleifenrumpf die Eigenschaft, dass M eine 2-Klauselmenge ist, nicht verändert wird. Mit anderen
Worten, N ist beschränkt durch die Anzahl der 2-Klauseln, deren Variablen sich unter den
Variablen in vars(M ) befinden. Es gibt
• eine 0-Klausel dieser Art,
• 2m 1-Klauseln dieser Art (von der Gestalt {X i } oder {¬X i }), die von ; verschieden
sind, und
• 2m × (2m − 1) 2-Klauseln dieser Art, die keine 1-Klauseln sind.
Insgesamt gilt also N ≤ 1+2m +2m(2m −1), wobei Letzteres gleich 4m 2 +1 ist. Daraus folgt
40
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
dann die Behauptung.
Folgerung 2.4. In polynomieller Zeit kann festgestellt werden, ob ein Graph bipartit ist.
Aufgabe 2.16. Testen Sie die Erfüllbarkeit der folgenden Formeln mit Hilfe des DPLL- und
des DP-Algorithmus.
(a) ϕa = (X 1 ∨ X 2 ∨ ¬X 3 ) ∧ (X 1 ∨ ¬X 3 ) ∧ (¬X 2 ∨ ¬X 3 ) ∧ ¬X 1
(b) ϕb = X 1 ∧ (X 1 → (X 2 ∨ X 4 )) ∧ ((X 1 ∧ X 4 ) → X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 )
2.7.3 Unendliche Formelmengen und der Endlichkeitssatz
Im vorigen Abschnitt haben wir uns der Frage gewidmet, wie man feststellt, ob eine aussagenlogische Formel erfüllbar ist, das heißt, ob es eine Belegung gibt, die die Formel wahr
macht. Mitunter kommt es vor, dass man sich dieselbe Frage, für eine (unendliche) Menge von Formeln stellt: Gegeben Φ ⊆ F AL , gibt es eine Belegung β mit der Eigenschaft, dass
β |= ϕ für alle ϕ ∈ Φ gilt?– Auch dann wollen wir von Erfüllbarkeit sprechen und erfb(Φ)
schreiben.
Als Beispiel betrachten wir die folgende Frage: Kann man mit einem gegebenen Satz von
quadratischen Dominosteinen den gesamten ersten Quadranten der Euklidschen Ebene
parkettieren? Was genau damit gemeint ist, ist Folie 24 zu entnehmen. Eine mathematische
Modellierung ist auf Folie 25 zu sehen.
Anders als in den bisherigen Beispielen sprechen wir hier über unendliche Objekte. Eine
Umsetzung der Bedingungen wie in den bisherigen Beispielen würde zu unendlichen Formeln führen, die wir aber nicht zulassen. Wir können allerdings für jeden Dominostein im
ersten Quadranten eine Formel angeben und dann fordern, dass alle diese Formeln erfüllt
sind. Das führt dann zur Definition einer Formelmenge Φ durch
ΦS = {ϕi , j ∧ ψSi, j : i , j ∈ N} .
Was wir, wie in unseren anderen Beispielen, festhalten können, ist:
Bemerkung 2.5. Sei S ein Satz von Dominosteinen. Dann lässt sich der erste Quadrant genau dann mit S parkettieren, wenn ΦS erfüllbar ist.
Sicherlich kann ein Algorithmus keine unendliche Formelmenge insgesamt verarbeiten,
so dass die Frage nach Erfüllbarkeitstests neu diskutiert werden muss. Das wollen wir in
diesem Abschnitt tun.
Entscheidend ist die folgende Einsicht:
Satz 2.7 (Endlichkeitssatz). Sei Φ ⊆ F AL . Dann sind äquivalent:
(A) Φ ist erfüllbar.
(B) Jede endliche Teilmenge von Φ ist erfüllbar.
Beweis. Aus (A) folgt (B). Das ist trivialerweise richtig.
Aus (B) folgt (A).
Wir beweisen den Satz durch Definition per vollständiger Induktion, die auf Folie 27 zu
sehen ist.
41
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Das Dominoproblem
Gegeben
Satz von nicht drehbaren Dominosteinen, etwa
,
und
.
Frage
Kann man den ersten Quadranten vollständig parkettieren?
..
.
Hier ja:
Folie 24
Genauer: Wir definieren β : VAL 99K {0, 1} derart, dass schließlich β |= Φ gilt. Gleichzeitig
mit der Definition von ϕ zeigen wir per vollständiger Induktion, dass die folgende Behauptung für jedes n gilt:
(*) Für jede endliche Teilmenge Φ0 von Φ gibt es eine Belegung β0 mit β(X i ) = β0 (X i ) für
alle i ≤ n, so dass β0 |= Φ0 gilt.
Induktionsanfang. Es sei β0 die Belegung, die X 0 auf 0 abbildet, und sonst undefiniert ist.
Analog sei β1 die Belegung, die X 0 auf 1 abbildet, und sonst undefiniert ist.
Hilfsbehauptung. Es gibt ein b, so dass es für jede endliche Menge Φ0 ⊆ Φ eine Belegung
0
β gibt, die βb fortsetzt und für die β0 |= Φ0 gilt.
Beweis der Hilfsbehauptung durch Kontraposition. Wir nehmen an, die Behauptung gilt
nicht. Dann gibt es eine endliche Menge Φ0 ⊆ Φ, für die β 6|= Φ0 für alle β0 mit β0 (X 0 ) = 0 gilt.
Genauso gibt es eine endliche Menge Φ1 ⊆ Φ, für die β 6|= Φ1 für alle β0 mit β0 (X 0 ) = 1 gilt.
Dann ist Φ0 ∪ Φ1 unerfüllbar – Widerspruch zur Annahme.
Sei also b ∈ {0, 1} derart, dass die Hilsbehauptung gilt. Dann können wir β(S 0 ) = 1 setzen.
Induktionsschritt. Dieser erfolgt nach demselben Prinzip wie der Induktionsanfang.
Bevor wir auf Erfüllbarkeitstests zurück kommen, wollen wir die folgende interessante
42
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Mathematische Modellierung des Dominoproblems
Farbmenge
C = {0, . . . , c − 1}.
Dominostein
Funktion f : {0, 1, 2, 3} → C , wobei 0 für rechts, 1 für oben, 2 für
links und 3 für unten steht.
Satz von Dominosteinen
Endliche Menge S von Funktionen {0, 1, 2, 3} → C .
Parkettierung des Quadranten
Funktion h : N × N → C und v : N × N → C . Dabei steht h(i, j)
für die Farbe der Linie zwischen (i, j) und (i + 1, j), analog für v .
Passende Parkettierung
Für alle i, j ∈ N gilt:
I
Die Funktion f mit f (0) = v (i, j + 1), f (1) = h(i, j + 1),
f (2) = v (i, j) und f (3) = h(i, j) gehört zu S.
Folie 25
Folgerung ziehen:
Satz 2.8. Sei S ein Satz Dominosteinen. Dann lässt sich der erste Quadrant mit S parkettieren
genau dann, wenn sich mit S für jedes n ∈ N ein (n × n)-Quadrat parkettieren lässt.
Beweis. Offensichtlich ist, dass aus der Parkettierbarkeit des gesamten Quadranten die Pakettierbarkeit der Quadrate folgt. Zur umgekehrten Richtung nehmen wir an, dass sich mit
S für jedes n ∈ N ein (n ×n)-Quadrat parkettieren lässt. Wir zeigen, dass dann jede endliche
Menge Φ0 ⊆ ΦS erfüllbar ist, so dass die Behauptung aus dem Endlichkeitssatz folgt.
Sei Φ0 wie oben angegeben. Dann existiert m ∈ N mit Φ0 ⊆ {ϕi , j ∧ ψSi, j : i , j ≤ m}. Diese
Menge ist aber genau dann erfüllbar, wenn ein (m + 1 × m + 1)-Quadrat mit S parkettierbar
ist, was wir vorausgesetzt hatten.
Dieser Satz führt zu einem interessanten Erfüllbarkeitstest für beliebige Formelmengen,
der auf Folie 28 zu sehen ist.
Hier ist die Korrektheit des Algorithmus nicht völlig offensichtlich, weshalb wir einen
Beweis führen.
43
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Logische Modellierung des Dominoproblems
Variablen
k : Linie von (i, j) zu (i + 1, j) hat Farbe k
Hi,j
k : Linie von (i, j) zu (i, j + 1) hat Farbe k
Vi,j
Formeln für Parkettierung, i, j ∈ N
ϕi,j = (
_
k
Hi,j
∧
k<c
_
k<c
∧
k
Vi,j
)
^
0
k<k 0 <c
0
k
k
k
k
((¬Hi,j
∨ ¬Hi,j
) ∧ (¬Vi,j
∨ ¬Vi,j
))
Formeln für passend, i, j ∈ N
S
ψi,j
=
_
f ∈S
f (3)
(Hi,j
f (2)
∧ Vi,j
f (1)
f (0)
∧ Hi,j+1 ∧ Vi,j+1 )
Formelmenge für Gesamtproblem
S
ΦS = {ϕi,j ∧ ψi,j
: i, j ∈ N}
Folie 26
Satz 2.9. Der Algorithmus auf Folie 28 ist korrekt.
Beweis. Wir schreiben ϕi für F [i ] und Φ für {ϕ0 , ϕ1 , . . . }.
Wenn der Algorithmus terminiert, so hat i als Wert eine positive natürliche Zahl und es
V
gilt ϕ = j <i ϕ j so wie unfb(ϕ). Letzteres ist dann äquivalent zu unfb({ϕ0 , . . . , ϕi }), also auch
unfb(Φ).
Ist Φ unerfüllbar, so gibt es nach Satz 2.7 eine endliche Menge Φ0 ⊆ Φ, die unerfüllbar
ist. Aus der Endlichkeit von Φ0 folgt, dass es ein n ∈ N gibt, so dass Φ0 ⊆ {ϕ0 , . . . , ϕn } gilt.
Da Φ0 unerfüllbar ist, ist auch {ϕ0 , . . . , ϕn } unerfüllbar, insbesondere ist ϕ0 ∧ ϕ1 ∧ · · · ∧ ϕn
unerfüllbar. Der Aufruf von SAT(ϕ), der stattfindet, wenn i = n gilt, liefert also 0 zurück, so
dass der Algorithmus terminiert.
Wir wollen in diesem Zusammenhang etwas allgemeinere Terminologie einführen. Ein
(Entscheidungs-)Problem wird beschrieben durch eine Menge I von Instanzen und eine
Menge P ⊆ I von positiven Instanzen. Die restlichen Instanzen heißen negative Instanzen. Formal schreiben wir (I , P ) für ein Entscheidungsproblem, manchmal auch (P , N ),
wenn N die Menge der negativen Instanzen ist.
44
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Erinnerung: Definition durch vollständige Induktion
Konstruktion einer Funktion f , die auf N definiert ist.
1. Induktionsanfang (Basiszuordnung): Man legt f (0) fest.
2. Induktionsschritt:
2.1 Man betrachtet ein beliebiges n ∈ N.
2.2 Induktionsannahme: Man nimmt an, dass f (n) definiert ist.
2.3 Neue Zuordnung: Man legt f (n + 1) in Abhängigkeit von n
und f (n) fest.
Variante
Allgemeinere Induktionsannahme:
2.1 Man nimmt an, dass f (m) für alle natürlichen Zahl m mit
m ≤ n gilt.
2.2 Man legt f (n + 1) in Abhängigkeit von n und f (0), . . . , f (n)
fest.
Folie 27
Zum Beispiel ist das Erfüllbarkeitsproblem für aussagenlogische Formeln ein Problem
im obigen Sinne, das formal durch (F AL , {ϕ ∈ F AL : erfb(ϕ)}) gegeben ist. Auch das Dominoproblem kann entsprechend formalisiert werden: die Instanzmenge ist die Menge aller
Sätze von Diminosteinen; die positiven Instanzen sind diejenigen, mit denen man den ersten Quadranten vollständig parkettieren kann.
Man sagt von einem Algorithmus, dass er ein Problem E = (I , P ) entscheidet, wenn er
folgenden Eigenschaften besitzt:
1. Wird der Algorithmus mit einer positiven Instanz u ∈ P aufgerufen, so terminiert er
und gibt »1« aus.
2. Wird der Algorithmus mit einer negativen Instanz u ∈ I aufgerufen, so terminiert er
und gibt »0« aus.
Existiert eine solcher Algorithmus für ein Problem, so nennt man das Problem entscheidbar.
Das Erfüllbarkeitsproblem für aussagenlogische Formeln ist also entscheidbar.
Generell sagt man von einem Algorithmus, das er ein Semi-Entscheidungsverfahren für
ein Entscheidungsproblem ist, wenn er folgende Eigenschaften besitzt:
45
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Semi-Unerfüllbarkeitstest für unendliche Formelmengen
SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische
Formeln.
NegSemiSAT(F )
Vorbedingung: F [0..] ist ein unendliches Feld von
aussagenlogischen Formeln.
let i = 0
let ϕ = 1
repeat
let ϕ = ϕ ∧ F [i]
let b = SAT(ϕ)
let i = i + 1
until b = 0 Nachbedingung:
Bei Termination gilt unfb({F [0], F [1], . . . }).
Bei Divergenz gilt erfb({F [0], F [1], . . . }).
Folie 28
1. Wird der Algorithmus mit einer positiven Instanz des Problems aufgerufen, so terminiert er.
2. Wird der Algorithmus mit einer negativen Instanz des Problems aufgerufen, so terminiert er nicht, man sagt auch er divergiert.
Das Problem heißt in diesem Fall semi-entscheidbar. Wir sprechen von einem negativen
Semi-Entscheidungsverfahren, wenn der Algorithmus für die positiven Instanzen divergiert
und für die negativen terminiert. Das Problem heißt dann negativ semi-entscheidbar.
Die Begriffe werden auf Folie 29 veranschaulicht.
Üblicherweise erlaubt man Algorithmen keine unendlichen Objekte als Eingaben, denn
diese können bei einer terminierenden Berechnung (also in endlich vielen Schritten) nicht
vollständig untersucht werden. Bei Mengen von unendlichen Mengen von aussagenlogischen Formeln mag dies aber – wie wir dies oben gesehen haben – sinnvoll sein.
Folgerung 2.5. Das Unerfüllbarkeitsproblem für aussagenlogische Formelmengen ist semientscheidbar.
Modifizieren wir den Algorithmus von Folie 28 in geeigneter Weise, so gelangen wir zu
dem Algorithmus von Folie 30. Wir können festhalten:
46
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
(Semi-)Entscheidungsverfahren
Entscheidungsverfahren
ja
x ∈P
x ∈I
x ∈ P?
x∈
/P
nein
Negatives
Semi-Entscheidungsverfahren
Semi-Entscheidungsverfahren
x ∈P
x ∈I
x ∈P
x ∈ P?
x ∈I
x∈
/P
x ∈ P?
x∈
/P
Folie 29
Folgerung 2.6. Das Dominoproblem ist negativ semi-entscheidbar.
Aufgabe 2.17. In der Vorlesung wurde die Lösbarbeit einer Instanz des Dominoproblems
auf die Erfüllbarkeit einer aussagenlogischen Formelmenge zurückgeführt. Geben Sie eine
f
Variante dieser Rückführung an, bei der nur Variablen der Gestalt X i j benutzt werden. Daf
bei soll X i j genau dann wahr sein, wenn an der Stelle (i , j ) der Dominostein(-typ) f benutzt
wird.
2.8 Die Folgerungsbeziehung
Neben der Frage, die wir im Abschnitt 2.7 behandelt haben, nämlich ob eine aussagenlogische Formel erfüllbar ist, ist die Frage wichtig, ob eine Formel aus einer gegebenen Menge
von Formeln folgt. In diesem Abschnitt wollen wir uns mit dieser Frage auseinandersetzen
und damit beginnen, die Folgerungsbeziehung zu definieren.
Sei Φ eine beliebige Formelmenge und β eine Belegung, die zu allen Formeln in Φ passt.
Wir sagen dann, dass β zu Φ passt. Wir schreiben β |= Φ genau dann, wenn β |= ϕ für alle
47
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Negativer Semi-Entscheidungsalgorithmus für das
Dominoproblem
SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische
Formeln.
Domino(S)
Vorbedingung: S ist ein Satz von Dominosteinen.
let n = 0
repeat
^
S
let ϕ =
ϕi,j ∧ ψi,j
i,j≤n
let b = SAT(ϕ)
let n = n + 1
until b = 0
Nachbedingung:
Bei Termination ist S nicht lösbar.
Bei Divergenz ist S lösbar.
Folie 30
ϕ ∈ Φ gilt. Wir sagen, β ist ein Modell von Φ. Wir sagen, dass eine Formel ϕ aus Φ folgt,
wenn für alle Belegungen, die zu Φ und ϕ passen, gilt: Wenn β |= Φ, so β |= ϕ. Wir schreiben
dann Φ |= ϕ. Ist Φ einelementig, etwa Φ = {ψ}, so schreiben wir anstelle von Φ |= ϕ häufig
ψ |= ϕ. Anstelle von ; |= ϕ schreiben wir |= ϕ und sagen, dass ϕ allgemeingültig ist.
Beispiel 2.9. Wenn Φ = {X 0 ∨ X 1 , ¬X 0 ∨ X 2 , ¬X 0 ∨ X 2 }, so gilt zum Beispiel Φ |= X 1 ∨ X 2 , aber
nicht Φ |= X 1 , was wir dann mit Φ 6|= X 1 bezeichnen. Es gilt Φ 6|= X 1 , weil die Belegung β, für
die β(X 0 ) = 1, β(X 1 ) = 0 und β(X 2 ) = 1 gilt, eine Belegung ist für die offensichtlich β |= Φ und
β 6|= X 1 erfüllt.
Wir wollen einfache, fundamentale Eigenschaften der Folgerungsbeziehung festhalten:
Bemerkung 2.6. Gilt Φ ⊆ Φ0 ⊆ F AL und ϕ ∈ F AL , so folgt aus Φ |= ϕ auch Φ0 |= ϕ.
Es liegt nahe, eine Verbindung zwischen → und |= zu vermuten. Diese kommt im folgenden Lemma zum Ausdruck:
Lemma 2.12. Sei Φ b F AL , Ψ b F AL und ϕ ∈ F AL . Dann sind die drei folgenden Aussagen
äquivalent:
48
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
V
(A) Φ |= Ψ → ϕ.
(B) Φ ∪ Ψ |= ϕ.
V
(C) Φ ∪ { Ψ} |= ϕ.
V
Beweis. Zu (A) impliziert (B). Wir nehmen an, dass Φ |= Ψ → ϕ gilt. Um Φ ∪ Ψ |= ϕ zu
beweisen, nehmen wir weiterhin an, dass β eine Belegung ist, die zu Φ∪Ψ und ϕ passt und
V
für die β |= Φ ∪ Ψ gilt. Aus Letzterem folgt β |= Φ, woraus wir β |= Ψ → ϕ aufgrund der
V
Annahme erhalten. Dies ist das gleiche wie J Ψ → ϕKβ = 1. Zusätzlich folgt aus β |= Φ ∪ Ψ
auch β |= Ψ, woraus wir β |= ψ für alle ψ ∈ Ψ erhalten, was äquivalent zu JψKβ = 1 für alle
V
V
ψ ∈ Ψ ist. Letzteres bedeutet J ΨKβ = 1, also JϕKβ = 1 wegen β |= Ψ → ϕ folgt.
V
Zu (B) impliziert (C). Wir nehmen an, dass Φ∪Ψ |= ϕ gilt. Um Φ∪{ Ψ} |= ϕ zu beweisen,
V
V
sei β eine Belegung, die zu Φ ∪ { Ψ} und ϕ passe und für die β |= Φ ∪ { Ψ} gelte. Aus
V
Letzterem schließen wir β |= Ψ, woraus wir β |= Ψ schließen können. Insgesamt erhalten
wir also β |= Φ ∪ Ψ, woraus dann mit der ersten Annahme β |= ϕ folgt.
V
V
Zu (C) impliziert (A). Wir nehmen an, dass Φ∪{ Ψ} |= ϕ gilt. Um Φ |= Ψ → ϕ zu zeigen,
V
sei β eine Belegung, die zu Φ und Ψ → ϕ passe und für die β |= Φ gelte. Wir unterscheiden
zwei Fälle.
V
V
Erster Fall, β 6|= Ψ. Dann gilt trivialerweise β |= Ψ → ϕ.
V
Zweiter Fall, β |= Ψ. Dann gilt aber β |= ϕ nach der ersten Annahme.
Der Begriff der Folgerungsbeziehung ermöglicht uns auch eine Charakterisierung von
logischer Äquivalenz:
Lemma 2.13. Sind ϕ, ψ ∈ F AL , so gilt ϕ ≡ ψ genau dann, wenn |= ϕ ↔ ψ gilt.
Beweis. Man kann die beiden Implikationen separat beweisen. Wir beschränken uns auf
die von links nach rechts und nehmen deshalb an, dass ϕ ≡ ψ gilt, und betrachten eine
beliebige Belegung β, die zu ϕ ↔ ψ passt. Diese passt dann auch zu ϕ und ψ, so dass wir
schließen können: β |= ϕ genau dann, wenn β |= ψ. Also: JϕKβ = 1 genau dann, wenn JψKβ =
1. Die Semantik von ↔ liefert dann Jϕ ↔ ψKβ = 1, woraus sich |= ϕ ≡ ψ ergibt.
2.8.1 Beispiel: Schaltnetzüberprüfung
In diesem Abschnitt wollen wir den Folgerungsbegriff benutzen, um zu beschreiben, dass
ein Schaltnetz korrekt ist. Dafür müssen wir zum einen Schaltnetze formal präzise beschreiben, aber auch, was es bedeutet, dass ein Schaltnetz korrekt ist. Letzteres kann man
auf viele verschiedene weisen tun. Wir werden ausgehend von der Vorstellung, dass wir ein
gegebenes Schaltnetz optimieren wollen, unter Korrektheit des optimierten Schaltnetzes
verstehen, dass es dieselbe boolesche Funktion berechnet wie das gegebene Schaltnetz.
Wir beginnen mit der formalen Beschreibung von Schaltnetzen. Üblicherweise werden
Schaltnetze gezeichnet und mit azyklischen gerichteten Graphen identifiziert, deren Knoten wie folgt beschriftet sind:
• die Eingangsknoten mit Argumentvariablen,
• die Ausgangsknoten mit Wertevariablen und
• die inneren Knoten mit booleschen Operationen.
49
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Zum Beispiel ist auf Folie ?? ein so genanntes ripple-carry-acht-Bit-Addiernetz (8RCA) zu
sehen. Ein anderes Addiernetz, das so genannte carry-lookahead-acht-Bit-Addiernetz (8CLA),
ist auf Folie ?? zu sehen.
Eine formale Darstellung von Schaltnetzes gewinnt man, indem man ein Schaltnetz S
auffasst als ein Tripel
S = (E , F, A) .
Dabei stehen E und A für die Mengen der Eingangs- bzw. Ausgangsvariablen und F für eine
Anweisungsfolge. Unter letzterem versteht man eine Folge α0 , . . . , αr −1 von Anweisungen
der Gestalt
αj = Xi j ← ϕj .
Für j < r muss ϕ j eine aussagenlogische Formel und es muss folgende Bedingung erfüllt
sein:
[
X i j ∉ {X i 0 , . . . , X i j −1 } ∪
vars(ϕ j ) .
i≤j
Diese Bedingung drückt aus, dass in einem Schaltnetz keine Zykel vorhanden sein dürfen.
Die Menge E ist gegeben durch
[
E=
vars(ϕi ) \ {X i 0 , . . . , X i r −1 } ,
i <r
während an die Menge A keine Bedingung außer
[
A⊆
vars(ϕi ) ∪ {X i 0 , . . . , X i r −1 }
i <r
gestellt wird, die aber lediglich besagt, dass jeder Ausgangsknoten auch tatsächlich in der
Beschreibung auftritt.
Auf Folie 31 sind die Beschreibungen der Addierer zu sehen. Allerdings tritt dort eine
neue Operation auf, die wir noch nicht kennen: ⊕, das exklusive Oder. Diese Operation
kann als Abkürzung aufgefasst werden: ϕ ⊕ ψ kann einfach durch ϕ ↔ ¬ψ ersetzt werden.
Unsere Definition von Schaltnetz ist allgemeiner als die üblichen, weil wir als »Bausteine« – bei uns sind das die ϕi – beliebige aussagenlogische Formeln zulassen. Das stört aber
nicht weiter.
Die Semantik eines solchen Schaltnetzes kann leicht induktiv definiert werden. Jedem
Schaltnetz der obigen Art wird dabei eine Funktion f S : {0, 1}E → {0, 1} A zugeordnet: jeder
Belegung der Eingangsvariablen wird eine Belegung der Ausgangsvariablen zugeordnet.
Da wir Schaltnetze als Formeln auffassen wollen, geben wir keine konkrete Semantik
für Schaltnetze an, sondern eine, die auf der Übersetzung in aussagenlogische Formeln
basiert. Sei dazu S ein Schaltnetz wie oben. Wir betrachten die endliche Formelmenge
ΦS = {X i j ↔ ϕ j : j < r } .
Diese beschreibt die Funktionsweise des Schaltnetzes vollständig im folgenden Sinne:
50
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ripple-Carry-Addiernetz (8 Bit)
Formales Modell
S0 ← A0 ⊕ B0
Exklusives Oder, ⊕
ϕ ⊕ ψ = (ϕ ↔ ¬ψ)
C1 ← A0 ∧ B0
S1 ← A1 ⊕ B1 ⊕ C1
C2 ← maj(A1 , B1 , C1 )
S2 ← A2 ⊕ B2 ⊕ C2
C3 ← maj(A2 , B2 , C2 )
Mehrheitsoperation, Maj
maj(ϕ0 , ϕ1 , ϕ2 )
= (ϕ0 ∧ ϕ1 ) ∨ (ϕ0 ∧ ϕ2 ) ∨ (ϕ1 ∧ ϕ2 )
Vor- und Nachteile
...
+ einfache Struktur
S7 ← A7 ⊕ B7 ⊕ C7
+ wenige Gatter
S8 ← maj(A7 , B7 , C7 )
− langsame Laufzeit (linear)
Folie 31
Satz 2.10. Sei S = (E , F, A) ein Schaltnetz. Dann gilt für alle Belegungen β : E ∪ A → {0, 1},
dass die beiden folgenden Aussagen äquivalent sind:
(A) f S (β|E ) = β| A .
(B) Es existiert eine zu ΦS passende Variablenbelegung β0 mit β0 |E ∪A = β und β0 |= ΦS .
Mit anderen Worten, die boolesche Funktion, die durch das Schaltnetz S berechnet
wird, ist in den erfüllenden Belegungen der Formel ΦS enthalten.
Stellen wir uns nun vor, wir hätten ein Schaltnetz S und eine optimimierte Variante
T und wollten überprüfen, ob S und T äquivalent sind, das heißt, ob beide dieselbe
boolesche Funktion berechnen. Dazu bräuchten wir dann nur die erfüllenden Belegungen
der Formelmengen ΦS und ΦT zu vergleichen. Dazu ist es sinnvoll, (a) nebeneinander
zu legen und dann (b) zu überprüfen, ob bei gleicher Belegung der Eingänge die Ausgänge gleich belegt werden. Das Nebeneinanderlegen (a) erreichen wir durch Umbenennung
(Substitution) der Variablen, dass Überprüfen (b) durch die Frage, ob ein entsprechendes
Konditional aus den Formelmengen zu den Schaltnetzen folgt.
51
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Um (a) zu erreichen, sagen wir, dass σ : vars(T ) → VAL eine entkoppelnde Umbenennung
(Substitution) für S und T ist, wenn σ injektiv ist und range(σ) ∩ vars(S ) = ; gilt. Dann
sprechen ΦS und ΦT σ über »nebeneinander liegende« Schaltnetze.
Der Rest ist nun dem folgenden Satz zu entnehmen:
Satz 2.11. Seien S und T zwei Schaltnetze mit den denselben Ein- und Ausgangsvariablen und ist σ eine entkoppelnde Umbenennung für S und T , so sind die beiden folgenden
Aussagen äquivalent:
(A) S und T sind äquivalent, d. h., f S = f T .
(B) ΦS ∪ ΦT σ |= ϕeqv mit
ϕeqv =
^
(X i ↔ σ(X i )) →
X i ∈E
^
(X i ↔ σ(X i )) .
X i ∈A
Die Formel, die wir zu (b) konstruieren wollten, ist also ϕeqv . Und der Folgerungsbegriff
wird hier an zentraler Stelle genutzt.
Wir wollen diesen Satz nicht beweisen, sondern ihn einfach nur anwenden. Ein Beispiel
ist auf Folie ?? zu sehen.
Der Vollständigkeit halber ist im Folgenden eine Hälfte des Beweises skizziert.
Beweis. Vorüberlegungen. (a) Es gilt ΦT σ = ΦT σ , wobei T σ aus T durch Ersetzen jedes Vorkommens von X i durch X i σ entstehe. (b) Für jede Belegung, die zu E passt, gilt
f T (β)σ = f T σ (βσ).
Wir schreiben ϕa und ϕs für
ϕa =
^
(X i ↔ σ(X i )) ,
ϕs =
X i ∈E
^
(X i ↔ σ(X i )) .
X i ∈A
(A) impliziert (B). Wir nehmen an, dass f S = f T gilt. Nach Lemma 2.12 brauchen wir
lediglich ΦS ∪ ΦT σ ∪ {ϕa } |= ϕs zu zeigen. Gelte deshalb β |= ΦS ∪ ΦT σ ∪ {ϕa } für eine
passende Belegung. Aus Lemma 2.10 und der Vorüberlegung folgt dann:
1. f S (β|E ) = β| A ,
2. f T σ (β|E σ ) = β| Aσ ,
3. β |= ϕa .
Aus 3. erhalten wir, dass β(X i ) = β(X i σ) für alle X i ∈ E gilt. Das heißt, β|E σ = βσ|E σ . Wir können also 2. in der Form f T σ (βσ|E σ ) = β| Aσ schreiben. Daraus und aus Vorüberlegung (b)
ergibt sich dann f T (β)σ = β| Aσ . Aus der Annahme f S = f T folgt dann f S (β)σ = β| Aσ ,
woraus wir für jedes X i ∈ A schließen können: β(σ(X i )) = β(x i ). Letzteres bedeutet: β |= ϕs .
(B) impliziert (A). Dies kann in ähnlicher Weise gezeigt werden.
Wenn wir also Verfahren entwickeln, mit denen eine gültige Folgerungsbeziehung nachgewiesen werden kann, können wir auch Schaltkreise auf ihr Äquivalenz überprüfen.
Aufgabe 2.18. Betrachten Sie das folgende Schaltnetz.
52
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
X0
X2
=1
=1
X1
X3
≥1
≥1
X 10
≥1
(a) Geben Sie eine formale Darstellung des obigen Schaltnetzes an.
(b) Geben Sie die Funktion an, die von dem Schaltnetz berechnet wird.
(c) Seien β0 , β1 Variablenbelegungen mit β0 (X 0 ) = 1, β0 (X 2 ) = 1, β0 (X 3 ) = 0 und β1 (X 1 ) =
0, β1 (X 10 ) = 1.
Zeigen Sie mit Hilfe von Satz 2.9 aus der Vorlesung, dass f S (β0 ) = β1 gilt.
Hinweis. Finden Sie eine Belegung β mit β |= ΦS , β|E = β0 und β| A = β1 .
Aufgabe 2.19. Betrachten Sie die beiden folgenden Schaltnetze.
≥1
X1
X2
X3
(a)
(b)
(c)
(d)
≥1
X1
X5
≥1
X2
X3
X5
≥1
Geben Sie eine formale Darstellung der beiden Schaltnetze an.
Geben Sie die Funktionen f S1 , f S2 an, die von den Schaltnetzen berechnet werden.
Geben Sie eine entkoppelnde Umbenennung σ an.
Zeigen Sie, dass die beiden Schaltnetze nicht äquivalent sind, indem Sie zeigen, dass
ΦS1 ∪ ΦS2 σ 6|= ϕeqv , wobei ϕeqv wie in der Vorlesung definiert ist.
2.8.2 Folgerungsbeziehung, Erfüllbarkeit und Endlichkeitssatz
Offensichtlich ist die Folgerungsbeziehung eng mit der Erfüllbarkeitsbeziehtung verwandt:
Lemma 2.14. Sei Φ ⊆ F AL und ϕ ∈ F AL . Dann sind äquivalent:
(A) Φ |= ϕ.
(B) unfb(Φ ∪ {¬ϕ}).
Beweis. Aus (A) folgt (B). Wir nehmen an, es gilt Φ |= ϕ und betrachten eine beliebige Belegung β, die zu Φ ∪ {¬ϕ} passt. Dann passt diese auch zu Φ und ϕ. Wir unterscheiden zwei
Fälle:
β 6|= Φ. Dann gilt trivialerweise β 6|= Φ, also auch β 6|= Φ ∪ {¬ϕ}.
β |= Φ. Dann gilt β |= ϕ, da wir Φ |= ϕ voraussetzen. Aus β |= ϕ können wir β 6|= ¬ϕ folgern,
also β 6|= Φ ∪ {¬ϕ}.
53
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Insgesamt können wir unfb(Φ ∪ {¬ϕ}) feststellen.
Aus (B) folgt (A). Wir nehmen an, es gilt unfb(Φ ∪ {¬ϕ}) und betrachten eine Belegung β,
die zu Φ und ϕ passt und für die β |= Φ gilt. Aus unfb(Φ∪{¬ϕ}) und β |= Φ erhalten wir dann
β |= ϕ, was zu zeigen war.
Diese Lemma besagt zum einen, dass (Un-)Erfüllbarkeitstests benutzen werden können,
um festzustellen, ob eine Folgerungsbeziehung vorliegt. Wir erhalten also Folgerung:
Folgerung 2.7. Die Folgerungsbeziehung ist semi-entscheidbar.
Ein entsprechender Algorithmus ist auf Folie 32 zu sehen. Man vergleiche diesen mit
dem Algorithmus auf Folie 28. Die Korrektheit des ersten Algorithmus folgt aus der Korrektheit des zweiten.
Semi-Entscheidungsverfahren für die Folgerungsbeziehung
SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische
Formeln.
SemiImpl(F , ϕ)
Vorbedingung: F [0..] ist ein unendliches Feld von
aussagenlogischen Formeln; ϕ eine einzelne.
let i = 0
let ψ = ¬ϕ
repeat
let ψ = ψ ∧ F [i]
let b = SAT(ψ)
let i = i + 1
until b = 0 Nachbedingung:
Bei Termination gilt {F [0], F [1], . . . } |= ϕ.
Bei Divergenz gilt {F [0], F [1], . . . } 6|= ϕ.
Folie 32
Zum anderen können wir das Lemma benutzen, um einen Endlichkeitssatz für die Folgerungsbeziehung zu beweisen:
Folgerung 2.8. Sei Φ ⊆ F AL und ϕ ∈ F AL . Dann sind äquivalent:
(A) Φ |= ψ.
54
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
(B) Φ0 |= ψ für ein Φ0 b Φ.
Hierbei steht b für »endliche Teilmenge von«.
Beweis der Folgerung. Die Implikation von (B) nach (A) ist trivialerweise korrekt. Für die
umgekehrte Richtung nehmen wir an, dass Φ0 |= ψ gilt. Nach Lemma 2.14 bedeutet dies:
unfb(Φ∪{ϕ}), also, gemäß Endlichkeitssatz, unfb(Φ0 ) für eine Menge Φ0 ⊆ Φ oder unfb(Φ0 )
für eine Menge Φ0 ⊆ Φ. Im ersten Fall erhalten wir, wieder unter Benutzung von Lemma 2.14, Φ0 |= ϕ, also auch Φ |= ϕ. Im zweiten Fall gilt aber sogar Φ |= ψ für alle ψ ∈ F AL ,
also auch für ψ = ϕ, da es keine erfüllende Belegung für Φ0 und damit auch keine erfüllende Belegung für Φ gibt.
Obwohl dieser Satz von zentraler Bedeutung ist, werden wir ihn zunächst nicht anwenden. Eine für uns wichige Anwendung ist der Beweis von Satz ?? in Abschnitt ??.
Abschließend wollen wir eine dritte Folgerung aus Lemma 2.14 ziehen:
Folgerung 2.9. Sei Φ ⊆ F AL . Dann sind äquivalent:
(A) unfb(Φ).
(B) Φ |= ϕ für alle ϕ ∈ F AL .
(C) Φ |= 0.
Beweis. Wir benutzen einen Ringschluss. Zu (B) folgt aus (A). Aus unfb(Φ) folgt auch unfb(Φ∪
{¬ϕ}) für jedes ϕ ∈ F AL , also Φ |= ϕ nach Lemma 2.14.
Dass (C) aus (B) folgt, ist trivial.
Zu (A) folgt aus (C). Nehmen wir Φ |= 0 an, so können wir aus Lemma 2.14 schließen:
unfb(Φ ∪ {¬0}), also unfb(Φ ∪ {1}) und mithin unfb(Φ).
2.9 Beweissysteme
Wie eingangs erwähnt, ist es ein zentrales Anliegen der mathematischen Logik, den Begriff
des Beweises zu formalisieren und ihn eingehend zu studieren – ihn also zu einem Objekt
mathematischer Analyse zu machen. Bei der Formalisierung des Beweisbegriffs lässt man
sich von der Vorstellung leiten, dass ein Beweis einer Behauptung eine Zeichenreihe ist,
die Schritt für Schritt durch Anwendung von Regeln aus gewissen Annahmen entsteht. Das
führt in natürlicher Weise zum Begriff Beweissystem, den wir in diesem Abschnitt gemeinsam mit einigen konkreten Beweissystemen kennen lernen.
2.9.1 Unerfüllbarkeit und Resolution
Wir beginnen mit einem sehr einfachen und sehr handlichen Beweissystem. Dieses erlaubt
es, eine gegebene Menge von aussagenlogischen Formeln in konjunktiver Normalform auf
ihre Unerfüllbarkeit zu untersuchen. Das Beweissystem ist einfach, denn es kommt mit
einer einzigen Regel aus, die wir durch ein Lemma motivieren wollen.
55
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Lemma 2.15 (Resolutionslemma). Seien K und K 0 Klauseln und sei i ∈ N derart, dass X i ∈ K
und ¬X i ∈ K 0 gelten.
W
W
W
Für die Klausel R definiert durch R = (K \ {X i }) ∪ (K 0 \ {¬X i }) gilt: K ∧ K 0 |= R.
Man nennt R die Resolvente aus K und K 0 bezüglich X i ; sie wird mit res X i (K , K 0 ) bezeichnet.
W
W
Beweis. Sei β eine Belegung, die zu K , K 0 und R passt und für die β |= K und β |= K 0 gilt.
Wir nehmen zunächst an, β(X i ) = 0 gilt. Da β |= K gilt, muss es also ein Literal L ∈ K geben,
für das β |= L und L 6= X i gilt. Daraus folgt, dass L zu R gehört, also folgt auch β |= R. Der
andere Fall, in dem β(X i ) = 1 gilt, kann in gleicher Weise bearbeitet werden.
VW
Natürlich gilt
M |= resX i (K , K 0 ) für eine Formelmenge, wenn K , K 0 ∈ M gilt und K
und K 0 bezüglich X i resolviert werden können. Das folgt, streng genommen, aus Bemerkung 2.6.
W
Wir erinnern uns kurz, dass ; unerfüllbar ist. Um zu zeigen, dass eine Klauselmenge
M unerfüllbar ist, könnte man also versuchen, Lemma 2.15 wiederholt anzuwenden, bis
VW
W
man auf die leere Klausel stößt. Dann hat man
M |= ; gezeigt, woraus die UnerfüllVW
barkeit von
M folgt. Die einzelnen Anwendungen des Resolutionslemmas würde man
als die Beweisschritte ansehen.
Diese Überlegungen führen zu der folgenden Definition. Sei M eine Klauselmenge. Ein
Resolutionsbeweis von K n−1 aus M ist ein Folge K 0 , . . . , K n−1 , die für jedes i < n eine der
beiden folgenden Bedingungen erfüllt:
(V) Voraussetzungsregel: K i ∈ M .
(R) Resolutionsregel: Es gibt j , k < i und l derart, dass K i = res X l (K j , K k ) gilt.
Der erste Punkt bringt zum Ausdruck, dass wir Voraussetzung, von denen wir ausgehen, ohne Weiteres in einem Beweis benutzen wollen. Der zweite Punkt erlaubt als Beweisschritt
die Anwendung des obigen Lemmas. Dabei ist wichtig, dass das Lemma auf schon »bewiesene« Klauseln zurückgreift. Falls n > 0 ist, wird ein Beweis wie der obige auch als Beweis
von K n−1 bezeichnet. Die Länge des Beweises ist die Anzahl der Folgenglieder. Eine Resolutionswiderlegung für eine Klauselmenge ist ein Beweis der leeren Klausel aus der Klauselmenge. Gibt es einen Resolutionsbeweis für eine Klausel K aus einer Klauselmenge M , so
schreiben wir M `R K . Die Relation `R wird als die Ableitungsrelation zum Resolutionssystem genannt.
Ein Beispiel für einen kommentierten Resolutionsbeweis (genauer: eine Resolutionswiderlegung) ist auf Folie 33 zu finden.
Wir wollen zunächst festhalten, dass Resolutionsbeweise korrekt sind:
Satz 2.12. Ist M eine Klauselmenge und K eine Klausel, für die M `R K gilt, so gilt auch
VW
W
M |= K .
Beweis. Wir zeigen per vollständiger Induktion, beginnend mit n = 1, die folgende Behauptung: Ist K 0 , . . . , K n−1 eine Resolutionsbeweis aus einer Klauselmenge M und gilt n > 0, so
VW
W
gilt
M |= K i für alle i < n.
Induktionsanfang, n = 0. Es ist nichts zu zeigen.
56
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein Dreieck ist nicht bipartit
Ein Resolutionsbeweis
Klauselmenge
{{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }}
Beweis
1. {X0 , X1 }
2. {¬X1 , ¬X2 }
3. {X0 , ¬X2 }
4. {X2 , X0 }
5. {X0 }
6. {¬X0 , ¬X1 }
7. {X1 , X2 }
8. {¬X0 , X2 }
9. {¬X2 , ¬X0 }
10. {¬X0 }
11. ∅
(V)
(V)
(R)
(V)
(R)
(V)
(V)
(R)
(V)
(R)
(R)
mit X1 aus 1. und 2.
mit X2 aus 4. und 3.
mit X1 aus 7. und 6.
mit X2 aus 8. und 9.
mit X0 aus 5. und 10.
Folie 33
Induktionsschritt. Wir nehmen an, dass jeder Beweis der Länge n die Eigenschaft besitzt,
dass jede Klausel im Beweis aus der gegebenen Klauselmenge M folgt. Nun betrachten wir
VW
einen Beweis K 0 , . . . , K n der Länge n + 1. Falls K n ∈ M gilt, so gilt trivialerweise
M |=
W
K . Andernfalls gibt es i , j < n und k, so dass K n = res X k (K i , K j ) gilt. Lemma 2.15 impliW
W
VW
W
ziert K i ∧ K j |= K n . Nach Induktionsannahme gilt aber außerdem
M |= K i und
VW
VW
W
W
VW
M |= K j , also auch
M |= K i ∧ K j . Daraus können wir dann aber auch
M |= K n
schließen.
Nun können wir zum Beispiel auf Folie 33 zurückkommen. Der dort geführte Resolutionsbeweis endet mit der leeren Klausel. Aufgrund von Lemma 2.15 können wir nun schließen, dass es keine Zweifärbung eines Dreiecks gibt (was wir schon vorher wussten).
Wir wollen Terminologie und Notation im Zusammenhang mit Resolutionsbeweisen nachtragen. Also wissen wir, dass eine Klauselmenge unerfüllbar ist, wenn M `R ; gilt.
Das obige Korrektheitslemma für Resolutionsbeweise ist wichitg. Spannender ist aber
die Frage, ob Resolution vollständig ist in dem Sinne, dass es jede unerfüllbare Klauselmenge eine Resolutionswiderlegung gibt.
57
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Satz 2.13. Ist M eine Klauselmenge, für die
VW
M unerfüllbar ist, so gilt M `R ;.
Beweis. Wir benutzen den Satz über die Korrektheit des DP-Algorithmus. Zur Erinnerung:
Der DP-Algorithmus verändert in jedem Schleifendurchlauf eine Klauselmenge, die mit M
bezeichnet wird. Da auch die Eingabe des Algorithmus die Bezeichnung M trägt, wollen
wir – um Verwechslungen zu vermeiden – diese Menge im folgenden mit M¯ bezeichnen.
Satz 2.5 besagt, dass der DP-Algorithmus M genau dann irgendwann die leere Klausel
enthält, wenn M unerfüllbar ist. Wir zeigen nun, dass für jede Menge M , die irgendwann
bei der Berechnung des DP-Algorithmus auftritt, gilt: Es gibt einen Resolutionsbeweis aus
M¯, in dem alle Elemente von M auftreten.
Der Beweis der Behauptung erfolgt per vollständiger Induktion über die Anzahl n der
ausgeführten Schleifendurchläufe.
Induktionsanfang, n = 0. Dann ist M = M¯. Wenn wir also alle Elemente von M aufzählen, dann erhalten wir einen Resolutionsbeweis aus M , in dem alle Elemente von M
auftreten. Dieser Beweis kommt ausschließlich unter Verwendung der Voraussetzungsregel
zu Stande.
Induktionsschritt. Wir nehmen an, dass es einen Resolutionsbeweis B = K 0 , . . . , K m−1 aus
M¯ gibt, in dem alle Elemente aus der Menge M enthalten sind, die nach n Schleifendurchläufen erreicht werden. Wir betrachten einen weiteren Schleifendurchlauf. Es seien
+
M+ und M− definiert wie im Beweis zu Satz 2.11, etwa M+ = {K 0+ , . . . , K p−1
} und M− =
−
{K 0− , . . . , K q−1
}. Dann kommt durch pq Anwendungen der Resolutionsregel der Beweis B 0
+
−
definiert durch B 0 = K 0 , . . . , K m−1 , K 0+ ∪ K 0− , K 0+ ∪ K 1− , . . . , K p−1
K q−1
zu Stande. Dieser hat die
0
Eigenschaft, dass alle Elemente aus M in ihm vorkommen. Da nach dem Schleifendurchlauf für die neue Menge M die Beziehung M ⊆ M 0 gilt, ist damit auch die Induktionsbehauptung bewiesen.
Der Sachverhalt, der in Satz 2.12 ausgedrückt wird, wird im Allgemeinen als Korrektheit
der Resolution bezeichnet. Komplementär dazu ist Satz 2.13. Dieser wird im Allgemeinen
als die Vollständigkeit der Resolution bezeichnet. Informell gefasst: Korrektheit bedeutet,
dass das Beweisbare richtig ist; Vollständigkeit bedeutet, dass das Richtige beweisbar ist.
Wir erinnern uns kurz an das Dominoproblem. Dort hatten wir eine unendliche Formelmenge studiert. Es stellt sich hier die Frage, wie man mit unendlichen Mengen von Klauseln
umgehen kann. Auf diese lassen sich alle Begriffe, die wir weiter oben eingeführt haben erweitern, was wir im Folgenden auch annehmen wollen. Dass wir dann immer noch von
Korrektheit sprechen können, ist offensichtlich. Dass Vollständigkeit gegeben ist, beweist
man mit Hilfe des Vollständigkeitssatzes.
Satz 2.14. Sei M eine beliebige Menge von Klauseln. Dann sind äquivalent:
W
(A) unfb({ K : K ∈ M }).
(B) M `R ;.
W
Beweis. Zu (A) impliziert (B). Wir nehmen unfb({ K : K ∈ M }) an. Aus dem EndlichkeitsW
satz folgt, dass es M 0 b M gibt, so dass unfb({ K : K ∈ M 0 }) gilt. Aus Satz 2.13 erhalten wir
dann: M 0 `R ;, d. h., es gibt eine Resolutionswiderlegung aus M 0 . Diese ist natürlich auch
eine Resolutionswiderlegung aus M , so dass wir M `R ; schließen können.
58
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Zu (B) impliziert (A). Wir nehmen M `R ; an. Sei K 0 , . . . , K n−1 eine entsprechende Resolutionswiderlegung. Dann ist dies auch eine Resolutionswiderlegung für die Klauselmenge
M 0 , die durch M 0 = M ∩ {K 0 , . . . , K n−1 } definiert ist, so dass wir M 0 |= ; aus Satz 2.12 erW
halten. Daraus ergibt sich M |= ;, also unfb({ K : K ∈ M }).
Aufgabe 2.20. Beweisen Sie mit Hilfe der Resolution, dass die folgende Formel unerfüllbar
ist:
^_
ϕ=
{{X 1 , X 2 , ¬X 3 }, {X 3 , ¬X 4 , X 5 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 }, {¬X 5 }, {X 2 , X 4 }} .
2.9.2 Ein Hilbert-System
Das Beweissystem, das wir im letzten Abschnitt kennen gelernt haben, ist sehr einfach,
denn es kommt mit einer einzigen Regel aus (wenn man von der selbstverständlichen Voraussetzungsregel absieht). Das liegt unter anderem daran, dass dieses System nur mit Formeln in konjunktiver Normalform umgehen kann. In diesem Abschnitt wollen wir ein anderes Beweissystem betrachten, das in dieser Hinsicht sehr viel flexibler ist. Allerdings werden wir auch hier nicht alle aussagenlogischen Formeln zulassen, sondern nur diejenigen,
in denen ¬ und → die einzigen Junktoren sind. Das ist keine wesentliche Einschränkung:
Lemma 2.16.
1. Es gilt
0 ≡ ¬(X 0 → X 0 ) ,
1 ≡ (X 0 → X 0 ) .
2. Für alle ϕ, ψ ∈ F AL gilt:
ϕ ∨ ψ ≡ ¬ϕ → ψ ,
ϕ ∧ ψ ≡ ¬(ϕ → ¬ψ) ,
sowie
ϕ ↔ ψ ≡ ¬((ϕ → ψ) → ¬(ψ → ϕ)) .
Beweis durch einfaches Nachrechnen.
Mit anderen Worten: Jede aussagenlogische Formel ist äquivalent zu einer Formel, in
der nur die Junktoren ¬ und → vorkommen. Die Menge dieser Formeln wollen wir mit
F [¬, →]AL bezeichnen und die Menge der Formeln in Negation-Konditional-Normalform
nennen.
Das Beweissystem, was wir betrachten wollen, besteht zwar auch nur aus einer Regel, es
braucht aber desweiteren so genannte Axiome. Diese wollen wir vorab durch ein Lemma
motivieren:
Lemma 2.17. Für alle ϕ, ψ, χ ∈ F AL gilt:
|=ϕ → (ψ → ϕ) ,
(Ax1)
|=(ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ)) ,
(Ax2)
|=(¬ϕ → ¬ψ) → (ψ → ϕ) .
(Ax3)
59
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Beweis durch einfaches Nachrechnen.
Die Schlussregel, die in dem Beweissystem genutzt werden soll, wollen wir auch in einem
Lemma zum Ausdruck bringen:
Lemma 2.18 (Modus Ponens). Für alle Formeln ϕ, ψ ∈ F AL gilt:
{ϕ, ϕ → ψ} |= ψ .
Ein Beweis kann leicht geführt werden.
Wir nehmen nun Lemma 2.17 und Lemma 2.18 als Ausgangspunkt für unser Beweissystem. Ein Hilbert-Beweis aus einer Formelmenge Φ ⊆ F [¬, →]AL ist eine Folge ϕ0 , . . . , ϕn−1
von Formeln aus F [¬, →]AL , so dass für jedes i < n eine der drei folgenden Bedingungen
erfüllt ist:
(V) Voraussetzungsregel: ϕi ∈ Φ.
(MP) Modus Ponens: Es gibt j , k < i derart, dass ϕk = ϕ j → ϕi gilt.
(Ax) Axiom: ϕi ist von der Gestalt (Ax1), (Ax2) oder (Ax3), allerdings mit ϕ, ψ, χ ∈ F [¬, →]AL .
Ist n > 0, so sagt man auch hier, dass der Beweis ein Beweis von ϕn−1 aus Φ ist. Dafür
schreiben wir Φ `H ϕn−1 .
Folie 34 zeigt, wie man einen Beweis von X 0 → X 2 aus {X 0 → X 1 , X 1 → X 2 } gewinnt.
Man kann nun auch hier zeigen, dass das System H korrekt und vollständig ist:
Satz 2.15. Sei Φ ⊆ F [¬, →]AL und ϕ ∈ F [¬, →]AL . Es gilt Φ |= ϕ genau dann, wenn Φ `H ϕ
gilt.
Wir verzichten auf einen Beweis.
2.9.3 Ein natürliches Beweissystem
Das Hilbert-System aus dem letzten Abschnitt würde man dem Resolutionskalkül des vorletzten Abschnitts sicherlich vorziehen, wenn man nicht automatisiert vorgehen könnte,
denn es ist sehr schwierig »in Klauseln« zu denken. Aber auch das Hilbert-System bildet sicherlich nicht die Argumentation eines Mathematikers nach. Das tut aber das System, was
wir in diesem Abschnitt kennen lernen. Deshalb wird es auch natürliches Beweissystem genannt.
Mit dem zu beschreibenden System kann man beliebige aussagenlogische Formeln behandeln, sofern sie nicht das Bikonditional enthalten, was natürlich keine Einschränkung
darstellt. Die Menge aller dieser Formeln bezeichnen wir mit F ⟨↔⟩AL .
Eine wesentliche Besonderheit der Beweisführung eines Mathematikers ist Modularisierung: Der Beweis einer schwierigen Behauptung wird in viele kleine, überschaubare Beweise zerlegt. Mitunter werden diese dann auch weiter zerlegt.
Wollen wir also ein natürliches Beweissystem beschreiben, dann wird der Begriff des
Beweises notwendigerweise komplizierter sein als bisher. Außerdem werden natürlich die
(Schluss-)Regeln viel umfangreicher sein, denn es gibt viele kleine Regeln, nach denen eine Mathematikerin Beweise führt. Die weiter unten folgende Definition trifft genau das
60
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein Beweis im Hilbert-System
Aus Martin Grohes Vorlesung
Behauptung
{X0 → X1 , X1 → X2 } `H X0 → X2 .
Kommentierter Beweis
1. (V) X1 → X2
2. (Ax1) mit ϕ = X1 → X2 und ψ = X0
(X1 → X2 ) → (X0 → (X1 → X2 ))
3. (MP) auf 1. und 2.
X0 → (X1 → X2 )
4. (Ax2) mit ϕ = X0 , ψ = X1 und χ = X2
(X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 ))
5. (MP) auf 3. und 4.
(X0 → X1 ) → (X0 → X2 )
6. (V) X0 → X1
7. (MP) auf 6. und 5.
X0 → X2
Folie 34
Gewünschte, ist aber etwas komplizierter. Um sie besser zu motivieren, stellen wir exemplarisch die folgende Überlegung an.
Wir wollen zeigen, dass X 0 → (X 1 → X 2 ) aus (X 0 ∧ X 1 ) → X 2 folgt, d. h., wir wollen einen
entsprechenden Beweis finden. Ein solcher könnte wie folgt aussehen:
1. Wir nehmen (X 0 ∧ X 1 ) → X 2 an.
2. Um (X 0 ∧ X 1 ) → X 2 folgern zu können, nehmen wir zusätzlich X 0 an.
3. Um X 1 → X 2 zu beweisen, nehmen wir weiterhin X 1 an.
4. Wenn aber X 1 zusätzlich zu X 0 gilt, gilt auch X 0 ∧ X 1 .
5. Da wir aber auch die Gültigkeit von X 0 ∧ X 1 → X 2 annehmen, können wir
auf X 2 schließen.
6. Also haben wir unter den gemachten Annahmen X 1 → X 2 gezeigt.
7. Schließlich erhalten wir daraus auch X 0 → (X 1 → X 2 ).
Was man allein an den Einrückungen erkennt, ist, dass die Beweise, die wir führen, geschachtelt sind. Dabei ist eine Einrückung als ein Beweis einer Behauptung unter einer
zusätzlichen Annahme zu verstehen. Nach Abschluss dieses Beweises wird der ursprüngliche Beweis wieder aufgegriffen, zwischendurch kann ein weiterer Beweis eingeschoben
61
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
werden, und so weiter.
Wir wollen uns zwei Regeln, die wir benutzt haben, genauer ansehen. In Schritt 4 haben
wir zum Beispiel benutzt, dass aus der Gültigkeit von ϕ und ψ immer auch die Gültigkeit
von ϕ ∧ ψ folgt. Man spricht von der Einführung der Konjunktion (in-∧).
Schritt 6 ist von einer anderen Art: Wir hatten vorher, in den Zeilen 3 bis 5, gezeigt, dass
unter der zusätzlichen Annahme X 1 auf X 2 geschlossen werden kann. In Zeile 6 haben wir
dann auf die Gültigkeit von X 1 → X 2 (unter denselben Annahmen) geschlossen. Allgemein
kann man auf die Gültigkeit von ϕ → ψ schließen, wenn man unter der Annahme ϕ auf ψ
schließen kann. Man spricht von der Einführung des Konditionals (in-→). Wichtig ist, zu
erkennen, dass diese Einführung auf einem weiteren Beweis basiert.
Um nun alle Formeln aus F ⟨↔⟩AL abdecken zu können, braucht man relativ viele Regeln.
Man gelangt in natürlicher Weise zu der folgenden Definition.
Ein natürlicher Beweis aus einer Menge Φ ⊆ F ⟨↔⟩AL und Beweisen ist ein Tupel (B 0 , . . . , B n−1 ),
so dass für jedes i < n eine der folgenden Bedingungen erfüllt ist, wobei Ψ j die Menge aller
der B k sei, für die k < j und B k ∈ F ⟨↔⟩AL gilt:
(V) B i ∈ Φ.
(in-∧) Es gibt j , k < i , so dass B i = B j ∧ B k und B j , B k ∈ F ⟨↔⟩AL gelten.
(el-∧-l) Es gibt j < i und ϕ, so dass B j = ϕ ∧ B i gilt.
(el-∧-r) Es gibt j < i und ϕ, so dass B j = B i ∧ ϕ gilt.
(in-∨-r) Es gibt j < i und ϕ, so dass B i = B j ∨ ϕ gilt.
(in-∨-l) Es gibt j < i und ϕ, so dass B i = ϕ ∨ B j gilt.
(el-∨) Es gibt j < i − 2 und ϕ und ψ, so dass Folgendes gilt:
a) B j = ϕ ∨ ψ.
b) B i −2 ist ein Beweis der Gestalt (ϕ, . . . , B i ) aus Ψi −2 ∪ {ϕ}.
c) B i −1 ist ein Beweis der Gestalt (ψ, . . . , B i ) aus Ψi −2 ∪ {ψ}.
(in-→) B i −1 ist ein Beweis der Gestalt (ϕ, . . . , ψ) aus Ψi −1 ∪ {ψ} und B i = ϕ → ψ.
(el-→) Es gibt j , k < i und ϕ mit B j = ϕ und B k = ϕ → B i .
(in-¬) B i −1 ist ein Beweis der Gestalt (ϕ, . . . , 0) aus Ψi −1 ∪ {ϕ} und B i = ¬ϕ.
(el-¬) Es gibt j , k < i und ϕ mit B j = ϕ und B k = ¬ϕ und B i = 0.
(el-0) Es gibt j < i mit B j = 0.
(el-¬¬) Es gibt j < i mit B j = ¬¬B i .
(in-pf) B i ist ein Beweis der Gestalt (ϕ, . . . ) aus Ψi ∪ {ϕ}.
Wir schreiben, wie üblich, Φ `N ϕ, falls es einen Beweis aus Φ gibt, der auf ϕ endet.
Nun können wir versuchen, den oben geführten Beweis zu formalisieren. Diese ist auf
Folie 35 zu finden.
Besser lesbar und gut kommentiert ist der Beweis allerdings auf Folie 36 dargestellt.
Dass die oben angegebenen Regeln in der Tat dem entsprechen, wie man Beweise in der
Mathematik führt, wird vielen einleuchten. Viel spannender ist allerdings die Frage, ob diese Art, Beweise zu führen, zu einem vollständigen System führt. Beides wird in folgendem
Satz festgehalten.
Satz 2.16. Sei Φ ⊆ F ⟨↔⟩AL und ϕ ∈ F ⟨↔⟩AL . Es gilt Φ |= ϕ genau dann, wenn Φ `N ϕ gilt.
Wir verzichten auf einen Beweis.
62
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein natürlicher Beweis
Aus [RH]
Behauptung
(X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 )
Beweis
((X0 ∧ X1 ) → X2 , (X0 , (X1 , X0 ∧ X1 , X2 ), X1 → X2 ), X0 → (X1 → X2 ))
Folie 35
2.9.4 Ableitungssysteme
Wir wollen noch einmal auf die allgemeine Struktur der beiden Beweissysteme, die wir
in den vorhergehenden Abschnitten kennen gelernt haben, zurückkommen und Gemeinsamkeiten herausarbeiten. Das führt uns zu dem Begriff Ableitungssystem.
Im weitesten Sinne kann man ein Beweissystem auffassen als ein Regelsystem, das beschreibt, wie endliche Folgen von Zeichenreihen – Beweise – aus einer vorgegebenen Menge von Zeichenreihen – den Voraussetzungen – zu Stande kommen unter Benutzung von
Axiomen und Regeln. Regeln erklären, wie man aus schon erzielten Teilen neue zusammensetzt; Axiome sind solche Zeichenreihen, die man ohne Weiteres in einem Beweis nutzen kann. Das »Zu-Stande-Kommen« wir als ableiten bezeichnet.
Charakterisiert wird ein solches Regelsystem dann durch die Axiome und Regeln, weshalb man für diese besondere Schreibweisen benutzt. Regeln schreibt man in der einfachen
Form als
u 0 u 1 . . . u m−1
,
v
was wie folgt zu verstehen ist: Sind u 0 , u 1 , . . . , u m−1 ableitbar, dann auch v. Der obere Teil
63
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein natürlicher Beweis in natürlicher Form
Behauptung
(X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 )
Beweis
1. (V) (X0 ∧ X1 ) → X2 .
2. (A) X0 .
3. (A) X1 .
4. (in-∧) auf 2. und 3.: X0 ∧ X1 .
5. (el-→) auf 4. und 1.: X2 .
6. (in-→) auf 2. und 3.–5.: X1 → X2 .
7. (in-→) auf 1. und 2.–6.: X0 → (X1 → X2 ).
Folie 36
der Regeln heißt Prämisse, der untere Konklusion. Wenn m = 0 ist, ist die Regel an keine
Prämisse gebunden und wird Axiom genannt.
Das Resolutionssystem wie auch das Hilbert-System, die wir kennengelernt haben, lassen sich leicht in dieser Weise schreiben, wie man auf Folie 37 und Folie 38 sieht.
Zu beachten ist dabei, dass die angegebenen Regeln und Axiome jeweils für unendliche
viele Regeln und Axiome stehen: K , K 0 , X i , ϕ, ψ und χ rangieren über die jeweils sinnvollen
Bereiche.
Sind Axiome und Regeln und die Menge, auf die sie sich beziehen, gegeben, so erhält
man automatisch eine Ableitungsrelation `, die zwischen einer Menge und einer Zeichenreihe genau dann besteht, wenn die Zeichenreihe aus der Menge in endlich vielen Schritten
durch Anwenden der Regeln (und Axiome) entsteht. Eine Ableitung (Beweis) ist dann eine
Folge, die dies belegt.
Schwieriger ist es, das natürliche Beweissystem in das gerade beschriebene Rahmenwerk zu passen. Dazu muss man nämlich die jeweils nutzbaren Annahmen mit in den Ableitungsbegriff aufnehmen, was das Ableitungssystem schwerfällig macht. Deshalb ist auf
Folie 39 eine etwas vereinfachende Darstellung des Ableitungssystems zu finden.
64
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Das Resolutionssystem in Kurzform
Axiome
Keine!
Regeln
K ∪· {Xi } K 0 ∪· {¬Xi }
K ∪ K0
Folie 37
Genauer wäre es, wenn wir die Annahmen, die jeweils gemacht werden dürfen, in die
Formalisierung einschlössen. Zum Beispiel könnte man (el-∨) in folgender Form schreiben:
(el-∨)
Φ ` ϕ ∨ ψ Φ ∪ {ϕ} ` χ Φ ∪ {ψ} ` χ
Φ`χ
Die Bruchschreibweise, die es erlaubt, Regeln übersichtlich zu schreiben, wird auch häufig auf Beweise übertragen. Als Beispiel betrachten wir den Beweis von Folie 34. Dessen
Notation in Bruchschreibweise ist auf Folie 40 zu finden.
Wichtige Begriffe
•
•
•
•
Beweissystem
Resolution
Korrektheit
Vollständigkeit
65
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Das Hilbert-System in Kurzform
Axiome
(Ax1)
(Ax2)
(Ax3)
ϕ → (ψ → ϕ)
(ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ))
(¬ϕ → ¬ψ) → (ψ → ϕ)
Regeln
(MP)
ϕ ϕ→ψ
ψ
Folie 38
2.10 Horn-Formeln
Wir haben im Abschnitt 2.7 zwei Erfüllbarkeitstests kennen gelernt. Beide haben exponentielle Laufzeit. Dafür, dass alle Algorithmen, die das Erfüllbarkeitsproblem für aussagenlogische Formeln (in konjunktiver Normalform) lösen, ineffizient sind, spricht vieles. Deshalb wollen wir uns zum Abschluss des ersten Kapitels der Vorlesung mit einer Teilmenge
der aussagenlogischen Formeln befassen, deren Elemente algorithmisch effizient bearbeitet werden können.
Eine Klausel ist eine Horn-Klausel, wenn sie höchsten ein positives Literal enthält. D. h.,
eine Horn-Klausel ist von der Gestalt
{¬X i 0 , . . . , ¬X i r −1 } oder {¬X i 0 , . . . , ¬X i r −1 , X j } .
Eine Horn-Klauselmenge ist eine Klauselmenge, die allein Horn-Klauseln enthält. Eine HornVW
Formel ist von der Gestalt
M für eine Horn-Klauselmenge M .
Jede Horn-Formel ist demnach äquvialent zu einer Konjunktion von Formeln der Gestalt
X i 0 ∧ · · · ∧ X i r −1 → 0 oder
66
Aussagenlogik.tex Rev 113 2008-12-03
X i 0 ∧ · · · ∧ X i r −1 → X j .
2 Aussagenlogik
Das natürliche Beweissystem in Kurzform
(in-∧)
ϕ ψ
ϕ∧ψ
(el-∧-l)
ϕ∧ψ
ψ
(in-∨-l)
ψ
ϕ∨ψ
(in-∨-r)
ϕ
ϕ∨ψ
(el-∨)
(el-→)
(el-0)
ϕ∨ψ
ϕ
..
.
χ
χ
ϕ
ϕ→ψ
ψ
ψ
..
.
χ
(in-→)
(el-¬)
ϕ
..
.
ψ
ϕ→ψ
ϕ
¬ϕ
0
(el-∧-r)
(in-¬)
(el-¬¬)
ϕ∧ψ
ϕ
ϕ
..
.
0
¬ϕ
¬¬ϕ
ϕ
0
ϕ
Folie 39
Falls r = 0, so schreibt man einfach 1 auf die linke Seite.
Die übliche Terminologie im Zusammenhang mit Horn-Klauseln ist: Eine Einheitsklausel mit positivem Literal heißt Tatsachenklausel, eine nicht leere Klausel ohne positives Literal heißt Zielklausel, die restlichen nicht-leeren Klauseln heißen Programmklauseln. Eine
Übersicht ist auf Folie 41 zu finden.
Wir wollen uns ein paar Beispiele ansehen, in denen Horn-Formeln auftreten.
2.10.1 Beispiel: Erreichbarkeit in gerichteten Graphen
Zunächst sei G = (V, E ) ein endlicher gerichteter Graph. Ohne Einschränkung wollen wir
annehmen, dass die Knotenmenge V von der Gestalt {0, . . . , n − 1} ist. Solche Graphen wollen wir Graphen in Normalform nennen.
Wir betrachten zu einem Graphen G in Normalform die Formel ϕG definiert durch
^
ϕG =
Xi → X j .
(i , j )∈E
Wir können ϕG benutzen, um das Erreichbarkeitsproblem in G zu beschreiben und lösen:
67
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein Beweis im Hilbert-System
Alternative Darstellung: Bruchschreibweise
(V)
(MP)
(Ax1)
X1 → X2
(X1 → X2 ) → (X0 → (X1 → X2 ))
(MP)
X0 → (X1 → X2 )
(Ax2)
(X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 ))
(MP)
(V)
X0 → X 1
(X0 → X1 ) → (X0 → X2 )
X0 → X2
Folie 40
Lemma 2.19. Sei G ein endlicher gerichteter Graph in Normalform und seien s und t Knoten
von G. Dann sind äquivalent:
(A) Der Knoten t ist von s aus in G erreichbar.
(B) ϕG,s |= X t mit
ϕG,s = (1 → X s ) ∧ ϕG .
Man beachte, dass ϕG,s eine Horn-Formel ohne Ziel- und ohne die leere Klausel ist.
Illustriert wird das Lemma auf Folie ??.
Dass dies gilt, sollte nicht verwunderlich sein, denn hier wird die Transitivität der Folgerungsbeziehung augenutzt. Der Vollständigkeit halber geben wir aber einen Beweis an.
Beweis des Lemmas. Zu (B) folgt aus (A). Sei t von s aus in G erreichbar. Dann gibt es einen
einfachen Pfad v 0 , . . . , v r von s zu t . Insbesondere sind 1 → X v 0 sowie X v i → X v i +1 für i < r
Konjunktionsglieder von ϕG,s . Damit muss also für jede erfüllende Belegung β zunächst
β |= X v 0 gelten. Daraus ergibt sich dann nacheinander: β |= X v 1 , β |= X v 1 , . . . , β |= X v r , also
β |= X t . Das zeigt: ϕG,s |= X t .
68
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Horn-Klauseln
Tatsachenklausel
1 → Xi
Programmklausel
Xi0 ∧ · · · ∧ Xir → Xj
Zielklausel
Xi0 ∧ · · · ∧ Xir → 0
Leere Klausel
1→0
Folie 41
Zu (A) folgt aus (B). Sei nun t nicht von s erreichbar und V 0 die Menge der von s aus
erreichbaren Knoten. Dann gehört t nicht zu V 0 . Wir betrachten die Belegung β mit β(X i ) =
1 für alle i ∈ V 0 und β(X j ) = 0 für alle j ∈ V \ V 0 . Wir behaupten, dass β |= ϕG,s und β 6|= X t
gilt. Letzteres ist offensichtlich. Ersteres gilt aber auch: Wegen s ∈ V 0 gilt β(X s ) = 1, also
β |= 1 → X s . Ist nun X i → X j ein beliebiges Konjunktionsglied von ϕG , dann gibt es nur
zwei Fälle: (a) i ∈ V 0 oder (b) i ∉ V 0 . Im ersten Fall ist i von s aus erreichbar und da (i , j ) ∈ E
ist damit auch j von s aus erreichbar ( j ∈ V 0 ). Also gilt β(X i ) = β(X j ) = 1 und damit auch
β |= X i → X j . Im zweiten Fall gilt β(X i ) = 0, also auch β |= X i → X j .
2.10.2 Beispiel: Schaltnetz-Auswertung
In Abschnitt 2.8.1 haben wir uns mit der Äquivalenz von Schaltkreisen auseinandergesetzt.
Das ist insofern eine schwierige Frage, als über alle möglichen Belegungen der Eingabeleitungen gesprochen wird. Jetzt wollen wir uns einer einfacheren Frage widmen: Wir stellen
uns die Frage, wie die Ausgabe eines Schaltnetzes für eine konkrete Eingabe aussieht.
Eine Instanz des Auswertungsproblems für Schaltnetze ist gegeben durch ein Schaltnetz
69
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
S = (E , F, A) wie in Abschnitt 2.8.1 und eine Belegung β : E → {0, 1}. Gesucht ist f S (β).
Wir wollen zunächst annehmen, dass das Schaltnetz nur aus Und- und Oder-Gattern
besteht. Solche Schaltnetze heißen auch monoton. In einem monotonen Schaltnetz ist also
jede Anweisung von der Gestalt
Xi ← X j ∧ Xk
oder
Xi ← X j ∨ Xk .
Zu einem solchen Schaltnetz betrachten wir die Formel ϕS definiert durch
ϕS =
^
^
((X j ∧ X k ) → X i ) ∧
X i ←X j ∧X k ∈F
((X j → X i ) ∧ (X k → X i ) .
X i ←X j ∨X k ∈F
Man kann nun beweisen:
Lemma 2.20. Sei S ein monotones Schaltnetz, β : E → {0, 1} eine Belegung der Eingangsvariablen und X j ∈ A. Dann sind die beiden folgenden Aussagen äquivalent:
(A) f S (β)(X j ) = 1.
(B) ϕS ,β |= X i mit
Ã
ϕS ,β =
!
^
X i ∈E : β(X i )=1
(1 → X i ) ∧ ϕS .
Man beachte, dass ϕS ,β eine Horn-Formel ohne Ziel- und ohne die leere Klausel ist.
Verdeutlicht wird dieses Lemma auf Folie ??.
Beweis. Der Beweis ist hier leichter als im letzten Abschnitt, denn man zeigt lediglich, dass
für jede Belegung β der Variablen in S gilt: β |= ΦS genau dann, wenn β |= ϕS .
Etwas schwieriger ist die Situation, wenn beliebige Schaltkreise betrachtet werden, denn
in diesen sind beliebige Formeln auf der rechten Seite von Anweisungen erlaubt, zum Beispiel auch Gatter für das exklusive Oder. Dieses lässt sich (beweisbar) nicht direkt durch
Horn-Formeln beschreiben. Man kann aber leicht so vorgehen, dass man zu jeder Variablen X i ∈ vars(S ) eine weitere Variable, etwa X̄ i , nutzt, die genau dann mit 1 belegt werden
soll, wenn X i im Schaltnetz mit 0 belegt wird. Dann lässt sich zum Beispiel die Anweisung
Xi ← X j ⊕ Xk
beschreiben durch
(X j ∧ X̄ k → X i ) ∧ ( X̄ j ∧ X k → X i ) ∧ (X j ∧ X k → X̄ i ) ∧ ( X̄ j ∧ X̄ k → X̄ i ) .
Also lassen sich Horn-Formeln auch hier nutzen.
70
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
2.10.3 Beispiel: Erreichbarkeitsspiele auf endlichen Graphen
Das letzte Beispiel ist etwas komplizierter. Wir stellen uns wieder vor, ein endlicher gerichteter Graph G in Normalform sei gegeben. Außerdem sei ein Knoten t gegeben und eine
ausgezeichnete Menge V0 ⊆ V .
Wir betrachten das folgende Spiel, das so genannte Erreichbarkeitsspiel zu G, V0 und t .
Das Spiel wird zwischen zwei Spielern ausgetragen, genannt Null und Eins. Es läuft in Runden ab. Zu Beginn liegt ein Spielstein – der einzige, den es gibt – auf einem Knoten des
Graphen. In jeder Runde wird wie folgt verfahren:
1. Liegt der Stein auf t , so hat Null gewonnen.
2. Liegt der Stein auf einem Knoten v ∈ V0 , so ist Null an der Reihe. Gibt es keine Kante,
die von v ausgeht, kann Null nicht ziehen und verliert. Ansonsten wählt er eine der
ausgehenden Kanten und zieht den Stein zu deren Ziel.
3. Liegt der Stein auf einen Knoten v ∈ V1 , ist Eins am Zug. Die Regeln sind analog.
Wir möchten die folgende Frage beantworten: Von welchen Anfangsknoten besitzt Null
eine Strategie, um zu t zu gelangen?
Ein Beispiel ist auf Folie ?? zu sehen. Die graphische Darstellung folgt den folgenden
Konventionen:
1. Der Zielknoten t hat eine ausgehende Kante ohne Ziel.
2. Die Knoten der Menge V0 , also Nulls Knoten, sind diejenigen, die rund gezeichnet
sind.
Wir wollen keine mathematische Präzisierung der obigen Frage vornehmen, denn in deren Rahmen müssten wir auch sagen, was genau wir unter einer Gewinnstrategie verstehen. Das würde zu weit führen. Es ist aber auch leicht möglich, im Folgenden mit der Anschauung zu arbeiten.
Wir können zunächst einfache Regeln aufstellen, die uns sagen, welche Knoten zu der
Menge der Gewinnknoten für Null gehören:
1. t ist ein Gewinnknoten für Null.
2. Ist v ∈ V0 und ist ein Nachfolger von v ein Gewinnknoten für Null, dann ist auch v ein
Gewinnknoten für Null.
3. Ist v ∈ V \ V0 und sind alle Nachfolger von v Gewinnknoten für Null, dann ist auch v
ein Gewinnknoten für Null.
Diese Regeln sind ausreichend, wie man nachweisen kann.
Ausgehend von diesen Regeln lässt sich eine Horn-Formel konstruieren, die unsere Frage
beantwortet. Zunächst definieren wir ϕG,V0 durch
´
^ ^
^ ³¡ ^
¢
ψG,V0 = X t ∧
(X j → X i ) ∧
X j → Xi .
i ∈V0 (i , j )∈E
i ∈V \V0
j : (i , j )∈E
Man beachte die Klammerung! Auch diese ist eine Horn-Formel ohne Zielklausel und ohne
die leere Klausel.
Auch hierzu betrachten wir ein Beispiel, auf Folie ??.
Es lässt sich nun zeigen:
Lemma 2.21. Sei G ein endlicher gerichteter Graph in Normalform, V0 ⊆ V und t ein Knoten
von G. Dann sind für jeden Knoten s äquivalent:
71
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
(A) Null gewinnt das Erreichbarkeitsspiel zu G, V0 und t ausgehend von s. (Genauer: . . .
hat eine Gewinnstrategie in . . . )
(B) ψG,V0 |= X s .
2.10.4 Der Markierungsalgorithmus für Horn-Formeln
Abschließend fragen wir uns, wie man feststellen kann, ob eine gegebene Horn-Formel erfüllbar ist und wie gegebenenfalls die Folgerungen aus dieser Formel aussehen. Denn an
den Folgerungen sind wir ja gerade interessiert, wie die Lemmas 2.19 bis 2.21 zeigen.
Nehmen wir zunächst einmal an, eine gegebene Horn-Formel ϕ wäre eine Konjunktion
von Tatsachen- und Programmklauseln, also von Klauseln der Form
X i 0 ∧ · · · ∧ X i r −1 → X j
und 1 → X j .
Dann ist ϕ offensichtlich erfüllbar, denn β mit β(X i ) = 1 für alle X i ∈ vars(ϕ) ist eine erfüllende Belegung. Interessanter ist die Frage nach der Menge folg(ϕ) definiert durch
folg(ϕ) = {X i ∈ VAL : ϕ |= X i } .
Offensichtlich gilt X j ∈ folg(ϕ), sofern 1 → X j eine Tatsachenklausel in ϕ ist. Andererseits
gilt sicherlich zum Beispiel auch X 5 ∈ folg(ϕ), sofern X 2 ∧ X 4 → X 5 , 1 → X 2 und 1 → X 4
Konjunktionsglieder von ϕ sind. Das führt zu dem einfachen Algorithmus, der auf Folie 42
zu finden ist. Ein Beispiel für seine Durchführung ist auf Folie 43 zu sehen.
Der Algorithmus ist in der Tat korrekt:
Satz 2.17.
1. HornSAT ist korrekt.
2. HornSAT führt den Rumpf der while-Schleife höchstens vars(M ) Mal aus und jede Ausführung hat lineare Laufzeit.
V
Beweis. Wir bezeichnen die anfängliche Klauselmenge mit M̄ und setzen ϕ = M̄ .
Zu 1. Wir behaupten, dass
^
ϕ ≡ M und {1 → X i : X i ∈ I } ⊆ M
vor jeder Ausführung der while-Bedingung gelten. Dies ist vor der ersten Ausführung trivialerweise richtig.
Der erste Schritt im Rumpf der while-Schleife ändert an der Gültigkeit der Bedingung offensichtlich nichts. Bezeichne nun M 0 die Belegung der Variablen M nach der Ausführung
der Zuweisung in der for-Schleife. Wir nehmen 1 → X i ∈ M und ψ = X i 0 ∧ · · · ∧ X i r −1 → X j ∈
V
V
V
V
M mit X i k = X i an und zeigen M ≡ M 0 . Da offensichtlich M 0 |= M gilt, brauchen wir
V
V 0
uns nur mit M |= M zu beschäftigen.
V
V
Sei also β eine beliebige Belegung, die zu M und damit auch zu M 0 passt, und für
V
die β |= M gilt. Wir müssen lediglich zeigen, dass β |= ψ0 mit ψ0 = X i 0 ∧ · · · ∧ X i k−1 ∧ X i k+1 ∧
· · · ∧ X i r −1 → X j gilt. Sofern β(X j ) = 1 gilt, gilt β |= ψ0 trivialerweise. Falls β(X j ) = 0 gilt, muss
auch β 6|= X i 0 ∧ · · · ∧ X i r −1 gelten. Da β(X i ) = 1 wegen 1 → X i ∈ M gilt, existiert l 6= k mit
β(X i l ) = 0. Dann gilt aber auch β |= ψ0 und mithin β |= M 0 .
72
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Der Markierungsalgorithmus für Horn-Formeln
HornSAT(M)
Vorbedingung: M Horn-Klauselmenge mit ausschließlich
Tatsachen- und Programmklauseln.
let I = ∅
while exists 1 → Xi ∈ M where Xi ∈
/ I do
let I = I ∪ {Xi }
for each ψ = Xi0 ∧ · · · ∧ Xir −1 → Xj ∈ M where r > 0 do
if exists k < r such that Xik = Xi then
let M = M \ {ψ} ∪ {Xi0 ∧ · · · ∧ Xik−1 ∧ Xik+1 ∧ · · · ∧ Xir −1 → Xj }
Insbesondere: Falls r = 1 und k = 0, so M = M \ {ψ} ∪ {1 → Xj }.
Nachbedingung: I = folg(
V
M).
Folie 42
Eine offensichtliche Eigenschaft des Algorithmus ist, dass für M weiterhin vor der Ausführung der while-Bedingung immer gilt: Jedes X i ∈ I tritt auf keiner linken Seite einer
Klausel aus M auf.
Nach Termination des Algorithmus gilt dann also:
V
V
1. M ≡ M̄ .
2. I = {X i : 1 → X i ∈ M }.
3. Kein X i ∈ I kommt auf der linken Seite einer Klausel aus M vor.
V
Aus der ersten und der zweiten Bedingung folgt: Für jede erfüllende Belegung β von M
V
(und damit von M̄ ) und jedes X i ∈ I gilt β(X i ) = 1. Außerdem ist β definiert durch β(X i ) =
V
1 für X i ∈ I und β(X i ) = 0 in den anderen Fällen eine erfüllende Belegung von M (und
V
damit auch von M̄ ), denn jede Tatsachenklausel in M wird durch β trivialerweise erfüllt
und jede Programmklausel wird erfüllt, weil es auf der linken Seite eine Variable gibt, die
nicht zu I gehört.
Zu Teil 2. Da im Schleifenrumpf keine neuen Variablen eingeführt werden, wird der Schleifenrumpf für jede Variable X i ∈ vars(M ) höchstens einmal ausgeführt. Die for-Schleife hat
lineare Laufzeit.
73
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Ein Beispiel für den Markierungsalgorithmus
Gegeben
M = {1 → X0 , 1 → X2 , (X0 ∧X2 ) → X4 , (X0 ∧X4 ) → X6 , X1 → X0 }
Ausführung
0
I
M
1
∅
1 → X0 , 1 → X2 , (X0 ∧ X2 ) → X4 , (X0 ∧ X4 ) → X6 , X1 → X0
2
X0
1 → X0 , 1 → X2 , X2 → X4 , X4 → X6 , X1 → X0
3
X0 , X2
1 → X0 , 1 → X2 , 1 → X4 , X4 → X6 , X1 → X0
4
X0 , X2 , X4
1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0
Ergebnis
Es gilt
V
M |= X0 ,
V
M |= X2 ,
V
M |= X4 , aber
V
M 6|= X1 .
Folie 43
Der Beweis liefert:
Folgerung 2.10. Sei ϕ eine Horn-Formel, deren Konjunktionsglieder aus Tatsachen- und
Programmklauseln bestehen. Dann sind für jede zu ϕ passende Belegung äquivalent:
(A) β |= ϕ.
(B) folg(ϕ) ⊆ β−1 (1).
Daraus wiederum ergibt sich:
Folgerung 2.11. Sei M eine Horn-Klauselmenge bestehend aus Tatsachen- und Programmklauseln und M 0 eine Horn-Klauselmenge bestehend aus Zielklauseln. Dann sind äquivalent:
VW
(A) unfb( (M ∪ M 0 )).
VW
(B) Es gibt K ∈ M 0 , so dass vars(K ) ⊆ folg( M ) gilt.
Diese Erkenntnis lässt sich nun in von der Resolution gewohnter Weise in einen Algorithmus umsetzen. Dieser ist auf Folie 44 zu finden.
74
Aussagenlogik.tex Rev 113 2008-12-03
2 Aussagenlogik
Der Markierungsalgorithmus für Horn-Formeln
HornSAT∗ (M)
Vorbedingung: M Horn-Klauselmenge.
let I = ∅
while exists unit clause {Xi } ∈ M where Xi ∈
/ I do
let I = I ∪ {Xi }
for each K ∈ M do
let K = K \ {¬Xi }
if ∅ ∈ M then
return unerfüllbar
else
return I
VW
, so unfb(
Nachbedingung: Falls return = unerfüllbar
M).
VW
Falls return
VW= unerfüllbar , so erfb( M) und
I = {Xi :
M |= Xi }.
Folie 44
75
Aussagenlogik.tex Rev 113 2008-12-03
Lösungen
Lösung zu Aufgabe 2.2
(a) Betrachte die folgenden Variablenbelegungen:
β1 : F AL 99K {0, 1},β1 (X 1 ) = 1, β1 (X 2 ) = 1
β2 : F AL 99K {0, 1},β2 (X 1 ) = 1, β2 (X 2 ) = 0.
Dann ist
J((X 1 → X 2 ) ↔ (X 2 → X 1 ))Kβ1 = J(X 1 → X 2 )Kβ1 ↔
˙ J(X 2 → X 1 )Kβ1
= (J X 1 Kβ1 →
˙ J X 2 Kβ1 )↔(
˙ J X 2 Kβ 1 →
˙ J X 1 Kβ1 )
= (β1 (X 1 )→β
˙ 1 (X 2 ))↔(β
˙ 1 (X 2 )→β
˙ 1 (X 1 ))
= (1→1)
˙ ↔(1
˙ →1)
˙ = 1↔1
˙ =1
und
J((X 1 → X 2 ) ↔ (X 2 → X 1 ))Kβ2 = (β2 (X 1 )→β
˙ 2 (X 2 ))↔(β
˙ 2 (X 2 )→β
˙ 2 (X 1 ))
= (1→0)
˙ ↔(0
˙ →1)
˙ = 0↔1
˙ = 0.
(b) Betrachte die folgenden Variablenbelegungen:
β1 : F AL 99K {0, 1},β1 (X 1 ) = 1, β1 (X 2 ) = 1
β2 : F AL 99K {0, 1},β2 (X 1 ) = 0, β2 (X 2 ) = 1.
Dann ist
J(¬X 1 → ¬X 2 )Kβ1 = ¬1
˙ →
˙ ¬1
˙ = 0→0
˙ =1
und
J(¬X 1 → ¬X 2 )Kβ2 = ¬0
˙ →
˙ ¬1
˙ = 0.
(c) Betrachte die folgenden Variablenbelegungen:
β1 : F AL 99K {0, 1},β1 (X 1 ) = 0, β1 (X 2 ) = 0, β1 (X 3 ) = 1
β2 : F AL 99K {0, 1},β2 (X 1 ) = 1, β2 (X 2 ) = 1, β1 (X 3 ) = 0.
Dann ist
˙ ∨(0
˙ →1)
˙ =1
J(¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))Kβ1 = ¬(0
˙ ∧0)
˙ = ¬0
˙ ∨1
und
˙ ∨(1
˙ →0)
˙ =0
J(¬(X 1 ∧ X 2 ) ∨ (X 2 → X 3 ))Kβ2 = ¬(1
˙ ∧1)
˙ = ¬1
˙ ∨0
76
Aussagenlogik.tex Rev 113 2008-12-03
Lösungen
(d) Betrachte die Variablenbelegung:
β : F AL 99K {0, 1},β1 (X 1 ) = 1, β1 (X 2 ) = 1, β1 (X 3 ) = 1.
Dann ist
J(((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)Kβ = 1.
Es gibt keine Belegung β0 ∈ F AL → {0, 1} mit J(((X 1 → X 2 ) ∧ (X 2 → X 3 )) → 1)Kβ = 1, da
für alle Belegungen β0 und alle Formeln ϕ gilt:
Jϕ → 1Kβ = JϕKβ →1
˙ = 1.
0
0
(e) Betrachte die Variablenbelegung:
β : F AL 99K {0, 1},β1 (X 1 ) = 1, β1 (X 2 ) = 1.
Dann ist
J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ = 1.
Es gibt keine Belegung β0 ∈ F AL → {0, 1} mit J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ =
1. Es gilt:
J((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 2 ) ∧ (¬X 2 → X 1 )))Kβ
˙ J X 1 Kβ →
= (¬
˙ J X 1 Kβ ↔
˙ J X 2 Kβ )→((
˙ ¬
˙ J X 2 Kβ →
˙ J X 1 Kβ )∧(
˙¬
˙ J X 2 Kβ )) = ψ.
0
0
0
0
0
0
In der folgenden Tabelle sind alle möglichen Belegungen für die beiden Variablen
und die daraus resultierende Sematik von ψ eingetragen:
J X 1 K· J X 2 K· JψK·
0
0
1
1
0
1
0
1
1
1
1
1
(Die linke und rechte Seite von → sind sogar äquivalent.)
Lösung zu Aufgabe 2.3 Sei E := {a 1 , . . . , a n } die Menge der Elemente und sei M := {T1 , . . . , Tm }
die Menge der Mengen. Wir definieren eine Relation R ⊆ E ×M , wobei (a, T ) ∈ R genau dann
gelten soll, wenn Elemente a in Menge T enthalten ist.
Wir identifizieren diese Relation mit einer Variablenbelegung βR durch
(
R
β (X i , j ) =
1 falls (a i , T j ) ∈ R
0 sonst.
77
Aussagenlogik.tex Rev 113 2008-12-03
Lösungen
(a) Definiere
m
_
ϕ(1)
:=
i
Xi ,j
j =1
| {z }
ϕ(2)
:=
i
mind eine Menge
m
^
m
_
(X i ,l → ¬(
l =1
|
X i , j ))
j =1, j 6=l
{z
}
max eine Menge
∧ ϕ(2)
ϕi := ϕ(1)
i
i
und setze
ϕ :=
n
^
ϕi .
i =1
Sei nun βR eine Variablenbelegung die zu ϕ passt.
Zu zeigen: jedem Element ist genau eine Menge zugeordnet (d.h. R ist Funktion),
wenn der Wahrheitswert 1 ist.
R
Fall 1: JϕKβ = 1
R
R
R
Dann gilt für alle i ∈ {1, . . . , n}: Jϕi Kβ = 1 und damit auch Jϕ(1)
Kβ = 1 und Jϕ(2)
Kβ =
i
i
1.
R
R
Kβ = 1 folgt, dass (mindestens) ein j ∈ {1, . . . , m} existiert, so dass J X i , j Kβ =
Aus Jϕ(1)
i
1. Also ist jedem Element mindestens eine Menge zugeordnet. Sei j ∈ {1, . . . , m}
R
so, dass J X i , j Kβ = 1.
R
Aus Jϕ(2)
Kβ = 1 folgt nun insbesondere, dass
i
J X i , j → ¬(
m
_
R
X i ,k ))Kβ = 1.
k=1,k6= j
R
Also ist J X i ,k Kβ = 0 für alle k ∈ {1, . . . , m} \ { j }, d.h. jedem Element ist genau eine
Menge zugeordnet. Damit ist R tatsächlich eine Funktion.
R
Fall 2: JϕKβ = 0
R
Dann existiert (mindestens) ein i ∈ {1, . . . , n}, so dass Jϕi Kβ = 0, also entweder
R
R
Jϕ(1)
Kβ = 0 oder Jϕ(2)
Kβ = 0. Sei i so gewählt.
i
i
R
Fall 2.1: Jϕ(1)
Kβ = 0
i
R
Dann ist J X i , j Kβ = 0 für alle j ∈ {1, . . . , m}, d.h. mindestens einem Element
ist keine Menge zugeordnet worden.
R
Fall 2.2: Jϕ(2)
Kβ = 0
i
R
R
Dann existieren j , j 0 ∈ {1, . . . , m} mit J X i , j Kβ = J X i , j 0 Kβ = 1, also gibt es ein
Element, dass zwei verschiedenen Mengen zugewiesen worden ist.
Dann ist R keine Funktion.
78
Aussagenlogik.tex Rev 113 2008-12-03
Lösungen
Ist umgekehrt R eine Funktion, so erfüllt die Variablenbelegung βR die aussagenloR
gische Formel ϕ, da für jedes i ∈ {1, . . . , n} und j mit T j = R(a i ): J X i , j Kβ = 1 und
R
R
Kβ =
J X i , j 0 Kβ = 0 für alle j 0 ∈ {1, . . . , m}\{ j } (da R Funktion ist) und damit ist sowohl Jϕ(1)
i
R
R
R
1 als auch Jϕ(2)
Kβ = 1. Also ist Jϕi Kβ = 1 für alle i ∈ {1, . . . , n} und damit JϕKβ = 1.
i
(b) Definiere
ψ j :=
n
^
X k, j ))
k=1,k6=l
l =1
|
n
_
(X l , j → ¬(
{z
}
max ein Element
und setze
ψ :=
m
^
ψj .
j =1
Sei βR nun eine Variablenbelegung die zu ψ passt.
R
Fall 1: JψKβ = 1
R
Dann gilt für alle j ∈ {1, . . . , m}: Jψ j Kβ = 1. Sei j ∈ {1, . . . , m}.
R
Fall 1.1: Es existiert ein l ∈ {1, . . . , n} mit J X l , j Kβ = 1.
R
Dann folgt: J X l 0 , j Kβ = 0 für alle l 0 ∈ {1, . . . , n} \ {l }. Damit existiert genau ein
l mit (a l , T j ) ∈ R.
R
Fall 1.2: Für alle l ∈ {1, . . . , n} gilt J X l , j Kβ = 0.
Damit existiert keine l ∈ {1, . . . , n} mit (a l , T j ) ∈ R.
Insgesamt erhalten wir in diesem Fall eine Relation mit der gewünschten Eigenschaft.
R
Fall 2: JψKβ = 0
R
Dann existiert ein j ∈ {1, . . . , m}: Jψ j Kβ = 0. Sei j ∈ {1, . . . , m} so gewählt. OffenR
g
bar existiert ein l ∈ {1, . . . , n} mit J X l , j Kβ = 1, sonst wäre Jψ j Kβ = 1. Weiter exisR
R
tiert ein l 6= l 0 ∈ {1, . . . , n} mit J X l , j Kβ = 1, sonst wäre wieder Jψ j Kβ = 1. Damit
werden in diesem Fall mindestens einer Menge mehr als ein Element zugeordnet.
Sei umgekehrt R eine Relation, die jeder Menge höchstens ein Element zuweist. Sei
R
j ∈ {1, . . . , m}. Ist (a i , T j ) ∈ R, so ist Jψ j Kβ = 1. Existiert kein i mit (a i , T j ) ∈ R, so ist
R
R
Jψ j Kβ = 1. Also ist JψKβ = 1.
(c) Das Schubfachprinzip besagt gerade, dass, falls n > m, so gilt für alle Variablenbelegungen β die zu ϕ, ψ passen:
J(ϕ ∧ ψ)Kβ = 0.
Falls n ≤ m, so existiert eine Variablenbelegung β die zu ϕ und ψ passt mit
J(ϕ ∧ ψ)Kβ = 1.
Lösung zu Aufgabe 2.6 Eine solche Funktion kann zum Beispiel wie folgt aussehen:
79
Aussagenlogik.tex
Rev 113
2008-12-03
Lösungen
(define (formula->string formula)
(cond ((eq? formula #t) "1")
((eq? formula #f) "0")
((variable? formula)
(string-append "X_" (number->string (variable-index formula)) ))
((negation? formula)
(string-append "-" (formula->string (negation-negated formula))))
((disjunction? formula)
(string-append "(" (formula->string (disjunction-left formula))
" \\/ " (formula->string (disjunction-right formula)) ")"))
((conjunction? formula)
(string-append "(" (formula->string (conjunction-left formula))
" /\\ " (formula->string (conjunction-right formula)) ")"))
((conditional? formula)
(string-append "(" (formula->string (conditional-left formula))
" -> " (formula->string (conditional-right formula)) ")"))
((biconditional? formula)
(string-append "(" (formula->string (biconditional-left formula))
" <-> " (formula->string (biconditional-right formula)) ")"))
))
Beispiel.
(define phi1 (make-negation
(make-disjunction (make-variable 1) (make-variable 2))))
(define phi2 (make-conjunction (make-variable 3) #f))
(define phi (make-biconditional phi1 (make-conditional phi2 #t)))
(display (formula->string phi))
Liefert Ausgabe:
"(-(X_1 OR X_2) <-> ((X_3 AND 0) -> 1))"
Lösung zu Aufgabe 2.14
(a) Folgende Prozeduren liefern das gewünschte Ergebnis:
; row i, column j und number k: variable index (i-1)*81 + (j-1)*9 + k
; Generate (start start+offset start+2*offset ... start+(reps-1)*offset).
(define (step start offset reps)
(build-list reps (lambda (x) (+ start (* x offset)))))
; Append all members of l.
(define (flat l) (foldr append null l))
; Turn l = (l1 l2 ...) and m = (m1 m2 ...)
; into ((m1+l1 m1+l2 ...) (m2+l1 m2+l2) ...).
(define (addin l m)
(map (lambda (x) (map (lambda (y) (+ x y)) l)) m))
80
Aussagenlogik.tex
Rev 113
2008-12-03
Lösungen
; Produce ((a a+1) ... (a a+n) (a+1 a+2) ... (a+1 a+n) ... (a+n-1 a+n))
; in some order.
(define (pairs a n)
(flat (build-list n (lambda (x)
(build-list (+ 1 x) (lambda (y)
(list (+ a y) (+ 1 (+ a x)))))))))
; The sudoku restrictions.
(define (atLeastOneNumberPerEntry)
(addin (step 0 1 9) (step 1 9 81)))
(define (eachNumberInEachRow)
(addin (step 0 9 9)
(flat (addin (step 0 1 9) (step 1 81 9)))))
(define (eachNumberInEachColumn)
(addin (step 0 81 9) (step 1 1 81)))
(define (eachNumberInEachRegion)
(addin (flat (addin (step 0 81 3) (step 0 9 3)))
(flat (addin (step 0 (* 3 81) 3)
(flat (addin (step 0 27 3) (step 1 1 9)))))))
(define (atMostOneNumberPerEntry)
(flat (map (lambda (x) (pairs x 8)) (step (- 0 729) 9 81))))
; Constructs the propositional logic formula in CNF
; out of the passed sudoku.
(define (sudokuSet description)
(append
(atLeastOneNumberPerEntry)
(atMostOneNumberPerEntry)
(eachNumberInEachRow)
(eachNumberInEachColumn)
(eachNumberInEachRegion)
(map (lambda (x) (list x))
(filter (lambda (x) (> x 0)) (map (lambda (x y)
(if (= 0 x) 0 (+ x y)))
(flat description)
(step 0 9 81))))))
Der Aufruf von (sudokuSet description) liefert eine entsprechende Formel zurück.
(b) Folgende Prozeduren liefern das gewünschte Ergebnis:
; Generates the DIMACS file header, including a reference to this program and
; the number of variables and clauses of the passed formula.
(define (header formula)
(string-append "c generated by formel->DIMACS\n"
"p cnf " (number->string (numberOfVars formula))
" " (number->string (numberOfClauses formula)) "\n"))
81
Aussagenlogik.tex
Rev 113
2008-12-03
Lösungen
; Converts the passed set of clauses to DIMACS format.
(define (clauseset->DIMACS formula)
(cond ((null? formula) "")
((list? formula) (string-append
(clause->DIMACS (first formula))
(clauseset->DIMACS (rest formula)) ))))
; Converts the passed clause to DIMACS format.
(define (clause->DIMACS formula)
(cond ((null? formula) "0\n")
((list? formula) (string-append
(number->string (first formula)) " "
(clause->DIMACS (rest formula)))) ))
; Returns the number of distinct variables that occur within the passed formula.
(define (numberOfVars formula)
(cond ((null? formula) 0)
((list? formula) (max (numberOfVarsInClause (first formula))
(numberOfVars (rest formula))))))
; Returns the number of distinct variables that occur within the passed clause.
; Assumes that there are no unused variable names between the first and last
; one used.
(define (numberOfVarsInClause clause)
(cond ((null? clause) 0)
((list? clause) (max (first clause)
(numberOfVarsInClause (rest clause))))))
; Returns the number of clauses of the passed formula.
(define (numberOfClauses formula)
(length formula))
; Writes the example sudoku formula to a file in the DIMACS format.
;(define outputPort (open-output-file "/tmp/dimacs.cnf"))
Der Aufruf von (formel->DIMACS formula) liefert die Darstellung von formula im
DIMACS-Format.
Beispiel. Ein Aufruf könnte also wie folgt aussehen:
(define outputPort (open-output-file "/tmp/dimacs.cnf"))
(display (formel->DIMACS (sudokuSet sudokuInstance)) outputPort)
(close-output-port outputPort)
Lösung zu Aufgabe 2.15 Folgende Prozeduren liefern das gewünschte Ergebnis:
; Simplify formula, assuming literal is assigned true.
(define (assign formula literal)
82
Aussagenlogik.tex
Rev 113
2008-12-03
Lösungen
(map (lambda (clause)
(filter (lambda (lit) (not (= (- literal) lit))) clause))
(filter (lambda (clause) (not (member literal clause))) formula)))
; Return #t if formula is empty and else #f.
(define (isEmptyFormula? formula)
(null? formula))
; Return #t if empty clause in formula and else #f.
(define (containsEmptyClause? formula)
(foldl (lambda (x y) (or x y)) #f (map (lambda (x) (null? x)) formula)))
; Return #t if clause is a unit clause and #f if clause is not a unit clause.
(define (isUnitClause? clause)
(and (not (null? clause)) (null? (rest clause))))
; "Unit propagation".
; For each unit clause in formula, set the respective variable and simplify
; with regard to the literal. Do this until no more unit literals exist.
(define (unitPropagate formula assignment)
(local ((define literal (findUnitClause formula)))
(if (= literal 0)
(make-formass formula assignment)
(unitPropagate (assign formula literal)
(cons literal assignment)))))
(define (findUnitClause formula)
(if (empty? formula) 0
(if (isUnitClause? (first formula))
(first (first formula))
(findUnitClause (rest formula)))))
; Structure consisting of a formula and and assignment.
(define-struct formass (form ass))
; The DPLL algorithm.
; Returns an assignment extending assignment and satisfying formula if possible
; and #f otherwise.
(define (DPLL formula assignment)
; Propagate unit clauses.
(local ((define result (unitPropagate formula assignment))
(define simplifiedFormula (formass-form result))
(define newAssignment (formass-ass result)))
; If empty set, then satisfiable.
(if (isEmptyFormula? simplifiedFormula)
newAssignment
83
Aussagenlogik.tex
Rev 113
2008-12-03
Lösungen
; If empty clause in formula, then unsatisfiable.
(if (containsEmptyClause? simplifiedFormula)
#f
(local (
; Choose literal.
(define literal (first (first formula)))
; Check if satisfiable with literal set to true.
(define firstResult (DPLL (assign simplifiedFormula literal)
(cons literal newAssignment))))
(if (eq? firstResult #f)
; If unsuccessful, then check other option.
(DPLL (assign simplifiedFormula (- literal))
(cons (- literal) newAssignment))
firstResult))))))
84
Aussagenlogik.tex Rev 113 2008-12-03
Index
F [¬, →]AL , 59
J· K· , 7
erfb(), 34
F ⟨↔⟩AL , 60
≡, 20
DNF AL , 30
KNF AL , 30
NNF AL , 26
|=, 34, 47
folg(ϕ), 72
res X i (K , K 0 ), 56
`, 64
`H , 60
`N , 62
`R , 56
natürlicher Beweis, 62
natürliches Beweissystem, 60
Resolution, siehe Resolution
boolesche Operationen, 7
DIMACS-Daten, 35
DP-SAT, 40
DPLL-SAT, 37
DPLL-SAT (mit erfüllender Belegung), 38
einfache Konjunktion, 29
Erreichbarkeitsspiel, 71
Horn-Formel, 66
Horn-Klausel, 66
Programmklausel, 67
Tatsachenklausel, 67
Zielklausel, 67
Horn-Klauselmenge, 66
HornSAT, 73
HornSAT*, 75
Ableitungssystem, 63
ableiten, 63
Ableitung, 64
Ableitungsrelation, 64
Axiom, 64
Bruchschreibweise, 65
Konklusion, 64
Prämisse, 64
Regeln, 63
aussagenlogische Formel, 5
äquivalent, 20
allgemeingültig, 48
atomar, 5
erfüllbar, 12
zusammengesetzt, 6
Aussagenvariable, 5
Interpretation, siehe Wahrheitswert
Junktor, 5
Klausel, 29
2-Klausel, 39
Einheitsklausel, 34
tautologisch, 38
Klauselmenge, 29
2-Klauselmenge, 39
Konstantensymbole, 5
Literal, 29
negativ, 29
positiv, 29
Beweissystem
Hilbert-Beweis, 60
Hilbert-System, 59
Modell, 48
85
Aussagenlogik.tex Rev 113 2008-12-03
Index
Normalformen
disjunktive Normalform, 30
konjunktive Normalform, 30
Negation-Konditional-Normalform, 59
Negationsnormalform (NNF), 26
positive Normalform, 26
(Entscheidungs-)Problem, 44
divergiert, 46
entscheidbar, 45
negativ semi-entscheidbar, 46
negative Instanzen, 44
negatives Entscheidungsverfahren, 46
positive Instanzen, 44
semi-entscheidbar, 46
Semi-Entscheidungsverfahren, 45
Resolution
korrekt, 56
Korrektheit, 58
Resolutionsbeweis, 56
Resolutionswiderlegung, 56
Resolvente, 56
vollständig, 57
Vollständigkeit, 58
Schaltnetz, 50
Anweisung, 50
Anweisungsfolge, 50
Ausgangsvariablen, 50
Eingangsvariablen, 50
Substitution, 24
entkoppelnde Umbenennung, 52
Substituent, 24
Variablenbelegung (aussagenlogisch), 7
erfüllend, 12
passend, 7
Wahrheitswert, 7
86
Aussagenlogik.tex Rev 113 2008-12-03
Herunterladen