Logik für Informatiker/innen

Werbung
Vorlesung
Mathematische Logik für
Informatiker/innen
Einführung in mathematische Logik und Logik in der Informatik
Thomas Wilke
28. Januar 2009
LfI.tex Rev 232 2009-01-28
Inhaltsverzeichnis
1 Einleitung
4
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 . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
13
13
15
19
21
23
24
25
27
29
32
35
37
41
44
50
52
56
58
58
62
64
66
69
71
73
74
75
3 Prädikatenlogik
3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
79
2
LfI.tex Rev 232 2009-01-28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Inhaltsverzeichnis
3.2 Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Signaturen und Strukturen . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Terme und deren Interpretation . . . . . . . . . . . . . . . . . . .
3.2.3 Formeln und deren Interpretation . . . . . . . . . . . . . . . . . .
3.3 Einsatz von Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Vereinfachungsregeln . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Definition mathematischer Strukturen . . . . . . . . . . . . . . .
3.3.3 Wissensrepräsentation: Verwandtschaftsbeziehungen . . . . . .
3.3.4 Spezifikationen: wechselseitiger Ausschluss . . . . . . . . . . . .
3.3.5 (Datenbank-)Anfragen . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Auswertung von Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Das Koinzidenzlemma . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Auswertung von atomaren Formeln, Junktoren und Quantoren .
3.4.3 Der Auswertungsalgorithmus . . . . . . . . . . . . . . . . . . . . .
3.5 Äquivalenz und Normalform . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Aussagenlogische Äquivalenzen . . . . . . . . . . . . . . . . . . .
3.5.2 Ersetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.3 Quantorenbezogene Äquivalenzen . . . . . . . . . . . . . . . . .
3.5.4 Pränexe Normalform . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Das Gültigkeitsproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Das Postsche Korrespondenzproblem . . . . . . . . . . . . . . . .
3.6.2 Reduktion des PCP auf das Gültigkeitsproblem . . . . . . . . . .
3.6.3 Termsubstitutionen . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.4 Termstrukturen und Termmodelle . . . . . . . . . . . . . . . . . .
3.6.5 Termmodelle und Aussagenlogik . . . . . . . . . . . . . . . . . . .
3.6.6 Skolemisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Die Folgerungsbeziehung und Beweissysteme . . . . . . . . . . . . . . .
3.7.1 Ein Semi-Entscheidungsverfahren . . . . . . . . . . . . . . . . . .
3.7.2 Ein Beweissystem . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
82
86
90
90
90
92
94
97
99
100
100
102
104
105
106
107
108
111
114
116
118
119
121
123
126
127
128
Lösungen
132
Index
161
3
LfI.tex Rev 232 2009-01-28
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.
4
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
5
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
6
Einleitung.tex Rev 15 2008-10-31
1 Einleitung
David Hilbert, 1862–1943
Kurt Gödel, 1906–1978
Folie 3
7
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.
8
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
• Sind ϕ und ψ aussagenlogische Formeln, so sind auch (ϕ ∨ ψ), (ϕ ∧ ψ), (ϕ → ψ)
und (ϕ ↔ ψ) aussagenlogische Formeln.
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:
9
Aussagenlogik.tex Rev 229 2009-01-28
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
1. Basiszuordnung: vars(0) = ;, vars(1) = ;, vars(X i ) = {X i }.
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
2
{0, 1} → {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(β).
10
Aussagenlogik.tex Rev 229 2009-01-28
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
2. Induktionsregeln:
• 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 )
11
Aussagenlogik.tex Rev 229 2009-01-28
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
(b)
(c)
(d)
(e)
(¬X 1 ) ∨ (X 1 ∧ X 0 )
X 1 ∨ X 2 ∨ X 3 ∨ ¬(X 1 ∧ X 2 ∧ X 3 )
¬(¬X 1 ∨ X 2 ) ∨ (X 1 → X 2 )
¬(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
12
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
•
•
•
•
atomare / zusammengesetzte (aussagenlogische) Formel
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.
13
Aussagenlogik.tex Rev 229 2009-01-28
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
β
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:
• 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:
14
Aussagenlogik.tex Rev 229 2009-01-28
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:
15
Aussagenlogik.tex Rev 229 2009-01-28
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 =
X ik, j .
(2.3)
i , j ,k∈N :S i , j =k
Bemerkung 2.2.
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.
Ganz zum Schluss müssen wir nur noch sagen, wann ein Lösungskandidat eine Lösung
ist, was wir ausdrücken können durch:
16
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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.
17
Aussagenlogik.tex Rev 229 2009-01-28
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.
18
Aussagenlogik.tex Rev 229 2009-01-28
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 .
19
Aussagenlogik.tex Rev 229 2009-01-28
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.
20
Aussagenlogik.tex Rev 229 2009-01-28
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 Beispiel).
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.
21
Aussagenlogik.tex Rev 229 2009-01-28
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
->
<->
/\
\/
22
Aussagenlogik.tex Rev 229 2009-01-28
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.
23
Aussagenlogik.tex Rev 229 2009-01-28
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.
24
Aussagenlogik.tex Rev 229 2009-01-28
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:
ϕ ∧ (ϕ ∨ ψ) ≡ ϕ ,
ϕ ∨ (ϕ ∧ ψ) ≡ ϕ .
25
Aussagenlogik.tex Rev 229 2009-01-28
(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.
26
Aussagenlogik.tex Rev 229 2009-01-28
(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.
27
Aussagenlogik.tex Rev 229 2009-01-28
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:
(¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) ≡ (ϕ → ψ) ∧ (ϕ ∨ ¬ψ) .
28
Aussagenlogik.tex Rev 229 2009-01-28
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 .
29
Aussagenlogik.tex Rev 229 2009-01-28
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
30
Aussagenlogik.tex Rev 229 2009-01-28
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:
31
Aussagenlogik.tex Rev 229 2009-01-28
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 } .
32
Aussagenlogik.tex Rev 229 2009-01-28
(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 }} .
33
Aussagenlogik.tex Rev 229 2009-01-28
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 )
34
Aussagenlogik.tex Rev 229 2009-01-28
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
35
Aussagenlogik.tex Rev 229 2009-01-28
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 forall-Schleife
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.
36
Aussagenlogik.tex Rev 229 2009-01-28
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.
37
Aussagenlogik.tex Rev 229 2009-01-28
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
38
Aussagenlogik.tex Rev 229 2009-01-28
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 )
39
Aussagenlogik.tex
Rev 229
2009-01-28
2 Aussagenlogik
DPLL-Algorithmus
DPLL-SAT(M)
Vorbedingung: M Klauselmenge
— Vereinfachung (Einheitsklauseln eliminieren)
while exists unit clause {L} ∈ M do
let M = M|L
— Abbruchbedingung
if M = ∅ then return 1
if ∅ ∈ M then return 0
— rekursiver Aufruf (falls nötig)
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.
40
Aussagenlogik.tex Rev 229 2009-01-28
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
41
Aussagenlogik.tex Rev 229 2009-01-28
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.
42
Aussagenlogik.tex Rev 229 2009-01-28
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
43
Aussagenlogik.tex Rev 229 2009-01-28
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.
44
Aussagenlogik.tex Rev 229 2009-01-28
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
45
Aussagenlogik.tex Rev 229 2009-01-28
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.
46
Aussagenlogik.tex Rev 229 2009-01-28
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.
47
Aussagenlogik.tex Rev 229 2009-01-28
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:
48
Aussagenlogik.tex Rev 229 2009-01-28
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:
49
Aussagenlogik.tex Rev 229 2009-01-28
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
50
Aussagenlogik.tex Rev 229 2009-01-28
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:
51
Aussagenlogik.tex Rev 229 2009-01-28
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.
52
Aussagenlogik.tex Rev 229 2009-01-28
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:
53
Aussagenlogik.tex Rev 229 2009-01-28
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.
54
Aussagenlogik.tex Rev 229 2009-01-28
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.
55
Aussagenlogik.tex Rev 229 2009-01-28
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|= Φ ∪ {¬ϕ}.
56
Aussagenlogik.tex Rev 229 2009-01-28
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) Φ |= ψ.
57
Aussagenlogik.tex Rev 229 2009-01-28
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 Φ |= ψ gilt. Nach Lemma 2.14 bedeutet dies:
unfb(Φ ∪ {¬ψ}), also, gemäß Endlichkeitssatz 2.7, unfb(Φ0 ) für eine Menge Φ0 b Φ ∪ {¬ψ}.
Ist ¬ψ ∈ Φ0 , so erhalten wir, wieder unter Benutzung von Lemma 2.14, Φ0 |= ψ. Ist ψ ∉ Φ0 ,
so gilt sogar Φ0 |= ϕ für alle ϕ ∈ F AL , also auch für ϕ = ψ, da es keine erfüllende Belegung
für Φ0 .
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.
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.
58
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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.
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 |=
59
Aussagenlogik.tex Rev 229 2009-01-28
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
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
VW
W
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.
VW
Satz 2.13. Ist M eine Klauselmenge, für die
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
60
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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
+
−
K q−1
zu Stande. Dieser hat die
definiert durch B 0 = K 0 , . . . , K m−1 , K 0+ ∪ K 0− , K 0+ ∪ K 1− , . . . , K p−1
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.
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 }).
61
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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)
Beweis durch einfaches Nachrechnen.
Die Schlussregel, die in dem Beweissystem genutzt werden soll, wollen wir auch in einem
Lemma zum Ausdruck bringen:
62
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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.
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
Man kann nun auch hier zeigen, dass das System H korrekt und vollständig ist:
63
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
Satz 2.15. Sei Φ ⊆ F [¬, →]AL und ϕ ∈ F [¬, →]AL . Es gilt Φ |= ϕ genau dann, wenn Φ `H ϕ
gilt.
Wir verzichten auf einen Beweis.
Aufgabe 2.21. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt:
{X 0 , X 0 → X 1 , X 1 → X 2 } `H ¬X 3 → X 2
Aufgabe 2.22. Seien Φ ⊆ F [¬, →]AL und ϕ ∈ F [¬, →]AL .
Zeigen Sie:
Wenn Φ `H ϕ gilt, dann gilt Φ |= ϕ.
Hinweis. Sie dürfen annehmen, dass die Lemmas 2.17 und 2.18 gelten.
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
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 ).
64
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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
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.
65
Aussagenlogik.tex Rev 229 2009-01-28
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
Satz 2.16. Sei Φ ⊆ F ⟨↔⟩AL und ϕ ∈ F ⟨↔⟩AL . Es gilt Φ |= ϕ genau dann, wenn Φ `N ϕ gilt.
Wir verzichten auf einen Beweis.
Aufgabe 2.23. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt:
{X 0 → X 1 , X 1 → X 2 } `N X 0 → X 2
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.
66
Aussagenlogik.tex Rev 229 2009-01-28
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
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
u0
u1
...
v
u m−1
,
was wie folgt zu verstehen ist: Sind u 0 , u 1 , . . . , u m−1 ableitbar, dann auch v. Der obere Teil
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
67
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
Das Resolutionssystem in Kurzform
Axiome
Keine!
Regeln
K ∪· {Xi } K 0 ∪· {¬Xi }
K ∪ K0
Folie 37
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.
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.
Aufgabe 2.24. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt:
68
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
Das Hilbert-System in Kurzform
Axiome
(Ax1)
(Ax2)
(Ax3)
ϕ → (ψ → ϕ)
(ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ))
(¬ϕ → ¬ψ) → (ψ → ϕ)
Regeln
(MP)
ϕ ϕ→ψ
ψ
Folie 38
(a) {X 1 → (X 2 → X 3 ), X 1 → X 2 , ¬¬X 1 } `H X 3
(b) {¬X 1 → ¬X 2 , X 3 → X 4 } `N (X 2 ∧ X 3 ) → (X 1 ∧ X 4 )
Wichtige Begriffe
•
•
•
•
Beweissystem
Resolution
Korrektheit
Vollständigkeit
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
69
Aussagenlogik.tex Rev 229 2009-01-28
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
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
X i 0 ∧ · · · ∧ X i r −1 → X j .
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.
70
Aussagenlogik.tex Rev 229 2009-01-28
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
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:
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 .
71
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
Horn-Klauseln
Tatsachenklausel
1 → Xi
Programmklausel
Xi0 ∧ · · · ∧ Xir → Xj
Zielklausel
Xi0 ∧ · · · ∧ Xir → 0
Leere Klausel
1→0
Folie 41
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 .
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
72
Aussagenlogik.tex Rev 229 2009-01-28
2 Aussagenlogik
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
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 j → X i ) ∧ (X k → X i ) .
X i ←X j ∧X k ∈F
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 ,β =
(1 → X i ) ∧ ϕS .
X i ∈E : β(X i )=1
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.
73
Aussagenlogik.tex Rev 229 2009-01-28
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:
74
Aussagenlogik.tex Rev 229 2009-01-28
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 .
75
Aussagenlogik.tex Rev 229 2009-01-28
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.
76
Aussagenlogik.tex Rev 229 2009-01-28
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
5
X0 , X2 , X4 , X6
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.
77
Aussagenlogik.tex Rev 229 2009-01-28
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
VW6= unerfüllbar , so erfb( M) und
I = {Xi :
M |= Xi }.
Folie 44
Aufgabe 2.25. Betrachten Sie folgenden Graphen, wobei V0 die Menge der kreisförmigen
Knoten und V1 die Menge der rechteckigen Knoten sein soll.
1
3
5
7
9
2
4
6
8
10
Überprüfen Sie mit Hilfe des Markierungsalgorithmus für Horn-Formeln, ob für Spieler
Null eine Gewinnstrategie mit s = 1 und t = 10 besteht.
Aufgabe 2.26. Implementieren Sie den Markierungsalgorithmus für HornFormeln.
Die Eingabe soll dabei eine Hornformel dargestellt als Klauselmenge M sein. Ausgegeben
werden soll die Menge folg(M ) oder »unerfüllbar«, falls die Hornformel nicht erfüllbar ist.
78
Aussagenlogik.tex Rev 229 2009-01-28
3 Prädikatenlogik
3.1 Einleitung
In der Aussagenlogik haben wir uns mit dem Zusammenspiel von Aussagen beschäftigt.
Dabei haben wir komplexe Aussagen aus Variablen (also einfachen Aussagen) durch Junktoren zusammengesetzt. Häufig ist es jedoch wünschenswert, Aussagen über Strukturen,
wie zum Beispiel eine Datenbank, einen Graphen oder die natürlichen Zahlen, zu treffen,
in dem man auf die Bestandteile dieser Strukturen (in den drei genannten Fällen sind damit Datenbankeinträge, Knoten und Kanten bzw. Zahlen gemeint) direkt zugreift, ihre Eigenschaften und ihr Zusammenspiel in einer formalen (logischen) Sprache beschreibt, die
ausdrucksstark ist.
3.2 Syntax und Semantik
3.2.1 Signaturen und Strukturen
Wenn man über konkrete Strukturen, wie zum Beispiel über Graphen oder die natürlichen
Zahlen, sprechen möchte, braucht man ein geeignetes Vokabular. Dieses richtet sich nach
den Elementen, Relationen und Funktionen, die zu dieser Struktur in sinnvoller Weise definiert werden können. Wie diese aussehen, muss im Einzelfall festgelegt werden.
Eine Signatur Σ besteht aus:
• einer Menge C Σ von so genannten Konstantensymbolen,
• einer Menge R Σ von so genannten Relationssymbolen,
• einer Menge F Σ von so genannten Funktionssymbolen,
• einer Funktion / : R Σ → N, die jedem Relationssymbol seine Stelligkeit zuweist, und
• einer Funktion // : F Σ → N, die jedem Funktionssymbol seine Stelligkeit zuweist.
Die drei Symbolmengen müssen paarweise disjunkt sein. Außerdem dürfen die folgenden
Symbole nicht in den Symbolmengen einer Signatur vorkommen: (, ), ,, =, 0, 1, ¬, ∨, ∧, →,
↔, ∀, ∃ und x i für i ∈ N. Denn würden wir auch diese Symbole zulassen, könnten wir später
nicht von eindeutiger Konstruktion sprechen.
Wir schreiben anstelle von //( f ) = 2 einfach f //2 sowie anstelle von /(<) = 2 einfach < /2.
Außerdem notieren wir Signaturen häufig als Mengen, zum Beispiel {</2} für eine Signatur
mit einem zweistelligen Relationssymbol <. Wenn wir also </2 ∈ Σ schreiben, dann meinen
wir damit, dass < ∈ R Σ und /(<) = 2 gelten.
Beispiele für Signaturen sind auf Folie 45 zu finden. Diese sind so gewählt, dass die jeweils betrachteten Strukturen durch eine geeignete Interpretation der ausgewählten Symbole charakterisiert sind. Zum Beispiel wird eine Ordnungsstruktur durch eine zweistel-
79
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
lige Relation charakterisiert und eine boolesche Algebra durch kleinstes und größtes Element (Symbole ⊥ und >) so wie durch Komplementbildung, Vereinigung und Durchschnitt
(Symbole ∼, t und u).
Dabei ist zu beachten, dass 0 und 1 in Σ Ar mit˜versehen sind, damit wir sie später von
den Symbolen unterscheiden können, die für die logischen Werte falsch und wahr stehen.
Bei den booleschen Algebren liegt eine ähnliche Situation vor: Um dort nicht der späteren
Terminologie in die Quere zu kommen, werden für das größte und das kleinste Element die
Symbole > und ⊥ genutzt. Formal haben wir eine entsprechende Forderung schon weiter
oben angebracht.
Beispiele für Signaturen
Graphen
ΣGraph = {E /2}
Arithmetik
ΣAr = {0̃, 1̃, +//2, ×//2}
Ordnungsstrukturen
ΣOrd = {</2}
Äquivalenzstrukturen
ΣÄq = {≡/2}
boolesche Algebren
ΣBA = {⊥, >, ∼/1, t//2, u//2}
Bibliotheksdatenbanken
ΣBib = {Buch/3, Nutzer/3, Entliehen/2}
Folie 45
Eine Signatur heißt relational, falls es keine Funktionssymbole in ihr gibt. Sie heißt algebraisch, wenn es keine Relationssymbole in ihr gibt.
Eine Signatur stellt Symbole – Namen – für die Bezeichnung von Elementen, Relationen
und Funktionen einer Struktur zur Verfügung. Genauer: Eine Σ-Struktur S besteht aus:
• einer nicht leeren Trägermenge T S , auch mit S bezeichnet,
• einem Element c S ∈ S für jedes c ∈ Σ,
• einer Relation R S ⊆ S n für jedes R/n ∈ Σ und
80
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
• einer Funktion f S : S n → S für jedes f //n ∈ Σ.
Man spricht im Zusammenhang von Strukturen auch von Interpretationen: Zum Beispiel
ist f S die Interpretation des Symbols f in der Struktur S.
Die Schreibweise für Σ-Strukturen ist in voller Allgemeinheit
S = (S, {c S }c∈C Σ , {R S }R∈RΣ , { f S } f ∈FΣ ) .
Sollten die Symbolmengen abzählbar sein, dann schreibt man auch
S = (S, c 0S , c 1S , . . . , R 0S , R 1S , . . . , f 0S , f 1S , . . . ) .
Sind die Symbolmengen sogar endlich, dann schreiben wir auch:
S
S
S = (S, c 0S , c 1S , . . . , c k−1
, R 0S , R 1S , . . . , R lS−1 , f 0S , f 1S , . . . , f m−1
) .
Beispiele für Strukturen sind zu finden auf den Folien 46–50. Zu beachten ist, dass das »+«
auf den Folien für die Addition in den natürlichen Zahlen steht und »mod« für den Rest bei
der Division.
Graphstrukturen, ΣGraph = {E /2}
Ein Graph G
v4
v2
v3
v1
v6
v0
T G = {v0 , v1 , . . . , v6 } ,
v5
E G = {(v0 , v2 ), (v2 , v4 ), (v4 , v1 ), (v1 , v0 ),
(v1 , v5 ), (v1 , v3 ), (v3 , v1 ), (v3 , v6 ), (v6 , v6 )} .
NSuc, die natürlichen Zahlen mit Nachfolgerrelation
0
1
2
···
T NSuc = {0, 1, 2, . . . } ,
E NSuc = {(0, 1), (1, 2), (2, 3), . . . } .
Folie 46
81
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Arithmetische Strukturen, ΣAr = {0̃, 1̃, +//2, ×//2}
N, die natürlichen Zahlen
T N = {0, 1, 2, . . . } ,
0̃N = 0 ,
1̃N = 1 ,
+N (a, b) = a + b
für a, b ∈ {0, 1, 2, . . . },
×N (a, b) = ab
für a, b ∈ {0, 1, 2, . . . }.
Z7 , die Reste modulo 7
T Z7 = {0, 1, . . . , 6} ,
0̃Z7 = 0 ,
1̃Z7 = 1 ,
+Z7 (a, b) = a + b mod 7
für a, b ∈ {0, 1, . . . , 6},
×Z7 (a, b) = ab mod 7
für a, b ∈ {0, 1, . . . , 6}.
Folie 47
Außerdem ist zu bemerken, dass zwischen den Signaturen ΣOr d und ΣGr aph prinzipiell
keine Unterschiede bestehen: Es werden unterschiedliche Symbole für eine zweistellige
Relation benutzt. Damit kann man jede ΣOr d -Struktur als ΣGr aph -Struktur auffassen. Man
benutzt unterschiedliche Signaturen allein aus dem Grund, unterschiedliche Sichtweisen
deutlich zu machen.
Die letzte Bemerkung wollen wir durch ein Beispiel untermauern. Es spricht nichts dagegen, die folgende ΣOr d -Struktur zu betrachten:
S = ({0, 1, 2}, {(0, 1), (1, 2)}) .
Die Interpretation von < ist aber im Sinne der Mathematik keine Ordnungsrelation, weil
sie die Forderung der Transitivität verletzt.
3.2.2 Terme und deren Interpretation
Eine Elementvariable hat die Form x i , wobei i eine natürliche Zahl ist. Die Menge aller
Variablen bezeichnen wir mit VPL .
82
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Ordnungen, ΣOrd = {</2}
Eine partielle Ordnung PO
a3
a1
a2
T PO = {0, 1, 2, . . . } ,
<PO = {(a0 , a1 ), (a0 , a2 ), (a1 , a3 ), (a2 , a3 ), (a0 , a3 )} .
a0
Nlt, die natürlichen Zahlen mit natürlicher Ordnung
0
1
2
···
T Nlt = {0, 1, 2, . . . } ,
<Nlt = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . } .
Folie 48
Sei Σ eine Signatur. Die Menge T (Σ) der Terme über Σ (Σ-Terme) ist induktiv definiert
wie folgt.
1. Basiselemente:
• Jede Elementvariable x i ist ein Σ-Term.
• Jedes Konstantensymbol c ∈ Σ ist ein Σ-Term.
2. Induktionsregeln:
• Ist f //n ∈ Σ und sind t 0 , . . . , t n−1 Σ-Terme, so ist f (t 0 , . . . , t n−1 ) ein Σ-Term.
Beispiel 3.1. Zum Beispiel ist ∧(x 1 , ⊥) ein ΣB A -Term und ×(1̃, +(1̃, x 1354 )) ein Σ Ar -Term.
Der Einfachheit halber lassen wir zu, dass zweistellige Funktionssymbole auch in InfixSchreibweise genutzt werden können, zum Beispiel kann der erste Term in obigem Beispiel
in der Gestalt x 1 ∧ ⊥ geschrieben werden. Unter Umständen muss dann geklammert werden, was beim zweiten Term des obigen Beispiels zu 1̃ × (1̃ + x 1354 ) führt.
Lemma 3.1 (eindeutige Konstruktion). Sei Σ eine Signatur. Jeder Σ-Term kann nur in einer
Weise im Sinne von Folie 6 konstruiert werden.
Der Beweis verläuft analog zu dem Beweis des Satzes 2.1.
83
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Boolesche Algebren, ΣBA = {⊥, >, ∼//1, u//2, t//2}
B, die“ boolesche Algebra
”
T B = {0, 1} ,
⊥B = 0 ,
>B = 1 ,
∼B = ¬˙ ,
tB = ∨˙ ,
uB = ∧˙ .
PN, die Potenzmengenalgebra auf den natürlichen Zahlen
T PN = 2{0,1,2,... } ,
⊥PN = ∅ ,
>PN = {0, 1, 2, . . . } ,
tPN = ∪ ,
uPN = ∩ ,
∼PN (M) = {0, 1, 2, . . . } \ M ,
für M ⊆ {0, 1, . . . }.
Folie 49
Die Menge der in einem Term vorkommenden Variablen ist induktiv definiert durch:
1. Basiszuordnung: vars(x i ) = {x i } für jedes i ∈ N und vars(c) = ; für jedes c ∈ Σ.
2. Induktionsregel: vars( f (t 0 , . . . , t n−1 )) = vars(t 0 ) ∪ · · · ∪ vars(t n−1 ) für jedes f //n ∈ Σ und
Σ-Terme t 0 , . . . , t n−1 .
Eine prädikatenlogische Variablenbelegung zu einer Σ-Struktur S ist eine partielle Funktion VPL 99K S. Eine solche Variablenbelegung wird auch als S-Belegung bezeichnet. Sie
passt zu einem Σ-Term t , falls vars(t ) ⊆ dom(β) gilt.
Jedem Σ-Term t und jeder dazu passenden Σ-Belegung β wird induktiv ihr Wert in Σ
β
zugeordnet, der mit Jt KS bezeichnet wird:
β
β
1. Basiszuordnung: Jx i KS = β(x i ) für jedes x i ∈ dom(β) und Jc KS = c S .
β
β
β
2. Induktionsregel: J f (t 0 , . . . , t n−1 )KS = f S (Jt 0 KS , . . . , Jt n−1 KS ) für alle f //n ∈ Σ und Σ-Terme
t 0 , . . . , t n−1 .
Beispiel 3.2. Wir interpretieren ×(1̃, +(1̃, x 1354 )) in N unter der Belegung β, für die β(x 1354 ) =
84
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Bibliotheken, ΣBib = {Buch/3, Nutzer/3, Entliehen/2}
Ein Datenbankzustand DB1
T DB1 = {Wilke, Thomas, Schloß Gripsholm, Tucholsky,
N1, B1} ,
BuchDB1 = {(B1, Tucholsky, Schloß Gripsholm)} ,
NutzerDB1 = {(N1, Wilke, Thomas)} ,
EntliehenDB1 = {(N1, B1)} .
Ein anderer Datenbankzustand DB2
T DB1 = {Wilke, Thomas, Kürtz, Klaas Ole, Schloß Gripsholm,
Tucholsky, Rheinsberg, N1, N2, B1, B2, B3} ,
BuchDB2 = {(B1, Tucholsky, Schloß Gripsholm),
(B2, Tucholsky, Rheinsberg),
(B3, Tucholsky, Schloß Gripsholm)} ,
NutzerDB2 = {(N1, Wilke, Thomas), (N2, Kürtz, Klaas Ole)} ,
EntliehenDB2 = {(N1, B1), (N2, B3)} .
Folie 50
111 gilt:
β
β
β
J×(1̃, +(1̃, x 1354 ))KN = ×N (J1̃KN , J+(1̃, x 1354 )KN )
β
β
= J1̃KN J+(1̃, x 1354 )KN
β
= 1̃N J+(1̃, x 1354 )KN
β
= 1J+(1̃, x 1354 )KN
β
β
= 1 +N (J1̃KN , Jx 1354 KN )
β
β
= 1(J1̃KN + Jx 1354 KN )
β
= 1(1̃N + Jx 1354 KN )
β
= 1(1 + Jx 1354 KN )
= 1(1 + β(x 1354 ))
= 1(1 + 111) = 112 .
Zum Abschluss halten wir noch fest, dass jede Formel der Aussagenlogik, wenn man zu-
85
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
nächst das Konditional und das Bikonditional außer Acht lässt, zu einem ΣB A -Term korrespondiert: Man ersetze 0 durch ⊥, 1 durch >, X i durch x i , . . . Interessanter ist nun aber
auch, dass die Semantik übereinstimmt:
Lemma 3.2. Sei ϕ eine aussagenlogische Formel ohne → und ↔ und t ϕ der entsprechende
ΣB A -Term. Außerdem sei β eine zu ϕ passende Belegung und β0 die prädikatenlogische BBelegung, die auf {x i : X i ∈ dom(β)} durch β0 (x i ) = β(X i ) definiert ist.
γ
Dann gilt JϕKβ = Jt KB .
Ein Beweis kann sehr leicht per Induktion geführt werden.
Aufgabe 3.1. (a) Geben Sie eine Signatur ΣR und eine Struktur S R für den geordneten
Körper der reellen Zahlen an.
(b) Geben Sie ΣR -Terme t 0 und t 1 an, so dass
1) t 0 dem Polynom (2x 02 · x 1 ) + 3x 1 entspricht und
2) die Interpretationen von t 1 alle nicht negative reellen Zahlen liefern.
Aufgabe 3.2. (a) Geben Sie eine Signatur Σt r ee für gerichtete, verwurzelte Bäume an.
(b) Betrachten Sie die folgenden beiden Bäume:
w
0
1
4
2
a
3
d
e
c
b
f
g
h
Geben Sie zu diesen Bäumen passende Σt r ee -Strukturen an.
(c) Geben Sie eine Σt r ee -Struktur an, die kein Baum ist.
3.2.3 Formeln und deren Interpretation
Nun können wir auch die Menge F PL (Σ) der prädikatenlogischen Formeln (erste Stufe) über
Σ (Σ-Formeln) induktiv definieren.
1. Basiselemente:
• 0 und 1 sind Σ-Formeln.
• Sind t und t 0 Σ-Terme, so ist t = t 0 eine Σ-Formel.
• Ist R/n ∈ Σ und sind t 0 , . . . , t n−1 Σ-Terme, so ist R(t 0 , . . . , t n−1 ) eine Σ-Formel
Diese Formeln werden atomare Σ-Formeln genannt.
2. Induktionsregeln:
• Sind ϕ und ψ Σ-Formeln, so auch ¬ϕ, (ϕ ∨ ψ), (ϕ ∧ ψ), (ϕ → ψ), (ϕ ↔ ψ).
• Ist ϕ eine Σ-Formel und x i eine Elementvariable, so sind ∀x i ϕ und ∃x i ϕ ΣFormeln.
Im zweiten Fall spricht man davon, dass die Formel ϕ universell oder existenziell
quantifiziert wird. Man liest die Formeln »für alle x i ϕ« bzw. »es existiert x i ϕ«.
Zunächst können wir festhalten, dass auch bei prädikatenlogischen Formeln eindeutige
Konstruierbarkeit vorliegt.
86
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Lemma 3.3 (eindeutige Konstruktion). Sei Σ eine Signatur. Jede prädikatenlogische Formel
kann nur in einer Weise im Sinne von Folie 6 konstruiert werden.
Der Beweis verläuft analog zu dem Beweis des Satzes 2.1.
Wir können also induktive Funktionsdefinitionen durchführen. Zum Beispiel könnten
wir zu einer gegebenen Formel ϕ die Menge der Variablen bestimmen, die in ϕ vorkommen, und die wir mit vars(ϕ) bezeichnen. Interessanter ist die Menge der Variablen, die in
einer Formel ϕ frei vorkommen, und die mit free(ϕ) bezeichnet wird:
1. Basiszuordnung:
• free(0) = free(1) = ;,
• free(t = t 0 ) = vars(t ) ∪ vars(t 0 ) für alle Σ-Terme t und t 0 und
• free(R(t 0 , . . . , t n−1 )) = vars(t 0 )∪· · ·∪vars(t n−1 ) für alle R/n ∈ Σ und Σ-Terme t 0 , . . . , t n−1 .
2. Induktionsregeln:
• Für alle ϕ, ψ ∈ F PL (Σ) gilt free(¬ϕ) = free(ϕ), free((ϕ∨ψ)) = free((ϕ∧ψ)) = free((ϕ →
ψ)) = free((ϕ ↔ ψ)) = free(ϕ) ∪ free(ψ).
• Für alle x i ∈ VPL und ϕ ∈ F PL (Σ) gilt
free(∃x i ϕ) = free(∀x i ϕ) = free(ϕ) \ {x i } .
Die Basiszuordnung wird exakt so vorgenommen, wie dies auch für die (einfachen) Vorkommen gilt. Die Induktionsregel für die Junktoren stimmt auch mit der für die (einfach)
vorkommenden Variablen überein. Lediglich bei der Quantifizierung wird ein Unterschied
gemacht. Während man für die einfachen Vorkommen
vars(∃x i ϕ) = vars(∀x i ϕ) = vars(ϕ) ∪ {x i }
setzt und damit die hinzu kommenden Variablen hinzufügt, führt die Quantifizierung einer Variablen dazu, dass sie aus den frei vorkommenden Variablen entfernt wird. Dahinter
steckt die Einsicht, dass die Belegung einer quantifizierten Variablen bei der Definition der
Semantik einer Formel nicht wichtig ist.
Eine Variablenbelegung β passt zu einer prädikatenlogischen Formel ϕ, wenn free(ϕ) ⊆
dom(β) gilt. Wenn es sich um eine S-Belegung handelt, können wir dann ϕ eine Interpretation in S unter β induktiv zuordnen. Dabei wird die folgende Schreibweise benutzt. Ist β
eine S-Belegung, x i ∈ VPL und a ∈ S, so steht β[s/x i ] für die S-Belegung, die durch


falls i = j ,

s ,
β[s/x i ](x j ) =
β(x j )


undefiniert,
falls i 6= j und x j ∈ dom(β),
sonst
definiert ist.
Nun können wir zur Definition der Semantik von Formeln kommen:
1. Basiszuordnung:
β
β
• J0KS = 0 und J1KS = 1,
87
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
• Für Σ-Terme t und t 0 gilt
Jt
β
= t 0 KS
=
(
1 ,
0 ,
β
β
falls Jt KS = Jt 0 KS ,
sonst.
• Für Σ-Terme t 0 , . . . , t n−1 und R/n ∈ Σ gilt
(
β
β
1 , falls (Jt 0 KS , . . . , Jt n−1 KS ) ∈ R S ,
β
JR(t 0 , . . . , t n−1 )KS =
0 , sonst.
2. Induktionsregeln:
• Für alle ϕ, ψ ∈ F PL (Σ) gilt
β
β
J¬ϕKS = ¬
˙ JϕKS ,
β
β
β
β
β
β
β
β
β
β
β
β
˙ JψKS ,
J(ϕ ∨ ψ)KS = JϕKS ∨
˙ JψKS ,
J(ϕ ∧ ψ)KS = JϕKS ∧
J(ϕ → ψ)KS = JϕKS →
˙ JψKS ,
J(ϕ ↔ ψ)KS = JϕKS ↔
˙ JψKS .
• Für x i ∈ VPL und ϕ ∈ F PL (Σ) gilt
(
β[a/x i ]
1 , falls JϕKS
für ein a ∈ S gilt,
β
J∃x i ϕKS =
0 , sonst,
(
β[a/x i ]
1 , falls JϕKS
für alle a ∈ S gilt,
β
J∀x i ϕKS =
0 , sonst.
Zu beachten ist hierbei, dass unsere Definition von freiem Vorkommen genau richtig ist.
Während x i nicht zu free(∃x i ϕ) gehört und β damit an x i nicht definiert sein muss, kann
x i zu free(ϕ) gehören, β[a/x i ] ist aber auch an x i definiert.
Beispiel 3.3. Als Beispiel werten wir die Formel ϕ, die durch ϕ = ∀x 0 ∃x 1 (x 0 < x 1 ) definiert
sei, in den natürlichen Zahlen, also Nlt, aus. Diese Formel besagt: Zu jeder natürlichen Zahl
gibt es eine größere.
β0
Offensichtlich gilt free(ϕ) = ;, so dass wir β0 = ; setzen und nach JϕKNlt
fragen dürfen.
1. Wir stellen fest, dass für eine Nlt-Belegung β2 mit x 0 , x 1 ∈ dom(β2 ) gilt:
β
Jx 0 < x 1 KS 2 = 1 genau dann, wenn β2 (x 0 ) < β2 (x 1 ) .
2. Aus 1. ergibt sich, dass für jede Nlt-Belegung β1 mit x 0 ∈ dom(β1 ) gilt:
β [β(x 0 )+1/x 1 ]
1
J(x 0 < x 1 )KNlt
=1 ,
also gilt auch
β
1
J∃x 1 (x 0 < x 1 )KNlt
=1
für jede dieser Belegungen.
88
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
3. Jede Belegung β0 [a/x 0 ] für a ∈ {0, 1, . . . } ist aber eine Belegung, wie sie unter 2. untersucht wurde, d. h., es gilt
β [a/x 0 ]
0
J∃x 1 (x 0 < x 1 )KNlt
=1
für jedes a ∈ {0, 1, . . . } und damit auch
β
JϕKNlt = 1 .
Analog zur Situation in der Aussagenlogik wollen wir das Zeichen |= in der Prädikatenβ
logik nutzen: Wir schreiben S, β |= ϕ für JϕKS = 1; wir sagen »ϕ gilt in S unter der Belegung
β«.
Eine prädikatenlogische Formel heißt Aussage, wenn sie keine freien Variablen hat. Dann
gilt S, β |= ϕ unabhängig von der Belegung β. Deshalb schreiben wir in diesem Fall einfach
S |= ϕ und sagen, dass S ein Modell von ϕ ist.
Aufgabe 3.3. (a) Sei ΣOr d = {</2} die Signatur der Ordnungen.
Welche der folgende Formeln sind wahr bezüglich der Struktur der natürlichen Zahlen mit natürlicher Ordnung Nlt beziehungsweise bezüglich der Struktur der reellen
Zahlen Rlt mit natürlicher Ordnung?
1) ∃x 0 ∀x 1 (x 0 < x 1 ∨ x 0 = x 1 )
2) ∀x 0 ∀x 1 (x 0 < x 1 → ∃x 2 (x 0 < x 2 ∧ x 2 < x 1 ))
3) ∀x 0 ∀x 1 ((x 0 < x 1 ∨ x 0 = x 1 ) ∨ x 1 < x 0 )
(b) Sei Σ Ar = {0̃, 1̃, +//2, ×//2} die Signatur der Arithmetik.
Formulieren Sie folgende Aussagen als Formeln:
1) Jede natürliche Zahl ist Summe von vier Quadratzahlen (Satz von Lagrange).
2) Alle geraden Zahlen ≥ 4 sind Summe von zwei Primzahlen (Vermutung von
Goldbach).
3) Es gibt unendliche viele Primzahlzwillinge.
Hinweis. Ein Primzahlzwilling ist ein Paar (p, p + 2), wobei p und p + 2 Primzahlen
sind.
Aufgabe 3.4. Sei G ein Graph. Betrachten Sie die Graphstruktur ΣGr aph = {E /2}.
Geben Sie eine Formel an, die die Existenz eines Weges der Länge 10 mit nur zwei Variablen beschreibt.
Aufgabe 3.5. Sei ΣB B = {</2, +1//1, P /1} eine Signatur. Betrachten Sie eine ΣB B -Strukur S
mit Trägermenge S = N, der natürlichen Ordnung <S , der Nachfolgerfunktion +1S : N →
N, i 7→ i + 1 und einem Prädikat P .
Geben Sie eine Formel ϕ an, so dass
¯ S |=
¯ ϕ genau dann,¯ wenn
¯ ¯ für alle i ∈ N gilt:¯
0 ≤ ¯{ j ¯ j < i und P ( j )}¯ − ¯{ j ¯ j < i und ¬P ( j )}¯ ≤ 5.
Aufgabe 3.6. Sei S eine endliche Struktur.
Geben Sie einen rekursiven Algorithmus an (Pseudocode), der zu einer prädikatenlogischen Formel ϕ und einer Interpretation I = (S, β) den Wahrheitswert der Formel JϕKI
berechnet.
89
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Hinweis. Gehen Sie davon aus, dass im Programm mittels β(i ) auf die Belegung der Variablen x i zugegriffen werden kann.
3.3 Einsatz von Prädikatenlogik
Prädikatenlogik wird in unterschiedlichen Zusammenhängen - in der Mathematik und in
der Informatik - eingesetzt. Bevor wir dazu kommen, wollen wir Regeln festhalten, nach
denen Formeln in ihrer Schreibweise vereinfacht werden können.
3.3.1 Vereinfachungsregeln
Die wichtigsten Vereinfachungsregeln betreffen die Bindungsstärke der Junktoren und Quantoren, es gibt aber auch Vereinfachungsregeln, die – wie bei der Aussagenlogik – bei der
Schachtelung desselben Junktors greifen. Dabei ist Bindungsstärke wie folgt zu verstehen:
Bindet ein Junktor stärker als ein anderer, dann werden fehlende Klammern so eingefügt,
dass die innere Klammerung zum stärker bindenden Junktor gehört. Wenn wir zum Beispiel festlegen, dass ∨ stärker als → bindet, dann setzen wir in P 0 (x 0 ) ∨ P 1 (x 1 ) → P 2 (x 2 ) die
Klammern wie folgt: ((P 0 (x) ∨ P 1 (y)) → P 2 (z)).
Im Einzelnen legen wir fest:
1. Äußere Klammern können entfallen.
2. Junktoren und Quantoren sind wie folgt nach fallender Bindungsstärke geordnet:
• Quantoren (∀x i , ∃x i ) und die Negation (¬).
• Konjunktion und Disunktion (∧ und ∨).
• Konditional und Bikonditional (→ und ↔).
3. Bei iterierter Anwendung von Konjuktionen bzw. Disjunktionen können Klammern
entfallen.
Das Verhältnis zwischen ∧ und ∨ wird also nicht festgelegt, auch nicht das Verhältnis zwischen → und ↔. Also muss man Klammern setzen!
Beispiel 3.4. Wir dürfen P (x 3 ) ∧ Q(x 1 ) ∧ R(x 1 , c, d ) → Q( f (c)) schreiben, was für (((P (x 3 ) ∧
Q(x 1 )) ∧ R(x 1 , c, d )) → Q( f (c))) steht. Wir dürfen aber nicht P (x 1 ) ∧Q(c) ∨ R(x 1 , c, d ) schreiben.
3.3.2 Definitionen mathematischer Strukturen: boolesche Algebren und
Ordnungen
Prädikatenlogische Formeln werden häufig genutzt, um Klassen von Strukturen einer festen Signatur Σ zu beschreiben. Um dies genauer zu beschreiben, treffen wir die folgende
Festlegung. Ist Φ eine Menge von Σ-Aussagen, so ist Mod(Φ) die Klasse definiert durch
Mod(Φ) = {S Σ-Struktur : S |= ϕ für alle ϕ ∈ Φ} .
90
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Wir beginnen mit einem einfachen Beispiel, das wir schon lange kennen. Eine boolesche
Algebra ist eine ΣB A -Struktur, in der die folgenden Aussagen gelten:
∀x∀y x t y = y t x
∀x∀y x u y = y u x
∀x∀y∀z (x u y) u z = x u (y u z)
(Kommutativität)
∀x∀y∀z (x t y) t z = x t (y t z)
(Assoziativität)
∀x x t x = x
∀x x u x = x
(Idempotenz)
∀x∀y x u (x t y) = x
∀x∀y x t (x u y) = x
(Absorption)
∀x∀y∀z (x u y) t z = (x t z) u (y t z)
∀x∀y∀z (x t y) u z = (x u z) t (y u z)
∀x x t ⊥ = x
∀x x u > = x
∀x ∼∼x = x
(Distr.)
(Neutralität)
(Doppelte Negation)
∀x∀y ∼(x u y) = ∼x t ∼y
∀x∀y ∼(x t y) = ∼x u ∼y
(De Morgan)
∀x x u ∼x = ⊥
∀x x t ∼x = >
(Tertium non datur)
∀x x u ⊥ = ⊥
∀x x t > = >
(Max. und Min.)
∼⊥ = >
∼> = ⊥
(Komplementierung)
Mit anderen Worten, wenn wir mit ΦB A die Menge der obigen Aussagen bezeichnen, so ist
Mod(ΦB A ) die Klasse der booleschen Algebren.
Andere Beispiele sind zahllose Klassen von Ordnungen in der Signatur ΣOr d . Einige wenige wollen wir jetzt nacheinander besprechen.
Prä- oder Quasiordnungen sind die ΣOr d -Strukturen, in denen
∀x∀y∀z(x < y ∧ y < z → x < z)
(Transitivität)
gilt. Eine Quasiordnung erhält man zum Beispiel dann, wenn man alle endlichen Bitfolgen
betrachtet und < dadurch definiert, dass man sagt, dass eine Bitfolge kleiner als eine andere ist, wenn jene höchstens so lang ist wie diese. Dann ist die Ordnungsrelation transitiv.
Genauer: Die ΣOr d -Struktur S mit
S = {0, 1, 00, 01, 10, 11, . . . } ,
<S = {(u, v) : u ist nicht länger als v}
ist eine Quasiordnung.
(Partielle) oder (Halb-)Ordnungen erfüllen zusätzlich
∀x∀y(x < y ∧ y < x → x = y) .
(Irreflexivität)
Die obige Struktur erfüllt nicht die Forderung nach Irreflexivität, weil 010 < 010 gilt. Alternativ könnten wir aber festlegen, dass eine Bitfolge kleiner als eine andere ist, wenn sie
kürzer ist. Die so definierte Relation wäre dann eine Halbordnung.
Eine totale oder lineare Ordnungen ist eine Halbordnung, die
∀x∀y(x = y ∨ x < y ∨ y < x)
(Linearität)
erfüllt. Zum Beispiel bilden die natürlichen Zahlen mit der natürlichen Interpretation von
< eine lineare Ordnung, nicht aber die zweite Relation auf Bitfolgen, weil 010 6< 101, 101 6<
010 und 010 6= 101 gelten.
91
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Dichte Ordnungen erfüllen außer Transitivität und Irreflexivität auch
∀x∀y(x < y → ∃z(x < z ∧ z < y) .
(Dichtheit)
Zum Beispiel bilden die rationalen Zahlen mit der natürlichen Ordnung eine dichte lineare
Ordnung.
Eine kompakte Darstellung ist auf Folie 51 zu finden.
Ordnungen
∀x∀y ∀z(x < y ∧ y < z → x < z)
(Transitivität)
∀x ¬x < x
(Irreflexivität)
∀x∀y (x < y → ∃z(x < z ∧ z < y )
(Dichtheit)
∀x∀y (x = y ∨ x < y ∨ y < x)
(Linearität)
Präordnung (Quasiordnung)
Transitivität
(Partielle) oder (Halb-)Ordnungen
Transitivität + Irreflexivität
Totale oder lineare Ordnungen
Transitivität + Irreflexivität + Linearität
Dichte Ordnungen
Transitivität + Irreflexivität + Dichtheit
Folie 51
3.3.3 Wissensrepräsentation: Verwandtschaftsbeziehungen
Prädikatenlogik lässt sich häufig dann nutzen, wenn man einen Ausschnitt der realen Welt
präzise beschreiben möchte. Hat man dies getan, kann man ihn im nächsten Schritt analysieren.
Wir betrachten dazu das Gebiet der Verwandtschaftsbeziehungen und benutzen eine Signatur ΣV B , die unter anderem Elternteil/2, mutter//1 und Weiblich/1 enthält. Folgende
92
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Festlegungen erscheinen sinnvoll:
∀x∀y(mutter(x) = y ↔ Weiblich(y) ∧ Elternteil(y, x)) ,
∀x(Mutter(x) ↔ Weiblich(x) ∧ ∃y Elternteil(x, y)) ,
∀x∀y(Geschwister(x, y) ↔ (¬x = y ∧ ∃z(Elternteil(z, x) ∧ Elternteil(z, y)))) .
Zu beachten ist hier, dass wir durch die Festlegung, dass mutter eine einstellige Funktion
ist, die folgende Eigenschaft vorgeben: Jede Person besitzt genau eine Mutter. Wir wollen
die Formelmenge, die die drei obigen Formeln umfasst, Φ nennen.
Fragen könnten wir uns, ob die Formel ϕ, die durch
ψ = ∀x∀y(Geschwister(x, y) ↔ Geschwister(y, x))
gegeben ist, eine logische Folgerung aus Φ ist. Um diese Frage beantworten zu können,
passen wir zunächst die Folgerungsbeziehung an.
Sei Φ ⊆ F PL (Σ) und ψ ∈ F PL (Σ). Dann ist ψ eine Folgerung aus Φ, in Zeichen Φ |= ψ, falls
das Folgende für jede Σ-Struktur S gilt: Wenn S |= ϕ für jedes ϕ ∈ Φ, so S |= ψ.
Mit dieser Definition lässt sich tatsächlich zeigen, dass Φ |= ψ gilt, sofern Φ die Menge
der drei obigen Formeln ist. Ein Beweis ist nicht schwierig, aber anstrengend.
Die Formelmenge Φ drückt Gesetzmäßigkeiten über Verwandtschaftsbeziehungen aus;
die Folgerungsbeziehung ermöglicht es, die Menge der daraus folgenden weiteren Gesetzmäßigkeiten exakt zu fassen. Möchte man dagegen eine konkrete Verwandtschaftssituation analysieren, kann man wie folgt vorgehen. Man fügt Fakten in Form von Formeln zu
Φ hinzu, die eine konkrete Situation charakterisieren. Genauer: Man fügt Konstanten zur
Signatur hinzu, um einzelne Personen benennen zu können, und atomare Aussagen, die
deren Beziehungen untereinander beschreiben.
Zum Beispiel könnte man die Konstanten richard, franz und martha zur Signatur hinzufügen und die folgenden drei atomaren Aussagen:
Geschwister(richard, franz) ,
Elternteil(martha, franz) ,
Weiblich(martha) .
Dann gilt
Φ 6|= mutter(richard) = martha ,
denn wir können ein konkretes »Gegenbeispiel« angeben: Wir betrachten die Struktur S,
93
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
die durch
S = {0, 1, 2, 3} ,
mutterS = {(0, 3), (1, 3), (2, 3), (3, 3)} ,
richardS = 0 ,
franzS = 1 ,
marthaS = 2 ,
GeschwisterS = {(0, 1), (1, 0)} ,
WeiblichS = {2, 3} ,
ElternteilS = {(2, 0), (2, 1), (3, 0), (3, 1), (3, 2), (3, 3)} ,
MutterS = {2, 3} .
Man beachte, dass S ein Modell von Φ und kein Modell von mutter(richard) = martha ist,
womit die Behauptung gezeigt ist. Es ist aber auch wichtig, festzuhalten, dass die obige
Struktur bei genauer Betrachtung als nicht realistisch angesehen werden muss, was aber
nichts an der Korrektheit unserer Behauptung ändert.
Aufgabe 3.7. Betrachten Sie die Signatur der Verwandtschaftsbeziehungen ΣV B und gehen
Sie davon aus, dass folgende Symbole in ΣV B enthalten sind:
Elternteil/2, Geschwister/2, Onkel/2, Tante/2, Cousin/2, mutter//1, vater//1, Weiblich/1, Männlich/1
(a) Formalisieren Sie mit Hilfe der angegebenen Symbole folgende Verwandtschaftsbeziehungen:
1) x ist Vater von y genau dann, wenn x männliches Elternteil von y ist,
2) x ist Onkel von y genau dann, wenn x Bruder der Mutter oder des Vaters von y
ist,
3) x ist Tante von y genau dann, wenn x Schwester der Mutter oder des Vaters von
y ist,
4) x ist Cousin von y genau dann, wenn . . . .
(b) Beweisen Sie, dass die folgende Formel eine logische Folgerung ist:
∀x 0 ∀x 1 ∀x 2 (Onkel(x 2 , x 0 )∧∀x 3 (Elternteil(x 3 , x 0 ) ↔ Elternteil(x 3 , x 1 ))) → Onkel(x 2 , x 1 )) .
(c) Zeigen Sie (durch Angabe eines konkreten Beispiels), dass
∀x 0 ∀x 1 (∃x 2 (Onkel(x 0 , x 2 ) ∧ Onkel(x 1 , x 2 )) → Geschwister(x 0 , x 1 ))
keine logische Folgerung aus den in (b) und der Vorlesung betrachteten Formeln ist.
3.3.4 Spezifikationen: wechselseitiger Ausschluss
In der Informatik ist es häufig notwendig, Eigenschaften von Berechnungen zu spezifizieren: Man möchte beschreiben, was ein Programm tut bzw. tun soll oder wie ein Protokoll
funktioniert.
Wir wollen beispielhaft das Problem des wechselseitigen Ausschlusses (»mutual exclusion«) betrachten. Wir stellen uns vor, zwei Prozesse, P 0 und P 1 , möchten auf eine Resource
94
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
zugreifen, die aber nur höchstens einem der Prozesse zur Verfügung gestellt werden kann.
Wir wollen beschreiben, was wir von Verfahren erwarten, die korrekten Zugriff auf die Resource ermöglichen sollen.
Berechnungen des Gesamtsystems beschreiben wir durch so genannte ME-Strukturen.
Wir nutzen die Signatur ΣM E = {< /2, R 0 /1, R 1 /1,G 0 /1,G 1 /1}. Als ME-Struktur bezeichnen
wir eine ΣM E -Struktur S, deren Trägermenge die natürlichen Zahlen sind, also S = {0, 1, 2, . . . },
und für die <S = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . } gilt, d. h., < wird durch die natürliche Ordnungsrelation auf den natürlichen Zahlen interpretiert. Wir interpretieren dann
die Elemente der Trägermenge einer ME-Struktur als Zeitpunkte und die Elemente von
• R iS (»request«) als die Zeitpunkte, zu denen Prozess P i den Wunsch äußert, auf die
Resource zuzugreifen, und
• G iS (»granted«) als die Zeitpunkte, zu denen Prozess P i Zugriff zu der kritischen Resource hat oder den Zugriff nutzt.
Jetzt können wir einzelne Eigenschaften formalisieren. Wir beginnen mit einer Formel,
die die wichtigste Eigenschaft, nämlich den wechselseitigen Ausschluss, beschreibt:
ϕ0 = ∀x(¬G 0 (x) ∨ ¬G 1 (x)) ,
d. h., zu jedem Zeitpunkt hat einer der beiden Prozesse keinen Zugriff. Alternativ hätten wir
sagen können:
ϕ00 = ¬∃x(G 0 (x) ∧G 1 (x)) ,
was heißt, dass P 0 und P 1 niemals gleichzeitig Zugriff zur Resource haben. Beide Formeln
sind äquivalent im folgenden Sinn. Sind ϕ, ψ ∈ F PL (Σ) für eine Signatur Σ, so sind ϕ und
ψ äquivalent, wenn für alle Σ-Strukturen und Belegungen β, die zu ϕ und ψ passen gilt:
S, β |= ϕ genau dann, wenn S, β |= ψ.
Desweiteren möchten wir ausdrücken, dass der Prozess, der gern die Resource möchte,
auch Zugriff erhält, d. h., wir fordern Fairness:
ϕ1 = ∀x((R 0 (x) → ∃y(x < y ∧G 0 (x))) ∧ ((R 1 (x) → ∃y(x < y ∧G 1 (x))))) .
Man beachte, dass wir < und nicht ≤ benutzen, denn wir stellen uns vor, dass ein Prozess
erst nachdem er Zugriff verlangt hat, bereit ist, zuzugreifen (es sei denn, der Wunsch wurde
schon geäußert und noch nicht erfüllt).
Eine übersichtlichere Art, diese Formel zu schreiben, ist:
^
ϕ01 =
∀x((R i (x) → ∃y(x < y ∧G i (x))) .
i <2
Dabei benutzen wir dieselbe Konvention wie in der Aussagenlogik.
Eine etwas schwächere Forderung, die wir deshalb auch schwache Fairness nennen wollen, wäre: Wenn P 0 immer wieder den Zugriff fordert, dann erhält P 0 auch immer wieder
Zugriff. Dies kann wie folgt formalisiert werden:
ϕ2 = ∀x∃y(x < y ∧ R 0 (y)) → ∀x∃y(x < y ∧G 0 (y))
∧ ∀x∃y(x < y ∧ R 1 (y)) → ∀x∃y(x < y ∧G 1 (y)) .
95
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Auch diese kann übersichtlicher geschrieben werden:
^
ϕ02 =
∀x∃y(x < y ∧ R i (y)) → ∀x∃y(x < y ∧G i (y)) .
i <2
Wir wollen abschließend eine kompliziertere Eigenschaft beschreiben: P 0 wird nicht übervorteilt, d. h., wenn P 0 den Zugriff fordert, aber keine Forderung von P 1 aussteht, dann erhält P 0 Zugriff vor P 1 . Diese Eigenschaft nennen wir Schnelligkeit für P 0 .
Wir sagen zunächst, dass eine ME-Struktur dann die Eigenschaft erfüllt, wenn Situationen, in denen P 0 Zugriff fordert und später P 1 Zugriff erhält, gerechtfertigt sind durch einen
entsprechenden Punkt in der Vergangenheit:
ϕ3 = ∀x∀y(R 0 (x) ∧ x < y ∧G 1 (y) → ∃z(ϕ03 ∨ ϕ13 ))
Dieser »rechtfertigende« Punkt z, kann eine von zwei Begründungen liefern: (0) Die Forderung von P 0 wurde schon erfüllt. (1) Eine Forderung von P 1 stand noch aus. Die erste
Begründung beschreiben wir durch
ϕ03 = x < z ∧ z < y ∧G 0 (x) ,
während wir die zweite durch
ϕ13 = (z < x ∨ z = x) ∧ R 1 (z)
∧ ∃u(z < u ∧ (u < y ∨ u = y) ∧ ∀v(z < v ∧ v < u → ¬G 1 (v))
∧ ∀v((u = v ∨ u < v) ∧ v < y → G 1 (y)))
beschreiben. Eine graphische Veranschaulichung ist auf Folie 52 zu finden.
Aufgabe 3.8. Analog zum Beispiel Gegenseitiger Ausschluss sollen in dieser Aufgabe Eigenschaften eines Fahrstuhls modelliert werden.
Betrachten Sie dazu die Signatur
ΣF S = { < /2,
E 0 /1, E 1 /1, E 2 /1, E 3 /1,
C 0 /1,C 1 /1,C 2 /1,C 3 /1,
O 0 /1,O 1 /1,O 2 /1,O 3 /1,
H /1}
und eine ΣF S -Struktur S mit der Trägermenge S = N und der natürlichen Ordnung <S .
Die Elemente der Trägermenge werden dann als Zeitpunkte interpretiert. Ausserdem interpretieren wir
• E iS als Zeitpunkte, zu denen sich der Fahrstuhl in der Etage i befindet,
• C iS als Zeitpunkte, zu denen der Wunsch besteht, auf Etage i einzusteigen,
• O iS als Zeitpunkte, zu denen der Wunsch besteht, auf Etage i auszusteigen und
• H S als Zeitpunkte, zu denen der Fahrstuhl anhält (und die Tür geöffnet hat).
96
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Wechselseitiger Ausschluss
ME-Struktur
Σ = {< /2, R0 /1, R1 /1, G0 /1, G1 /1}, S = {0, 1, 2, . . . } und
<S = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . }.
Farbliche Kodierung
Ri : Prozess i möchte zugreifen
Gi : Prozess i darf zugreifen/greift zu
Wechselseitiger Ausschluss
verboten
P0
x
P1
x
Schnelligkeit für P0
ok
ok
x
P0
y
P1
P0
P1
z
x
z
y
u
Folie 52
Als (physikalische) Forderung an den Fahrstuhl können Sie annehmen, dass
_
^
∀x
E i (x) ∧ ∀x
(¬E i (x) ∨ ¬E j (x)) .
i <4
i < j <5
Beschreiben Sie die folgenden Anforderung mit Hilfe von Formeln:
(a) Wenn ein Wunsch vorliegt, wird er erfüllt.
(b) Wenn kein Wunsch vorliegt, fährt der Fahrstuhl nicht.
(c) Der Fahrstuhl hält an, falls ein Wunsch bezüglich der aktuellen Etage vorliegt.
3.3.5 (Datenbank-)Anfragen
Einen Datenbankzustand kann man als eine Σ-Struktur für eine geeignete Signatur Σ auffassen. Jede Σ-Formel kann dann als Anfrage an eine Datenbank verstanden werden. Das
wollen wir formalisieren und erläutern.
n
Wenn n eine natürliche Zahl ist, so schreiben wir F PL
(Σ) für die Menge aller Σ-Formeln,
n
deren freie Variablen sich unter x 0 , . . . , x n−1 befinden. Ist nun ϕ ∈ F PL
(Σ) und S eine Σn
Struktur, dann bezeichnen wir mit ϕ(S ) die n-stellige Relation über S, die ein Tupel (s 0 , . . . , s n−1 )
97
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
genau dann enthält, wenn es eine S-Belegung β : {x 0 , . . . , x n−1 } → S gibt, für die S, β |= ϕ und
s i = β(x i ) für alle i < n gilt. Wir sprechen bei ϕ von einer Anfrage und nennen ϕ(Sn ) das nstellige Anfrageergebnis zu ϕ in S.
Wir betrachten dazu drei Beispiele. Wenn wir in unserer Bibliotheksdatenbank nach allen Nutzernamen suchen wollen, so können wir dies mit Hilfe der Anfrage
ϕ0 = ∃x 2 Nutzer(x 2 , x 0 , x 1 ) .
Das zweistellige Anfrageergebnis zu ϕ0 ist die Menge mit allen Paaren (Nachname, Vorname), die als Nutzer auftreten. Das einstellige Anfrageergebnis ist die Menge aller Eintupel
von Nachnamen von Nutzern.
Wollen wir nach Autorennamen suchen, so ist die Anfrage
ϕ1 = ∃x 1 ∃x 2 Buch(x 1 , x 0 , x 2 )
hilfreich. Das einstellige Anfrageergebnis zu ϕ1 ist die Menge mit allen Eintupeln, die als
Autorennamen eines Buches auftreten.
Möchten wir zum Beispiel die Namen aller Nutzer bestimmen, die alle Titel eines Autors
ausgeliehen haben, dann können wir dies wie folgt tun:
ϕ2 = ∃x 2 (Nutzer(x 2 , x 0 , x 1 )
∧ ∃x 3 ∀x 4 (∃x 5 Buch(x 5 , x 3 , x 4 ) → ∃x 6 (Buch(x 6 , x 3 , x 4 ) ∧ Entliehen(x 2 , x 6 ))) .
Das zweistellige Anfrageergebnis zu ϕ2 besteht aus den Paaren (Nachname, Vorname), die
die gewünschte Eigenschaft besitzen. Die Anfrage ist aus mehreren Gründen komplizierter,
als man zunächst erwarten würde:
1. Wir nehmen an, dass unterschiedliche Nutzernummer bei gleichem Namen für verschiedene Personen stehen. (Dann muss nicht notwendigerweise in der Realität so
sein. Warum soll nicht ein und diesselbe Person zwei Nutzernummern besitzen?)
2. Wir haben keinen direkten Zugriff auf die Menge aller Autoren, lediglich über die
Buch-Relation.
3. Wir gehen davon aus, dass es mehrere Exemplare eines Buches geben kann.
Es gibt mehrere Dinge, auf die gesondert hingewiesen wird. Zum einen können wir nicht
über konkrete Autoren oder Nutzer sprechen, weil wir in unsere Signatur keine Symbole
dafür aufgenommen haben. Das ist aus Datenbanksicht hinderlich, denn man möchte ja
zum Beispiel die Namen der Nutzer bestimmen können, die ein Buch von Tucholsky entliehen haben. Im Bereich der Datenbanken erlaubt man deshalb bei Anfragen eine erweiterte
Syntax; wir behandeln die Problematik nicht weiter.
Zum anderen möchte man häufig Daten »aggregieren«, das heißt, man möchte zum Beispiel nicht die Menge mit allen Nutzernamen bestimmen, sondern zum Beispiel nur deren
Mächtigkeit. (Ist die Menge nämlich sehr groß, wird das Zählen schwierig.) Auch derartige Anfragen kann man im Kontext der mathematischen Logik modellieren, allerdings auch
erst nach entsprechenden Erweiterungen, die wir nicht behandeln wollen.
Desweiteren fehlen unserer Prädikatenlogik Sorten bzw. Typen: Die Trägermenge einer
Struktur kann ganz unterschiedliche Elemente enthalten, zum Beispiel Zeichenketten für
98
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
die Benennung von Personen oder Zahlen für die Angabe eines Alters. Häufig ist es praktisch, wenn man die Quantifizierung von Variablen auf Elemente eines gewünschten Typs
einschränken kann, etwa auf Zahlen, was in Datenbanken auch möglich ist. Unsere Prädikatenlogik müssten wir auf Kosten der Übersichtlichkeit erweitern.
Schließlich ändern sich Datenbanken, genauer ihr Zustand, mit der Zeit. Um solche Änderungen durchführen zu können, also etwa das Hinzufügen von Tupeln oder das Löschen,
müssen sprachliche Mittel zur Verfügung gestellt werden.
Aufgabe 3.9. (a) Sei ΣBi b = {Buch/3, Nutzer/2, Entliehen/2}.
Betrachten Sie folgenden Datenbankzustand DB:
T DB = {Wilke, Kähler, Schnoor, Thöle, Khan, Kuertz,
Schloß Gripsholm, Tucholsky,
Die Tore der Welt, Die Säulen der Erde, Follet,
N1, N2, N3, N4, N5, N6, B1, B2, B3, B4, B5, B6} ,
DB
Buch
= {(B1, Tucholsky, Schloß Gripsholm), (B2, Follet, Die Tore der Welt),
(B3, Follet, Die Tore der Welt), (B4, Follet, Die Tore der Welt),
(B5, Follet, Die Säulen der Erde), (B6, Follet, Die Säulen der Erde)} ,
NutzerDB = {(N1, Wilke), (N2, Kähler), (N3, Schnoor), (N4, Thöle), (N5, Khan), (N6, Kuertz)} ,
EntliehenDB = {(N1, B1), (N1, B2), (N2, B4), (N3, B6), (N5, B5), (N6, B3)} .
Geben Sie ΣBi b -Formeln an, die folgende Fragen beantworten:
1) Gibt es zwei Nutzer?
2) Gibt es zwei Exemplare von einem Buch?
3) Sind alle Bücher verliehen?
4) Hat ein Nutzer alle Bücher eines Autors entliehen?
(b) Betrachten Sie die Signatur für Graphen ΣGr aph = {E /2}.
Geben Sie ΣGr aph -Formeln an, die folgende Fragen beantworten:
1) Gibt es isolierte Knoten?
2) Gibt es Knoten mit mindestens 2 Nachbarn?
3) Hat jeder Knoten eine Kante zu jedem anderen Knoten?
3.4 Auswertung von Formeln
Wir wollen die Sicht, die wir im letzten Abschnitt im Zusammenhang mit den Datenbankbeispielen entwickelt haben, weiter verfolgen, genauer: wir wollen uns überlegen, wie man
eine Anfrage im Sinne des letzten Abschnitts auswerten kann.
Das algorithmische Problem, was wir lösen möchten, ist demnach, zu gegebener Σ-Struktur
n
S und Formel ϕ ∈ F PL
(Σ) die Menge ϕ(Sn ) zu bestimmen.
Wir beschränken uns darauf, eine Lösung für das Problem zu finden, wenn die betroffene
Signatur relational ist und keine Konstantensymbole enthält. Es ist nicht schwierig, das
Problem in voller Allgemeinheit zu lösen, aber aufwändig.
99
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
3.4.1 Das Koinzidenzlemma
Ein wichtiges Hilfsmittel für den Korrektheitsbeweis des gesuchten Algorithmus – aber auch
an anderen Stellen beim Umgang mit der Prädikatenlogik – ist das Koinzidenzlemma der
Prädikatenlogik. Dieses ist dem für die Aussagenlogik nachempfunden, allerdings ist es
entsprechend angepasst.
Wir haben schon bei der Definition der Semantik der Prädikatenlogik nur die freien Variablen bei den Variablenbelegungen berücksichtigt. Genau das wird im Koinzidenzlemma
exakt ausgedrückt.
Lemma 3.4 (Koinzidenzlemma). Sei Σ eine Signatur, ϕ ∈ F PL (Σ), S eine Σ-Struktur und β
sowie β0 zu ϕ passende S-Belegungen.
Gilt β|free(ϕ) = β0 |free(ϕ) , so gilt S, β |= ϕ genau dann, wenn S, β0 |= ϕ.
Beweis. Zunächst zeigt man für jeden Σ-Term t , jede Σ-Struktur S und S-Belegungen β und
β
β0
β0 mit β|vars(t ) = β0 |vars(t ) : Jt KS = Jt KS .
Dann zeigt man die Behauptung per Induktion. Der interessante Teil ist der Induktionsschritt für die Quantoren. Diesen führen wir durch.
Wir nehmen also an, dass die Behauptung für ϕ gilt. Außerdem sei i ∈ N und ψ = ∃x i ϕ.
Wir wollen die Behauptung für ψ anstelle von ϕ zeigen. Dazu sei S eine Σ-Struktur und β
und β0 seien zu ψ passende S-Belegungen. Außerdem nehmen wir S, β |= ψ an und zeigen
S, β0 |= ψ.
Aus S, β |= ψ folgt, dass es ein a ∈ S gibt, für das S, β[a/x i ] |= ϕ. Es gilt free(ϕ) = free(ψ)
oder free(ϕ) = free(ψ) ∪ {x i }. In beiden Fällen gilt β[a/x i ]|free(ϕ) = β0 [a/x i ]|free(ϕ) , so dass
wir die Induktionsannahme nutzen können. Wir erhalten S, β0 [a/x i ] |= ϕ, also auch S, β0 |=
∃x i ϕ.
Aufgabe 3.10. Seien Σ eine Signatur, t ein Σ-Term, S eine Σ-Struktur und β, β0 zu t passende
S-Belegungen.
Zeigen Sie:
β
β0
Ist β|vars(t ) = β0 |vars(t ) , so gilt Jt KS = Jt KS .
3.4.2 Auswertung von atomaren Formeln, Junktoren und Quantoren
Wenn wir nun ϕ(Sn ) bestimmen wollen, so können wir das rekursiv tun. Wir bereiten einen
entsprechenden Algorithmus durch einzelne Lemmas vor, die sich am rekursiven Aufbau
der Formeln orientieren.
Wir beginnen mit den atomaren Formeln.
Lemma 3.5. Sei Σ eine relationale Signatur ohne Konstanten.
n
1. Ist ϕ von der Form x i = x j mit i , j < n, dann ist ϕ ∈ F PL
(Σ) und es gilt
ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : a i = a j } .
2. Ist ϕ von der Form R(x i 0 , . . . , x i m−1 ) mit R/m ∈ Σ und gilt i 0 , . . . , i m−1 < n, so gilt ϕ ∈
n
F PL
(Σ) und
ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : (a i 0 , . . . , a i m−1 ) ∈ R S } .
100
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
n
Beweis. Zu 1. Zunächst ist offensichtlich, dass ϕ ∈ F PL
(Σ) gilt.
Sei β die leere Variablenbelegung.
⊆ Ist (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ), so gilt definitionsgemäß S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= x i = x j ,
was äquivalent zu a i = a j ist. Daraus folgt die Behauptung.
⊇ Dies wird ähnlich bewiesen.
Zu 2. Den Beweis führen wir nicht aus; er verläuft ähnlich.
Als nächsten wenden wir uns den booleschen Junktoren zu und beginnen mit Disjunktion und Konjunktion.
n
Lemma 3.6. Sei Σ eine Signatur, ϕ = ϕ0 ∨ ϕ1 und ϕ ∈ F PL
(Σ). Dann gilt
ϕ(Sn ) = ϕ0 (Sn ) ∪ ϕ1 (Sn ) .
Diese Aussage gilt auch für ∧ anstelle von ∨ und ∩ anstelle von ∪.
Beweis. Zunächst stellen wir fest, dass die rechte Seite der Gleichung wohldefiniert ist,
n
n
denn aus ϕ ∈ F PL
(Σ) folgt ϕ0 , ϕ1 ∈ F PL
(ϕ).
Im Folgenden sei β die leere Belegung.
⊆ Ist (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ), so gilt S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ, also S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |=
ϕ0 oder S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ] |= ϕ1 . Daraus ergibt sich (a 0 , . . . , a n−1 ) ∈ ϕ0 (Sn ) oder (a 0 , . . . , a n−1 ) ∈
ϕ1 (Sn ), das heißt, (a 0 , . . . , a n−1 ) ∈ ϕ0 (Sn ) ∪ ϕ1 (Sn ).
⊇ Dies kann ähnlich bewiesen werden.
Die Operation auf Tupeln, die hinter der Konjunktion steht, wird in der Datenbanktheorie als Join bezeichnet.
Wir benötigen ein weiteres Lemma für die anderen booleschen Junktoren, was wir aber
nicht beweisen.
Lemma 3.7. Sei Σ eine Signatur.
1. Ist ϕ = ¬ψ, so gilt
ϕ(Sn ) = S n \ ψ(Sn ) .
n
2. Ist ϕ = ϕ0 → ϕ1 und ϕ ∈ F PL
(Σ). Dann gilt
ϕ(Sn ) = (S n \ ϕ0 (Sn )) ∪ ϕ1 (Sn ) .
n
3. Ist ϕ = ϕ0 ↔ ϕ1 und ϕ ∈ F PL
(Σ). Dann gilt
ϕ(Sn ) = (ϕ0 (Sn ) ∩ ϕ1 (Sn )) ∪ S n \ (ϕ0 (Sn ) ∪ ϕ1 (Sn )) .
Schließlich gehen wir auf die Quantoren ein. Dazu stellen wir eine Vorüberlegung an:
n
Lemma 3.8. Sei Σ eine Signatur und ϕ = ∃x i ψ ∈ F PL
(Σ).
101
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
1. Falls i < n, so gilt
ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : es gibt b ∈ S mit (a 0 , . . . , a i −1 , b, a i +1 , . . . , a n−1 ) ∈ ψ(Sn )} .
2. Falls i ≥ n, so gilt
ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : es gibt a n , . . . , a i ∈ S mit (a 0 , . . . , a i ) ∈ ψ(Si +1 )} .
Beweis. Sei β die leere Variablenbelegung.
Zu 1. Es gilt (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ) definitionsgemäß genau dann, wenn S, β[a 0 /x 0 , . . . ,
a n−1 /x n−1 ] |= ϕ. Das gilt nach Definition der Semantik genau dann, wenn es ein b gibt mit
S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ][b/x i ] |= ψ, also genau dann, wenn S, β[a 0 /x 0 , . . . , a i −1 /x i −1 , b/x i ,
a i +1 /x i +1 , . . . , a n−1 /x n−1 ] |= ψ. Letzteres ist gleichbedeutend mit (a 0 , . . . , a i −1 , b, a i +1 , . . . , a n−1 ) ∈
ψ(Sn ).
Zu 2. Es gilt wie oben (a 0 , . . . , a n−1 ) ∈ ϕ(Sn ) definitionsgemäß genau dann, wenn S, β[a 0 /x 0 ,
. . . , a n−1 /x n−1 ] |= ϕ, was nach Definition der Semantik genau dann gilt, wenn es ein a i gibt
mit S, β[a 0 /x 0 , . . . , a n−1 /x n−1 ][a i /x i ] |= ψ. Aus dem Koinzidenzlemma ergibt sich, das letzteres genau dann gilt, wenn S, β[a 0 /x 0 , . . . , a i −1 /x i −1 , a i /x i ] für irgendwelche a n , . . . , a i −1 ∈ S
gilt, was auch unabhängig von der Wahl dieser ist. Daraus folgt die Behauptung.
Für den Allquantor gilt ein analoges Lemma.
n
Lemma 3.9. Sei Σ eine Signatur und ϕ = ∀x i ψ ∈ F PL
(Σ).
1. Falls i < n, so gilt
ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : für alle b ∈ S gilt (a 0 , . . . , a i −1 , b, a i +1 , . . . , a n−1 ) ∈ ψ(Sn )} .
2. Falls i ≥ n, so gilt
ϕ(Sn ) = {(a 0 , . . . , a n−1 ) ∈ S n : für alle a n , . . . , a i ∈ S gilt (a 0 , . . . , a i ) ∈ ψ(Si +1 )} .
Ohne Beweis.
3.4.3 Der Auswertungsalgorithmus
Aus den vorstehenden Lemmas lässt sich leicht ein Algorithums formulieren, der auf Folie 53 skizziert ist. Rekursiv zerlegt er eine gegebene Formel und bestimmt das Anfrageergebnis, alles gemäß der vorstehenden Lemmas.
Um ein gutes Laufzeitverhalten zu erzielen, muss man sehr geschickt bei der Implementierung vorgehen. Entsprechende algorithmische Techniken werden im Bereich der Algorithmen und Datenstrukturen und der Datenbanken entwickelt.
Bei einer einigermaßen geschickten Implementierung und knappen Darstellung des Ergebnisses ergibt sich für unseren Algorithms eine pessimale Laufzeit von O(|ϕ| × |S|b ), wobie die b die maximale Anzahl von freien Variablen in einer
102
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Auswertung von Formeln
Eval(ϕ, n, S)
n
Vorbedingung: ϕ ∈ FPL
(Σ), Σ relational, S endlich
if ϕ = xi = xj then return {(a0 , . . . , an−1 ) ∈ S n : ai = aj }
if ϕ = R(xi0 , . . . , xim−1 ) then
return {(a0 , . . . , an−1 ) ∈ S n : (ai0 , . . . , aim−a ) ∈ R S }
if ϕ = ϕ0 ∨ ϕ1 then
return Eval(ϕ0 , n, S) ∪ Eval(ϕ1 , n, S)
...
if ϕ = ∃xi ψ then
if i < n then
let T = ∅ and T 0 = Eval(ψ, n, S)
for each (a0 , . . . , an−1 ) ∈ T 0 and b ∈ S
let T = T ∪ {(a0 , . . . , ai−1 , b, ai+1 , . . . , an−1 )}
return T
else
...
...
Nachbedingung: return = ϕ(Sn )
Folie 53
Aufgabe 3.11. Sei ΣK = {Kino/2, Film/3, Progr/3} die Signatur für eine (einfache) Kinodatenbank.
Betrachten Sie den folgenden Datenbankzustand K:
T K = { Metro, CinemaxX, Neues Studio, Holtenauer Straße, Wilhelminenstraße, Kaistraße,
Bedtime Stories, Tintenherz, Transporter 3, Willkommen bei den Sch’tis, Adam Shankman, Adam Sandler,
Iain Softley, Eliza Bennett, Olivier Megaton, Jason Statham, Dany Boon, Kad Merad, 15, 17, 18, 19, 20, 23} ,
K
Kino = {(Metro, Holtenauer Straße), (CinemaxX, Kaistraße), (Neues Studio, Wilhelminenstraße)} ,
FilmK = {(Bedtime Stories, Adam Shankman, Adam Sandler), (Tintenherz, Iain Softley, Eliza Bennett),
(Transporter 3, Olivier Megaton, Jason Statham), (Willkommen bei den Sch’tis, Dany Boon, Kad Merad)} ,
K
Progr = {(Metro, Tintenherz, 15), (Metro, Tintenherz, 20), (CinemaxX, Tintenherz, 15), (CinemaxX, Tintenherz, 17),
(Neues Studio, Bedtime Stories, 17), (Neues Studio, Bedtime Stories, 19), (CinemaxX, Bedtime Stories, 15),
(CinemaxX, Bedtime Stories, 18), (CinemaxX, Bedtime Stories, 20), (CinemaxX, Bedtime Stories, 23),
(CinemaxX, Transporter 3, 15), (CinemaxX, Transporter 3, 17), (CinemaxX, Transporter 3, 20),
(CinemaxX, Transporter 3, 23), (Neues Studio, Willkommen bei den Sch’tis, 17),
(Neues Studio, Willkommen bei den Sch’tis, 20), (CinemaxX, Willkommen bei den Sch’tis, 18)} .
103
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Die Kino-Relation enthält (Kino, Strasse)-Paare, die Film-Relation enthält (Filmtitel, Regisseur, Schauspieler)Paare und die Progr-Relation enthält (Kino, Filmtitel, Uhrzeit)-Paare.
Betrachten Sie weiterhin die folgenden drei Formeln:
ϕ0 = Kino(x 0 , x 1 )
ϕ1 = Kino(x 0 , x 1 ) ∧ ∀x 1 ∀x 2 ∀x 3 (Film(x 1 , x 2 , x 3 ) → ∃x 2 Progr(x 0 , x 1 , x 2 ))
³
´
¡
¢
ϕ2 = ∀x 3 ∀x 4 ∃x 0 ∃x 1 ∃x 2 (Film(x 0 , x 1 , x 2 ) ∧ Progr(x 3 , x 0 , x 4 ) → ∃x 1 Progr(x 3 , x 1 , x 4 )
¡
¢
∧ Kino(x 0 , x 1 ) ∨ ∃x 2 Film(x 1 , x 2 , x 0 )
(a) Geben Sie zur Anfrage ϕi die Anfrageergebnisse ϕi (K2 ) für i ∈ {0, 1, 2} an.
(b) Beschreiben Sie umgangssprachlich die Anfragen ϕ0 , ϕ1 und ϕ2 .
Aufgabe 3.12. Formulieren Sie die folgenden umgangssprachlichen Anfragen als ΣK -Formeln:
(a) Finde alle Titel von Filmen, die in mindestens zwei Kinos im Programm sind.
(b) Welche Schauspieler spielen in Filmen, die in einem Kino zu mindestens zwei Zeiten
im Programm sind?
Aufgabe 3.13. Basierend auf verschiedenen Lemmas wurde in der Vorlesung der Auswertungsalgorithmus für prädikatenlogische Formeln skizziert (siehe Folie 53).
Ergänzen Sie den Algorithmus um Pseudo-Code zur Auswertung von
(a) negierten Formeln und
(b) universiell quantifizierten Formeln.
3.5 Äquivalenz und Normalform
In diesem Abschnitt wollen wir – ähnlich wie bei der Aussagenlogik – zunächst über Äquivalenz und dann über Normalformen sprechen. Die Äquivalenz wird in natürlicher Weise
definiert, in völliger Analogie zur Aussagenlogik. Bei den Normalformen ist dies anders:
Da Quantoren der wichtigste Bestandteil prädikatenlogischer Formeln sind, orientieren
sich die grundlegenden Normalformen für prädikatenlogische Formeln an den in ihnen
benutzten Quantoren.
Das Koinzidenzlemma hat gezeigt, dass wir uns bei der Interpretation von prädikatenlogischen Formeln allein an deren freien Variablen orientieren brauchen. Außerdem müssen
wir sowieso alle freien Variablen belegen, um eine prädikatenlogische Formel interpretieren können. Wir können also ohne Weiteres im Folgenden annehmen, dass bei Belegungen
alle prädikatenlogischen Variablen belegt sind. Das führt zu den folgenden Definitionen.
Ist S eine Σ-Struktur und β : VPL → S eine prädikationlogische Variablenbelegung, dann
heißt das Paar (S, β) eine Σ-Interpretation. Steht I für eine solche Σ-Interpretation und ϕ ∈
β
F PL (Σ), dann schreiben wir JϕKI und I |= ϕ für JϕKS bzw. S, β |= ϕ.
Wir sagen, zwei Σ-Formeln ϕ und ψ sind äquivalent, falls I |= ϕ genau dann gilt, wenn
I |= ψ gilt, und zwar für jede Σ-Interpretation I. Wir schreiben in diesem Fall ϕ ≡ ψ.
Beispiel 3.5.
1. Wir betrachten die Formeln x 0 = x 0 und x 1 = x 1 . Beide Formeln sind
äquivalent, denn es gilt offensichtlich JϕKS = 1 für alle Σ-Interpretationen, genau wie JψKS =
1 für alle Σ-Interpretationen I gilt.
104
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
2. Weiterhin betrachten wir ϕ = ∃x 0 P (x 0 ) und ψ = ∃x 1 P (x 1 ). Es gilt für jede Σ-Struktur S
und jede Variablenbelegung β sowie jedes a ∈ S: S, β[a/x 0 ] |= ϕ genau dann, wenn S, β[a/x 1 ] |=
ψ. Aus der Semantik der Prädikatenlogik folgt damit ϕ ≡ ψ.
3. Andererseits gilt ϕ 6≡ ψ, sofern wir ϕ = ∃x 0 ∃x 1 R(x 0 , x 1 ) und ψ = ∀x 0 ∀x 1 R(x 0 , x 1 ) betrachten. Dazu braucht man nur den Graphen
zu betrachten.
Unser erstes Ziel ist es, Regeln aufzustellen, die es uns erlauben, Äquvialenz festzustellen. Denn das ist schwieriger als Nicht-Äquivalenz zu belegen: Im ersten Fall muss man
alle Interpretationen betrachten; im zweiten Fall ist es lediglich erforderlich, eine Interpretation anzugeben, unter der die Formeln unterschiedlich interpretiert werden. Das wurde
auch schon in den obigen Beispielen deutlich.
3.5.1 Aussagenlogische Äquivalenzen
Erinnern wir uns an die Motivation für die Einführung der Aussagenlogik: Wir wollten das
Zusammenspiel von Aussagen (die wahr oder falsch sein können) untersuchen.
Betrachtet man eine feste prädikatenlogische Interpretation, so wird jeder prädikatenlogischen Formel ein Wahrheitswert zugewiesen. Man sollte also annehmen, dass man aus
äquivalenten aussagenlogischen Formeln äquivalente prädikatenlogische Formeln erhält,
wenn man aussagenlogische Variablen durch prädikatenlogische Formeln ersetzt. Genau
das ist auch der Fall, was wir im Folgenden beweisen wollen. Bevor wir aber zum Beweisen
schreiten können, müssen wir einige Vorbereitungen treffen.
Sei Σ eine Signatur. Eine Σ-Formelsubstitution ist ein eine partielle Funktion VAL 99K
F PL (Σ). Sei σ eine Formelsubstitution. Für jede aussagenlogische Formel ϕ ∈ F AL mit vars(ϕ) ⊆
dom(σ) definieren wir das Ergebnis der Anwendung von σ auf ϕ, was wir mit ϕσ bezeichnen. Wir sagen, wie auch in anderen analogen Situationen, σ passt zu ϕ.
Die Definition von ϕσ erfolgt per Induktion:
Basiszuordnung. Wir setzen 0σ = 0, 1σ = 1. Für X i ∈ dom(σ) setzen wir X i σ = σ(X i ). Für
X i 6∈ dom(σ) setzen wir X i σ = X i .
Induktionsschritt. Hier setzen wir (¬ϕ)σ = ¬(ϕσ) und (ϕ◦ψ)σ = (ψσ◦ψσ) für ◦ ∈ {∨, ∧, →
, ↔} und ϕ, ψ ∈ F AL .
Zunächst kann man leicht per Induktion zeigen:
Lemma 3.10. Ist σ eine Σ-Formelsubstitution, die zu einer aussagenlogischen Formel ϕ passt,
so ist ϕσ eine Σ-Formel.
Ohne Beweis.
Natürlich ist es egal, ob man eine Interpretation vor oder nach der Anwendung einer
Formelsubstitution durchführt. Das wollen wir formal fassen. Ist σ eine Formelsubstitution und β eine S-Belegung für eine Σ-Struktur S, so bezeichnet βσ die aussagenlogische
β
Belegung definiert durch (βσ)(X i ) = J X i σKS für i ∈ N.
Jetzt kann man einfach per Induktion zeigen:
105
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Lemma 3.11. Ist σ eine Σ-Formelsubstitution, die zu einer aussagenlogischen Formel ϕ passt,
und ist I = (S, β) eine Σ-Interpretation, dann gilt
JϕσKI = JϕKβσ .
Ohne Beweis.
Daraus ergibt sich sofort:
Satz 3.1. Sind ϕ und ψ aussagenlogische Formeln, zu denen die Σ-Formelsubstitution σ
passt, und gilt ϕ ≡ ψ, so gilt auch ϕσ ≡ ψσ.
Beweis. Sei I = (S, β) eine beliebige Σ-Interpretation. Dann gilt
JϕσKI = JϕKβσ
Lemma 3.11
βσ
= JψK
wg. ϕ ≡ ψ
= JψσKI
Lemma 3.11 .
Daraus folgt die Behauptung.
Beispiel 3.6. Wir können also zum Beispiel ∃x 0 P (x) ∨ (∃x 1 R(x 0 ) ∧ ¬x 0 = x 1 ) ≡ (¬x 0 = x 1 ∧
∃x 1 R(x 0 )) ∨ ∃x 0 P (x) aus dem obigen Lemma schließen, denn wir wissen aus der Aussagenlogik X 0 ∨ (X 1 ∧ X 2 ) ≡ (X 2 ∧ X 1 ) ∨ X 0 .
3.5.2 Ersetzungen
In der Aussagenlogik haben wir häufig das 2. Ersetzungslemma benutzt, um zu zeigen, dass
man Teilformeln durch äquivalente Formeln ersetzen darf, wenn man lediglich an Äquivalenz interessiert ist. Das gilt auch für die Prädikatenlogik. Wir wollen allerdings darauf
verzichten, dies zu formalisieren. Stattdessen geben wir die beiden Lemmas an, die wir in
diesem Zusammenhang später benötigen.
Lemma 3.12. Sind ϕ, ψ, χ ∈ F PL (Σ) und gilt ϕ ≡ χ, so gelten auch
ϕ∨ψ ≡ χ∨ψ ,
ϕ∧ψ ≡ χ∧ψ .
Beweis. Wir beweisen die Behauptung für ∨; der andere Fall wird analog bewiesen.
Unter den beschriebenen Annahmen können wir für eine beliebige Σ-Interpretation I
schließen:
I |= ϕ ∨ ψ gdw. I |= ϕ oder I |= ψ
Semantik von ∨
gdw. I |= χ oder I |= ψ
Annahme
gdw. I |= χ ∨ ψ
Semantik von ∨.
Daraus ergibt sich die Behauptung.
Lemma 3.13. Es seien ϕ, ψ ∈ F PL (Σ), i ∈ N und es gelte ϕ ≡ ψ. Dann gilt auch
∃x i ϕ ≡ ∃x i ψ ,
∀x i ϕ ≡ ∀x i ψ .
Beweis. Ein Beweis kann wie im Fall des vorigen Lemma geführt werden.
106
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
3.5.3 Quantorenbezogene Äquivalenzen
Die im letzten Abschnitt diskutierten Regeln für den Nachweis der Äquivalenz auf der Basis
von aussagenlogischen Äquivalenzen waren unmittelbar einsichtig. Interessanter sind jedoch diejenigen, die mit Quantoren zu tun haben. Wir beginnen mit einem sehr einfachen
Lemma.
Lemma 3.14 (Dualität der Quantoren). Es sei ϕ ∈ F PL (Σ) und i ∈ N. Dann gelten
¬∃x i ϕ ≡ ∀x i ¬ϕ ,
¬∀x i ϕ ≡ ∃x i ¬ϕ .
Beweis. Wir beweisen nur die erste Äquivalenz; die zweite kann analog bewiesen werden.
Sei I = (S, β) eine Σ-Interpretation. Einerseits gilt dann gemäß der Semantik der Prädikatenlogik I |= ¬∃x i ϕ genau dann, wenn S, β[a/x i ] |= ϕ für kein a ∈ S gilt. Das kann man aber
auch wie folgt formulieren: Für jedes a ∈ S gilt S, β[a/x i ] 6|= ϕ. Letzteres bedeutet ∀x i ¬ϕ
gemäß der Semantik der Prädikatenlogik.
Das zweite wichtige Lemma behandelt das Zusammenspiel von Quantoren und Konjunktion sowie Disjunktion.
Lemma 3.15. Es seien ϕ, ψ ∈ F PL (Σ), i ∈ N und x i ∉ free(ϕ). Dann gilt
ϕ ∨ ∃x i ψ ≡ ∃x i (ϕ ∨ ψ) ,
ϕ ∨ ∀x i ψ ≡ ∀x i (ϕ ∨ ψ) ,
ϕ ∧ ∃x i ψ ≡ ∃x i (ϕ ∧ ψ) ,
ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) .
Beweis. Wir beweisen nur den ersten Fall. Die Beweise für die anderen Fälle sind analog.
Sei I = (S, β) eine Σ-Interpretation. Wir erhalten I |= ϕ ∨ ∃x i ψ genau dann, wenn I |= ϕ
gilt oder wenn es ein a ∈ S gibt, für das S, β[a/x i ] |= ψ gilt. Nun gilt für jedes a ∈ S aufgrund
des Koinzidenzlemmas I |= ϕ genau dann, wenn S, β[a/x i ] |= ϕ gilt. Also gilt die Aussage im
vorletzten Satz genau dann, wenn es ein a ∈ S gibt, für das S, β[a/x i ] |= ϕ oder S, β[a/x i ] |=
ψ gilt. Letzteres ist das gleiche wie I |= ∃x i (ϕ ∨ ψ).
Abschließend erwähnen wir noch ein Lemma über Quantoren, das häufig sehr nützlich
ist, was wir aber in dem nächsten Abschnitt nicht nutzen werden.
Lemma 3.16. Es seien ϕ, ψ ∈ F PL (Σ), i ∈ N. Dann gelten
∃x i ϕ ∨ ∃x i ψ ≡ ∃x i (ϕ ∨ ψ) ,
∀x i ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) .
Beweis. Auch hier beweisen wir nur den ersten Fall; der zweite Fall ist dual zum ersten.
Unter den gegebenen Bedingungen gilt für jede Σ-Interpretation I = (S, β): I |= ∃x i ϕ ∨
∃x i ψ genau dann, wenn es a ∈ S gibt, so dass S, β[a/x i ] |= ϕ gilt, oder wenn es b ∈ S gibt, so
dass S, β[b/x i ] |= ψ gilt. Letzteres ist gleichbedeutend damit, dass es ein c ∈ S gibt, so dass
S, β[c/x i ] |= ϕ oder S, β[c/x i ] |= ψ gilt. Das wiederum ist gleichbedeutend mit I |= ∃x i (ϕ ∨
ψ).
Es stellt sich die Frage, ob die Äquivalenzen im letzten Lemma auch für die Kombinationen ∀-∨ und ∃-∧ gelten. Das ist nicht der Fall, wie man sich leicht überlegen kann.
107
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Beispiel 3.7. Man betrachte ∃x 0 P (x 0 )∧∃x 0 ¬P (x 0 ). Offensichtlich gilt ∃x 0 P (x 0 )∧∃x 0 ¬P (x 0 ) 6≡
∃x 0 (P (x 0 )∧¬P (x 0 )), denn die zweite Formel gilt in keiner Struktur, während man leicht eine
Struktur finden kann, in der die erste Formel gilt.
Aufgabe 3.14. Sei Σ = {R/1, P /1,Q/2} eine Signatur.
Sind die folgenden Formelpaare tatsächlich äquivalent? Begründen Sie Ihre Aussage.
(a) ∀x 1 ∃x 2 x 1 = x 2 ≡ ∃x 2 ∀x 1 x 1 = x 2
(b) ∀x 1 ∃x 2 ¬x 1 = x 2 ≡ ∀x 2 ¬∀x 1 x 1 = x 2
(c) ∀x 1 (R(x 0 ) ∧Q(x 0 , x 1 )) ≡ R(x 0 ) ∧ ∀x 1 Q(x 0 , x 1 )
(d) ∀x 1 (R(x 1 ) ↔ P (x 1 )) ≡ ∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 )
(e) ∃x 1 (P (x 1 ) ↔ R(x 1 )) ≡ ∃x 1 P (x 1 ) ↔ ∃x 1 R(x 1 )
Aufgabe 3.15. Sei Σ eine Signatur und ϕ ∈ F PL (Σ). Beweisen Sie, dass gilt:
∀x 0 ∀x 1 ϕ ≡ ∀x 1 ∀x 0 ϕ
3.5.4 Pränexe Normalform
Die wichtigste Normalform für prädikatenlogische Formeln trennt die Quantifizierungen
von den anderen Teilen einer Formel. Das ist sinnvoll, weil wichtige Eigenschaften einer
Formel häufig von ihrer Quantorenstruktur abhängen und man diese gut durch die Trennung der Quantoren vom Rest der Formel erkennen kann.
Eine prädikatenlogische Formel heißt quantorenfrei, wenn in ihr keine Quantoren auftreten. Die Menge dieser bezeichnen wir mit QF(Σ). Die Menge der prädikatenlogischen
Σ-Formeln in pränexer Normalform, die wir mit PNF(Σ) bezeichnen, ist induktiv wie folgt
definiert.
Basismenge. Alle quantorenfreien Σ-Formeln sind in pränexer Normalform. Sie haben
Quantorenrang 0.
Induktionsregeln. Ist i ∈ N und ϕ ∈ PNF(Σ), so gilt ∃x i ϕ ∈ PNF(Σ) sowie ∀x i ϕ ∈ PNF(Σ).
Ist n der Quantorenrang von ϕ, so ist n + 1 der Quantorenrang von ∃x i ϕ und ∀x i ϕ. Den
Quantorenrang einer Formel ϕ in pränexer Normalform bezeichnen wir mit rank(ϕ).
Mit anderen Worten: Eine Formel in pränexer Normalform ist von der Form
Q 0 x i 0 Q 1 x i 1 . . .Q n−1 x i n−1 ψ ,
(3.1)
wobei ψ eine quantorenfreie Formel ist und jedes Q j ein All- oder ein Existenzquantor ist.
Dann heißt Q 0 x i 0 Q 1 x i 1 . . .Q n−1 x i n−1 der Quantorenpräfix der Formel und {x i 0 , . . . , x i n−1 } die
Menge der quantifizierten Variablen, die wir mit quant(ϕ) bezeichnen, sofern ϕ für die Formel steht.
Beispiel 3.8. Die Formel ∃x 0 ∀x 1 (P (x 0 ) ∧ R(x 0 , x 1 )) ist in pränexer Normalform, während
die Formel ∃x 0 (P (x 0 ) ∧ ∀x 1 R(x 0 , x 1 )) nicht in pränexer Normalform ist. Beide Formeln sind
jedoch äquivalent.
Unser Ziel ist es, zu jeder prädikatenlogischen Formel eine äquivalente Formel in pränexer Normalform zu finden. Das benötigt einige Vorbereitung.
108
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Beispiel 3.9. Sei ∃x 0 P (x)∧∃x 0 ¬P (x 0 ). Es ist leicht einzusehen, dass diese Formel äquivalent
zu ∃x 0 ∃x 1 (P (x 0 ) ∧ ¬P (x 1 )) ist und einem kaum Alternativen zur Verfügung stehen.
Das letzte Beispiel zeigt, dass wir – sofern wir eine induktive Vorgehensweise verfolgen
wollen – auch Umbebenennungen durchführen müssen: Die gegebene Formel hat zwei
Teilformeln, in denen dieselbe Variable auftritt. In der Formel in pränexer Normalform sind
beide Teilformeln kombiniert worden, allerdings ist die Rolle der Variablen in der zweiten
Teilformel von einer anderen Variablen übernommen worden.
Unter einer Umbenennung wollen wir eine partielle Funktion π : VPL 99K VPL verstehen,
die eine Permutation ist. Ist eine solche Funktion und eine prädikatenlogische Formel ϕ gegeben, so ist ϕπ die Formel, die aus ϕ dadurch entsteht, dass man jedes Vorkommen einer
Variablen x i ∈ dom(π) durch π(x i ) ersetzt. Eine präzise induktive Definition folgt später.
Beispiel 3.10. Ist ϕ = ∀x 0 ∃x 1 R(x 0 , x 1 ) und π gegeben durch π(x 0 ) = x 2 und π(x 2 ) = x 0 – es
werden also einfach x 0 und x 2 verstauscht –, dann ist ϕπ = ∀x 2 ∃x 1 R(x 2 , x 1 ).
Die Wirkung einer Umbenennung auf eine Belegung ist schnell definiert. Ist π eine Umbenennung und β eine S-Belegung, so ist βπ die S-Belegung, für die gilt:
(
β(π(x i )) , falls x i ∈ dom(π),
(βπ)(x i ) =
β(x i ) ,
sonst.
Lemma 3.17. Ist ϕ eine prädikatenlogische Σ-Formel, π eine Umbenennung und (S, β) eine
Σ-Interpretation, so gilt
β
βπ
JϕπKS = JϕKS .
Um dieses Lemma beweisen zu können, brauchen wir eine exakte Definition der Wirkung einer Umbenennung. Deshalb vollziehen wir im Beweis auch die Definition.
Beweis. Beweis per Induktion mit gleichzeitiger Definition der Wirkung einer Umbenennung.
Als Vorbereitung definieren wir t π für jeden Σ-Term t und jede Umbenennung π. Gleichβπ
β
zeitig zeigen wir für jede Σ-Interpretation I, dass Jt KS = Jt πKS gilt.
Interessant ist nur der Fall t = x i . Wir führen eine Fallunterscheidung durch. Ist x i ∈
dom(π), so gilt t π = π(x i ). Daraus erhalten wir dann:
βπ
βπ
Jt KS = Jx i KS
= (βπ)(x i )
Semantik der Prädikatenlogik
= β(π(x i ))
Definition von βπ
β
= Jπ(x i )KS
β
= Jt πKS .
Semantik der Prädikatenlogik
Im Induktionsbeweis für die Formeln ist der interessante Fall der der Quantoren. Wir
behandeln den Existenzquantor. Sei also ϕ = ∃x i ψ. Wir führen wieder eine Fallunterscheidung durch.
109
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
1. Fall, x i ∈ dom(π). Wir setzen ϕπ = ∃π(x i )ψπ, wobei wir annehmen dürfen, dass ψπ
bereits definiert wurde. Jetzt können wir wie folgt argumentieren: Es gilt S, βπ |= ϕ genau
dann, wenn es ein a ∈ S mit S, (βπ)[a/x i ] |= ψ gilt. Sei j ∈ N beliebig. Dann gilt


falls i = j ,

a ,
(βπ)[a/x i ](x j ) =
β(π(x j )) ,


β(x ) ,
j
falls x j ∈ dom(π) und i 6= j ,
sonst.
Also gilt (βπ)[a/x i ] = β[a/x i ]π. Mit anderen Worten, die obige Bedingung ist erfüllt genau
dann, wenn es ein a ∈ S mit S, β[a/x i ]π |= ψ gilt. Aus der Induktionsvoraussetzung erhalten
wir, dass letzters gleichbedeutend mit S, β[a/x i ] |= ψπ ist, so dass wir schließlich S, β |=
∃x i ψ erhalten.
Der schwierigste Teil bei der Umwandlung von Formeln in pränexe Normalform betrifft
die Verbindung von Formeln in pränexer Normalform durch Disjunktion oder Konjunktion. Ein entsprechendes Lemma ziehen wir vor:
Lemma 3.18. Sind ϕ, ψ ∈ PNF(Σ), so gibt es χ∨ , χ∧ ∈ PNF(Σ) mit
ϕ ∨ ψ ≡ χ∨ ,
ϕ ∧ ψ ≡ χ∧ .
Beweis. Der Beweis erfolgt per Induktion über rank(ϕ) + rank(ψ); wir beweisen wie üblich
nur den Fall für ∨.
Induktionsanfang, rank(ϕ) + rank(ψ) = 0. Dann gilt ϕ, ψ ∈ QF(Σ) und wir können χ∨ =
ϕ ∨ ψ wählen.
Induktionsschritt. Seien ϕ, ψ ∈ QF(Σ), i ∈ N und Q ∈ {∃, ∀}. Wir müssen zeigen, dass es zu
Qx i ϕ ∨ ψ und ϕ ∨ Qx i ψ äquivalente Formeln in pränexer Normalform gibt. Wir beschränken uns auf ∃x i ϕ ∨ ψ, der andere Fall kann analog behandelt werden.
Sei j derart, dass x j ∉ vars(ϕ) ∪ vars(ψ). Wir betrachten die Umbenennung π, bei der x i
und x j vertauscht werden, und setzen ϕ0 = ϕπ.
Wir behaupten zunächst, dass ∃x i ϕ ≡ ∃x j ϕ0 gilt. Für jede Σ-Interpretation (S, β) und jedes a ∈ S gilt:
S, β[a/x i ] |= ϕ gdw.
gdw.
gdw.
S, β[a/x i , a/x j ] |= ϕ
S, β[a/x j , a/x i ] |= ϕ
S, β[a/x j ] |= ϕ
0
da x j ∉ free(ϕ),
0
Lemma 3.17,
da x i ∉ free(ϕ)0 .
Bei der Anwendung von Lemma 3.17 wird die oben definierte Umbenennung π genutzt.
Aus der Semantik des Existenzquantors folgt nun die Behauptung.
Nach der Induktionsannahme gibt es eine zu ϕ0 ∨ψ äquivalente Formel in pränexer Normalform, etwa χ.
Insgesamt ergibt sich:
∃x i ϕ ∨ ψ ≡ ∃x j ϕ0 ∨ ψ
Lemma 3.12
0
≡ ∃x j (ϕ ∨ ψ)
Lemma 3.15
≡ ∃x j χ
Lemma 3.13 .
Es bleibt noch zu bemerken, dass die letzte Formel in pränexer Normalform ist.
110
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Jetzt sind wir bereit für den Beweis des gewünschten Satzes:
Satz 3.2. Zu jeder Formel ϕ ∈ F PL (Σ) gibt es eine äquivalente Formel ψ ∈ PNF(Σ), also in
pränexe Normalform.
Beweis. Per Induktion definieren wir zwei Funktion 0 : F PL (Σ) → PNF(Σ) und : F PL (→)PNF(Σ),
so dass für alle ϕ ∈ F AL sowohl ϕ ≡ ϕ0 wie auch ¬ϕ ≡ ϕ gilt.
Induktionsanfang. Ist ϕ eine atomare Formel, so können wir ϕ0 = ϕ und ϕ = ¬ϕ wählen.
Induktionsschritt. Ist ϕ = ¬ψ, so können wir ϕ0 = ψ und ϕ = ψ0 wählen, denn es gilt
¬¬ψ ≡ ψ und ¬¬ϕ ≡ ϕ nach Satz 3.1.
Ist ϕ = ψ ∨ χ, so können wir eine Formel für ϕ0 wählen, deren Existenz nach Lemma 3.18
garantiert ist. Für ϕ wählen wir eine Formel, die nach Lemma 3.18 für ψ∧χ existiert. Dabei
benutzen wir Lemma 3.12.
Ist ϕ derart, dass ϕ = ψ ∧ χ gilt, gehen wir analog vor. Konditional und Bikonditional
können durch Umschreibung behandelt werden.
Ist ϕ so, dass ϕ = ∃x i ϕ gilt, so können wir nach Lemma 3.13 einfach ∃x i ϕ0 wählen. Außerdem können wir ϕ = ∀x i ϕ wählen, was durch Lemma 3.14 gerechtfertigt ist.
Die obigen Lemmas, genauer: deren Beweise, kann man nutzen, um einen Algorithmus
für die Umwandlung in pränexe Normalform zu nutzen. Das Ergebnis ist auf den Folien 54
und 55 zu sehen.
Aufgabe 3.16. Sei Σ = {R/1, P /1} eine Signatur.
Betrachten Sie die prädikatenlogische Formel ϕ = ∀x 0 ∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))∨∀x 3 ∃x 0 ¬P (x 0 ).
Verwenden Sie den Algorithmus aus der Vorlesung, um für ϕ eine äquivalente prädikatenlogische Formel in pränexer Normalform zu finden.
Geben Sie eine allgemeine umgangssprachliche Beschreibung an, wie eine Formel von
dem Algorithmus umgeformt wird.
Aufgabe 3.17. (a) In der Vorlesung wurde der PNF-Algorithmus für prädikatenlogische
Formeln skizziert (siehe Folien 54 und 55).
Vervollständigen Sie den Pseudo-Code.
(b) Sei Σ = {R/1, P /1,Q/2} eine Signatur. Bringen Sie folgende Formeln in die pränexe
Normalform.
1) R(x 0 ) ∧ ¬∃x 0Q(x 0 , x 0 )
2) ¬∀x 0 R(x 0 ) ∧ ∀x 0 P (x 0 )
3) ¬∀x 0 R(x 0 ) ∧ ∀x 1 (P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 ))
4) ¬∀x 0 R(x 0 ) → ∀x 1 (P (x 1 ) ↔ ∃x 0Q(x 0 , x 1 ))
3.6 Das Gültigkeitsproblem
Genau wie in der Aussagenlogik sagen wir, dass eine prädikatenlogische Σ-Formel allgemeingültig ist, wenn I |= ϕ für alle Σ-Interpretationen I gilt. Erfüllbar heißt eine solche Formel, wenn es eine Σ-Interpretation I gibt, für die I |= ϕ gilt.
Also können wir festhalten:
111
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Umwandlung in PNF
PNF(ϕ)
Vorbedingung: ϕ ∈ FPL (Σ).
if ϕ atomar
return ϕ
if ϕ = ¬ψ then
return NegPNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return
DisjPNF(PNF(ϕ0 ), PNF(ϕ1 ))
if ϕ = ϕ0 ∧ ϕ1 then
return
KonjPNF(PNF(ϕ0 ), PNF(ϕ1 ))
...
if ϕ = ∃xi ψ then
return ∃xi PNF(ψ)
if ϕ = ∀xi ψ then
return ∀xi PNF(ψ)
Nachbedingung: return
∈ PNF (Σ) und return ≡ ϕ.
NegPNF(ϕ)
Vorbedingung: ϕ ∈ FPL (Σ).
if ϕ atomar
return ¬ϕ
if ϕ = ¬ψ then
return PNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return
KonjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 ))
...
if ϕ = ∃xi ψ then
return ∀xi NegPNF(ψ)
if ϕ = ∀xi ψ then
return ∃xi NegPNF(ψ)
Nachbedingung: return ∈ PNF (Σ) und
return ≡ ¬ϕ.
Folie 54
Bemerkung 3.1. Eine prädikatenlogische Formel ϕ ist allgemeingültig genau dann, wenn
¬ϕ nicht erfüllbar ist.
Wir können jede Formel genau einer der drei folgenden Klassen zuordnen:
• nicht erfüllbar: es gibt keine erfüllende Interpretation,
• erfüllbar, aber nicht allgemeingültig: es gibt eine erfüllende Interpretation, aber auch
eine nicht erfüllende,
• allgemeingültig: jede Interpretation ist erfüllend.
Beispiele sind auf Folie 56 zu finden.
Wir wollen auf die Suche nach einem Entscheidungsverfahren für Allgemeingültigkeit
gehen. Die Anwort wird sein, dass es ein solches nicht gibt. Dazu müssen wir zeigen, dass
kein Algorithmus dieses Problem zu entscheiden vermag. Was wiederum heißt, dass wir
gegen alle möglichen Algorithmen argumentieren müssen. Das ist nicht einfach; man benötigt einen Hintergrund aus der Berechenbarkeitstheorie, den wir hier wegen seines Umfangs nicht zur Verfügung stellen können. Wir benutzen deshalb ein klassisches Ergebnis
aus der Berechenbarkeitstheorie.
112
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Umwandlung in PNF, Teil II
DisjPNF(ϕ, ψ)
Vorbedingung: ϕ, ψ ∈ PNF (Σ).
if ϕ, ψ ∈ QF (Σ)
return ϕ ∨ ψ
if ϕ ∈ QF (Σ)
let (ϕ, ψ) = (ψ, ϕ)
if ϕ = ∃xi ϕ0
let V = vars(ϕ) ∪ vars(ψ)
let j = max{k : xk ∈ V } + 1
let ϕ0 = Swap(i, j, ϕ)
let χ = DisjPNF(ϕ0 , ψ)
return ∃xj χ
...
Nachbedingung: return
∈ PNF (Σ) und return ≡ ϕ ∨ ψ.
Swap(i, j, ϕ)
Vorbedingung: i, j ∈ N,
ϕ ∈ FPL (Σ).
...
Nachbedingung: return = ϕπ
mit π(xi ) = xj und π(xj ) = xi .
Folie 55
Aufgabe 3.18. Welche der Formeln sind unerfüllbar, erfüllbar oder allgemeingültig? Begründen Sie Ihre Aussage.
(a) ∀x 1 ∀x 2 ∃x 3 (¬x 1 = x 2 → (x 1 < x 2 ∧ x 2 < x 3 ))
(b) ∃x 1 ∀x 2 ¬x 1 = x 2
(c) ∃x 0 f (x 0 ) = x 0
(d) ∀x 1 ∀x 2 ∀x 3 ((x 1 = x 2 ∧ x 2 = x 3 ) → x 1 = x 3 )
Aufgabe 3.19. Welche der Formeln sind unerfüllbar, erfüllbar oder allgemeingültig? Begründen Sie Ihre Aussage.
(a) ∃x 0 f (x 0 ) = g (x 0 )
(b) ∃x 1 ∀x 2 (R(x 1 ) → R(x 2 ))
(c) ∀x 1 ∃x 2 (R(x 1 ) → R(x 2 ))
(d) ∀x 0 ∀x 1 (R(x 0 , x 1 ) ↔ R(x 1 , x 0 )) ∧ ∃x 0 ∀x 1 (¬R(x 0 , x 1 ) ∧ R(x 1 , x 0 ))
113
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Erfüllbarkeit und Gültigkeit
unerfüllbar
Jeder Knoten besitzt keine Nachbarn und es existiert eine Kante:
∀x0 ¬∃x1 R(x0 , x1 ) ∧ ∃x0 ∃x1 R(x0 , x1 )
erfüllbar, aber nicht allgemeingültig
Jeder Knoten besitzt keine Nachbarn:
ϕ = ∀x0 ∀x1 ¬R(x0 , x1 )
|= ϕ
6|= ϕ
allgemeingültig
Wenn es eine Kante gibt, so gibt es eine Schleife oder zwei Knoten:
∃x0 ∃x1 R(x0 , x1 ) → ∃x0 R(x0 , x0 ) ∨ ∃x0 ∃x1 (x0 6= x1 )
Folie 56
3.6.1 Das Postsche Korrespondenzproblem
Das Postsche Korrespondenzproblem (PCP), genauer: eine Variante, ist das folgende Problem. Eine Instanz des Problems ist eine Folge F = p 0 , . . . , p n von Paaren p i = (u i , v i ), deren Komponenten, u i und v i , jeweils nicht leere Zeichenreihen über dem Alphabet A =
{a, b, . . . , h} sind. Gesucht ist eine Folge i 0 , . . . , i r von Zahlen i j ≤ n, die folgende Eigenschaft
besitzt:
ui 0 ui 1 . . . ui r = v i 0 v i 1 . . . v i r .
(3.2)
Eine solche Folge von Indizes heißt Lösungsfolge.
Wir könnnen die Frage, ob eine Instanz positiv ist, auch anders formulieren. Wir nennen
die Paare (u i , v i ) Ausgangspaare. Die Menge aller erzeugbaren Paare ist induktiv wie folgt
definiert:
(i) Jedes Ausgangspaar ist ein erzeugbares Paar.
(ii) Ist (u, v) ein erzeugbares Paar und i ≤ n, so ist (uu i , v v i ) auch ein erzeugbares Paar.
Dann gilt:
114
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Bemerkung 3.2. Eine PCP-Instanz ist positiv genau dann, wenn es unter den erzeugbaren
Paaren eines der Form (u, u) gibt.
Beispiele hierzu sind auf Folie 57 gegeben.
Das Postsche Korrespondenzproblem
positive Instanz
Paare: (bab,a), (ha,ba), (bbb,a), (hba, hb), (cdf, b), (a, bcdfbaba)
Lösungsfolge: 3, 0, 4, 0, 5
Lösungswort: (hbababcdfbaba, hbababcdfbaba)
h
b
a
b
a
b
c
d
f
b
a
b
a
h
b
a
b
a
b
c
d
f
b
a
b
a
negative Instanz
Paare: (bab,ba), (a,b), (c,d)
Nur Anfang mit (bab,ba) möglich. Dann Fortsetzung nur durch
(a,b). Dann ist das eine Teilergebnis immer um eins länger als das
andere.
Folie 57
Der Satz, den wir im weiteren Verlauf nutzen wollen, ist nun der folgende.
Satz 3.3. Das Postsche Korrespondenzproblem ist nicht entscheidbar.
Mit anderen Worten, es gibt keinen Algorithmus, der zu jeder Instanz des PCP richtig
erkennt, ob es sich um eine positive oder negative Instanz handelt!
Wir wollen mit Hilfe des obigen Satzes nachweisen, dass das Gültigkeitsproblem für prädikatenlogische Formeln unentscheidbar ist. Die Idee ist die folgende: Können wir zeigen,
dass es einen Algorithmus A gibt, der zu jeder Instanz (u, v) eine prädikatenlogische Formel
ϕu,v liefert, die genau dann gültig ist, wenn (u, v) lösbar ist, dann kann es keinen Algorithmus geben, der das Gültigkeitsproblem löst. Gäbe es einen solchen, etwa B, so könnten wir
einen Algorithmus für das PCP konstruieren:
1. Gegeben F = p 0 , . . . , p n , bestimme ϕF gemäß A.
115
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
2. Nutze B, um die Lösung (»ja« oder »nein«) zu ϕF bestimmen.
(Diese ist auch die Antwort auf die Frage nach der Lösbarkeit von F .)
3. Gib die gefundene Lösung aus.
Wir brauchen uns also nur noch Gedanken darüber zu machen, wie wir auf eine algorithmische Weise von F zu ϕF kommen. Eine solche Transformation nennt man eine Reduktion vom Postschen Korrespondenzproblem auf das Gültigkeitsproblem.
3.6.2 Reduktion des PCP auf das Gültigkeitsproblem
Wir müssen uns zunächst für eine geeignete Signatur ΣPCP entscheiden. Um das zu tun,
sollten wir eine Vorstellung davon haben, was wir uns unter den Elementen der Trägermengen vorstellen. Im Zusammenhang des PCP erscheint es sinnvoll, sich unter den Elementen der Trägermenge Wörter vorzustellen. Dann bietet es sich an, in der Signatur Symbole vorzusehen, mit deren Hilfe wir ein Wort um einen bestimmten Buchstaben verlängern
können. Deshalb nehmen wir die Funktionssymbole f a //1, . . . , f h //1 in ΣPCP auf. Unter dem
Term
f a ( f b ( f a ( f h (x))))
stellen wir uns also das Element der Trägermenge vor, das aus dem Element, das mit x
belegt ist, dadurch entsteht, das wir die Zeichenreihe haba anhängen.
Außerdem möchten wir auf das leere Wort zugreifen. Dafür fügen wir die Konstante e zur
Signatur hinzu. Schließlich interessieren wir uns für die erzeugbaren Paare. Dafür werden
wir ein zweistelliges Prädikat P /2 nutzen.
Insgesamt erhalten wir
ΣPCP = {e, P /2, f a //1, . . . , f h //1} .
Zu jeder PCP-Instanz F gibt es eine besonders interessante ΣPCP -Struktur, die wir mit SF
bezeichnen wollen:
• S F = Menge der Zeichreihen über A,
• e SF = leere Zeichenreihe,
S
• f a F (u) = ua für jede Zeichenreihe u und jedes a ∈ A,
• P SF = {(u, v) : (u, v) ist erzeugbares Paar}.
Diese Struktur besitzt offensichtliche Eigenschaften, zu deren Formulierung wir eine Abkürzung nutzen wollen. Ist u = a 0 . . . a m mit a i ∈ A, so stehe f u (·) für
f an ( f an−1 (. . . f a0 (t ))) .
Lemma 3.19. Sei F eine PCP-Instanz.
1. Sei
ϕ(i)
F =
^
P ( f ui (e), f v i (e)) .
i ≤n
Dann gilt SF |= ϕ(i)
F .
116
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
2. Sei
ϕ(ii)
F = ∀x 0 ∀x 1 (P (x 0 , x 1 ) →
^
P ( f ui (x 0 ), f v i (x 1 ))) .
i ≤n
Dann gilt SF |= ϕ(ii)
F .
3. Die Instanz F ist positiv genau dann, wenn SF |= ∃x 0 P (x 0 , x 0 ) gilt.
Beweis. Die Behauptungen lassen sich leicht unter Benutzung der Definition der erzeugbaren Paare und Bemerkung 3.2 beweisen. Nützlich ist es, vorab zu zeigen, dass für alle
β[u/x 0 ]
Zeichenreihen u und v über A gilt: J f v (x 0 )KS
= uv gilt. Das wiederum beweist man per
F
Induktion über die Länge von v nach, weil – streng gesehen – f v per Induktion über die
Länge von v definiert wird.
Nun können wir alles zusammensetzen:
(ii)
ϕF = ϕ(i)
F ∧ ϕF → ∃x 0 P (x 0 , x 0 ) .
Lemma 3.20. Ist F eine PCP-Instanz, so sind die beiden folgenden Aussagen äquivalent:
(A) F ist eine positive Instanz.
(B) ϕF ist allgemeingültig.
Beweis. Aus (A) folgt (B). Sei F eine positive PCP-Instanz. Wir müssen zeigen, dass dann
jede ΣPCP -Interpretation S die Formel ϕF erfüllt. Mit anderen Worten: Wir nehmen an, dass
(ii)
S |= ϕ(i)
F und S |= ϕF gelten, und zeigen, dass dann auch S |= ∃x 0 P (x 0 , x 0 ) gilt.
Wir behaupten zunächst, dass S |= P ( f u (e), f v (e)) für alle erzeugbaren Paare (u, v) gilt.
Diese Behauptung lässt sich leicht per Induktion zeigen: Den Induktionsanfang beweist
man mit Hilfe von S |= ϕ(i)
F , den Induktionsschritt führen wir im Detail aus.
Die Induktionsannahme ist, dass (u, v) ein erzeugbares Paar ist und S |= P ( f u (e), f v (e))
gilt. Außerdem sei (u i , v i ) ein beliebiges Ausgangspaar. Wir setzen nun u 0 = J f u (e)KS und
v 0 = J f v (e)KS . Dann ergibt sich aus der Induktionsannahme S, β[u 0 /x 0 , v 0 /x 1 ] |= P (x 0 , x 1 ).
0
0
Damit ergibt sich aus ϕ(i)
F und der Semantik der Prädikatenlogik, dass S, β[u /x 0 , v /x 1 ] |=
P ( f ui (x 0 ), f v i (x 1 )) gilt. Daraus ergibt sich mit dem Substitutionslemma für quantorenfreie
Formeln (später!), dass S |= P ( f ui ( f u (e)), f v i ( f v (e))) gilt. Daraus folgt die Behauptung, denn
f ui ( f u (e)) = f uui (e) und f v i ( f v (e)) = f v v i (e).
Aus Bemerkung 3.2 erhalten wir, dass es eine Zeichenreihe u gibt, für die (u, u) ein erzeugbares Paar ist. Es gilt also S |= P ( f u (e), f u (e)), das heißt, S, β[J f u (e)KS /x 0 ] |= P (x 0 , x 0 ).
Daraus ergibt sich S |= ∃x 0 P (x 0 , x 0 ).
Aus (B) folgt (A). Folgt direkt aus Lemma 3.19.
Abschließend müssen wir uns nur noch überlegen, dass es einen Algorithmus gibt, der
zu gegebener PCP-Instanz F die Formel ϕF bestimmt. Dass dies gilt, ist aber offensichtlich.
Wir können also festhalten:
Folgerung 3.1. Das Gültigkeitsproblem für prädikatenlogische Formeln (ohne Gleicheiheit!)
in der Signatur ΣPCP ist unentscheidbar.
117
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Daraus ergibt sich mit Bemerkung 3.1, dass auch das Erfüllbarkeitsproblem nicht entscheidbar ist:
Folgerung 3.2. Das Erfüllbarkeitsproblem für prädikatenlogische Formeln (ohne Gleichheit!) in der Signatur ΣPCP ist unentscheidbar.
Aufgabe 3.20. Betrachten Sie die beiden folgenden PCP-Instanzen:
F 1 = (ac, ab), (ba, bc), (abb, ac)
F 2 = (aaaa, aaa), (aa, aaaaa)
Geben Sie zu den beiden Instanzen jeweils die entsprechende prädikatenlogische Formel
ϕFi an.
Überlegen Sie sich, ob die PCP-Instanzen eine Lösung besitzen. Konstruieren Sie in beiden Fällen Modelle der Formel. Finden Sie gegebenenfalls eine Struktur, die kein Modell
ist.
3.6.3 Termsubstitutionen
Sei Σ eine Signatur. Eine partielle Funktion σ : VPL 99K T (Σ) heißt Σ-Termsubstitution. Diese
sind komplizierter zu handhaben, als die Substitutionen, die wir bisher behandelt haben,
wie die beiden folgenden Beispiele zeigen.
Beispiel 3.11. Wir betrachten die Formel ∃x 0 x 0 = c, die offensichtlich allgemeingültig ist.
Wenn wir nun x 0 durch s(c) ersetzen, so erhalten wir ∃x 0 s(c) = c, was sicherlich keine allgemeingültige Formel ist. Es gibt sogar Strukturen, in denen ϕ0 unter keiner Belegung wahr
ist, so dass wir nicht hoffen können, ein Substitutionslemma der üblichen Art beweisen zu
können.
Der springende Punkt im vorigen Beispiel ist der, dass eine Variable, die im Wirkungsbereich eines Quantors liegt, ersetzt wurde.
Beispiel 3.12. Wir betrachten die Formel ∃x 1 ¬(x 1 = x 0 ). Ersetzt man in dieser x 0 durch
x 1 , so entsteht eine nicht erfüllbare Aussage, während die ursprüngliche Formel in allen
Interpretation gilt, in denen die Struktur mindestens zwei Elemente besitzt.
Hier ist der springende Punkt der, dass eine Variable in einem Substituenten in den Wirkungsbereich eines Quantors gebracht wird.
Wir treffen deshalb zwei Vorkehrungen: 1. Wir führen Substitutionen wie im ersten Fall
nicht durch. 2. Wir verbieten Substitutionen wie im zweiten Fall.
Wir beginnen allerdings mit der induktiven Definition von t σ für einen Σ-Term t und
eine Termsubstitution σ.
Induktionsanfang. Ist t = x i , so ist t σ = σ(x i ), falls x i ∈ dom(σ), ansonsten ist t σ = x i . Ist
c ∈ Σ, so ist t σ = c.
Induktionsschritt. Ist t = f (t 0 , . . . , t n−1 ) mit f //n ∈ Σ und t i ∈ T (Σ) für alle i < n, so ist
t σ = f (t 0 σ, . . . , t n−1 σ).
118
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Nun definieren wir induktiv passende Substitutionen und deren Wirkung.
Induktionsanfang. Ist ϕ von der Gestalt t 0 = t 1 , so passt jede Substitution σ zu ϕ und ϕσ
ist von der Gestalt t 0 σ = t 1 σ.
Ist ϕ = P (t 0 , . . . , t n−1 ), so passt auch jede Substitution σ zu ϕ und es ist ϕσ = P (t 0 σ, . . . , t n−1 σ).
Induktionsschritt. Ist ϕ = ϕ0 ∨ ϕ1 , so ist ϕσ = ϕ0 σ ∨ ϕ1 σ. Die Substitution passt zu ϕ,
sofern sie zu ϕ0 und ϕ1 passt. Für die anderen booleschen Junktoren verfahren wir analog.
Ist ϕ = Qx i ψ für einen Quantor Q, so setzen wir zunächst σ0 = σ|VPL \{xi } . Die Substitution
σ passt zu ϕ, falls σ0 zu ψ passt und x i ∉ vars(σ(x j )) für jedes x j ∈ free(ϕ) gilt. Dann setzen
wir ϕσ = Qx i ψσ0 .
Wir möchten – wie wir das von anderen Substitutionsbegriffen her kennen – ein geeignetes Substitutionslemma definieren. Dazu legen wir zunächst fest, wie eine Termsubstitution auf eine Variablenbelegung wirkt.
Ist (S, β) eine Σ-Interpretation und σ eine Termsubstitution, so definieren wir die Sβ
Belegung βσ durch (βσ)(x i ) = Jx i σKS .
Wir können nun wie üblich beweisen:
Lemma 3.21 (Substitutionslemma für Termsubstitutionen). Sei Σ eine Signatur, (S, β) eine
Σ-Interpretation, und σ eine Σ-Termsubstitution.
1. Ist t ein Σ-Term, so gilt
β
βσ
Jt σKS = Jt KS
.
2. Ist ϕ eine Σ-Formel und passt σ zu ϕ, so gilt
S, β |= ϕσ
gdw.
S, βσ |= ϕ .
Beweis. Der Beweis erfolgt per Induktion. Für Terme ist er besonders einfach, ebenso für
die atomaren Formeln und die booleschen Junktoren. Interessant ist der Fall der Quantoren. Sei also ϕ = ∃x i ψ.
Wir nehmen zunächst an, dass S, β |= ϕσ gilt. Dann existiert ein a ∈ S, so dass S, β[a/x i ] |=
ψσ0 gilt, wobei σ0 durch σ0 = σ|VPL \{xi } gegeben ist. Das ist nach Induktionsvoraussetzung
äquivalent zu S, (β[a/x i ])σ0 |= ψ. Da σ0 nicht in x i definiert ist und σ zu ϕ passt, gilt (β[a/x i ])σ0 (x j ) =
(βσ0 )[a/x i ](x j ) für alle x j ∈ free(ψ) und für j = i . Außerdem gilt (βσ0 )[a/x i ] = (βσ)[a/x i ], da
sich σ und σ0 nur an x i unterscheiden. Damit gilt nach dem Koinzidenzlemma S, (βσ)[a/x i ] |=
ψ, was gleichbedeutend mit S, βσ |= ∃x i ψ ist.
Die andere Richtung kann in ähnlicher Weise bewiesen werden.
3.6.4 Termstrukturen und Termmodelle
Der Einfachheit halber betrachten wir bis auf Weiteres prädikatenlogische Formeln ohne
Gleichheitszeichen; diese sind einfacher zu behandeln. Außerdem nehmen wir an, dass alle
betrachteten Signaturen mindestens ein Konstantensymbol enthalten, damit die Menge
der Terme ohne Variablen nicht leer ist.
119
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Sei Σ eine solche Signatur. Ein Σ-Grundterm ist ein Element von T (Σ), in dem keine Elementvariablen vorkommen. Die Menge dieser Terme bezeichnen wir mit T 0 (Σ). Eine ΣGrundformel ist eine Formel der Gestalt P (t 0 , . . . , t n−1 ) mit P /n ∈ Σ und t 0 , . . . , t n−1 ∈ T 0 (Σ).
0
(Σ).
Die Menge aller dieser Formeln bezeichnen wir mit F PL
Eine Σ-Struktur T heißt Σ-Termstruktur, falls Folgendes gilt:
• Die Trägermenge von T besteht aus allen Σ-Grundtermen, das heißt, T = T 0 (Σ).
• Es gilt c T = c für alle c ∈ Σ.
• Es gilt f T (t 0 , . . . , t n−1 ) = f (t 0 , . . . , t n−1 ) für alle f //n ∈ Σ und t 0 , . . . , t n−1 ∈ T 0 (Σ).
Nicht vorgegeben ist bei einer Termstruktur also, wie die Relationssymbole zu interpretieren sind.
Beispiel 3.13. Wir betrachten Σ = {z, s//1}. Dann gibt es genau eine Σ-Termstruktur. Ihre
Elemente sind von der Form s(s(s(. . . (s(z)) . . . ))), man kann sie also als natürliche Zahlen
betrachten. Die Interpretation der Konstanten z ist dann die Zahl 0 und die Interpretation
der Funktion s die Nachfolgerfunktion.
Wir zeigen nun, dass jede Aussage in pränexer Normalform, in der keine Existenzquantoren vorkommen, – eine sogenannte universelle Aussage – ein Modell besitzt, das eine Termstruktur ist. Solche Modelle wollen wir als Termmodelle bezeichnen.
Satz 3.4 (Existenz von Termmodellen). Sei Σ eine Signatur und ϕ eine universelle Aussage.
Wenn ϕ ein Modell besitzt, dann auch ein Termmodell.
Beweis. Sei ϕ eine universelle Aussage, das heißt, ϕ ist von der Form
∀x i 0 . . . ∀x i n−1 ψ ,
wobei ψ quantorenfrei ist. Sei S ein Modell von ϕ, das heißt, S |= ϕ.
Wir konstruieren ein Termmodell T wie folgt. Für jedes P /n ∈ Σ und Grundterme t 0 , . . . , t n−1
legen wir fest:
(t 0 , . . . , t n−1 ) ∈ P T
gdw.
S |= P (t 0 , . . . , t n−1 ) .
Außerdem definieren wir zu jeder T-Belegung β : VPL → T 0 (Σ) eine S-Belegung βS durch
βS (x i ) = Jβ(x i )KS .
Wir zeigen per Induktion, dass für jede T-Belegung β : VPL → T 0 (Σ) und jede quantorenfreie Formel χ gilt:
T, β |= χ
gdw.
S, βS |= χ .
Daraus ergibt sich sofort T |= ϕ.
Induktionsanfang. Wenn χ eine atomare Formel ist, dann ist χ von der Form P (t 0 , . . . , t n−1 )
mit t i ∈ T (Σ) für i < n und P /n ∈ Σ. Es gilt:
β
β
T, β |= P (t 0 , . . . , t n−1 ) gdw. (Jt 0 KT , . . . , Jt n−1 KT ) ∈ P T
gdw. (t 0 β, . . . , t n−1 β) ∈ P T
Lemma 3.21
gdw. S |= P (t 0 β, . . . , t n−1 β)
Definition von T
gdw. S |= P (t 0 , . . . , t n−1 )β
Definition der Termsubstitution
gdw. S, βS |= P (t 0 , . . . , t n−1 )
Lemma 3.21
120
Praedikatenlogik.tex Rev 252 2009-02-03
Semantik der Prädikatenlogik
3 Prädikatenlogik
Dabei ist zu beachten, dass β auch als Termsubstitution aufgefasst werden kann und deshalb das Substitutionslemma (zweimal) anwendbar ist.
Induktionsschritt. Da wir lediglich quantorenfreie Formeln betrachten, sind im Induktionsschritt lediglich die booleschen Junktoren zu betrachten, für die der Beweis der Induktionsbehauptung unkompliziert ist.
Wenn wir also feststellen wollen, ob eine universelle Aussage erfüllbar ist, dann brauchen
wir nur zu untersuchen, ob sie ein Termmodell besitzt. Die Existenz eines solchen kann
wiederum sehr leicht ausgedrückt werden, ohne überhaupt Variablen ins Spiel zu bringen.
Sei ϕ eine universelle Σ-Formel, etwa von der Gestalt
∀x i 0 . . . ∀x i n−1 ψ .
Deren Expansion ist die Σ-Formelmenge, die mit Θϕ bezeichnet wird und durch
Θϕ = {ψσ : σ ist Σ-Grundsubstitution}
definiert ist.
Satz 3.5 (Termmodelle und Expansionen). Sei ϕ eine universelle Σ-Aussage und T eine Termstruktur. Dann gilt:
T |= ϕ
gdw.
T |= Θϕ .
Beweis. Sei ϕ von der Gestalt
∀x i 0 . . . ∀x i n−1 ψ .
Dann gilt T |= ϕ genau dann, wenn T, β |= ψ für alle T-Belegungen gilt. Nun gilt T, β |= ψ
nach Lemma 3.21 genau dann, wenn T |= ψβ gilt. Daraus folgt die Behauputung.
Aufgabe 3.21. (a) Sei Σ0 = {a, b, s//1, P /1} eine Signatur und ϕ0 = ∀x 0 (P (x 0 ) ↔ P (s(s(x 0 ))))∧
P (a) ∧ ¬P (b) eine Σ0 -Formel.
Finden Sie für die Formel ϕ0 ein möglichst kleines Modell (möglichst kleine Trägermenge) und ein Termmodell.
(b) Sei Σ1 = {z, s//1, P /1} eine Signatur und ϕ1 = P (z)∧∀x 0 (P (x 0 ) → P (s(x 0 )))∧∃x 0 ¬P (x 0 )
eine Σ1 -Formel.
Zeigen Sie, dass ϕ1 erfüllbar ist, es aber kein Termmodell für ϕ1 gibt.
3.6.5 Termmodelle und Aussagenlogik
Sei ϕ eine universelle Σ-Aussage. Wir wollen dazu eine Menge Φϕ von aussagenlogischen
Formeln konstruieren, die genau dann erfüllbar ist, wenn ϕ erfüllbar ist.
Aus dem letzten Satz wissen wir, dass ϕ genau dann erfüllbar ist, wenn Θϕ in einem
Termmodell gilt. Die Menge Θϕ können wir aber leicht als Menge von aussagenlogischen
Formeln auffassen.
121
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Dazu nehmen wir an, dass N eine injektive Abbildung ist, die jeder atomaren Σ-Grundformel
χ eine natürliche Zahl zuordnet. Die Übersetzung einer Grundformeln ϕ in eine aussagenlogische Formel χ wird mit τ(χ) bezeichnet und ist wie folgt induktiv definiert.
Basiszuordnung: Für jede atomare Grundformel χ ist τ(χ) = X N (χ) .
Induktionsregeln: τ(¬χ) = ¬τ(χ), τ(χ0 ∨ χ1 ) = τ(χ0 ) ∨ τ(χ1 ) und τ(χ0 ∧ χ1 ) = τ(χ0 ) ∧ τ(χ1 ).
Wir behaupten nun, was offensichtlich ist:
Lemma 3.22. Sei ϕ eine Σ-Grundformel.
1. Ist T eine Termstruktur und βT : VAL → {0, 1} definiert durch β(X N (χ) ) = JχKT , so gilt
T |= ϕ genau dann, wenn βT |= τ(ϕ).
2. Ist β eine aussagenlogische Variablenbelegung und Tβ die Termstruktur definiert durch
(t 0 , . . . , t n−1 ) ∈ P T genau dann, wenn β(N (P (t 0 , . . . , t n−1 ))) = 1, so gilt β |= τ(ϕ) genau
dann, wenn Tβ |= ϕ gilt.
Beweis. Der Beweis ist ein einfacher Induktionsbeweis.
Für eine Menge Φ von quantorenfreien Grundformeln setzen wir nun τ(Φ) = {τ(ϕ) : ϕ ∈
Φ}. Ist ϕ eine universelle Aussage, so nennen wir τ(Θϕ ) die aussagenlogische Expansion von
ϕ.
Wir können festhalten:
Folgerung 3.3. Für jede universelle Aussage ϕ gilt: ϕ ist erfüllbar genau dann, wenn τ(Θϕ )
erfüllbar ist.
Jetzt können wir den gewünschten Satz formulieren:
Satz 3.6 (Semi-Entscheidbarkeit des Gültigkeitsproblems). Das Gültigkeitsproblem für existenzielle Aussagen ist semi-entscheidbar.
Beweis. Wir greifen zurück auf das Semi-Entscheidungsverfahren für die Unerfüllbarkeit
von aussagenlogische Formelmengen, Folgerung 2.5.
Sei ϕ eine existenzielle prädikatenlogische Aussage ϕ, etwa von der Gestalt
∃x i 0 . . . ∃x i n−1 ψ ,
wobei ψ eine quantorenfreie Formel ist. Diese Formel ist nach Bemerkung 3.1 allgemeingültig genau dann, wenn ϕ0 definiert durch
ϕ0 = ∀x i 0 . . . ∀x i n−1 ¬ψ
unerfüllbar ist. Dies ist nach Folgerung 3.3 der Fall, wenn τ(Θϕ ) unerfüllbar ist. Wir brauchen also nur das Semi-Entscheidungsverfahren für Mengen aussagenlogischer Formeln
auf τ(Θϕ ) anwenden.
122
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
3.6.6 Skolemisierung
Das Ergebnis des letzten Abschnitts, Satz 3.6, ist in zweierlei Hinsicht beschränkt. Es trifft
nämlich nur auf existenzielle Aussagen ohne Gleichheit zu.
Beide Einschränkungen lassen sich mit ein wenig Aufwand aufheben, wir wenden uns
der ersten zu. Dazu führen wir einen neuen Begriff ein.
Σ-Formeln ϕ und ψ heißen erfüllbarkeitsäquivalent, falls es ein Modell für ϕ genau dann
gibt, wenn es ein Modell für ϕ0 gibt. Wir schreiben ϕ ≡erfb ϕ0 .
Beispiel 3.14. Sei ϕ = ∃x 0 P (x 0 , x 0 ) definiert. Dann können wir die Forderung nach der Existenz von x 0 auch durch eine Konstante beschreiben. Betrachten wir also Σ = {P /2, a} und
setzen ϕ0 = P (a, a), so ist offensichtlich, dass ϕ ≡erfb ϕ0 gilt.
Das vorige Beispiel ist sehr einfach, weshalb wir ein etwas komplizierteres betrachten
wollen.
Beispiel 3.15. Sei ϕ = ∀x 0 ∃x 1 ∀x 2 (P (x 2 , x 1 ) → P ( f (x 2 ), x 0 )). Hier lässt sich x 1 nicht einfach
durch eine Konstante ersetzen, denn die Wahl der Belegung von x 1 kann von der Belegung
von x 0 abhängen. Deshalb ist es hier sinnvoll, die Konstante durch eine Funktion zu ersetzen: Wenn wir Σ = {P /2, f //1, g //1} und ϕ0 = ∀x 0 ∀x 2 (P (x 2 , g (x 0 )) → P ( f (x 2 ), x 0 )) setzen,
dann gilt ϕ ≡erfb ϕ0 .
Zu beachten ist in dem vorigen Beispiel, dass der Term, der x 1 ersetzt – g (x 0 ) – nur x 0
aufgreift, nicht aber x 2 , weil die Quantifizierung von x 2 innerhalb des Wirkungsbereiches
des Quantors vor x 1 liegt.
Die Transformation, die obigem Beispiel zu Grunde liegt, lässt sich leicht durch einen
rekursiven Algorithmus beschreiben, der auf Folie 58 dargestellt ist.
Zu bemerken ist zunächst, dass in der Beschreibung die Schreibweise ∀ ϕ für eine Formel ϕ benutzt wird. Dies steht für ∀x i 0 . . . ∀x i n−1 , sofern x i 0 , . . . , x i n−1 eine Auflistung der in
ϕ frei vorkommenden Variablen nach aufsteigenden Indizes ist. Wir sprechen vom Allabschluss von ϕ. Man beachte, dass die Reihenfolge, in der die x i j in dem Quantorenblock
angeordnet sind, ist unerheblich, denn alle Varianten führen zu äquivalenten Formeln. In
dem gleichen Sinne ist die Schreibweise f i (V ) zu verstehen.
Außderdem bezeichne sig(ϕ) zu einer gegebenen prädikatenlogischen Formel ϕ die kleinste Signatur, in der ϕ geschrieben werden kann. Wir sprechen von der Signatur der Formel.
Der Algorithmus liefert, aufgerufen mit einer Aussage, eine Formel, deren Allabschluss
äquivalent zu der gegebenen Formel ist. Diesen Allabschluss nennen wir Skolemisierung
der Eingabeformel.
Wir schauen uns das Ergebnis einer etwas komplizierteren Beispielberechnung an.
Beispiel 3.16. Es sei
∀x 0 ∃x 1 ∀x 0 ∀x 1 ∃x 0 ∀x 2 P (x 0 , x 1 , x 2 )
gegeben. Der Algorithmus liefert dazu:
∀x 1 ∀x 2 P (x 0 , f 0 (x 1 ), x 2 ) .
123
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Skolemisierung
Skolem(ϕ)
Vorbedingung: ϕ ist eine Formel in PNF.
if ϕ quantifier-free
return ϕ
let ϕ = Qxi ψ where Q ∈ {∃, ∀}
if Q = ∀ or xi ∈
/ free(ψ)
return Skolem(ψ)
let V = free(ϕ)
choose f ∈
/ sig(ϕ)
return Skolem(ψ[f (V )/xi ])
Nachbedingung: return quantorenfrei und ∀ ϕ ≡erfb ∀ return.
Folie 58
Satz 3.7. Der Algorithmus Skolem ist korrekt.
Beweis. Es ist offensichtlich, dass die Behandlung im Rumpf der Formel die Erfüllbarkeitsäquivalenz der Allabschlüsse der beteiligten Formeln erhält. Einzig interessant ist der Fall,
der zum Schluss behandelt wird. Um dessen Korrektheit garantieren zu können, nehmen
wir an, ϕ ist eine Formel in PNF der Gestalt ∃x i ψ mit x i ∈ free(ψ). Außerdem sei f ein Symbol, das nicht in der Signatur von ϕ enthalten ist, V = free(ϕ) und ϕ0 = ψσ mit σ(x i ) = f (V ).
Wir behaupten, dass die beiden folgenden Aussagen äquivalent sind:
(A) Für alle S-Belegungen β gilt S, β |= ϕ.
(B) Es gibt eine sig(ϕ0 )-Expansion S0 von S, so dass S0 , β |= ϕ0 für alle S0 -Belegungen β gilt.
Sei zunächst x i 0 , . . . , x i n−1 eine Auflistung der Elemente von free(ϕ) mit aufsteigenden Indizes.
Aus (A) folgt (B). Sei S derart, dass S, β |= ∃x i ψ für alle Belegungen β gilt. Dann gibt es
gemäß der Semantik der Prädikatenlogik zu jeder solchen Belegung ein Element a β ∈ S
mit S, β[a β /x i ] |= ψ. Sei a ein Element von S. Für die gesuchte Expansion S0 setzen wir
0
f S (a 0 , . . . , a n−1 ) = a β mit β(x i j ) = a j für j < n und β(x j ) = a in den anderen Fällen. Es gilt
dann S0 , βσ |= ψ für alle Belegungen β, woraus wir S0 , β |= ψσ nach dem Substitutionslem-
124
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
ma erhalten. Schließlich gilt aber ψσ = ϕ0 .
Aus (B) folgt (A) lässt sich in gleicher Weise zeigen.
Wir können abschließend festhalten:
Satz 3.8. Das Gültigkeitsproblem ist semi-entscheidbar für alle prädikatenlogische Formeln
ohne Gleichheit.
Beweis. Ein entsprechender Algorithmus könnte arbeiten, wie dies auf Folie 59 zu sehen
ist.
Allgemeiner Gültigkeitstest
ValidEx: Gültigkeitstest für existenzielle prädikatenlogische
Formeln
Valid(ϕ)
Vorbedingung: ϕ prädikatenlogische Aussage.
let ϕ0 = PNF(¬ϕ)
let ϕ1 = ∀Skolem(ϕ0 )
write ϕ1 as ∀xi0 . . . ∀xin−1 ψ with ψ quantifier-free
return ValidEx(∃xi0 . . . ∃xin−1 ¬ψ)
Nachbedingung:
Bei Termination gilt |= ϕ;
bei Divergenz gilt 6|= ϕ.
Folie 59
Aufgabe 3.22. Sei Σ eine Signatur. Betrachten Sie die Σ-Formeln
ϕ0 = ∀x 0 (¬x 0 = 0 → ∃x 1 x 0 · x 1 = 1)
¡
¢
ϕ1 = ∀x 0 ∃x 1 ∀x 2 ∃x 3 ∃x 4 P (x 0 , x 1 ) ∧ P (x 0 , x 2 ) → x 1 = x 5 ∨ P (x 2 , x 4 ) .
Konstruieren Sie mit Hilfe des in der Vorlesung vorgestellten Algorithmus Skolem zu ϕ0
und ϕ1 erfüllbarkeitsäquivalente Formeln. Bringen Sie die Formel gegenbenenfalls vorher
in PNF.
125
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Aufgabe 3.23. Sei Σ = {c, P //2} eine Signatur. Betrachten Sie die Σ-Formel
¡
¢
ϕ = ∀x 0 ∀x 1 ∃x 2 P (x 2 , x 1 ) ∨ ¬P (x 0 , x 1 ) .
Zeigen Sie mit Hilfe des Algorithmus aus der Vorlesung, dass diese Formel allgemeingültig ist.
Hinweis. Folgende Schritte sind notwendig:
• Negieren
• PNF
• Skolemisieren
• Aussagenlogische Expansion τ(Θψ )
• Zeigen, dass τ(Θψ ) unerfüllbar ist.
3.7 Die Folgerungsbeziehung und Beweissysteme
Die Folgerungsbeziehung der Prädikatenlogik ist ebenso interessant und wichtig wie die
der Aussagenlogik. Zum Beispiel hatten wir in Abschnitt 3.3.3 gesehen, dass wir mit Hilfe der Folgerungsbeziehung Verwandtschaftsverhältnisse klären können. Aus mathematischer Sicht ist die Folgerungsbeziehung noch wichtiger, denn viele Klassen mathematischer Strukturen – Gruppen, abelsche Gruppen, lineare Ordnungen, Verbände, usw. – sind
in der Prädikatenlogik axiomatisierbar. Kann man nun alle Folgerungen aus prädikatenlogischen Formelmengen bestimmen, so kann man für jede dieser Klassen alle ihre Eigenschaften (die in der Prädikatenlogik formulierbar sind) beschreiben.
Wir beginnen mit einer formalen Definition der Folgerungsbeziehung. Sei Σ eine Signatur, Φ ⊆ F PL (Σ) und ϕ ∈ F PL (Σ). Die Formel ϕ ist eine Folgerung aus Φ, falls I |= ϕ für jede
Σ-Interpretation gilt, für die auch I |= Φ gilt. Wir schreiben in diesem Fall Φ |= ϕ. Allgemeingültigkeit ist also ein Spezialfall: Man muss nur Φ = ; wählen.
Da Allgemeingültigkeit nicht entscheidbar ist, können wir festhalten:
Bemerkung 3.3. Die Folgerungsbeziehung der Prädikatenlogik ist unentscheidbar.
Dies ist ein starkes negatives Ergebnis. Wichtiger sind deshalb die beiden Ergebnisse,
die in den folgenden Abschnitten behandelt werden: Es gibt für die Folgerungsbeziehung
ein Semi-Entscheidungsverfahren. Außerdem ist es möglich, korrekte und vollständige Beweissysteme anzugeben.
Bevor wir in die Details einsteigen, wollen wir zunächst – genau wie in der Aussagenlogik – festhalten:
Bemerkung 3.4. Ist {ϕ0 , . . . , ϕn−1 } eine endliche Menge von Σ-Formeln und ϕ ebenfalls eine
Σ-Formel, dann gilt Φ |= ϕ genau dann, wenn |= ϕ0 ∧ · · · ∧ ϕn−1 → ϕ gilt.
Da wir ein Semi-Entscheidungsverfahren für Allgemeingültigkeit im letzten Abschnitt
entwickelt haben, können wir also festhalten, dass es ein Semi-Entscheidungsverfahren
für endliche Formelmengen gibt. Unsere Überlegungen im folgenden und in dem darauf
folgenden Abschnitt zielen deshalb auf unendliche Formelmengen ab.
126
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
3.7.1 Ein Semi-Entscheidungsverfahren
Die Beziehung Φ |= ϕ gilt offensichtlich genau dann, wenn Φ ∪ {¬ϕ} unerfüllbar ist, was
wir schon aus der Aussagenlogik kennen. Es reicht also, ein Semi-Entscheidungsverfahren
für die Unerfüllbarkeit von Formelmengen zu entwickeln. Das wiederum ist gleichbedeutend mit der Entwicklung eines negativen Semi-Entscheidungsverfahren für die Erfüllbarkeit von Formelmengen.
Da wir algorithmisch nur mit Formelmengen arbeiten können, die man auch einem Algorithmus als Eingabe übergeben kann – etwa in einem unbeschränkten Feld – arbeiten
wir im weiteren Verlauf nur mit Signaturen, die abzählbar sind. Solche kann man sich der
Einfachheit halber so vorstellen, dass es für jedes i ∈ N und jedes n ∈ N ein Symbol f i ,n und
ein Symbol P i ,n besitzt. Dabei soll f i ,n für n = 0 ein Konstantensymbol sein und für n > 0
ein n-stelliges Funktionssymbol; P i ,n soll jeweils ein n-stelliges Relationssymbol sein.
Sei nun Φ = {ϕ0 , ϕ1 , . . . } eine Menge prädikatenlogischer Formeln. Wir können zunächst
annehmen, dass jedes ϕi in pränexer Normalform ist. Zudem können wir jede Formel ϕi
in eine erfüllbarkeitsäquivalente universelle Formel ϕ0i mit Hilfe der Skolemisierung umwandeln, etwa mit Hilfe des auf Folie 58 dargestellten Algorithmus. Geht man bei der Skolemisierung nicht geschickt vor, so ist die entstehende Menge Φ0 = {ϕ00 , ϕ01 , . . . } dann möglicherweise unerfüllbar, obwohl Φ erfüllbar ist, wie das folgende Beispiel zeigt.
Beispiel 3.17. Für ϕ0 = ∃x 0 P (x 0 ) und ϕ1 = ∃x 0 ¬P (x 0 ) kann sich bei der Anwendung von
Skolem ϕ00 = P (c) und ϕ01 = ¬P (c) ergeben. Dann ist {ϕ0 , ϕ1 } erfüllbar, {ϕ00 , ϕ01 } aber nicht.
Offensichtlich ist, dass man bei der Skolemisierung von ϕ1 Skolemfunktionen und Konstanten nutzen muss, die nicht schon bei der Skolemisierung von ϕ0 genutzt wurden.
Beispiel 3.18. Im obigen Beispiel setzt man ϕ00 = P (c 0 ) und ϕ01 = ¬P (c 1 ). Die Menge {ϕ00 , ϕ01 }
ist nun erfüllbar.
Das gleiche gilt für die anderen Formeln in Φ0 . Falls Φ0 unter Berücksichtigung dieser
Vorgabe aus Φ entsteht, so nennen wir Φ0 eine Skolemisierung von Φ. Dann gilt, dass Φ
genau dann erfüllbar ist, wenn Φ0 erfüllbar ist.
Definieren wir nun
ΘΦ =
[
ϕ∈Φ
Θϕ
für jede beliebige Menge von universellen Aussagen, dann können wir festhalten: Φ ist erfüllbar genau dann, wenn τ(ΘΦ ) erfüllbar ist. Letzteres können wir aber mit einem negativen Semi-Entscheidungsverfahren überprüfen, weil τ(ΘΦ ) eine Menge von aussagenlogischen Formeln ist.
Ein Beispiel ist auf Folie 60 zu sehen; allerdings wird der Einfachheit halber eine endliche
Formelmenge betrachtet.
Das einzige, was zu beachten ist, ist, dass die Elemente der aussagenlogischen Expansion
von Φ, τ(ΘΦ ), dem aussagenlogischen Erfüllbarkeitstest vorgelegt werden müssen. Dazu
müssen sie in geeigneter Weise aufgezählt werden, was aber leicht möglich ist.
127
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Folgerungstest
Ein Beispiel
Frage Gilt {ϕ0 , ϕ1 } |= ϕ mit
ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
ϕ1 = Mutter(maria, paul)
ϕ = Weiblich(maria)
Reduktion auf Erfüllbarkeitsproblem Ist {ϕ0 , ϕ1 , ¬ϕ} unerfüllbar?
Umwandlung in PNF + Skolemisierung
Φ = {ϕ00 , ϕ01 , ϕ02 } mit
ϕ00 = ∀x0 ∀x1 (¬Mutter(x0 , x1 ) ∨ Weiblich(x0 ))
ϕ01 = Mutter(maria, paul)
ϕ02 = ¬Weiblich(maria)
Aussagenlogische Expansion
{¬Mutter(maria, paul) ∨ Weiblich(maria), ¬Weiblich(maria),
Mutter(maria, paul), . . . } – nicht erfüllbar, also {ϕ0 , ϕ1 } |= ϕ.
Folie 60
3.7.2 Ein Beweissystem
Genau wie in der Aussagenlogik, ist es natürlich wichtig, zu wissen, ob es Beweissysteme
gibt, die die Folgerungsbeziehung der Prädikatenlogik charakterisieren. Dass es ein solches
gibt, hat Kurt Gödel gezeigt. Wir wollen uns lediglich ein Hilbert-System ansehen. Es ist
auf den Folien 61 und 62 zu sehen und wird genauso genutzt, wie das aussagenlogische
Hilbert-System.
Die zugehörige Ableitungsrelation bezeichnen wir mit `HPL . Wie für die Aussagenlogik
können wir – wie gesagt – festhalten:
Satz 3.9 (Korrektheit und Vollständigkeit). Für jede Formelmenge Φ und Formel ϕ gilt Φ `HPL
ϕ genau dann, wenn Φ |= ϕ gilt.
Wir betrachten dasselbe Beispiel wie im letzten Abschnitt, siehe Folie 63.
Aufgabe 3.24. Sei Σ = {c, P //1,Q//1} eine Signatur. Zeigen Sie durch Angabe eines kommentierten Beweises, dass gilt:
{∀x 0 (P (x 0 ) → Q(x 0 )), P (c)} `HPL ∃x 0Q(x 0 ) .
128
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Ein Hilbert-System für die Prädikatenlogik
Die Axiome
α ∈ FAL , ϕ, ψ ∈ FPL (Σ), σ Formelsubstitution, t, t0 , t1 , t2 ∈ T (Σ)
(AL)
(∃∀)
(∀→)
(∀/)
(∃/)
(=R)
(=S)
(=T)
(=/)
σ passt zu α und |= α
ασ
∃xi ϕ ↔ ¬∀xi ¬ϕ
∀xi (ϕ → ψ) → (ϕ → ∀xi ψ)
[t/xi ] passt zu ϕ
∀xi ϕ → ϕ[t/xi ]
[t/xi ] passt zu ϕ
ϕ[t/xi ] → ∃xi ϕ
t=t
t0 = t1 → t1 = t0
t0 = t1 ∧ t1 = t2 → t0 = t2
t0 = t1 → (ϕ[t0 /xi ] → ϕ[t1 /xi ])
Folie 61
129
Praedikatenlogik.tex Rev 252 2009-02-03
xi ∈
/ free(ϕ)
[t0 /xi ], [t1 /xi ] passen zu ϕ
3 Prädikatenlogik
Ein Hilbert-System für die Prädikatenlogik
Die Regeln
Modus ponens
ϕ ϕ→ψ
ψ
(MP)
Generalisierungsregel
(∀)
ϕ
∀xi ϕ
Folie 62
130
Praedikatenlogik.tex Rev 252 2009-02-03
3 Prädikatenlogik
Ein Hilbert-System für die Prädikatenlogik
Ein Beispiel
Frage Gilt {ϕ0 , ϕ1 } `HPL ϕ mit
ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
ϕ1 = Mutter(maria, paul)
ϕ = Weiblich(maria)
Beweis
1. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
→ (∃x1 Mutter(maria, x1 ) → Weiblich(maria)) (∀/)
2. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
3. ∃x1 Mutter(maria, x1 ) → Weiblich(maria)
4. Mutter(maria, paul) → ∃x1 Mutter(maria, x1 )
5. Mutter(maria, paul)
(Vorauss.)
(MP)
(∃/)
(Vorauss.)
6. ∃x1 Mutter(maria, x1 )
(MP)
7. Weiblich(maria)
(MP)
Folie 63
131
Praedikatenlogik.tex Rev 252 2009-02-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
132
–sourcefile– Rev –revision– 2009-02-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.
133
–sourcefile– Rev –revision– 2009-02-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.
134
–sourcefile– Rev –revision– 2009-02-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.4 Jeder Formel weisen wir ihre Länge per Induktion zu:
1. Basiszuordnung:
l (0) = 1,
135
–sourcefile– Rev –revision– 2009-02-03
Lösungen
l (1) = 1,
l (X i ) = 1.
2. Induktionsregeln: Seien ϕ, ψ ∈ F AL .
l (¬ϕ) = 1 + l (ϕ),
l (ϕ ∗ ψ) = 3 + l (ϕ) + l (ψ) für ∗ ∈ {∨, ∧, →, ↔}.
Lösung zu Aufgabe 2.5 Jeder Formel weisen wir ihre Schachtelungstiefe per Induktion zu:
1. Basiszuordnung:
d (0) = 0,
d (1) = 0,
d (X i ) = 0.
2. Induktionsregeln: Seien ϕ, ψ ∈ F AL .
d (¬ϕ) = 1 + d (ϕ),
d (ϕ ∗ ψ) = 1 + max{d (ϕ), d (ψ)} für ∗ ∈ {∨, ∧, →, ↔}.
Lösung zu Aufgabe 2.6 Eine solche Funktion kann zum Beispiel wie folgt aussehen:
(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))"
136
–sourcefile– Rev –revision– 2009-02-03
Lösungen
Lösung zu Aufgabe 2.7
(a) Es gilt:
ϕσ = ((¬X 1 ↔ X 2 ) → ((X 1 → ¬X 3 ) ∧ ¬X 2 ))σ
= ((¬X 1 ↔ X 2 )σ → ((X 1 → ¬X 3 ) ∧ ¬X 2 )σ)
= (((¬X 1 )σ ↔ X 2 σ) → ((X 1 → ¬X 3 )σ ∧ (¬X 2 )σ))
= ((¬X 1 )σ ↔ ¬X 1 ) → ((X 1 σ → (¬X 3 )σ) ∧ ¬X 2 σ))
= ((¬X 1 σ ↔ ¬X 1 ) → (((ψ ∧ X 2 ) → ¬X 3 σ) ∧ ¬¬X 1 ))
= ((¬(ψ ∧ X 2 ) ↔ ¬X 1 ) → (((ψ ∧ X 2 ) → ¬X 3 ) ∧ ¬¬X 1 ))
(b) Das gleiche.
(c) Sinnvoll ist die Komposition von zwei Substitutionen zum Beispiel dann, wenn gilt:
ϕ(σσ0 ) = (ϕσ)σ0 .
Beispiel. Sei σ wie oben und sei σ0 = [ψ/X 1 , X 2 /X 3 ] eine weitere Substitution. Dann
ist σσ0 = [(ψ ∧ X 2 )/X 1 , (¬ψ)/X 2 , X 2 /X 3 , ψ/X 4 ].
Lösung zu Aufgabe 2.8 Sei ϕ ∈ NNF AL .
Basiszuordnung:
• Ist ϕ = 1, so gilt:
(Kmp)
Def
(Kmp)
Def
¬ϕ = ¬1 ≡ 0 = 1 = ϕ .
• Ist ϕ = 0, so gilt:
¬ϕ = ¬0 ≡ 1 = 0 = ϕ .
• Ist ϕ = X i , so gilt:
Def
¬ϕ = ¬X i = X i = ϕ .
• Ist ϕ = ¬X i , so gilt:
(DN)
Def
¬ϕ = ¬¬X i ≡ X i = ¬X i = ϕ .
Induktionsregeln: Seien nun ψ, θ ∈ NNF AL mit ¬ψ ≡ ψ und ¬θ ≡ θ.
• Ist ϕ = (ψ ∧ θ), so gilt:
(DM)
IA
Def
(DM)
IA
Def
¬ϕ = ¬(ψ ∧ θ) ≡ (¬ψ ∨ ¬θ) ≡ (ψ ∨ θ) = (ψ ∧ θ) = ϕ .
• Ist ϕ = (ψ ∨ θ), so gilt:
¬ϕ = ¬(ψ ∨ θ) ≡ (¬ψ ∧ ¬θ) ≡ (ψ ∧ θ) = (ψ ∨ θ) = ϕ .
Lösung zu Aufgabe 2.9 Es gilt:
(Elm)
X i ↔ ¬X j ≡ (¬X i ∨ ¬X j ) ∧ (¬¬X j ∨ X i )
(DN)+2. EL
≡
(¬X i ∨ ¬X j ) ∧ (X j ∨ X i ).
137
–sourcefile– Rev –revision– 2009-02-03
Lösungen
VW
Dargestellt als Klauselmenge erhält man
{{¬X i , ¬X j }, {X j , X i }}. Mit dem 2. Ersetzungslemma ist dann
^
^ ^_
(X i ↔ ¬X j ) ≡
{{¬X i , X j }, {¬X j , X i }}
1≤i < j ≤n
1≤i < j ≤n
≡
^_
[
{{¬X i , X j }, {¬X j , X i }}
1≤i < j ≤n
Lösung zu Aufgabe 2.10 Seien ϕ, ψ, χ, ρ ∈ F AL und X i ∈ VAL mit X i 6∈ vars(ϕ) ∪ vars(ψ) ∪
vars(χ) ∪ vars(ρ). Dann gilt:
(Elm)
((ϕ ∧ ψ) ∧ χ) → ρ ≡ ¬((ϕ ∧ ψ) ∧ χ) ∨ ρ
Da nach (DM) ¬((ϕ∧ψ)∧χ) ≡ (¬(ϕ∧ψ)∨¬χ), erhalten wir mit Hilfe des 2. Ersetzungslemma
angewendet auf X i ∨ ρ:
≡ (¬(ϕ ∧ ψ) ∨ ¬χ) ∨ ρ
Da nach (DM) ¬(ϕ ∧ ψ) ≡ (¬ϕ ∨ ¬ψ), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf (X i ∨ ¬χ) ∨ ρ:
≡ ((¬ϕ ∨ ¬ψ) ∨ ¬χ) ∨ ρ
Da nach (Ass) ((¬ϕ∨¬ψ)∨¬χ) ≡ (¬ϕ∨(¬ψ∨¬χ)), erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet auf X i ∨ ρ:
≡ (¬ϕ ∨ (¬ψ ∨ ¬χ)) ∨ ρ
(Ass)
≡ ¬ϕ ∨ ((¬ψ ∨ ¬χ) ∨ ρ)
Da nach (Ass) (¬ψ∨¬χ)∨ρ ≡ ¬ψ∨(¬χ∨¬ρ), erhalten wir mit Hilfe des 2. Ersetzungslemma
angewendet auf ¬ϕ ∨ X i :
≡ ¬ϕ ∨ (¬ψ ∨ (¬χ ∨ ρ))
Da nach (Elm) ¬χ ∨ ρ ≡ χ → ρ, erhalten wir mit Hilfe des 2. Ersetzungslemma angewendet
auf ¬ϕ ∨ (¬ψ ∨ X i ):
≡ ¬ϕ ∨ (¬ψ ∨ (χ → ρ))
Da nach (Elm) ¬ψ ∨ (χ → ρ) ≡ ψ → (χ → ρ), erhalten wir mit Hilfe des 2. Ersetzungslemma
angewendet auf ¬ϕ ∨ X i :
≡ ¬ϕ ∨ (ψ → (χ → ρ))
(Elm)
≡ ϕ → (ψ → (χ → ρ))
138
–sourcefile– Rev –revision– 2009-02-03
Lösungen
Lösung zu Aufgabe 2.11 Wir zeigen die (stärkere) Hilfsbehauptung, dass für alle einfachen
Konjunktionen ϕ und für alle zu ϕ passenden Variablenbelegungen β gilt:
JϕKβ = 1 genau dann, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ).
Beweis per Induktion über den Aufbau der einfachen Konjunktionen:
Sei also ϕ eine einfache Konjunktion und β eine zu ϕ passende Variablenbelegung.
I.A.
• Ist ϕ = 1, dann gilt (unabhängig von β) JϕKβ = J1Kβ = 1. Da aber vars(ϕ) = ; gilt
auch β(X i ) = 1 für alle X i ∈ vars(ϕ)
• Ist ϕ = X i , dann gilt: JϕKβ = J X i Kβ = β(X i ). Da vars(ϕ) = {X i } gilt damit die Behauptung.
I.S. Sei ϕ = (ϕ0 ∧ϕ1 ) mit einfachen Konjunktionen ϕ0 , ϕ1 für die die Induktionsvoraussetzung (IV) gelte. Nach IV ist ϕ j genau dann erfüllt, wenn β(X i ) = 1 für alle X i ∈ vars(ϕ j )
( j ∈ {0, 1}). Damit gilt



1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ0 )
β
β
JϕK = Jϕ0 ∧ ϕ1 K =
und β(X i ) = 1 für alle X i ∈ vars(ϕ1 )


0 sonst
(
1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ0 ) ∪ vars(ϕ1 )
=
0 sonst
(
1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ)
=
0 sonst .
Also gilt die Hilfsbehauptung.
Mit Hilfe dieser Hilfsbehauptung läßt sich wie folgt Lemma 2.6 zeigen.
Seien ϕ, ψ einfache Konjuktionen mit vars(ϕ) = vars(ψ) und sei β eine zu ϕ (und damit
auch zu ψ) passende Variablenbelegung. Dann gilt:
(
1 falls β(X i ) = 1 für alle X i ∈ vars(ϕ)
β
JϕK =
0 sonst
(
1 falls β(X i ) = 1 für alle X i ∈ vars(ψ)
=
0 sonst
= JψKβ .
Lösung zu Aufgabe 2.12
(a) Es gilt:
(DM)
¬((X 1 ∨ X 2 ) ∧ X 3 ) ≡ ¬(X 1 ∨ X 2 ) ∨ ¬X 3
(DM)+2.EL
≡
(¬X ∧ ¬X 2 ) ∨ ¬X 3
{z
}
| 1
NNF
≡
_^
|
139
–sourcefile– Rev –revision– 2009-02-03
{{¬X 1 , ¬X 2 }, {¬X 3 }} .
{z
}
DNF
Lösungen
Für KNF:
VW
VW
Betrachte zunächst: ¬X 1 ∧ ¬X 2 =
{{¬X 1 }, {¬X 2 }} und ¬X 3 ≡
{{¬X 3 }}. Dann ist
VW
VW
VW
(¬X 1 ∧ ¬X 2 ) ∨ ¬X 3 ≡
{{¬X 1 }, {¬X 2 }} ∨ {{¬X 3 }} ≡
{{¬X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }}.
(Dis)
alternativ: (¬X 1 ∧ ¬X 2 ) ∨ ¬X 3 ≡ (¬X 1 ∨ ¬X 3 ) ∧ (¬X 2 ∨ ¬X 3 ).
(b) Es gilt
(¬(X 1 → X 2 ) ↔ X 3 ) ≡ (¬(¬X 1 ∨ X 2 ) ↔ X 3 )
≡ ((X 1 ∧ ¬X 2 ) ↔ X 3 )
≡ (¬(X 1 ∧ ¬X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 ))
≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 ))
|
{z
}
NNF
≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ ¬X 3 ) ∨ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (X 1 ∧ ¬X 2 ))
≡ ((¬X 1 ∧ ¬X 3 ) ∨ (X 2 ∧ ¬X 3 ) ∨ (X 3 ∧ ¬X 3 ))
∨ ((¬X 1 ∧ (X 1 ∧ ¬X 2 )) ∨ (X 2 ∧ (X 1 ∧ ¬X 2 )) ∨ (X 3 ∧ (X 1 ∧ ¬X 2 )) .
WV
DNF:
{{¬X 1 , ¬X 2 }, {X 2 , ¬X 3 }, {X 3 , ¬X 3 }, {¬X 1 , X 1 , ¬X 2 }, {X 2 , X 1 , ¬X 2 }, {X 3 , X 1 , ¬X 2 }}
Weiter gilt:
((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ (X 1 ∧ ¬X 2 ))
|
{z
}
NNF
≡ ((¬X 1 ∨ X 2 ) ∨ X 3 ) ∧ (¬X 3 ∨ X 1 ) ∧ (¬X 3 ∨ ¬X 2 ))
^_
≡
{{¬X 1 , X 2 , X 3 }, {¬X 3 , X 1 }, {¬X 3 , ¬X 2 }} .
|
{z
}
KNF
Lösung zu Aufgabe 2.13 Seien ϕ, ψ, θ ∈ F AL .
Gemäß Lemma 2.9 reicht es, jeweils die Äquivalenz mit 0 zu zeigen.
140
–sourcefile– Rev –revision– 2009-02-03
Lösungen
(a) Es gilt:
ϕa = ¬((((θ ∧ ϕ) ∧ ¬ϕ) ∨ ψ) → ψ)
(Ass)+2.EL
¬(((θ ∧ (ϕ ∧ ¬ϕ)) ∨ ψ) → ψ)
≡
(Tnd)+2.EL
≡
(GK)+2.EL
≡
¬(((θ ∧ 0) ∨ ψ) → ψ)
¬((0 ∨ ψ) → ψ)
(Elm)+2.EL
¬(¬(0 ∨ ψ) ∨ ψ)
(DM)+2.EL
¬((¬0 ∧ ¬ψ) ∨ ψ)
≡
≡
(Kmp)+2.EL
≡
¬((1 ∧ ¬ψ) ∨ ψ)
(Dis)+2.EL
¬((1 ∨ ψ) ∧ (¬ψ ∨ ψ))
(GK)+2.EL
¬(1 ∧ (¬ψ ∨ ψ))
≡
≡
(Tnd)+2.EL
≡
(Idp)+2.EL
≡
¬(1 ∧ 1)
¬1
Kmp
≡ 0
Nach Lemma 2.9 ist ϕa als unerfüllbar.
(b) Es gilt:
ϕb = ((¬(¬ψ → ¬ϕ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ))
(Knt)+2.EL
≡
((¬(ϕ → ψ) ∧ (ϕ → ψ)) ∧ ¬(ϕ ∧ ¬ψ))
(Tnd)+2.EL
≡
(0 ∧ ¬(ϕ ∧ ¬ψ))
(Kom)+(GK)
≡
0
Nach Lemma 2.9 ist ϕb als unerfüllbar.
(c) Es gilt:
ϕc = (((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬ψ → θ)))
(Elm)+2.EL
≡
(((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(¬¬ψ ∨ θ)))
(DN)+2.EL
(((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ ¬(ψ ∨ θ)))
(DM)+2.EL
(((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∧ ¬θ) ∨ (¬ψ ∧ ¬θ)))
(Dis)+2.EL
≡
(((ψ ∧ ϕ) ∨ θ) ∧ ((¬ϕ ∨ ¬ψ) ∧ ¬θ))
(DM)+2.EL
(((ψ ∧ ϕ) ∨ θ) ∧ (¬(ϕ ∧ ψ) ∧ ¬θ))
(DM)+2.EL
(((ψ ∧ ϕ) ∨ θ) ∧ ¬((ϕ ∧ ψ) ∨ θ))
≡
≡
≡
≡
(Tnd)
≡ 0
141
–sourcefile– Rev –revision– 2009-02-03
Lösungen
Nach Lemma 2.9 ist ϕc als unerfüllbar.
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))
; 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)
142
-sourcefile-
Rev -revision-
2009-02-03
Lösungen
(eachNumberInEachColumn)
(eachNumberInEachRegion)
(map (lambda (x) (list x))
(filter (lambda (x) (> x 0)) (map (lambda
(if (= 0
(flat
(step
(x y)
x) 0 (+ x y)))
description)
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"))
; 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))))))
143
-sourcefile-
Rev -revision-
2009-02-03
Lösungen
; 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)
(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))
144
-sourcefile-
Rev -revision-
2009-02-03
Lösungen
(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
; 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))))))
Lösung zu Aufgabe 2.16 (a) Offenbar ist ϕa bereits in konjuktiver Normalform. Damit
läßt sich ϕa als Klauselmenge schreiben:
^_
ϕa ≡
{{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }} .
Im Folgenden prüfen wir die Erfüllbarkeit von ϕa mit Hilfe des DPLL- beziehungsweise des DPLL-Algorithmus:
DPLL
^_
erfb(ϕa ) gdw. erfb(
{{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }})
gdw. (Lemma, Teil 2, L = ¬X 1 )
erfb(
^_
{{X 2 , ¬X 3 }, {¬X 3 }, {¬X 2 , ¬X 3 }})
145
–sourcefile– Rev –revision– 2009-02-03
Lösungen
gdw. (Lemma, Teil 2, L = ¬X 3 )
^_
erfb(
;)
DP
^_
erfb(ϕa ) gdw. erfb(
{{X 1 , X 2 , ¬X 3 }, {X 1 , ¬X 3 }, {¬X 2 , ¬X 3 }, {¬X 1 }})
gdw. (Lemma, Teil 3, i = 1)
erfb(
^_
{{X 2 , ¬X 3 }, {¬X 3 }, {¬X 2 , ¬X 3 }})
^_
{{¬X 3 }, {¬X 3 }})
^_
;)
gdw. (Lemma, Teil 3, i = 2)
erfb(
gdw. (Lemma, Teil 3, i = 3)
erfb(
VW
In beiden Fällen wurde damit gezeigt, dass ϕa erfüllbar ist (da
; ≡ 1, also erfüllbar).
(b) Da ϕb nicht in konjunktiver Normalform vorliegt, müssen wir die Formel zunächst
umformen. Es gilt:
ϕb = X 1 ∧ (X 1 → (X 2 ∨ X 4 )) ∧ ((X 1 ∧ X 4 ) → X 2 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 )
≡ X 1 ∧ (¬X 1 ∨ X 2 ∨ X 4 ) ∧ (¬X 1 ∨ X 2 ∨ ¬X 4 ) ∧ (¬X 2 ∨ X 3 ) ∧ (¬X 2 ∨ ¬X 3 )
^_
≡
{{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }}
Im Folgenden prüfen wir die Erfüllbarkeit von ϕa mit Hilfe des DPLL- beziehungsweise des DPLL-Algorithmus:
DPLL
erfb(ϕb )
gdw.
erfb(
^_
{{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }})
gdw. (Lemma, Teil 2, L = X 1 )
^_
erfb(
{{X 2 , X 4 }, {X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }})
gdw. (Lemma, Teil 1, i = 2)
^_
^_
erfb(
{{X 3 }, {¬X 3 }}) oder erfb(
{{X 4 }, {¬X 4 })
gdw. (Lemma, Teil 2, i = 3 bzw. i = 4)
^_
^_
erfb(
{;}) oder erfb(
{;})
146
–sourcefile– Rev –revision– 2009-02-03
Lösungen
DP
erfb(ϕb )
gdw.
erfb(
^_
{{X 1 }, {¬X 1 , X 2 , X 4 }, {¬X 1 , X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }})
gdw. (Lemma, Teil 3, i = 1)
erfb(
^_
{{X 2 , X 4 }, {X 2 , ¬X 4 }, {¬X 2 , X 3 }, {¬X 2 , ¬X 3 }})
gdw. (Lemma, Teil 3, i = 2)
erfb(
^_
{{X 4 , X 3 }, {X 4 , ¬X 3 }, {¬X 4 , X 3 }, {¬X 4 , ¬X 3 }})
gdw. (Lemma, Teil 3, i = 3)
erfb(
^_
{{X 4 }, {X 4 , ¬X 4 }, {¬X 4 }})
gdw. (Lemma, Teil 2)
erfb(
^_
{{X 4 }, {¬X 4 }})
gdw. (Lemma, Teil 3, i = 4)
erfb(
^_
{;})
In beiden Fällen wurde damit gezeigt, dass ϕa unerfüllbar ist (da
erfüllbar).
Lösung zu Aufgabe 2.20 Nach Resolution:
1. {X 1 , X 2 , ¬X 3 }
2. {X 3 , ¬X 4 , X 5 }
3. {X 1 , X 2 , ¬X 4 , X 5 }
4. {¬X 1 , X 2 , ¬X 4 }
5. {X 2 , ¬X 4 , X 5 }
6. {¬X 2 }
7. {¬X 4 , X 5 }
8. {¬X 5 }
9. {¬X 4 }
10. {X 2 , X 4 }
11. {X 2 }
12. ;
(V)
(V)
(R) mit X 3 aus 1. und 2.
(V)
(R) mit X 1 aus 4. und 3.
(V)
(R) mit X 2 aus 5. und 6.
(V)
(R) mit X 5 aus 7. und 8.
(V)
(R) mit X 4 aus 9. und 10.
(R) mit X 2 aus 6. und 11.
Damit ist ϕ unerfüllbar.
147
–sourcefile– Rev –revision– 2009-02-03
VW
{;} ≡ 0, also un-
Lösungen
Lösung zu Aufgabe 2.21 Es gilt:
1. X 0
2. X 0 → X 1
3. X 1
4. X 1 → X 2
5. X 2
6. (X 2 → (¬X 3 → X 2 ))
7. ¬X 3 → X 2
(V)
(V)
(MP) auf 1. und 2.
(V)
(MP) auf 3. und 4.
(Ax1) mit ϕ = X 2 , ψ = ¬X 3
(MP) auf 5. und 6.
Lösung zu Aufgabe 2.22 Angenommen es gilt Φ `H ϕ. Dann existiert eine (Ableitungs-)Folge
ϕ0 , . . . , ϕn−1 mit ϕn−1 = ϕ von Formeln aus F [¬, →]AL . (Für jedes i < n gelten die drei Bedingungen aus dem Skript.)
Wir beweisen per Induktion über den Aufbau der Folge, dass für jedes i < n gilt: Φ |= ϕi .
Ist i = 0, so gibt es genau zwei Fälle.
1. Fall (V) ϕ0 ∈ Φ. Dann gilt offenbar Φ |= ϕ0 .
2. Fall (Ax) ϕ0 ist von der Gestalt (Ax1), (Ax2) oder (Ax3). Dann gilt nach Lemma 2.17
|= ϕ0 und damit insbesondere Φ |= ϕ0 .
Sei nun 0 < i < n und für alle ϕi 0 mit 0 ≤ i 0 < n gelte Φ |= ϕi 0 .
Dann gibt es drei Fälle:
1. Fall (V) ϕi ∈ Φ. Dann gilt offenbar Φ |= ϕi .
2. Fall (Ax) ϕi ist von der Gestalt (Ax1), (Ax2) oder (Ax3). Dann gilt nach Lemma 2.17
|= ϕi und damit insbesondere Φ |= ϕi .
3. Fall (MP) Es existieren j , k < i mit ϕk = ϕ j → ϕi . Da j , k < i , gilt Φ |= ϕ j und Φ |= ϕk .
Nach Lemma 2.18 gilt {ϕ j , ϕk } = {ϕ j , ϕ j → ϕi } |= ϕi . Damit gilt für jede zu Φ, ϕi , ϕ j
und ϕk passende Variablenbelegung β mit β |= Φ: β |= ϕ j , β |= ϕk und damit auch
β |= ϕi , also Φ |= ϕi .
Lösung zu Aufgabe 2.23 Es gilt:
6.
1. X 0
(A)
2. X 0 → X 1
(V)
3. X 1
(el-→) auf 1. und 2.
4. X 1 → X 2
(V)
5. X 2
(el-→) auf 4. und 3.
X0 → X2
(in-→) auf 1.–5.
148
–sourcefile– Rev –revision– 2009-02-03
Lösungen
Lösung zu Aufgabe 2.24
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
(a) Es gilt:
X 1 → (X 2 → X 3 )
(X 1 → (X 2 → X 3 )) → ((X 1 → X 2 ) → (X 1 → X 3 ))
(X 1 → X 2 ) → (X 1 → X 3 )
X1 → X2
X1 → X3
¬¬X 1
¬¬X 1 → (¬¬¬¬X 1 → ¬¬X 1 )
¬¬¬¬X 1 → ¬¬X 1
(¬¬¬¬X 1 → ¬¬X 1 ) → (¬X 1 → ¬¬¬X 1 )
¬X 1 → ¬¬¬X 1
(¬X 1 → ¬¬¬X 1 ) → (¬¬X 1 → X 1 )
¬¬X 1 → X 1
X1
X3
(V)
(Ax2)
(MP)
(V)
(MP)
(V)
(Ax1)
(MP)
(Ax3)
(MP)
(Ax3)
(MP)
(MP)
(MP)
Damit gilt {X 1 → (X 2 → X 3 ), X 1 → X 2 , ¬¬X 1 } `H X 3 .
(b) Es gilt:
1. (X 2 ∧ X 3 )
(A)
2. X 3
(el-∧-l) aus 1.
3. X 2
(el-∧-r) aus 1.
4. ¬X 1
(A)
5. ¬X 1 → ¬X 2
(V)
6. ¬X 2
(el-→) aus 4. & 5.
7. 0
(el-¬) aus 3. & 6.
8. ¬¬X 1
(in-¬) aus 4.–7.
9. X 1
(el-¬¬) aus 8.
10. X 3 → X 4
(V)
11. X 4
(el-→) aus 2. & 10.
12. X 1 ∧ X 4
(in-∧) aus 9. & 11.
13. (X 2 ∧ X 3 ) → (X 1 ∧ X 4 )
(in-→) aus 1.–12.
Damit gilt: {¬X 1 → ¬X 2 , X 3 → X 4 } `N (X 2 ∧ X 3 ) → (X 1 ∧ X 4 ).
149
–sourcefile– Rev –revision– 2009-02-03
aus 1. & 2.
aus 3. & 4.
aus 6. & 7.
aus 9. & 10.
aus 10. & 11.
aus 6. & 12.
aus 5. & 13.
Lösungen
Lösung zu Aufgabe 2.25 Die Formel zum Graphen sieht wie folgt aus:
´
^ ^
^ ³¡ ^
¢
ψG,V0 = X t ∧
(X j → X i ) ∧
X j → Xi
i ∈V0 (i , j )∈E
i ∈V \V0
j : (i , j )∈E
= X 10
^
∧ {X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 ,
X 10 → X 9 }
^
∧ {(X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 , 1 → X 10 }
^
≡ {1 → X 10 ,
X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 , X 6 → X 9 ,
X 10 → X 9 ,
(X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 }
Zu zeigen: ψG,V0 |= X 1 .
Gemäßt Markierungsalgorithmus erhalten wir:
1
I
M
;
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , X 10 → X 7 ,
X 6 → X 9 , X 10 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 }
2
{X 10 }
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 ,
X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 }
3
{X 7 , X 10 }
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 ,
X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , X 9 → X 8 }
4
{X 7 , X 9 , X 10 }
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , X 8 → X 5 , X 6 → X 7 , X 8 → X 7 , 1 → X 7 ,
X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , 1 → X 8 }
5
{X 7 , X 8 , X 9 , X 10 }
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , 1 → X 5 , X 6 → X 7 , 1 → X 7 ,
X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ∧ X 5 ) → X 2 , 1 → X 4 , (X 3 ∧ X 5 ) → X 6 , 1 → X 8 }
6
{X 4 , X 5 , X 7 , X 8 , X 9 , X 10 }
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , X 4 → X 5 , 1 → X 5 , X 6 → X 7 , 1 → X 7 ,
X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ) → X 2 , 1 → X 4 , X 3 → X 6 , 1 → X 8
7
{X 5 , X 7 , X 8 , X 9 , X 10 }
{1 → X 10 , X 6 → X 1 , X 2 → X 3 , 1 → X 5 , X 6 → X 7 , 1 → X 7 ,
X 6 → X 9 , 1 → X 9 , (X 1 ∧ X 4 ) → X 2 , 1 → X 4 , X 3 → X 6 , 1 → X 8 }
Damit gilt ψG |= X i für alle X i ∈ {X 5 , X 7 , X 8 , X 9 , X 10 }, aber ψG 6|= X 1 .
Lösung zu Aufgabe 2.26 Folgende Prozeduren liefern das gewünschte Ergebnis:
; Returned if a passed horn formula turns out to be unsatisfiable.
(define-struct unsatisfiable ())
150
-sourcefile-
Rev -revision-
2009-02-03
Lösungen
; The HornSAT algorithm.
; Computes all implications of the passed list of horn clauses.
; Returns that list, if it is not empty, and (make-unsatisfiable) otherwise.
(define (HornSAT M)
(let ((implications (paraHornSAT M ’())))
(if (null? implications)
(make-unsatisfiable)
implications)))
(define (paraHornSAT M I)
; check if exists (1 -> Xi) in M where Xi not in I
(let ((newTatsachenKlausel (findNewTatsachenklausel M I)))
(if (>= newTatsachenKlausel 0)
(let(
; if that is the case, append Xi to I...
(neuesI (append I (list newTatsachenKlausel)))
; ... and remove its negation from all left sides...
(neuesM (map
(lambda (psi)
(if (> (length psi) 1)
(filter
(lambda (x) (not (eq? (- x) newTatsachenKlausel)))
psi)
psi))
M)))
; ... and go on searching.
(paraHornSAT neuesM neuesI))
; if not, return I
I)))
; Checks if exists (1 -> Xi) in M where Xi not in I.
; Returns i, if such an Xi exists, and -1 otherwise.
(define (findNewTatsachenklausel M I)
(if (null? M)
-1
(if (and (eq? (length (car M)) 1) (not (contains I (car (car M)))))
(car (car M))
(findNewTatsachenklausel (cdr M) I))))
; Checks whether the passed list contains the specified element.
(define (contains list element)
(if (null? list)
#f
(or (= (car list) element) (contains (cdr list) element))))
Lösung zu Aufgabe 3.1
(a) Die Signatur für den geordneten Körper der reellen Zahlen
151
–sourcefile– Rev –revision– 2009-02-03
Lösungen
könnte zum Beispiel wie folgt aussehen:
ΣR = {0̃, 1̃, +//2, ×//2, </2}
Die ΣR -Struktur S = (T S ,C S , R S , F S ) für den geordneten Körper der reellen Zahlen läßt
sich dann wie folgt definieren:
S =TS =R
Trägermenge
C S = {0̃S , 1̃S }
R S = {<S }
S
S
mit 0̃S = 0 ∈ R und 1̃S = 1 ∈ R
Konstanten
mit (a, b) ∈<S gdw. a < b für alle a, b ∈ S = R
Relationen
S
S
S
F = {+ , × } mit + (a, b) = a + b und × = ab für alle a, b ∈ S Funktionen .
(b)
1) Sei t 0 = +(×(+(×(x 0 , x 0 ), ×(x 0 , x 0 )), x 1 ), +(+(x 1 , x 1 ), x 1 )). Dann entspricht t 0 dem
Polynom (2x 02 · x 1 ) + 3x 1 .
2) Sei t 1 = ×(x 0 , x 0 ). Dann liefern die Interpretationen von t 1 offenbar alle nicht
negativen reellen Zahlen.
Lösung zu Aufgabe 3.2
(a) Die Signatur könnte zum Beispiel wie folgt aussehen:
Σt r ee = {W, child /2} .
(b) Eine Σt r ee -Struktur S1 zum ersten Baum ist
S 1 = {0, 1, 2, 3, 4}
Trägermenge
childS1 = {(1, 0), (4, 1), (2, 0), (3, 0)}
W S1 = 0
Relation
Konstante
Die Σt r ee -Struktur S2 zum zweiten Baum ist
S 2 = {a, b, c, d , e, f , g , h, w}
Trägermenge
childS1 = {(a, w), (b, w), (c, w), (d , a), (e, a), ( f , a), (g , c), (h, c)}
W S1 = w
Relation
Konstante
(c) Sei S die folgende Σt r ee -Struktur:
S = {0, 1, 2}
Trägermenge
childS = {(1, 0), (2, 1), (0, 2)}
WS=0
Relation
Konstante
Dann ist S kein Baum.
Lösung zu Aufgabe 3.3 (a) 1) In der Struktur Nlt ist die Aussage wahr, da es in den
natürlichen Zahlen ein kleinstes Element gibt.
In der Struktur Rlt ist die Aussage falsch, da es zu jeder reellen Zahl kleinere
reelle Zahlen gibt.
152
–sourcefile– Rev –revision– 2009-02-03
Lösungen
2) In der Struktur Nlt ist die Aussage falsch, da zum Beispiel zwischen den Zahlen
0 und 1 keine weiteren Zahlen sind.
In der Struktur Rlt ist die Aussage wahr, da es zu je zwei verschiedenen reellen
Zahlen eine reelle Zahl gibt, die zwischen den beiden Zahlen liegt.
3) In der Struktur Nlt und in der Struktur Nlt ist die Aussage wahr, da für je zwei
Zahlen a, b eine der drei Möglichkeiten a < b, a = b oder a > b gilt.
(b) Im Folgenden verwenden wir PRIMZ(x 0 ) als eine abkürzende Schreibweise für
(¬x 0 = 1̃ ∧ ∀x 3 (∃x 4 x 0 = ×(x 3 , x 4 ) → (x 3 = 1̃ ∨ x 3 = x 0 )) .
(
1 falls β(x 0 ) Primzahl
β
Man kann sich überlegen, dass gilt: JPRIMZ(x 0 )KN =
0 sonst.
1) Betrachte die folgende Formel:
∀x 0 ∃x 1 ∃x 2 ∃x 3 ∃x 4 x 0 = (x 1 × x 1 ) + (x 2 × x 2 ) + (x 3 × x 3 ) + (x 4 × x 4 ) .
2) Betrachte die folgende Formel:
³
¡
¢
∀x 0 ∃x 1 ¬x 1 = 0̃ ∧ ¬x 1 = 1̃ ∧ x 0 = (1̃ + 1̃) × x 1
´
→ ∃x 1 ∃x 2 (PRIMZ(x 1 ) ∧ PRIMZ(x 2 ) ∧ x 0 = x 1 + x 2 ) .
3) Betrachte die folgende Formel:
∀x 0 ∃x 1 PRIMZ(x 0 + x 1 ) ∧ PRIMZ(x 0 + x 1 + 1̃ + 1̃) .
Lösung zu Aufgabe 3.6 Der Pseudocode zur Berechnung des Wahrheitswertes einer Formel ϕ bezüglich einer Struktur S und einer Belegung β könnte wie folgt aussehen:
EvalTerm ( S, β, t )
Vorbedingung : S Struktur , t Term ,
β Variablenbelegung die zu t passt .
i f t = x i then
return β(x i )
i f t = c then
return c S
i f t = f (t 0 , . . . , t n−1 ) then
¡
¢
return f S EvalTerm(S, β, t 0 ), . . . ,EvalTerm(S, β, t n−1 )
Nachbedingung : return = Jt KSβ
EvalFormula ( S, β, ϕ )
Vorbedingung : S Struktur , ϕ Formel ,
β Variablenbelegung die zu ϕ passt .
i f ϕ = 1 then return true
i f ϕ = 0 then return f a l s e
i f ϕ = t 0 = t 1 then
return EvalTerm ( t 0 ) == EvalTerm ( t 0 )
i f ϕ = R(t 0 , . . . , t n−1 ) then
i f ( EvalTerm ( t 0 ) , . . . , EvalTerm ( t n−1 ) ) ∈ R S
153
–sourcefile– Rev –revision– 2009-02-03
Lösungen
then return true
e l s e return f a l s e
i f ϕ = ¬ϕ0 then
return NOT EvalFormula ( S, β, ϕ0 )
i f ϕ = ϕ1 ◦ ϕ2 then
switch ( ◦ ) :
case ∧ :
return EvalFormula ( S, β, ϕ0 )
AND EvalFormula ( S, β, ϕ1 )
case ∨ :
return EvalFormula ( S, β, ϕ0 )
OR EvalFormula ( S, β, ϕ1 )
case → :
return EvalFormula ( S, β, ¬ϕ0 )
OR EvalFormula ( S, β, ϕ1 )
case ↔ :
return EvalFormula ( S, β, ϕ0 → ϕ1 )
AND EvalFormula ( S, β, ϕ1 → ϕ0 )
i f ϕ = ∃x i ϕ1 then
foreach a ∈ S
l e t β0 = β[a/x i ]
i f EvalFormula ( S, β0 , ϕ1 ) then
return true
return f a l s e
i f ϕ = ∀x i ϕ1 then
foreach a ∈ S
l e t β0 = β[a/x i ]
i f NOT EvalFormula ( S, β0 , ϕ1 ) then
return f a l s e
return true
Nachbedingung : return = JϕKSβ
Lösung zu Aufgabe 3.9 (a) 1) ∃x 0 ∃x 1 ∃x 2 ∃x 3 (Nutzer(x 0 , x 1 )∧Nutzer(x 2 , x 3 )∧¬x 0 = x 2 )
2) ∃x 0 ∃x 1 ∃x 2 ∃x 3 (Buch(x 0 , x 1 , x 2 ) ∧ Buch(x 3 , x 1 , x 2 ) ∧ ¬x 0 = x 3 )
3) ∀x 0 ∀x 1 ∀x 2 (Buch(x 0 , x 1 , x 2 ) → ∃x 3 Entliehen(x 0 , x 3 )
4) ∃x 0 ∃x 1 (Nutzer(x 0 , x 1 ) → ∃x 3 ∃x 2 ∀x 4 (Buch(x 2 , x 3 , x 4 ) → Entliehen(x 0 , x 2 ))
(Hier gehen wir davon aus, dass mit alle Bücher eines Autors, nur solche Bücher
eines Autors gemeint sind, die unterschiedliche Titel haben.)
(b) In dieser Aufgabe gehen wir von gerichteten Graphen aus. Die Relation E ist also nicht
unbedingt symmetrisch.
1) ∃x 0 ∀x 1 ¬(x 0 E x 1 ∨ x 1 E x 2 ).
2) ∃x 0 ∃x 1 ∃x 2 (¬(x 0 = x 1 ∨ x 1 = x 2 ∨ x 2 = x 0 ) ∧ (x 0 E x 1 ∨ x 1 E x 0 ) ∧ (x 0 E x 2 ∨ x 2 E x 0 ))
3) ∀x 0 ∀x 1 (¬x 0 = x 1 → (x 0 E x 1 ∨ x 1 E x 0 ))
Lösung zu Aufgabe 3.10 Es gelte β|vars(t ) = β0 |vars(t ) (ansonsten ist nichts zu zeigen).
1. Basiszuordnung:
Ist t = c für ein c ∈ Σ, dann gilt:
β
β
β0
Jt KS = Jc KS = c S = Jt KS .
154
–sourcefile– Rev –revision– 2009-02-03
Lösungen
Ist t = x i für ein i ∈ N, dann gilt:
β
β
β0
β0
Jt KS = Jx i KS = β(x i ) = β0 (x i ) = Jx i KS = Jt KS .
2. Induktionsregeln: Ist t von der Form t = f (t 0 , . . . , t n ) mit Termen t 0 , . . . , t n und n-stelliger
Funktion f //n ∈ Σ, dann gilt:
β
β
Jt KS = J f (t 0 , . . . , t n )KS
β
β
= f S (Jt 0 KS , . . . , Jt n KS )
β0
I.V.
β0
= f S (Jt 0 KS , . . . , Jt n KS )
β0
= J f (t 0 , . . . , t n )KS
β0
= Jt KS .
Lösung zu Aufgabe 3.11
(a) Die Anfrageergebnisse sehen wie folgt aus:
ϕ0 (K2 ) = {(Metro, Holtenauer Straße), (CinemaxX, Kaistraße),
(Neues Studio, Wilhelminenstraße)} ,
2
ϕ1 (K ) = {(CinemaxX, Kaistraße)} und
ϕ2 (K2 ) = ϕ0 (K2 ) ∪
{(Adam Sandler, Bedtime Stories), (Eliza Bennett, Tintenherz),
(Jason Statham, Transporter 3), (Kad Merad, Willkommen bei den Sch’tis)}
(b) ϕ0 entspricht: Finde alle Kinos.
ϕ1 entspricht: Finde alle Kinos, so dass jeder Film mindestens einmal im Programm
ist.
ϕ2 entspricht: Falls für alle passenden Paare von Kino und Zeiten ein Filmtitel existiert (trivial erfüllt), dann gib alle (Kino, Strasse)-Paare und alle (Schauspieler, Titel)Paare aus.
Lösung zu Aufgabe 3.12
(a) Setze
ϕa = ∃x 1 ∃x 2 ∃x 3 ∃x 4 ∃x 5 ∃x 6 ∃x 7 ∃x 8
¡
Kino(x 1 , x 2 )
∧ Kino(x 3 , x 4 )
// es gibt Kino2
∧ ¬x 1 = x 3
// Kino1 und Kino2 sind verschieden
∧ Film(x 0 , x 5 , x 6 )
// es gibt Film1
∧ Progr(x 1 , x 0 , x 7 )
∧ Progr(x 3 , x 0 , x 8 )
// Film1 lauft in Kino1
¢
// Film1 laeuft in Kino2
155
–sourcefile– Rev –revision– 2009-02-03
// es gibt Kino1
Lösungen
(b) Setze
ϕb = ∃x 1 ∃x 2 ∃x 3 ∃x 4 ∃x 5 ∃x 6
¡
Kino(x 1 , x 2 )
// es gibt Kino1
∧ Film(x 3 , x 4 , x 0 )
// es gibt Film1
∧ Progr(x 1 , x 3 , x 5 )
// Film1 laeuft in Kino1 zu Zeit1
∧ Progr(x 1 , x 3 , x 6 )
¢
∧ ¬x 5 = x 6
// Film1 laeuft in Kino1 zu Zeit2
// Zeit1 und Zeit2 sind verschieden
Lösung zu Aufgabe 3.13
(a) negierten Formeln:
if ϕ = ¬ψ then
return S n \ Eval(ψ, n, S)
(b) universiell quantifizierten Formeln:
if ϕ = ∀x i ψ then
if i < n then
let T = ;
let T 0 = Eval(ψ, n, S)
for each (b 0 , . . . , b n−1 ) ∈ T 0
©
ª
let L = (b 0 , . . . , b i −1 , a, b i +1 , . . . , b n−1 | a ∈ S)
if L ⊆ T 0 then let T = T ∪ L
return T
else
let T = ;
let T 0 = Eval(ψ, i + 1, S)
for each (b 0 , . . . , b i ) ∈ T 0
©
ª
let L = (b 0 , . . . , b i −1 , a) | a ∈ S)
©
ª
if L ⊆ T 0 then let T = T ∪ (a 0 , . . . a n−1 ) | (a 0 , . . . , a i ) ∈ L
return T
Lösung zu Aufgabe 3.14 Sei S Struktur mit Trägermenge S = {0, 1}, R S = {(0)} und P S = {(1)}.
(a) Die beiden Formeln sind nicht äquivalent.
β
β
Es gilt J∀x 1 ∃x 2 x 1 = x 2 KS = 1 6= 0 = J∃x 2 ∀x 1 x 1 = x 2 KS für eine beliebige Variablenbelegungen β (keine freien Variablen).
(b) Die beiden Formeln sind äquivalent.
Nach Lemma 3.14 gilt ∃x 2 ¬ϕ ≡ ¬∀x 2 ϕ. Lemma 3.13 und Variablenumbenennung
(Lemma 3.17 mit π(x 1 ) = x 2 und π(x 2 ) = x 1 ) liefern das Ergebnis.
(c) Die beiden Formeln sind äquivalent.
Nach Lemma 3.15 gilt ϕ ∧ ∀x i ψ ≡ ∀x i (ϕ ∧ ψ) falls x i ∉ free(ϕ). Da x 1 offenbar nicht
frei in R(x 0 ) vorkommt, sind beide Formeln äquivalent.
(d) Die beiden Formeln sind nicht äquivalent.
β
β
Es gilt J∀x 1 (R(x 1 ) ↔ P (x 1 ))KS = 0 6= 1 = J∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 )KS für eine beliebige
Variablenbelegungen β (keine freien Variablen).
156
–sourcefile– Rev –revision– 2009-02-03
Lösungen
Es gilt allerdings für alle Strukturen S mit S |= ∀x 1 (R(x 1 ) ↔ P (x 1 )) dass auch gilt S |=
∀x 1 R(x 1 ) ↔ ∀x 1 P (x 1 ).
(e) Die beiden Formeln sind nicht äquivalent.
β
β
Es gilt J∃x 1 (R(x 1 ) ↔ P (x 1 ))KS = 0 6= 1 = J∃x 1 R(x 1 ) ↔ ∃x 1 P (x 1 )KS für eine beliebige
Variablenbelegungen β (keine freien Variablen).
Es gilt allerdings für alle Strukturen S mit S |= ∃x 1 (R(x 1 ) ↔ P (x 1 )) dass auch gilt S |=
∃x 1 R(x 1 ) ↔ ∃x 1 P (x 1 ).
Lösung zu Aufgabe 3.16 Die Funktionsaufrufe des Algorithmus sehen etwa wie folgt aus:
PNF(ϕ)
DisjPNF(PNF(∀x 0 ∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))), PNF(∀x 3 ∃x 0 ¬P (x 0 )))
DisjPNF(∀x 0 PNF(∃x 1 ∀x 2 (P (x 0 ) → R(x 2 ))), ∀x 3 PNF(∃x 0 ¬P (x 0 )))
DisjPNF(∀x 0 ∃x 1 PNF(∀x 2 (P (x 0 ) → R(x 2 ))), ∀x 3 ∃x 0 PNF(¬P (x 0 )))
DisjPNF(∀x 0 ∃x 1 ∀x 2 PNF((P (x 0 ) → R(x 2 ))), ∀x 3 ∃x 0 NegPNF(P (x 0 )))
DisjPNF(∀x 0 ∃x 1 ∀x 2 PNF(¬P (x 0 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 ))
DisjPNF(∀x 0 ∃x 1 ∀x 2 DisjPNF(¬P (x 0 ), R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 ))
DisjPNF(∀x 0 ∃x 1 ∀x 2 (¬P (x 0 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 ))
∀x 4 DisjPNF(∃x 1 ∀x 2 (¬P (x 4 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 ))
∀x 4 ∃x 5 DisjPNF(∀x 2 (¬P (x 4 ) ∨ R(x 2 )), ∀x 3 ∃x 0 ¬P (x 0 ))
∀x 4 ∃x 5 ∀x 6 DisjPNF( ¬P (x 4 ) ∨ R(x 6 ), ∀x 3 ∃x 0 ¬P (x 0 ))
∀x 4 ∃x 5 ∀x 6 DisjPNF( ∀x 3 ∃x 0 ¬P (x 0 ), ¬P (x 4 ) ∨ R(x 6 ))
∀x 4 ∃x 5 ∀x 6 ∀x 7 DisjPNF( ∃x 0 ¬P (x 0 ), ¬P (x 4 ) ∨ R(x 6 ))
∀x 4 ∃x 5 ∀x 6 ∀x 7 ∃x 7 DisjPNF( ¬P (x 7 ), ¬P (x 4 ) ∨ R(x 6 ))
∀x 4 ∃x 5 ∀x 6 ∀x 7 ∃x 7 (¬P (x 7 ) ∨ (¬P (x 4 ) ∨ R(x 6 )))
Lösung zu Aufgabe 3.17 (a)
Fälle → und ↔:
i) Im Code von PNF(ϕ) fehlt noch die Behandlung der
i f ϕ = ϕ0 → ϕ1 then
return DisjPNF(NegPNF(ϕ0 ), PNF(ϕ1 ))
i f ϕ = ϕ0 ↔ ϕ1 then
return KonjPNF(PNF(ϕ0 → ϕ1 ), PNF(ϕ1 → ϕ0 ))
ii) Im Code von NegPNF(ϕ) fehlt noch die Behandlung der Fälle ∧, → und ↔:
i f ϕ = ϕ0 ∧ ϕ1 then
return DisjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 ))
i f ϕ = ϕ0 → ϕ1 then
return KonjPNF(PNF(ϕ0 ), NegPNF(ϕ1 ))
i f ϕ = ϕ0 ↔ ϕ1 then
return NegPNF((ϕ0 → ϕ) ∧ (ϕ1 → ϕ0 ))
iii) Im Code von DisjPNF(ϕ, ψ) fehlt noch die Behandlung des Falls ∀x i ϕ0 :
i f ϕ = ∀x i ψ then
l e t V = vars(ϕ) ∪ vars(ψ)
l e t j = max{k : x k ∈ V } + 1
l e t ϕ0 = Swap(i , j , ϕ)
l e t χ = DisjPNF(ϕ0 , ψ)
return ∀x i χ
157
–sourcefile– Rev –revision– 2009-02-03
Lösungen
iv) Im Code von Swap(i , j , ϕ) fehlt noch der Hauptteil:
i f ϕ = t 0 = t 1 then
return SwapT(i , j , t 0 ) = SwapT(i , j , t 1 )
i f ϕ = R(t 0 , . .¡. , t n−1 ) then
¢
return R SwapT(i , j , t 0 ), . . . , SwapT(i , j , t n−1 )
i f ϕ = ¬ψ then
return ¬Swap(i , j , ψ)
i f ϕ = ϕ0 ∧ ϕ1 then
return Swap(i , j , ϕ0 ) ∧ Swap(i , j , ϕ1 )
i f ϕ = ϕ0 ∨ ϕ1 then
return Swap(i , j , ϕ0 ) ∨ Swap(i , j , ϕ1 )
i f ϕ = ∃x k ψ then
i f k = i then
return ∃x j Swap(i , j , ψ)
else
return ∃x k Swap(i , j , ψ)
i f ϕ = ∀x k ψ then
i f k = i then
return ∀x j Swap(i , j , ψ)
else
return ∀x k Swap(i , j , ψ)
In dem Code wird eine Methode/Funktion SwapT(i , j , t ) verwendet, die alle Variablen x i im Term t durch x j ersetzt.
SwapT(i , j , t )
Vorbedingung : i , j ∈ N , t Σ−Term
i f t = c then
return c
i f t = x k then
i f k = i then
return x j
else
return x k
i f t = F (t 0 , . . . , t n−1 ) then
return F (SwapT(i , j , t 0 ), . . . , SwapT(i , j , t n−1 ))
Nachbedingung : return = t π mit π(x i ) = x j und π(x j ) = x i
v) Der Code von KonjPNF(ϕ, ψ) ist:
KonjPNF(ϕ, ψ)
Vorbedingung : ϕ, ψ ∈ PNF(Σ)
i f ϕ, ψ ∈ QF(Σ) then
return ψ ∧ ϕ
i f ϕ ∈ QF(Σ) then
l e t (ϕ, ψ) = (ψ, ϕ)
i f ϕ = ∃x i ψ then
l e t V = vars(ϕ) ∪ vars(ψ)
l e t j = max{k : x k ∈ V } + 1
l e t ϕ0 = Swap(i , j , ϕ)
l e t χ = DisjPNF(ϕ0 , ψ)
return ∃x i χ
i f ϕ = ∀x i ψ then
l e t V = vars(ϕ) ∪ vars(ψ)
158
–sourcefile– Rev –revision– 2009-02-03
Lösungen
l e t j = max{k : x k ∈ V } + 1
l e t ϕ0 = Swap(i , j , ϕ)
l e t χ = DisjPNF(ϕ0 , ψ)
return ∀x i χ
Nachbedingung : return ∈ PNF(Σ) und return ≡ ϕ ∧ ψ
(b) Gemäß Algorithmus erhalten wir folgende Formeln (mit Zwischenschritten):
1)
R(x 0 ) ∧ ¬∃x 0Q(x 0 )
R(x 0 ) ∧ ∀x 0 ¬Q(x 0 )
∀x 0 ¬Q(x 0 ) ∧ R(x 0 )
∀x 1 (¬Q(x 1 ) ∧ R(x 0 ))
2)
¬∀x 0 R(x 0 ) ∧ ∀x 0 P (x 0 )
∃x 0 ¬R(x 0 ) ∧ ∀x 0 P (x 0 )
∃x 1 (¬R(x 1 ) ∧ ∀x 0 P (x 0 ))
∃x 1 (∀x 0 P (x 0 ) ∧ ¬R(x 1 ))
∃x 1 ∀x 2 (P (x 2 ) ∧ ¬R(x 1 ))
3)
¬∀x 0 R(x 0 ) ∧ ∀x 1 (P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 ))
∃x 0 ¬R(x 0 ) ∧ ∀x 1 (∃x 0Q(x 0 , x 1 ) ∨ P (x 1 ))
∃x 0 ¬R(x 0 ) ∧ ∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 ))
∃x 3 (¬R(x 3 ) ∧ ∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 )))
∃x 3 (∀x 1 ∃x 2 (Q(x 2 , x 1 ) ∨ P (x 1 )) ∧ ¬R(x 3 ))
∃x 3 ∀x 4 (∃x 2 (Q(x 2 , x 4 ) ∨ P (x 4 )) ∧ ¬R(x 3 ))
∃x 3 ∀x 4 ∃x 5 ((Q(x 5 , x 4 ) ∨ P (x 4 )) ∧ ¬R(x 3 ))
159
–sourcefile– Rev –revision– 2009-02-03
Lösungen
4)
¬∀x 0 R(x 0 ) → ∀x 1 (P (x 1 ) ↔ ∃x 0Q(x 0 , x 1 ))
¬¬∀x 0 R(x 0 ) ∨ ∀x 1 ((¬P (x 1 ) ∨ ∃x 0Q(x 0 , x 1 )) ∧ (P (x 1 ) ∨ ¬∃x 0Q(x 0 , x 1 )))
∀x 0 R(x 0 ) ∨ ∀x 1 ((∃x 0Q(x 0 , x 1 ) ∨ ¬P (x 1 )) ∧ (¬∃x 0Q(x 0 , x 1 ) ∨ P (x 1 )))
∀x 0 R(x 0 ) ∨ ∀x 1 (∃x 2 (Q(x 2 , x 1 ) ∨ ¬P (x 1 )) ∧ ∀x 2 (¬Q(x 2 , x 1 ) ∨ P (x 1 )))
∀x 0 R(x 0 ) ∨ ∀x 1 ∃x 3 ((Q(x 3 , x 1 ) ∨ ¬P (x 1 )) ∧ ∀x 2 (¬Q(x 2 , x 1 ) ∨ P (x 1 )))
∀x 0 R(x 0 ) ∨ ∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 )))
∀x 5 (R(x 5 ) ∨ ∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 ))))
∀x 5 (∀x 1 ∃x 3 ∀x 4 ((¬Q(x 4 , x 1 ) ∨ P (x 1 )) ∧ (Q(x 3 , x 1 ) ∨ ¬P (x 1 ))) ∨ R(x 5 ))
∀x 5 ∀x 6 (∃x 3 ∀x 4 ((¬Q(x 4 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 3 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 ))
∀x 5 ∀x 6 ∃x 7 (∀x 4 ((¬Q(x 4 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 7 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 ))
∀x 5 ∀x 6 ∃x 7 ∀x 8 (((¬Q(x 8 , x 6 ) ∨ P (x 6 )) ∧ (Q(x 7 , x 6 ) ∨ ¬P (x 6 ))) ∨ R(x 5 ))
160
–sourcefile– Rev –revision– 2009-02-03
Index
F [¬, →]AL , 62
F PL (Σ), 86
0
(Σ), 120
F PL
n
F PL (Σ), 97
T (Σ), 83
VPL , 82
J·K· , 10
erfb(), 37
F ⟨↔⟩AL , 64
Φ |= ϕ, 126
Θϕ , 121
vars(ϕ), 9, 84
≡, 23, 104
∃x i ϕ, 86
∀x i ϕ, 86
DNF AL , 33
KNF AL , 33
NNF AL , 29
PNF(Σ), 108
QF(Σ), 108
|=, 37, 50, 89
∀ ϕ, 123
folg(ϕ), 75
free(ϕ), 87
quant(ϕ), 108
rank(ϕ), 108
sig(ϕ), 123
Mod(Φ), 90
res X i (K , K 0 ), 59
ϕ(Sn ), 97
ϕ ≡erfb ϕ0 , 123
`, 67
`H , 63
`N , 65
`R , 59
`HPL , 128
Ableitungssystem, 66
ableiten, 66
Ableitung, 68
Ableitungsrelation, 67
Axiom, 67
Bruchschreibweise, 68
Konklusion, 67
Prämisse, 67
Regeln, 67
Allabschluss, 123
Anfrage, 98
Anfrageergebnis, 98
Aussage, 89
Aussagenvariable, 8
Beweissystem
Hilbert-Beweis, 63
Hilbert-System, 62
natürlicher Beweis, 65
natürliches Beweissystem, 64
Resolution, siehe Resolution
boolesche Operationen, 10
DIMACS-Daten, 38
DP-SAT, 43
DPLL-SAT, 40
DPLL-SAT (mit erfüllender Belegung), 41
einfache Konjunktion, 32
Elementvariable, 82
frei vorkommen, 87
Erreichbarkeitsspiel, 74
Eval, 103
Expansion, 121
aussagenlogische, 122
161
–sourcefile– Rev –revision– 2009-02-03
Index
Folgerung, 126
Formel (aussagenlogisch), 8
äquivalent, 23
allgemeingültig, 51
atomar, 8
erfüllbar, 15
zusammengesetzt, 9
Formel (prädikatenlogisch, erster Stufe), 86
Σ-Formel, 86
äquivalent, 104
atomar, 86
erfüllbarkeitsäquivalent, 123
existenziell quatifiziert, 86
quantorenfrei, 108
Quantorenpräfix, 108
universell quatifiziert, 86
Σ-Formelsubstitution, 105
Funktionssymbole, 79
positiv, 32
Modell, 51, 89
Normalformen
disjunktive Normalform, 33
konjunktive Normalform, 33
Negation-Konditional-Normalform, 62
Negationsnormalform (NNF), 29
positive Normalform, 29
Postsche Korrespondenzproblem
Ausgangspaar, 114
erzeugbares Paar, 114
Instanz, 114
Lösungsfolge, 114
Postsche Korrespondenzproblem (PCP), 114
(Entscheidungs-)Problem, 47
divergiert, 49
entscheidbar, 48
negativ semi-entscheidbar, 49
negative Instanzen, 47
negatives Entscheidungsverfahren, 49
positive Instanzen, 47
semi-entscheidbar, 49
Semi-Entscheidungsverfahren, 48
Σ-Grundformel, 120
Σ-Grundterm, 120
Horn-Formel, 70
Horn-Klausel, 70
Programmklausel, 70
Tatsachenklausel, 70
Zielklausel, 70
Horn-Klauselmenge, 70
HornSAT, 76
HornSAT*, 78
Quantorenrang, 108
quativizierte Variable, 108
Relationssymbole, 79
Resolution
korrekt, 59
Korrektheit, 61
Resolutionsbeweis, 59
Resolutionswiderlegung, 59
Resolvente, 59
vollständig, 60
Vollständigkeit, 61
Interpretation, siehe Wahrheitswert, 81
Σ-Interpretation, 104
Junktor, 8
Klausel, 32
2-Klausel, 42
Einheitsklausel, 37
tautologisch, 41
Klauselmenge, 32
2-Klauselmenge, 42
Konstantensymbole, 8, 79
Schaltnetz, 53
Anweisung, 53
Anweisungsfolge, 53
Ausgangsvariablen, 53
Eingangsvariablen, 53
Signatur, 79
Literal, 32
negativ, 32
162
–sourcefile– Rev –revision– 2009-02-03
Index
algebraisch, 80
kleinste, 123
relational, 80
Signatur einer Formel, 123
Skolemisierung, 123, 127
Stelligkeit, 79
Σ-Struktur, 80
Substitution, 27
entkoppelnde Umbenennung, 55
passende, 119
Substituent, 27
Term, 83
Termmodell, 120
Σ-Termstruktur, 120
Σ-Termsubstitution, 118
Trägermenge, 80
Umbenennung, 109
universelle Aussage, 120
Variablenbelegung (aussagenlogisch), 10
erfüllend, 15
passend, 10
Variablenbelegung (prädikatenlogisch), 84
allgemeingültig, 111
erfüllbar, 111
passend, 84, 87
Wahrheitswert, 10
163
–sourcefile– Rev –revision– 2009-02-03
Herunterladen