Logik für Informatiker

Werbung
Logik für Informatiker
Viorica Sofronie-Stokkermans
e-mail: [email protected]
1
Logik in der Informatik
Was ist Logik?
• Mathematisch?
ja
• Unverständlich?
hoffentlich nein
• Reine Theorie ohne praktischen Nutzen?
nein: Verifikation von Hardware, Software, Protokollen
Sprachverarbeitung und Wissensrepräsentation
Abfragensprachen für Datenbanken; ...
2
Formale Logik
Ziel
• Formalisierung und Automatisierung rationalen Denkens
• Rational richtige Ableitung von neuem Wissen aus gegebenem
Rolle der Logik in der Informatik
• Anwendung innerhalb der Informatik
Spezifikation, Programmentwicklung, Programmverifikation
• Werkzeug für Anwendungen außerhalb der Informatik
Künstliche Intelligenz, Wissensrepräsentation
3
Modellierung
Abstraktion
4
Modellierung
Adäquatheit des Modells
Wenn formulierbare Aussage wahr im Modell, dann entsprechende Aussage
wahr in Wirklichkeit
5
Beispiel: Aufzug
oben
oben
Aufzug oben
Mitte gedruckt
F.nach unten
mitte
mitte
unten
unten
6
Beispiel: Aufzug
oben
oben
mitte
mitte
Aufzug mitte
Oben gedruckt
F.nach oben
unten
unten
7
Modellierung: Strukturen
oben
Aufzug oben
Mitte gedruckt
oben
F.nach unten
mitte
mitte
oben
Aufzug mitte
Unten gedruckt
Aufzug oben
Mitte gedruckt
F.nach unten
mitte
F.nach unten
unten
v(AufzugOben) = wahr
unten
v(AufzugMitte) = wahr
unten
v(AufzugOben) = wahr
v(AufzugMitte) = wahr
v(MitteGedrückt) = wahr
v(UntenGedrückt) = wahr
v(MitteGedrückt) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
8
Modellierung: Strukturen
oben
Aufzug oben
Mitte gedruckt
oben
F.nach unten
mitte
mitte
oben
Aufzug mitte
Unten gedruckt
mitte
Aufzug oben
Mitte gedruckt
F.nach unten
Aufzug mitte
F.nach unten
unten
v(AufzugOben) = wahr
unten
v(AufzugMitte) = wahr
unten
v(AufzugOben) = wahr
v(AufzugMitte) = wahr
v(MitteGedrückt) = wahr
v(UntenGedrückt) = wahr
v(MitteGedrückt) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
9
Modellierung: Strukturen
oben
Aufzug oben
Mitte gedruckt
oben
F.nach unten
mitte
mitte
oben
Aufzug mitte
Unten gedruckt
mitte
Aufzug oben
Mitte gedruckt
F.nach unten
Aufzug mitte
F.nach unten
unten
unten
unten
Aussagen beziehen sich auf Strukturen
(Formale) Aussagen sind in jeder einzelnen Struktur zu wahr oder falsch
auswertbar
10
Formale Logik
• Syntax
welche Formeln?
• Semantik
Modelle (Strukturen)
Wann ist eine Formel wahr (in einer Struktur)?
• Deduktionsmechanismus
Ableitung neuer wahrer Formeln
11
Aussagenlogik: Syntax
Die Welt besteht aus Fakten
Bausteine: Atomare Aussagen
Beispiele: Aufzug ist oben:
AufzugOben
Mittlerer Knopf gedrückt:
MitteGedrückt
Verknüpft mit logischen Operatoren
und
oder
impliziert
nicht
∧
∨
→
¬
12
Aussagenlogik: Syntax
Komplexe Aussagen:
Beispiele:
Wenn mittlerer Knopf gedrückt, dann Aufzug nicht in der Mitte
MitteGedrückt → ¬AufzugMitte
Der Aufzug ist oben und der Aufzug ist nicht unten
AufzugOben ∧ ¬AufzugUnten
13
Aussagenlogik: Semantik
Der Aufzug ist oben und der Aufzug ist nicht unten
AufzugOben ∧ ¬AufzugUnten
wahr in:
oben
Aufzug oben
Mitte gedruckt
F.nach unten
mitte
unten
14
Aussagenlogik: Semantik
Der Aufzug ist oben und der Aufzug ist nicht unten
AufzugOben ∧ ¬AufzugUnten
falsch in:
oben
mitte
Aufzug mitte
Unten gedruckt
F.nach unten
unten
15
Aussagenlogik: Deduktionsmechanismus
• Deduktionsmechanismus
Ableitung neuer wahrer Formeln
Syllogismen:
P→Q
P
Q
Beispiel:
AufzugUnten → ¬AufzugOben
AufzugUnten
¬AufzugOben
16
Aussagenlogik: Deduktionsmechanismus
Deduktionsmechanismus im allgemeinen
Kalkül
In dieser Vorlesung:
• Wahrheitstafeln
• Logische Umformung
• Resolutionskalkül
• Tableaukalkül
• DPLL
17
Prädikatenlogik
Aussagenlogik: Die Welt besteht aus Fakten
... aber: Aussagenlogik hat nur beschränkte Ausdruckskraft
Beispiele:
• Die Aussage “Alle Menschen sind sterblich” erfordert eine Formel für
jeden Mensch.
• Die Aussage “Jede natürliche Zahl ist entweder gerade oder ungerade”
erfordert eine Formel für jede Zahl.
18
Prädikatenlogik
Reichere Struktur
• Objekte (Elemente)
Leute, Häuser, Zahlen, Theorien, Farben, Jahre, ...
• Relationen (Eigenschaften)
rot, rund, prim, mehrstöckig, ...
ist Bruder von, ist größer als, ist Teil von, hat Farbe, besitzt, ..
=, ≥, ...
• Funktionen
+, Mitte von, Vater von, Anfang von, ...
19
Beispiel: Tante Agatha
Eine kleine Logelei:
Jemand, der in Schloss Dreadbury wohnt, hat Tante
Agatha ermordet. Agatha, ihr Butler und ihr Neffe Charles
waren die einzigen Bewohner von Schloss Dreadbury. Ein
Mörder hasst immer sein Opfer und ist niemals reicher als
sein Opfer. Charles hasst niemanden, den Tante Agatha
gehasst hat. Agatha hat jeden gehasst außer ihrem Butler.
Der Butler hasst jeden, der nicht reicher ist als Tante
Agatha. Der Butler hasst jeden, den Tante Agatha gehasst
hat. Niemand hasst jeden. Agatha war nicht der Butler.
Wer hat Tante Agatha ermordet?
20
Beispiel: Tante Agatha
Zuerst formalisieren wir das Problem:
Jemand, der in Schloss Dreadbury wohnt, hat Tante Agatha
ermordet.
E
◮
x (schlossbewohner(x) ∧ ermordet(x, a))
Agatha, ihr Butler und ihr Neffe Charles waren die einzigen
Bewohner von Schloss Dreadbury.
A
◮
x (schlossbewohner(x) ↔ (x = a ∨ x = b ∨ x = c))
21
Beispiel: Tante Agatha
Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein
Opfer.
A
A
◮
x, y (ermordet(x, y ) → hasst(x, y ))
x, y (ermordet(x, y ) → ¬ reicher(x, y ))
Charles hasst niemanden, den Tante Agatha gehasst hat.
A
◮
x (hasst(c, x) → ¬ hasst(a, x))
Agatha hat jeden gehasst außer ihrem Butler.
A
◮
¬ hasst(a, x) ↔ x = b)
x (¬
22
Beispiel: Tante Agatha
Der Butler hasst jeden, der nicht reicher ist als Tante Agatha.
A
◮
¬ reicher(x, a) → hasst(b, x))
x (¬
Der Butler hasst jeden, den Tante Agatha gehasst hat.
A
◮
x (hasst(a, x) → hasst(b, x))
Niemand hasst jeden.
E A
◮
x
¬ hasst(x, y ))
y (¬
Agatha war nicht der Butler.
◮
¬a=b
23
Prädikatenlogik: Deduktionsmechanismus
• Deduktionsmechanismus
Ableitung neuer wahrer Formeln
Syllogismen:
A
A
x(P(x) → Q(x))
x(Q(x) → R(x))
A
x(P(x) → R(x))
24
Beispiel: Tante Agatha
Nun können wir aus den Formeln neue Formeln ableiten.
Beispielweise so:
ermordet(x, y ) → hasst(x, y )
hasst(c, y ) → ¬hasst(a, y )
ermordet(c, y ) → ¬hasst(a, y )
ermordet(c, y ) → ¬hasst(a, y )
¬hasst(a, y ) → y = b
ermordet(c, y ) → y = b
25
Beispiel: Tante Agatha
Nun können wir aus den Formeln neue Formeln ableiten.
Beispielweise so:
ermordet(x, y ) → hasst(x, y )
hasst(c, y ) → ¬hasst(a, y )
ermordet(c, y ) → ¬hasst(a, y )
ermordet(c, y ) → ¬hasst(a, y )
¬hasst(a, y ) → y = b
ermordet(c, y ) → y = b
ermordet(c, y ) → y = b
¬(a = b)
¬ermordet(c, a)
26
Beispiel: Tante Agatha
Damit wissen wir schon, dass Charles nicht der Mörder ist.
Die weitere Berechnung ist aber mühsam.
Glücklicherweise können wir die Arbeit einem automatischen
Theorembeweiser überlassen.
27
Prädikatenlogik: Deduktionsmechanismus
In dieser Vorlesung:
• Resolutionskalkül
• Tableaukalkül
28
Das ganze Bild
Probleme
(Beschreibung in natürlicher Sprache)
Formalisierung
Logische Sprache: Syntax
Aussagenlogik /
Prädikatenlogik
Formel
Modelle: Semantik
Kalkül
Logik
Vollständigkeit
Gültige Formel
Beweisbare Formel
Korrektheit
29
Das ganze Bild
Probleme
(Beschreibung in natürlicher Sprache)
Formalisierung
Modellierung
Logische Sprache: Syntax
Aussagenlogik /
Prädikatenlogik
Formel
Modelle: Semantik
Kalkül
Logik
Vollständigkeit
Gültige Formel
Beweisbare Formel
Korrektheit
30
Das ganze Bild
Probleme
(Beschreibung in natürlicher Sprache)
Formalisierung
Logische Sprache: Syntax
Aussagenlogik /
(automatische)
Prädikatenlogik
Deduktion
Formel
Modelle: Semantik
Kalkül
Logik
Vollständigkeit
Gültige Formel
Beweisbare Formel
Korrektheit
31
Inhalt der Vorlesung
• 1. Einführung: Motivation, Beweisstrategien (insb. Induktion)
• 2. Aussagenlogik
– Syntax und Semantik
– Deduktionsmechanismen:
- Resolution, Vollständigkeits- und Korrektheitsbeweise
- Analytische Tableaux; DPLL
• 3. Prädikatenlogik
– Syntax und Semantik
– Deduktionsmechanismen:
- Resolution, Vollständigkeits- und Korrektheitsbeweise
- Analytische Tableaux
• 4. Weitere Aussichten
- Nichtklassische Logiken; Logiken höherer Stufe
- Anwendungen: z.B. Datenbanken oder Verifikation
32
Einführung: Zusammenfassung
• Ziel und Rolle der Formalen Logik in der Informatik
• Modellierung, Adäquatheit der Modellierung
• Wesentliche Komponenten für jede Logik: Syntax, Semantik,
Deduktionsmechanismus (Kalkül)
• Beispiel Aussagenlogik: Syntax, Semantik, Syllogismen
• Beispiel Prädikatenlogik: Syntax, Semantik, Syllogismen
• The Whole Picture:
– Formel in der “wahren Welt” / (semantisch) gültige Formel,
gültige Formel / ableitbare Formel
– Vollständigkeit und Korrektheit von Kalkülen
33
1. Grundlegende Beweisstrategien
34
Mathematisches Beweisen
Mathematische Aussagen
- haben oft die Form: Wenn A, dann B.
- als Formel: A → B
Mathematischer Beweis
- bzgl. eines vorgegebenen Axiomensystems
- mit Hilfe von Inferenzregeln
35
Grundlegende Beweisstrategien
Mathematische Aussagen der Form A → B (Wenn A, dann B)
- Direkter Beweis:
Annahme: A gilt. Benutze A, Axiome, und Inferenzregeln
um B zu beweisen.
Behauptung: Das Quadrat einer ungeraden natürlichen Zahl n ist stets ungerade.
Beweis: Es sei n eine ungerade natürliche Zahl. Dann lässt sich n darstellen als
n = 2k + 1, wobei k eine natürliche Zahl oder Null ist. Daraus folgt mit Hilfe der
ersten binomischen Formel
n2 = (2k + 1)2 = 4k 2 + 4k + 1 = 2 · (2k 2 + 2k) + 1.
Aus der Möglichkeit, n2 so darzustellen folgt, dass n2 ungerade ist.
36
Grundlegende Beweisstrategien
Mathematische Aussagen der Form A → B (Wenn A, dann B)
- Beweis durch Kontraposition:
Beweis von ¬B → ¬A.
- Beweis durch Widerspruch:
Beweise dass A ∧ ¬B → falsch
Behauptung: Ist die Wurzel aus einer geraden natürlichen Zahl n eine natürliche
Zahl, so ist diese gerade.
n gerade und
√
n = k ∈ N → k gerade
Beweis durch Kontraposition: Zu zeigen:
√
n = k ∈ N und k ungerade → n ungerade.
37
Grundlegende Beweisstrategien
Mathematische Aussagen der Form A → B (Wenn A, dann B)
- Beweis durch Kontraposition:
Beweis von ¬B → ¬A.
- Beweis durch Widerspruch:
Beweise dass A ∧ ¬B → falsch
Behauptung: Ist die Wurzel aus einer geraden natürlichen Zahl n eine natürliche
Zahl, so ist diese gerade.
√
Beweis: Angenommen, n = k wäre ungerade. Dann ist wegen der bereits bewiesenen Behauptung auch k 2 = n ungerade, und das ist ein Widerspruch zu der
Voraussetzung, dass n gerade ist.
√
Also ist die getroffene Annahme falsch, d.h., n ist gerade.
38
Grundlegende Beweisstrategien
Mathematische Aussagen, die nicht die Form A → B haben
- Äquivalenzbeweis (A ⇔ B) (A genau dann, wenn B)
Beweise dass A → B und dass B → A.
(Wenn A, dann B, und wenn B, dann A.)
39
Grundlegende Beweisstrategien
- Beweis durch Fallunterscheidung
Um B zu beweisen, beweise dass A1 → B, . . . , An → B,
wobei A1 ∨ · · · ∨ An ≡ wahr
Behauptung: Jede Primzahl p≥3 hat die Form p = 4·k±1 mit einer natürlichen Zahl k.
Beweis: Man unterscheidet folgende vier Fälle für die Zahl p, von denen immer genau
einer eintritt:
1.
2.
3.
4.
p
p
p
p
=
=
=
=
4k
4k + 1
4k + 2
4k + 3 = 4(k + 1) − 1
Im ersten dieser Fälle ist p durch 4 teilbar und damit keine Primzahl, im dritten Fall ist p
durch 2 teilbar und somit ebenfalls keine Primzahl.
Also muss einer der Fälle zwei oder vier eintreten, das heißt p hat die Form p = 4 · k ± 1
mit einer natürlichen Zahl k.
40
Grundlegende Beweisstrategien
- Beweis durch Fallunterscheidung
Um B zu beweisen, beweise dass A1 → B, . . . , An → B,
wobei A1 ∨ · · · ∨ An ≡ wahr
Es sei angemerkt, dass die Fallunterscheidung zwar vollständig sein
muss, aber die untersuchten Fälle sich nicht gegenseitig ausschließen
müssen.
41
Grundlegende Beweisstrategien
Aussagen mit Quantoren
A
x ∈ U : (p(x) → q(x))
A
Behauptung:
n ∈ N : (n ist gerade und
|
√
A
Wähle a beliebig aus U.
Beweis der Implikation p(a) → q(a).
Da a beliebig gewählt werden kann, folgt
x ∈ U : p(x) → q(x)
√
n ist eine natürliche Zahl → n ist gerade).
{z
}
{z
}
|
p(n)
Beweis: Sei n beliebig aus N. Wir zeigen, dass wenn n gerade ist und
√
Zahl ist, dann n gerade ist (das wurde auf Seite 6 bewiesen).
q(n)
√
n eine natürliche
42
Grundlegende Beweisstrategien
Aussagen mit Quantoren
E
x (p(x) → q(x))
Sei a ein geeignetes Element aus U.
Beweis der Implikation p(a) → q(a).
Damit folgt x ∈ U : p(x) → q(x).
E
E A
x y A(x, y )
43
Grundlegende Beweisstrategien
Beweise mittels Vollständiger Induktion
44
Induktion
Wesentliches Beweisprinzip in Mathematik und Logik
Einfache Version
Induktion über die natürlichen Zahlen N
(natural induction)
Generalization
Noethersche Induktion
(noetherian induction/
induction over well-founded partially ordered sets)
45
Emmy Noether
Geboren 1882 in Erlangen
Gestorben 1934 in Princeton (USA)
Mitbegründerin der modernen Algebra
Allgemein heißt eine geordnete algebraische Struktur
noethersch, wenn es in ihr keine unendlich absteigenden
Ketten gibt.
46
Induktion über die natürlichen Zahlen
Idee: Definition der natürlichen Zahlen
(A1)
0 ist eine natürliche Zahl
(A2)
Jede natürliche Zahl n hat einen Nachfolger S(n)
(A3)
Aus S(n) = S(m) folgt n = m
(A4)
0 ist nicht Nachfolger einer natürlichen Zahl
(A5)
Jede Menge X , die 0 und mit jeder natürlichen Zahl n
auch deren Nachfolger S(n) enthält, umfasst alle
natürlichen Zahlen.
47
Induktion über die natürlichen Zahlen
(A5)
Jede Menge X , die 0 und mit jeder natürlichen Zahl n
auch deren Nachfolger S(n) enthält, umfasst alle
natürlichen Zahlen.
A
X Menge:
Falls
0 ∈ X , und
A
n ∈N:n ∈X →n+1∈X
A
so
n∈N:n∈X
Induktionssatz
Gelten die beiden Aussagen:
- p(0) und
- n ∈ N : p(n) → p(n + 1),
dann gilt auch n ∈ N : p(n).
A
A
48
Induktion über die natürlichen Zahlen
(A5)
Jede Menge X , die 0 und mit jeder natürlichen Zahl n
auch deren Nachfolger S(n) enthält, umfasst alle
natürlichen Zahlen.
A
X Menge:
Falls
0 ∈ X , und
A
n ∈N:n ∈X →n+1∈X
A
so
n∈N:n∈X
Induktionssatz
Gelten die beiden Aussagen:
- p(0) und
- n ∈ N : p(n) → p(n + 1),
dann gilt auch n ∈ N : p(n).
Induktionsbasis
Induktionsschritt
A
A
49
Induktion über die natürlichen Zahlen
Struktur eines Induktionsbeweises
(1)
Induktionsbasis:
Beweise p(0)
(2)
Induktionsschritt:
Beweise p(n) → p(n + 1)
für ein beliebiges n ∈ N
50
Induktion über die natürlichen Zahlen
Struktur eines Induktionsbeweises
(1)
Induktionsbasis:
Beweise p(0)
(2)
Induktionsvoraussetzung:
Für ein beliebig gewähltes
n ∈ N gilt p(n)
(3)
Induktionsschluss:
Folgere p(n + 1) aus der
Induktionsvoraussetzung p(n)
51
Beispiel
Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 .
n−1
X
(2i + 1) = n2 .
Für alle n ∈ N,
i=0
52
Beispiel
Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 .
n−1
X
n−1
X
(2i + 1) = n2 .
Für alle n ∈ N,
2
(2i
+
1)
=
n
p(n)
:
i=0
i=0
(1)
Induktionsbasis:
Beweise p(0)
n = 0: 0 = 02
53
Beispiel
Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 .
n−1
X
n−1
X
(2i + 1) = n2 .
Für alle n ∈ N,
2
(2i
+
1)
=
n
p(n)
:
i=0
i=0
(1)
Induktionsbasis:
Beweise p(0) OK
(2)
Induktionsvoraussetzung:
Für ein beliebig gewähltes
n−1
X
(2i + 1) = n2
n ∈ N gilt p(n):
i=0
54
Beispiel
Behauptung: Die Summe der ersten n ungeraden Zahlen ist n2 .
n−1
X
n−1
X
(2i + 1) = n2 .
Für alle n ∈ N,
(2i + 1) = n2
p(n) :
i=0
i=0
(1)
Induktionsbasis:
Beweise p(0) OK
(2)
Induktionsvoraussetzung:
Für ein beliebig gewähltes
n−1
X
(2i + 1) = n2
n ∈ N gilt p(n):
i=0
(3)
Induktionsschluss:
Folgere p(n + 1) aus p(n)
n
X
(2i + 1) = (n + 1)2 .
p(n + 1) :
i=0
Beweis:
n
X
i=0
n−1
X
p(n) 2
2
(2i + 1)) + (2n + 1) = n + (2n + 1) = (n + 1) .
(2i + 1) = (
i=0
55
Verallgemeinerte vollständige Induktion
Verallgemeinerte vollständige Induktion
Gelten die beiden Aussagen:
p(0)
und
n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1)
A
A
dann gilt die Aussage
n ∈ N : p(n).
56
Wohlfundierte (Noethersche) Induktion
Verallgemeinerte vollständige Induktion
Gelten die beiden Aussagen:
p(0)
und
n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1)
A
A
dann gilt die Aussage
n ∈ N : p(n).
Äquivalent
Gelten die beiden Aussagen:
p(0)
und
n ∈ N : ( k ∈ N : (k < n + 1 → p(k)) → p(n + 1))
A
A
A
dann gilt die Aussage
n ∈ N : p(n).
57
Wohlfundierte (Noethersche) Induktion
Verallgemeinerte vollständige Induktion
Gelten die beiden Aussagen:
p(0)
und
n ∈ N : p(0) ∧ p(1) ∧ · · · ∧ p(n) → p(n + 1)
A
A
dann gilt die Aussage
n ∈ N : p(n).
Äquivalent
Gilt die Aussage:
A
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
dann gilt die Aussage
n ∈ N : p(n).
58
Beispiel
• Verallgemeinerte vollständige Induktion
Gilt die Aussage:
A
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
dann gilt die Aussage
n ∈ N : p(n).
Induktionsvoraussetzung:
Für ein beliebig gewähltes
n ∈ N, gilt p(k) für alle k < n
Induktionsschluss:
Folgere p(n) aus der Induktionsvoraussetzung
59
Beispiel
Satz: Jede natürliche Zahl lässt sich als Produkt von Primzahlen darstellen.
p(n): n lässt sich als Produkt von Primzahlen darstellen.
Beweis: Sei n ∈ N beliebig gewählt.
Induktionsvoraussetzung: p(k) gilt für alle k < n
Induktionsschluss: Folgere p(n) aus der Induktionsvoraussetzung
Fallunterscheidung:
Fall 1: n Primzahl. Dann lässt sich n als Produkt von Primzahlen
darstellen.
Fall 1: n keine Primzahl. Dann n = k1 · k2 , mit k1 , k2 ∈ N, k1 , k2 > 1.
Da aber ki < n, i = 1, 2 ist nach Induktionsvoraussetzung bereits eine
Darstellung als Produkt von Primzahlen für ki bekannt.
Multipliziert man diese beiden Produkte miteinander, so erhält man
eine Darstellung für n.
60
Wohlfundierte (Noethersche) Induktion
A
Theorem:
Falls
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
n ∈ N : p(n)
dann gilt
P
Q
Beweis: Zu zeigen: P → Q
Kontrapositionsbeweis: Wir zeigen, dass ¬Q → ¬P
E
A
Annahme: ¬Q := ¬( n ∈ N : p(n)) ≡ n ∈ N : ¬p(n).
> wohlfundierte Ordnung auf N: es gibt keine unendliche Folge
x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . .
Sei Y = {n ∈ N | ¬p(n)} 6= ∅. Dann hat Y ein minimales Element m, d.h.
m(m ∈ Y ∧ ( k ∈ N : (k < m → k 6∈ Y ))) = ¬P.
A
61
E
Wohlfundierte (Noethersche) Induktion
A
Theorem:
Falls
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
n ∈ N : p(n)
dann gilt
P
Q
Beweis: Zu zeigen: P → Q
Kontrapositionsbeweis: Wir zeigen, dass ¬Q → ¬P
E
A
Annahme: ¬Q := ¬( n ∈ N : p(n)) ≡ n ∈ N : ¬p(n).
> wohlfundierte Ordnung auf N: es gibt keine unendliche Folge
x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . .
Sei Y = {n ∈ N | ¬p(n)} 6= ∅. Dann hat Y ein minimales Element m, d.h.
m(m ∈ Y ∧ ( k ∈ N : (k < m → k 6∈ Y ))) = ¬P.
A
62
E
Wohlfundierte (Noethersche) Induktion
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
dann gilt
A
Theorem:
Falls
n ∈ N : p(n)
P
Q
Verallgemeinerung
- beliebige Menge A statt N
- < “partielle” Ordnung auf A
- < wohlfundiert (es gibt keine unendliche Folge x1 , . . . , xn , . . . mit
x1 > x2 > · · · > x n > . . . )
63
Binäre Relationen
Definition:
Eine binäre Relation R über einer Menge A ist eine Teilmenge von A × A.
R binäre Relation: R ⊆ A × A.
Statt (x, y ) ∈ R schreiben wir: R(x, y ) oder xRy .
64
Partielle Ordnungen
Definition:
Eine binäre Relation R über einer Menge A ist eine partielle Ordnung gdw.
•
R ist reflexiv:
A
•
R ist transitiv:
A
•
R ist antisymmetrisch
A
x ∈ A(xRx)
x, y , z ∈ A(xRy ∧ yRz → xRz)
x, y ∈ A(xRy ∧ yRx → x = y )
65
Partielle Ordnungen
Definition:
Eine binäre Relation R über einer Menge A ist eine partielle Ordnung gdw.
•
R ist reflexiv:
A
•
R ist transitiv:
A
•
R ist antisymmetrisch
A
x ∈ A(xRx)
x, y , z ∈ A(xRy ∧ yRz → xRz)
x, y ∈ A(xRy ∧ yRx → x = y )
Dann heißt (A, R) eine partiell geordnete Menge
66
Partielle Ordnungen
Definition:
Eine binäre Relation R über einer Menge A ist eine partielle Ordnung gdw.
•
R ist reflexiv:
A
•
R ist transitiv:
A
•
R ist antisymmetrisch
A
x ∈ A(xRx)
x, y , z ∈ A(xRy ∧ yRz → xRz)
x, y ∈ A(xRy ∧ yRx → x = y )
Beispiele:
• (N, ≤)
• (A, R), wobei
A = {0, a, b, 1} und
R = {(0, 0), (0, a), (0, 1), (a, a), (a, 1), (b, b), (b, 1), (1, 1)}
R partielle Ordnung: a und b in R unvergleichbar.
67
Totale Ordnungen
Definition: Sei (A, R) eine partiell geordnete Menge.
R ist eine totale Ordnung gdw. R(x, y ) oder R(y , x) für alle x, y ∈ A.
68
Minimum
Definition: Sei (A, R) eine partiell geordnete Menge.
Sei A′ ⊆ A, und m ∈ A′ .
m ist ein Minimales Element von A′ , gdw.: es gibt kein x ∈ A′ mit
x ≤ m, x 6= m.
69
Minimum
Definition: Sei (A, R) eine partiell geordnete Menge.
Sei A′ ⊆ A, und m ∈ A′ .
m ist ein Minimales Element von A′ , gdw.: es gibt kein x ∈ A′ mit
x ≤ m, x 6= m.
Beispiele:
• (N, ≤). Sei A′ = {3, 5, 7, 9} ⊆ N.
3 ist ein Minimales Element von A′ .
• Sei (A, R) wobei
A = {a, b, c, d} und
R = {(a, a), (a, b), (c, c), (c, b), (c, d), (e, e), (e, d), (b, b), (d, d)}
Sei A′ = {a, b, c} ⊆ A.
A′ hat zwei minimale Elemente: a und c.
70
Wohlfundierte partielle Ordnungen
Sei (A, ≤) eine partiell geordnete Menge.
Definition: x < y gdw.: (x ≤ y und x 6= y )
(für x, y ∈ A)
71
Wohlfundierte partielle Ordnungen
Sei (A, ≤) eine partiell geordnete Menge.
Definition: x < y gdw.: (x ≤ y und x 6= y )
(für x, y ∈ A)
Definition (Noethersch / wohlfundiert)
(A, ≤) heißt noethersch (oder wohlfundiert) gdw.:
Es gibt keine unendlich absteigende Kette in A, das heißt:
Es gibt keine unendliche Folge (xi )i∈N , mit
• xi ∈ A für alle i ∈ N und
• xi+1 < xi für alle i ∈ N.
(Unendlich aufsteigende Ketten sind zulässig)
72
Beispiele
(N, ≤) is wohlfundiert
(Z, ≤) ist nicht wohlfundiert
(0 ∪ { n1 | n ∈ N}, ≤) ist nicht wohlfundiert
(R, ≤) ist nicht wohlfundiert
73
Wohlfundierte partielle Ordnungen
Lemma.
(A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von
A hat (mindestens) ein Minimales Element.
Beweis: “→”
Statt P → Q, beweisen wir ¬Q → ¬P.
Sei A′ ⊆ A nicht-leere Teilmenge von A, die kein minimales Element
enthält. Sei x1 ∈ A′ . Da x1 nicht minimal ist, gibt es x2 ∈ A′ mit x2 < x1 .
Da x2 nicht minimal ist, gibt es x3 ∈ A′ mit x3 < x2 < x1 . Wir können
deswegen eine unendliche absteigende Kette von Elementen aus A bilden,
d.h. A ist nicht noethersch.
74
Wohlfundierte partielle Ordnungen
Lemma.
(A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere Teilmenge von
A hat (mindestens) ein Minimales Element.
Beweis: “←”
Statt P → Q, beweisen wir wieder ¬Q → ¬P.
Annahme: (A, ≤) ist nicht noethersch,
d.h. es gibt eine unendliche Folge (xi )i∈N , mit
• xi ∈ A für alle i ∈ N und
• xi+1 < xi für alle i ∈ N.
Sei A′ = {xi | i ∈ N}.
Wir zeigen, dass A′ keinen minimalen Element hat: Sei a ∈ A′ . Dann a = xi
für einen i ∈ N. Dann ist xi+1 < a; deshalb kann a nicht minimal sein.
75
Wohlfundierte partielle Ordnungen
Lemma.
(A, ≤) ist noethersch (wohlfundiert) gdw.: jede nicht-leere
Teilmenge von A hat (mindestens) ein Minimales Element.
Nota bene
Es genügt nicht, dass A ein minimales Element hat (selbst dann nicht, wenn
≤ total ist).
Beispiel:
(0 ∪ {
1
| n ∈ N}, ≤)
n
76
Verallgemeinerte vollständige Induktion
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
dann gilt
A
Theorem:
Falls
n ∈ N : p(n)
P
Q
Beweis: < wohlfundiert (es gibt keine unendliche Folge x1 , . . . , xn , . . . mit
x1 > x2 > · · · > x n > . . . )
Verallgemeinerung
- beliebige Menge A statt N
- < “partielle” Ordnung auf A
- < wohlfundiert
77
Wohlfundierte (Noethersche) Induktion
Theorem: (Verallgemeinerte vollständige Induktion)
A
dann gilt
A
Falls
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
n ∈ N : p(n)
P
Q
Sei (A, ≤) noethersch (wohlfundiert).
Sei p ein Prädikat auf A, d.h., eine Funktion p : A → {wahr , falsch}
(Eigenschaft der Elementen aus A, die wahr oder falsch sein kann.)
Theorem. (Noethersche Induktion)
A
dann gilt
A
Falls
A
x ∈ A : ( y ∈ A : (y < x → p(y )) → p(x))
x ∈ A : p(x)
P
Q
78
Verallgemeinerte vollständige Induktion
A
Theorem:
Falls
A
n ∈ N : ( k ∈ N : (k < n → p(k)) → p(n))
A
n ∈ N : p(n)
dann gilt
P
Q
Beweis: Zu zeigen: P → Q
Kontrapositionsbeweis: Wir zeigen, dass ¬Q → ¬P
E
A
Annahme: ¬Q := ¬( n ∈ N : p(n)) ≡ n ∈ N : ¬p(n).
> wohlfundierte Ordnung auf N: es gibt keine unendliche Folge
x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . .
Sei Y = {n ∈ N | ¬p(n)} 6= ∅. Dann hat Y ein minimales Element m, d.h.
m(m ∈ Y ∧ ( k ∈ N : (k < m → k 6∈ Y ))) = ¬P.
A
79
E
Wohlfundierte (Noethersche) Induktion
Sei (A, ≤) noethersch (wohlfundiert).
Sei p ein Prädikat auf A, d.h., eine Funktion p : A → {wahr , falsch}
(Eigenschaft der Elementen aus A, die wahr oder falsch sein kann.)
A
x ∈ X : ( y ∈ X : (y < x → p(y )) → p(x))
A
dann gilt
A
Theorem.
Falls
x ∈ X : p(x)
P
Q
Beweis: zu zeigen: P → Q. Kontrapositionsbeweis: ¬Q → ¬P
Annahme: ¬Q := (¬ x ∈ X :p(x)) ≡ ( x ∈ X :¬p(x)).
> wohlfundierte Ordnung auf X : es gibt keine unendliche Folge
x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . .
E
A
Sei Y = {y ∈ X | ¬p(y )} 6= ∅. Dann hat Y ein minimales Element x0 , d.h.
x0 (x0 ∈ Y ∧ ( y ∈ X : (y < x0 → y 6∈ Y ))).
A
80
E
Wohlfundierte (Noethersche) Induktion
Sei (A, ≤) noethersch (wohlfundiert).
Sei p ein Prädikat auf A, d.h., eine Funktion p : A → {wahr , falsch}
(Eigenschaft der Elementen aus A, die wahr oder falsch sein kann.)
A
x ∈ X : ( y ∈ X : (y < x → p(y )) → p(x))
A
dann gilt
A
Theorem.
Falls
x ∈ X : p(x)
P
Q
Beweis: zu zeigen: P → Q. Kontrapositionsbeweis: ¬Q → ¬P
Annahme: ¬Q := (¬ x ∈ X :p(x)) ≡ ( x ∈ X :¬p(x)).
E
A
> wohlfundierte Ordnung auf X : es gibt keine unendliche Folge
x1 , . . . , xn , . . . mit x1 > x2 > · · · > xn > . . . .
Sei Y = {y ∈ X | ¬p(y )} 6= ∅. Dann hat Y ein minimales Element x0 , d.h.
x0 (x0 ∈ Y ∧( y ∈ X : (y < x0 → y 6∈ Y ))) = ¬P.
| {z }
|
{z
}
A
E
¬p(x0 )
y <x0 →p(y )
81
Fehlerquellen
Häufige Fehler bei Induktionsbeweisen
• Ordnung ist nicht noethersch
• Nicht alle Minima (Induktionsanfänge) bedacht
• Bei Induktionsschritt die Grenzfälle nicht bedacht
82
Fehlerquellen
Was ist hier falsch?
Behauptung: Alle Menschen haben die gleiche Haarfarbe
p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe
Induktionbasis: n = 1
Für eine Menge mit nur einem Menschen gilt die Behauptung trivial
83
Fehlerquellen
Was ist hier falsch?
Behauptung: Alle Menschen haben die gleiche Haarfarbe
p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe
Induktionsvoraussetzung: p(n) wahr.
Induktionsschritt: Beweise, dass aus p(n), p(n + 1) folgt.
n + 1 Menschen werden in eine Reihe gestellt.
Der Mensch links außen wird rausgeschickt.
Nun kann die Induktionsbehauptung angewendet werden und alle
verbliebenen haben die gleiche Haarfarbe (mit dem rechts außen).
84
Fehlerquellen
Was ist hier falsch?
Behauptung: Alle Menschen haben die gleiche Haarfarbe
p(n) : In einer Menge von n Menschen haben alle die gleiche Haarfarbe
Induktionsvoraussetzung: p(n) wahr.
Induktionsschritt: Beweise, dass aus p(n), p(n + 1) folgt.
n + 1 Menschen werden in eine Reihe gestellt.
Der Mensch rechts außen wird rausgeschickt.
Die Induktionsbehauptung kann angewendet werden und alle
verbliebenen haben die gleiche Haarfarbe (mit dem links außen).
Also haben die beiden außen die gleiche Haarfarbe, wie die in
der Mitte, und die haben auch alle die gleiche Haarfarbe
Also haben alle n + 1 Menschen die gleiche Haarfarbe.
85
Beispiele von noetherschen Ordnungen
Ordnungen auf kartesischen Produkten
• Die Produktordnung
• Die lexikographische Ordnung
86
Produktordnung
Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen.
Dann ist die Produktordnung ≤produkt auf A × B gegeben durch:
(x, y ) ≤produkt (x ′ , y ′ ) gdw. (x ≤A x ′ und y ≤B y ′ )
Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist
(A × B, ≤produkt ) noethersch.
87
Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge
(xi )i∈N mit xi ∈ X für alle i ∈ N und mit
x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . .
es gibt ein m ∈ N so dass xm = xk für alle k ≥ m.
Produktordnung
Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen.
Dann ist die Produktordnung ≤produkt auf A × B gegeben durch:
(x, y ) ≤produkt (x ′ , y ′ ) gdw. (x ≤A x ′ und y ≤B y ′ )
Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist
(A × B, ≤produkt ) noethersch.
Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit
(x1 , y1 ) ≥produkt (x2 , y2 ) ≥produkt (x3 , y3 ) ≥produkt · · · ≥produkt (xn , yn ) ≥produkt . . .
Dann x1 ≥A x2 ≥A x3 ≥A . . .≥A xn ≥A . . .
und y1 ≥B y2 ≥B y3 ≥B . . .≥B yn ≥B . . .
Da (A, ≤A ) noethersch ist, es gibt m1 so dass xm1 = xk für alle k ≥ m1 .
Da (B, ≤B ) noethersch ist, es gibt m2 so dass xm2 = xj für alle j ≥ m2 .
Sei m = max(m1 , m2 ). Dann (xm , ym ) = (xi , yi ) für alle i ≥ m.
Das zeigt, dass (A × B, ≤produkt ) noethersch ist.
88
Lexikographische Ordnung
Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen.
Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch:
(x, y ) ≤ (x ′ , y ′ )
gdw.
x = x ′ und y = y ′ oder
x <A x ′ oder
x = x ′ und y <B y ′
Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist
(A × B, ≤) noethersch.
89
Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge
(xi )i∈N mit xi ∈ X für alle i ∈ N und mit
x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . .
es gibt ein m ∈ N so dass xm = xk für alle k ≥ m.
Lexikographische Ordnung
Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen.
Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch:
(x, y ) ≤ (x ′ , y ′ )
gdw.
x = x ′ und y = y ′ oder
x <A x ′ oder
x = x ′ und y <B y ′
Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist
(A × B, ≤) noethersch.
Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit
(x1 , y1 ) ≥ (x2 , y2 ) ≥ (x3 , y3 ) ≥ · · · ≥ (xn , yn ) ≥ . . .
Fall 1: Die ersten Komponenten sind alle gleich: Dann y1 ≥B y2 ≥B . . . . (B, ≤B )
noethersch ist, es gibt m1 so dass xm1 = xj für alle j ≥ m1 .
90
Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge
(xi )i∈N mit xi ∈ X für alle i ∈ N und mit
x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . .
es gibt ein m ∈ N so dass xm = xk für alle k ≥ m.
Lexikographische Ordnung
Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen.
Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch:
(x, y ) ≤ (x ′ , y ′ )
gdw.
x = x ′ und y = y ′ oder
x <A x ′ oder
x = x ′ und y <B y ′
Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist
(A × B, ≤) noethersch.
Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit
(x1 , y1 ) ≥ (x2 , y2 ) ≥ (x3 , y3 ) ≥ · · · ≥ (xn , yn ) ≥ . . .
Fall 2: x1 = x2 = · · · = xi1 ≥A xi1 +1 = . . . = xi2 ≥A . . . . Da (A, ≤A ) noethersch ist,
es gibt m2 so dass xm2 = xk für alle k ≥ m2 .
91
Lemma: (X , ≤) noethersch gdw: für jede unendliche Folge
(xi )i∈N mit xi ∈ X für alle i ∈ N und mit
x1 ≥ x2 ≥ x3 ≥ · · · ≥ . . . xn ≥ . . .
es gibt ein m ∈ N so dass xm = xk für alle k ≥ m.
Lexikographische Ordnung
Definition: Seien (A, ≤A ) und (B, ≤B ) partiell geordnete Mengen.
Dann ist die lexikographische Ordnung ≤ auf A × B gegeben durch:
(x, y ) ≤ (x ′ , y ′ )
gdw.
x = x ′ und y = y ′ oder
x <A x ′ oder
x = x ′ und y <B y ′
Lemma: Wenn (A, ≤A ) und (B, ≤B ) noethersch sind, dann ist
(A × B, ≤) noethersch.
Beweis: Sei ((xi , yi ))i∈N unendliche Folge in A × B mit
(x1 , y1 ) ≥ (x2 , y2 ) ≥ (x3 , y3 ) ≥ · · · ≥ (xn , yn ) ≥ . . .
Sei m = max(m1 , m2 ). Dann (xm , ym ) = (xi , yi ) für alle i ≥ m.
Das zeigt, dass (A × B, ≤) noethersch ist.
92
Beispiel für Induktion: Ackermann-Funktion
ACK (x, y ) =
8
>
>
< y +1
>
>
:
falls x = 0
ACK (x − 1, 1)
falls x 6= 0 und y = 0
ACK (x − 1, ACK (x, y − 1))
falls x 6= 0 und y 6= 0
Die Ackermann-Funktion ist eine 1926 von Wilhelm Ackermann gefundene,
extrem schnell wachsende mathematische Funktion, mit deren Hilfe in der
theoretischen Informatik Grenzen von Computer- und Berechnungsmodellen
aufgezeigt werden können.
93
Beispiel für Induktion: Ackermann-Funktion
8
>
>
< y +1
ACK (x, y ) =
ACK (x − 1, 1)
>
>
:
ACK (x − 1, ACK (x, y − 1))
falls x = 0
falls x 6= 0 und y = 0
falls x 6= 0 und y 6= 0
Theorem. ACK ist eine totale Funktion auf N × N.
Induktionbasis: ACK (0, 0) = 1 (definiert)
94
Beispiel für Induktion: Ackermann-Funktion
ACK (x, y ) =
8
>
>
< y +1
>
>
:
falls x = 0
ACK (x − 1, 1)
falls x 6= 0 und y = 0
ACK (x − 1, ACK (x, y − 1))
falls x 6= 0 und y 6= 0
Theorem. ACK ist eine totale Funktion auf N × N.
Induktionsvoraussetzung: ACK (m′ , n′ ) definiert für alle (m′ , n′ ) < (m, n).
Induktionsschritt: Beweis durch Fallunterscheidung
• m = 0: ACK (0, n) = n + 1 (definiert)
• m 6= 0, n = 0. Dann (m − 1, 1) < (m, 0), d.h. ACK (m − 1, 1) definiert
Aber ACK (m, 0) = ACK (m − 1, 1), so ACK (m, n) definiert.
• m 6= 0, n 6= 0. Dann (m, n − 1) < (m, n), d.h. ACK (m, n − 1) definiert.
(m − 1, z) < (m, z), d.h. ACK (m − 1, ACK (m, n − 1)) definiert.
95
Zusammenfassung
• Grundlegende Beweisstrategien
• Induktion über die natürlichen Zahlen
• Partielle Ordnung, totale Ordnung, minimale Elemente
• Noethersche (wohlfundierte) Menge
• Noethersche Induktion (Theorem, Beweis)
• Fehlerquellen
• Produktordnung/Lexikographische Ordnung
• Beispiel für noethersche Induktion: Ackermann-Funktion
96
2. Aussagenlogik
97
Beispiel: Das 8-Damen Problem
Man platziere acht Damen so auf einem Schachbrett, dass sie sich
gegenseitig nicht bedrohen.
98
Beispiel: Das 8-Damen Problem
Beschreibung des Problems
Für jedes Feld des Schachbretts eine aussagenlogische Variable
Dij
Mit der Vorstellung, dass Dij den Wert wahr hat, wenn auf dem Feld (i, j)
eine Dame steht.
Wir benutzen kartesische Koordinaten zur Notation von Positionen
99
Beispiel: Das 8-Damen Problem
Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr.
Einschränkungen pro Feld: Fij
Falls auf dem Feld (5, 7) eine Dame steht:
• keine andere Dame auf Feld
(5,1), (5,2), (5,3), (5,4),(5,5), (5,6), (5,8)
• keine andere Dame auf Feld
(1,7), (2,7), (3,7), (4,7),(6,7), (7,7), (8,7)
• keine andere Dame auf Feld (6,8), (4,6), (3,5), (2,4),(1,3)
• keine andere Dame auf Feld (4,8), (6,6), (7,5), (8,4)
100
Beispiel: Das 8-Damen Problem
Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr.
Einschränkungen pro Feld: Fij
Falls auf dem Feld (5, 7) eine Dame steht:
• keine andere Dame auf Feld
(5,8), (5,6), (5,5), (5,4),(5,3), (5,2), (5,1)
D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1
• keine andere Dame auf Feld
(1,7), (2,7), (3,7), (4,7),(6,7), (7,7), (8,7)
D57 → ¬D17 ∧ ¬D2,7 ∧ ¬D3,7 ∧ ¬D4,7 ∧ ¬D6,7 ∧ ¬D7,7 ∧ ¬D87
• keine andere Dame auf Feld (6,8), (4,6), (3,5), (2,4),(1,3)
D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3
• keine andere Dame auf Feld (4,8), (6,6), (7,5), (8,4)
D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4
101
Beispiel: Das 8-Damen Problem
Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr.
Einschränkungen pro Feld: Fij
D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1
D57 → ¬D17 ∧ ¬D2,7 ∧ ¬D3,7 ∧ ¬D4,7 ∧ ¬D6,7 ∧ ¬D7,7 ∧ ¬D87
D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3
D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4
|
{z
F57
}
102
Beispiel: Das 8-Damen Problem
Beispiel: Auf dem Feld (5, 7) steht eine Dame 7→ D57 wahr.
Einschränkungen pro Feld: Fij
D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1
D57 → ¬D17 ∧ ¬D2,7 ∧ ¬D3,7 ∧ ¬D4,7 ∧ ¬D6,7 ∧ ¬D7,7 ∧ ¬D87
D57 → ¬D68 ∧ ¬D4,6 ∧ ¬D3,5 ∧ ¬D2,4 ∧ ¬D1,3
D57 → ¬D48 ∧ ¬D6,6 ∧ ¬D7,5 ∧ ¬D8,4
|
{z
F57
Globale Einschränkungen
}
Für jedes k mit 1 ≤ k ≤ 8:
Rk := D1,k ∨ D2,k ∨ D3,k ∨ D4,k ∨ D5,k ∨ D6,k ∨ D7,k ∨ D8,k
103
Beispiel: Das 8-Damen Problem
Struktur: Wahrheitswerte für die atomaren Aussagen Dij
Modell für Fij (Rk ): Wahrheitswerte für die atomaren Aussagen Dij so dass
Fij wahr (bzw. Rk wahr).
Lösung des 8-Damen Problems:
Eine aussagenlogische Struktur beschreibt eine Lösung des 8-DamenProblems genau dann, wenn sie ein Modell der Formeln
• Fij für alle 1 ≤ i, j ≤ 8
• Rk für alle 1 ≤ k ≤ 8
ist.
104
Beispiel: Aufzug
oben
oben
Aufzug oben
Mitte gedruckt
F.nach unten
mitte
mitte
unten
unten
105
Beispiel: Aufzug
oben
oben
mitte
mitte
Aufzug mitte
Oben gedruckt
F.nach oben
unten
unten
106
Modellierung: Strukturen
oben
Aufzug oben
Mitte gedruckt
oben
F.nach unten
mitte
mitte
oben
Aufzug mitte
Unten gedruckt
Aufzug oben
Mitte gedruckt
F.nach unten
mitte
F.nach unten
unten
v(AufzugOben) = wahr
unten
v(AufzugMitte) = wahr
unten
v(AufzugOben) = wahr
v(AufzugMitte) = wahr
v(MitteGedrückt) = wahr
v(UntenGedrückt) = wahr
v(MitteGedrückt) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
107
Modellierung: Strukturen
oben
Aufzug oben
Mitte gedruckt
oben
F.nach unten
mitte
mitte
oben
Aufzug mitte
Unten gedruckt
mitte
Aufzug oben
Mitte gedruckt
F.nach unten
Aufzug mitte
F.nach unten
unten
v(AufzugOben) = wahr
unten
v(AufzugMitte) = wahr
unten
v(AufzugOben) = wahr
v(AufzugMitte) = wahr
v(MitteGedrückt) = wahr
v(UntenGedrückt) = wahr
v(MitteGedrückt) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
v(FährtNachUnten) = wahr
108
Modellierung: Strukturen
oben
Aufzug oben
Mitte gedruckt
oben
F.nach unten
mitte
mitte
oben
Aufzug mitte
Unten gedruckt
mitte
Aufzug oben
Mitte gedruckt
F.nach unten
Aufzug mitte
F.nach unten
unten
unten
unten
Aussagen beziehen sich auf Strukturen
(Formale) Aussagen sind in jeder einzelnen Struktur zu wahr oder falsch
auswertbar
109
Formale Logik
• Syntax
welche Formeln?
• Semantik
Modelle (Strukturen)
Wann ist eine Formel wahr (in einer Struktur)?
• Deduktionsmechanismus
Ableitung neuer wahrer Formeln
110
Aussagenlogik
Die Welt besteht aus Fakten die wahr oder falsch sein können.
111
2.1 Syntax der Aussagenlogik
112
Syntax der Aussagenlogik: Logische Zeichen
⊤ Symbol für die Formel “wahr”
⊥ Symbol für die Formel “falsch”
¬ Negationssymbol (“nicht”)
∧ Konjunktionssymbol (“und”)
∨ Disjunktionssymbol (“oder”)
→ Implikationssymbol (“wenn . . . dann”)
↔ Symbol für Äquivalenz (“genau dann, wenn”)
( ) die beiden Klammern
113
Vokabular der Aussagenlogik
Abzählbare Menge von Symbolen, etwa
Π = {P0 , . . . , Pn }
oder
Π = {P0 , P1 , . . . }
Bezeichnungen für Symbole in Π
• atomare Aussagen
• Atome
• Aussagenvariablen
114
Formeln der Aussagenlogik
Definition: Menge ForΠ der Formeln über Π:
Die kleinste Menge mit:
• ⊤ ∈ ForΠ und ⊥∈ ForΠ
• Π ⊆ ForΠ
• Wenn F , G ∈ ForΠ , dann auch
¬F , (F ∧ G ), (F ∨ G ), (F → G ), (F ↔ G )
Elemente von ForΠ .
115
Aussagenformeln
ForΠ
Menge der Formeln über Π:
F, G, H
::=
⊥
(Falsum)
|
⊤
(Verum)
|
P,
|
¬F
|
(F ∧ G )
(Konjunktion)
|
(F ∨ G )
(Disjunktion)
|
(F → G )
(Implikation)
|
(F ↔ G )
(Äquivalenz)
P∈Π
(atomare Formel)
(Negation)
116
Konventionen zur Notation
• Klammereinsparungen werden nach folgenden Regeln vorgenommen:
– ¬
>p
∧
>p
∨
>p
→
>p
↔
(Präzedenzen),
– ∨ und ∧ sind assoziativ und kommutativ,
117
Beispiel: 8-Damenproblem
Aussagenlogische Variablen
Di,j bedeutet: Auf dem Feld (i, j) steht eine Dame.
Formeln
“Wenn auf dem Feld (5, 7) eine Dame steht, kann keine Dame auf Feld
(5,8), (5,6), (5,5), (5,4),(5,3), (5,2), (5,1) stehen”:
D57 → ¬D58 ∧ ¬D5,6 ∧ ¬D5,5 ∧ ¬D5,4 ∧ ¬D5,3 ∧ ¬D5,2 ∧ ¬D5,1
118
Terminologie
Eine Formel F , die als Teil einer Formel G auftritt,
heißt Teilformel von G .
• F ist eine Teilformel von F
9
=
• F = ¬G und
→
;
H Teilformel von G
• F = F1 ρ F2
(wo ρ ∈ {∨, ∧, ⇒, ⇔})
H Teilformel von F1 oder F2
H Teilformel von F
9
>
>
=
>
>
;
→
H Teilformel von F
119
2.2 Strukturelle Induktion
Induktion über Formelaufbau
120
Induktion über Formelaufbau: Beispiel
Lemma:
Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt
• F2 ist Teilformel von F1 , oder
• F1 ist Teilformel von F2 , oder
• F1 , F2 liegen getrennt
121
Induktion über Formelaufbau: Beispiel
Lemma:
Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt
• F2 ist Teilformel von F1 , oder
• F1 ist Teilformel von F2 , oder
• F1 , F2 liegen getrennt
Beweis: Durch noethersche Induktion über den Formelaufbau
122
Induktion über Formelaufbau: Beispiel
Lemma:
Ist F ∈ ForΠ und sind F1 , F2 Teilformeln von F , dann gilt
• F2 ist Teilformel von F1 , oder
• F1 ist Teilformel von F2 , oder
• F1 , F2 liegen getrennt
Beweis: Durch noethersche Induktion über den Formelaufbau
• A = ForΠ
• Teilformel: Teilformelrelation auf A:
F Teilformel G (alternative Notation: Teilformel(F , G ))
gdw. F Teilformel von G .
Relation Teilformel partielle Ordnung; noethersch
123
Strukturelle Induktion
Menge aller aussagenlogischen Formeln ForΠ
Basismenge:
⊤, ⊥; P0 , P1 , P2 , . . . sind aussagenlogische Formeln (atomare Formeln)
Erzeugungsregel: Wenn F1 , F2 aussagenlogische Formeln sind, dann sind auch
¬F1 , F1 ∧ F2 , F1 ∨ F2 , F1 → F2 , F1 ↔ F2 aussagenlogische Formeln
ForΠ kleinste Menge, die- ⊤, ⊥ und Π enthält
- zusammen mit F auch ¬F enthält
- zusammen mit F1 , F2 auch F1 opF2 enthält (op ∈ {∧, ∨, →, ↔})
124
Strukturelle Induktion
Menge aller aussagenlogischen Formeln ForΠ
Basismenge:
⊤, ⊥; P0 , P1 , P2 , . . . sind aussagenlogische Formeln (atomare Formeln)
Erzeugungsregel: Wenn F1 , F2 aussagenlogische Formeln sind, dann sind auch
¬F1 , F1 ∧ F2 , F1 ∨ F2 , F1 → F2 , F1 ↔ F2 aussagenlogische Formeln
ForΠ kleinste Menge, die- ⊤, ⊥ und Π enthält
- zusammen mit F auch ¬F enthält
- zusammen mit F1 , F2 auch F1 opF2 enthält (op ∈ {∧, ∨, →, ↔})
Gelten die beiden Aussagen: - p(A) für alle atomaren Formeln A ∈ {⊤, ⊥} ∪ Π
A
dann gilt auch
A
-
F ∈ForΠ : ((F = ¬F1 ∧p(F1 ))→p(F )) ∧
F ∈ ForΠ : p(F ).
((F = F1 opF2 ∧p(F1 )∧p(F2 ))→p(F ))
125
2.3 Semantik der Aussagenlogik
126
Semantik der Aussagenlogik
Π eine aussagenlogische Signatur
Aussagenvariablen für sich haben keine Bedeutung.
Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus
dem Kontext zur Verfügung stehen.
Eine Valuation (Wertebelegung) ist eine Abbildung
A : Π → {0, 1}
Wir werden Wertebelegungen auch Aussagenlogische Strukturen,
Aussagenlogische Modelle oder Interpretationen nennen.
127
Semantik der Aussagenlogik
Π eine aussagenlogische Signatur
Aussagenvariablen für sich haben keine Bedeutung.
Hierfür müssen Wertebelegungen (Valuationen) explizit oder implizit aus
dem Kontext zur Verfügung stehen.
Eine Wertebelegung ist eine Abbildung
A : Π → {0, 1}
Beispiel:
A
B
C
0
1
0
(Bei drei Symbolen gibt es 8 mögliche Modelle)
128
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Wertebelegung.
A∗ : ForΠ → {0, 1} wird wie folgt definiert:
129
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Wertebelegung.
A∗ : ForΠ → {0, 1} wird wie folgt definiert:
A∗ (⊥) = 0
A∗ (⊤) = 1
130
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Wertebelegung.
A∗ : ForΠ → {0, 1} wird wie folgt definiert:
A∗ (⊥) = 0
A∗ (⊤) = 1
A∗ (P) = A(P)
131
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Wertebelegung.
A∗ : ForΠ → {0, 1} wird wie folgt definiert:
8
< 0
∗
A (¬F ) =
: 1
falls
A∗ (F ) = 1
falls
A∗ (F ) = 0
132
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Wertebelegung.
A∗ : ForΠ → {0, 1} wird wie folgt definiert:
8
< 0
∗
A (F1 ∧ F2 ) =
: 1
8
< 0
A∗ (F1 ∨ F2 ) =
: 1
falls
A∗ (F1 ) = 0 oder A∗ (F2 ) = 0
falls
A∗ (F1 ) = A∗ (F2 ) = 1
falls
A∗ (F1 ) = A∗ (F2 ) = 0
falls
A∗ (F1 ) = 1 oder A∗ (F2 ) = 1
133
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Wertebelegung.
A∗ : ForΠ → {0, 1} wird wie folgt definiert:
8
< 1
∗
A (F1 → F2 ) =
: 0
8
< 1
A∗ (F1 ↔ F2 ) =
: 0
falls
A∗ (F1 ) = 0 oder A∗ (F2 ) = 1
falls
A∗ (F1 ) = 1 und A∗ (F2 ) = 0
falls
A∗ (F1 ) = A∗ (F2 )
sonst
134
Wahrheitstafel für die logischen Operatoren
P
¬P
0
1
1
0
∧
0
1
∨
0
1
0
0
0
0
0
1
1
0
1
1
1
1
→
0
1
↔
0
1
0
1
1
0
1
0
1
0
1
1
0
1
135
Semantik der Aussagenlogik
Auswertung von Formeln in einem Modell
Sei A : Π → {0, 1} eine Π-Valuation.
A∗ : ForΠ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert:
A∗ (⊥) = 0
A∗ (⊤) = 1
A∗ (P) = A(P)
A∗ (¬F ) = 1 − A∗ (F )
A∗ (F ρG ) = Bρ (A∗ (F ), A∗ (G ))
Bρ (x, y ) berechnet entschpr. der Wahrheitstafel für ρ
z.B. : B∨ (0, 1) = (0 ∨ 1) = 1; B→ (1, 0) = (1 → 0) = 0
Wir schreiben normalerweise A statt A∗ .
136
Beispiel
Sei A : {P, Q, R} → {0, 1} mit A(P) = 1, A(Q) = 0, A(R) = 1.
A∗ ((P ∧ (Q ∨ ¬P)) → R)
=
A∗ (P ∧ (Q ∨ ¬P) → A∗ (R)
=
(A∗ (P) ∧ A∗ (Q ∨ ¬P)) → A∗ (R)
=
(A(P) ∧ (A(Q) ∨ ¬A(P))) → A(R)
=
(1 ∧ (0 ∨ ¬1)) → 1
=
1
137
Modell einer Formel(menge)
Definition: Interpretation A ist Modell einer Formel F ∈ ForΠ , falls
A∗ (F ) = 1.
Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls
A∗ (F ) = 1 für alle F ∈ M
Notation:
A |= F
A |= M
138
Gültigkeit und Erfüllbarkeit
Definition: F gilt in A (oder A ist Modell von F )
gdw.
A(F ) = 1.
Notation: A |= F
Definition: F ist (allgemein-) gültig (oder eine Tautologie)
F , für alle A : Π → {0, 1}
gdw.:
A |=
Notation: |= F
Definition: F heißt erfüllbar gdw. es A : Π → {0, 1} gibt, so dass A |= F .
Sonst heißt F unerfüllbar (oder eine Kontradiktion).
139
Tautologien und Kontradiktionen
Tautologien: Formel, die stets wahr sind.
Beispiele: p ∨ (¬p) (Prinzip vom ausgeschlossenen Dritten)
(Tertium non datur)
p ↔ ¬¬p (Prinzip der doppelten Negation)
Kontradiktionen: Formel, die stets falsch sind.
Beispiel: p ∧ ¬p
• Die Negation einer Tautologie ist eine Kontradiktion
• Die Negation einer Kontradiktion ist eine Tautologie
140
Beispiele
Die folgenden Formeln sind Tautologien:
(1)
(p → ¬p) → (¬p)
(2)
(p ∧ (p → q)) → q
(3)
(p ∧ q) → p
(p ∧ q) → q
(4)
p → (p ∨ q)
q → (p ∨ q)
(5)
(p → q) → [(q → r ) → (p → r )]
(6)
(((p → q) ∧ (q → r )) ∧ p) → r
141
Beispiele
Die folgenden Formeln sind Tautologien:
(1)
(p → ¬p) → (¬p)
(2)
(p ∧ (p → q)) → q
(3)
(p ∧ q) → p
(p ∧ q) → q
(4)
p → (p ∨ q)
q → (p ∨ q)
(5)
(p → q) → [(q → r ) → (p → r )]
(6)
(((p → q) ∧ (q → r )) ∧ p) → r
• (1)–(6) sind alle erfüllbar.
142
Beispiele
Die folgenden Formeln sind erfüllbar, aber keine Tautologien
(1) p
(2) p → (p ∧ q)
(3) (p ∨ q) → (p ∧ q)
(4) p ↔ q
143
Beispiele
Die folgenden Formeln sind unerfüllbar:
(1)
¬((p → ¬p) → (¬p))
(2)
(p ∧ (p → q)) ∧ ¬q
(3)
¬((p ∧ q) → p)
(4)
¬(p → (p ∨ q))
(5)
(p → q) ∧ ¬[(q → r ) → (p → r )]
(6)
(((p → q) ∧ (q → r )) ∧ p) ∧ ¬r
144
Folgerung und Äquivalenz
Definition: F impliziert G (oder G folgt aus F ),
gdw.: für alle A : Π → {0, 1} gilt: Wenn A |= F , dann A |= G .
Notation: F |= G
Definition: F und G sind äquivalent
gdw.: für alle A : Π → {0, 1} gilt: A |= F gdw. A |= G .
Notation: F ≡ G .
Erweiterung auf Formelmengen N in natürlicher Weise, z.B.:
N |= G
gdw.:
für alle A : Π → {0, 1} gilt:
falls A |= F , für alle F ∈ N,
so A |= G .
145
Beispiel
F = (A ∨ C ) ∧ (B ∨ ¬C )
G = (A ∨ B)
Überprüfe, ob F |= G
A
B
C
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
(A ∨ C )
(B ∨ ¬C )
(A ∨ C ) ∧ (B ∨ ¬C )
(A ∨ B)
146
Beispiel
F = (A ∨ C ) ∧ (B ∨ ¬C )
G = (A ∨ B)
Überprüfe, ob F |= G
A
B
C
(A ∨ C )
(B ∨ ¬C )
(A ∨ C ) ∧ (B ∨ ¬C )
(A ∨ B)
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
147
Syntax: Beispiel
“Worin besteht das Geheimnis Ihres langen Lebens?”,
wurde ein 100 Jähriger gefragt.
“Ich halte mich streng an die Diätregeln:
• Wenn ich kein Bier zu einer Mahlzeit trinke,
dann habe ich immer Fisch.
• Immer wenn ich Fisch und Bier zur selben Mahlzeit habe,
verzichte ich auf Eiscreme.
• Wenn ich Eiscreme habe oder Bier meide,
dann rühre ich Fisch nicht an.”
148
Beispiel 1
Wenn ich kein Bier zu einer Mahlzeit trinke, dann habe ich immer Fisch.
◮ ¬B→F
Immer wenn ich Fisch und Bier zur selben Mahlzeit habe, verzichte ich
auf Eiscreme.
◮ F ∧B→ ¬E
Wenn ich Eiscreme habe oder Bier meide, dann rühre ich Fisch nicht an.
◮ E ∨¬B→ ¬F
149
Beispiel 1
◮ ¬B→F
◮ F ∧B→ ¬E
◮ E ∨¬B→ ¬F
Wir möchten wissen, welche Menüs solche Diätregeln erfüllen.
z.B.:
• kein Bier, Fisch und Eiscreme
erfüllt 3. Diätregel nicht!
• Bier, Fisch, keine Eiscreme
erfüllt alle Diätregeln
150
Beispiel 1
◮ ¬B→F
◮ F ∧B→ ¬E
◮ E ∨¬B→ ¬F
Wir möchten wissen, welche Menüs solche Diätregeln erfüllen.
z.B.:
Formalisierung:
• kein Bier, Fisch und Eiscreme
erfüllt 3. Diätregel nicht!
B 7→ falsch, F 7→ wahr, E 7→ wahr
• Bier, Fisch, keine Eiscreme
erfüllt alle Diätregeln
B 7→ wahr, F 7→ wahr, E 7→ falsch
151
Beispiel 1
◮ ¬B→F
◮ F ∧B→ ¬E
◮ E ∨¬B→ ¬F
Wir möchten wissen, welche Menüs solche Diätregeln erfüllen.
z.B.:
Formalisierung:
0:falsch, 1:wahr
A : {B, F , E } → {0, 1}
• kein Bier, Fisch und Eiscreme
erfüllt 3. Diätregel nicht!
A(B) = 0, A(F ) = 1, A(E ) = 1
• Bier, Fisch, keine Eiscreme
erfüllt alle Diätregeln
A(B) = 1, A(F ) = 1, A(E ) = 0
152
Beispiel 1
◮ ¬B→F
◮ F ∧B→ ¬E
◮ E ∨¬B→ ¬F
Π = {B, F , E }
Mögliche Interpretation (Wertebelegung): A(B) = 1, A(F ) = 0, A(E ) = 1
A(B) = 1: “Ich habe Bier”
A(F ) = 0: “Ich habe kein Fisch”
A(E ) = 1: “Ich habe Eiskreme”
153
Beispiel 1
◮ ¬B→F
◮ F ∧B→ ¬E
◮ E ∨¬B→ ¬F
Π = {B, F , E }
Mögliche Interpretation (Wertebelegung): A(B) = 1, A(F ) = 0, A(E ) = 1
Auswertung von Formeln:
A∗ (¬B → F )
= A∗ (¬B) → A∗ (F )
= ¬A(B) → A(F )
= (¬1 → 0) = (0 → 0) = 1
154
Modell einer Formel
Definition: Interpretation A ist Modell einer Formel F ∈ ForΠ , falls
A∗ (F ) = 1.
Notation: A |= F
Beispiel: A : Π(= {B, F , E }) → {0, 1} mit: A(B) = 1, A(F ) = 0, A(E ) = 1
Da A(¬B → F ) = 1, ist A ein Modell der Formel ¬B → F
A |= ¬B → F
155
Modell einer Formelmenge
Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls
A∗ (F ) = 1 für alle F ∈ M
Notation: A |= M
Beispiel 1: A : {B, F , E } → {0, 1} mit A(B) = 1, A(F ) = 0, A(E ) = 1
• Da A(¬B → F ) = 1; A(F ∧ B → ¬E ) = 1;
ist A ein Modell der Formelmenge
M = {¬B → F ,
F ∧ B → ¬E ,
A(E ∨ ¬B → ¬F ) = 1,
E ∨ ¬B → ¬F }
156
Modell einer Formelmenge
Definition: Interpretation A ist Modell einer Formelmenge M ⊆ ForΠ , falls
A∗ (F ) = 1 für alle F ∈ M
Notation: A |= M
Beispiel 1: A : {B, F , E } → {0, 1} mit A(B) = 1, A(F ) = 0, A(E ) = 1
• Da A(¬B → F ) = 1; A(F ∧ B → ¬E ) = 1;
ist A ein Modell der Formelmenge
{¬B → F ,
F ∧ B → ¬E ,
A(E ∨ ¬B → ¬F ) = 1,
E ∨ ¬B → ¬F )
Beispiel 2: A′ : {B, F , E } → {0, 1} mit A′ (B) = 0, A′ (F ) = 0, A′ (E ) = 1
• Da A′ (¬B → F ) = ¬A′ (B) → A′ (F ) = (¬0 → 0) = (1 → 0) = 0
ist A′ kein Modell der Formelmenge
{¬B → F ,
F ∧ B → ¬E ,
E ∨ ¬B → ¬F )
157
Unerfüllbarkeit und Allgemeingültigkeit
Theorem. F ist allgemeingültig gdw. ¬F ist unerfüllbar.
158
Erster Kalkül: Wahrheitstafelmethode
Jede Formel F enthält endlich viele Aussagenvariablen.
A(F ) ist nur von den Werten dieser Aussagenvariablen abhängig.
F enthält n Aussagenvariablen:
⇒ 2n Wertbelegungen notwendig um zu überprüfen,
ob F erfüllbar/unerfüllbar/allgemeingültig ist oder nicht.
⇒ Wahrheitstafel
• F allgemeingültig (Tautologie): A(F ) = 1 für alle Wertbelegungen
• F erfüllbar: A(F ) = 1 für zumindest eine Wertbelegung
• F unerfüllbar: A(F ) = 0 für alle Wertbelegungen
159
Äquivalenz
Definition: F und G sind äquivalent
gdw.: für alle A : Π → {0, 1} gilt: A |= F gdw. A |= G .
Notation: F ≡ G .
Zwei Formeln sind logisch äquivalent, wenn sie in den gleichen Modellen
wahr sind
Beispiel:
(P → Q) ≡ (¬Q → ¬P)
(Kontraposition)
160
Wichtige Äquivalenzen
Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig:
(F ∧ F ) ≡ F
(F ∨ F ) ≡ F
(Idempotenz)
(F ∧ G ) ≡ (G ∧ F )
(F ∨ G ) ≡ (G ∨ F )
(Kommutativität)
(F ∧ (G ∧ H)) ≡ ((F ∧ G ) ∧ H)
(F ∨ (G ∨ H)) ≡ ((F ∨ G ) ∨ H)
(Assoziativität)
(F ∧ (F ∨ G )) ≡ F
(F ∨ (F ∧ G )) ≡ F
(Absorption)
(F ∧ (G ∨ H)) ≡ ((F ∧ G ) ∨ (F ∧ H))
(F ∨ (G ∧ H)) ≡ ((F ∨ G ) ∧ (F ∨ H))
(Distributivität)
161
Wichtige Äquivalenzen
Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig:
(¬¬F ) ≡ F
(Doppelte Negation)
¬(F ∧ G ) ≡ (¬F ∨ ¬G )
¬(F ∨ G ) ≡ (¬F ∧ ¬G )
(De Morgan’s Regeln)
(F → G ) ≡ (¬G → ¬F )
(Kontraposition)
(F → G ) ≡ (¬F ∨ G )
(Elimination Implikation)
F ↔ G ≡ (F → G ) ∧ (G → F )
(Elimination Äquivalenz)
162
Wichtige Äquivalenzen
Die folgenden Äquivalenzen sind für alle Formeln F , G , H gültig:
(F ∧ G ) ≡ F , falls G Tautologie
(F ∨ G ) ≡ ⊤, falls G Tautologie
(Tautologieregeln)
(F ∧ G ) ≡ ⊥, falls G unerfüllbar
(F ∨ G ) ≡ F , falls G unerfüllbar
(Tautologieregeln)
163
Wichtige Äquivalenzen mit ⊤/⊥
(A ∧ ¬A) ≡ ⊥
(A ∨ ¬A) ≡ ⊤
(Tertium non datur)
(A ∧ ⊤) ≡ A
(A ∧ ⊥) ≡ ⊥
164
Wichtige Äquivalenzen (Zusammengefasst)
(F ∧ F ) ≡ F
(F ∧ G ) ≡ (G ∧ F )
(F ∨ F ) ≡ F
(F ∨ G ) ≡ (G ∨ F )
(F ∧ (G ∧ H)) ≡ ((F ∧ G ) ∧ H)
(F ∨ (G ∨ H)) ≡ ((F ∨ G ) ∨ H)
(F ∧ (F ∨ G )) ≡ F
(F ∨ (F ∧ G )) ≡ F
(F ∧ (G ∨ H)) ≡ ((F ∧ G ) ∨ (F ∧ H))
(F ∨ (G ∧ H)) ≡ ((F ∨ G ) ∧ (F ∨ H))
(¬¬F ) ≡ F
¬(F ∧ G ) ≡ (¬F ∨ ¬G )
¬(F ∨ G ) ≡ (¬F ∧ ¬G )
(F → G ) ≡ (¬G → ¬F )
(F → G ) ≡ (¬F ∨ G )
F ↔ G ≡ (F → G ) ∧ (G → F )
(Idempotenz)
(Kommutativität)
(Assoziativität)
(Absorption)
(Distributivität)
(Doppelte Negation)
(De Morgan’s Regeln)
(Kontraposition)
(Elimination Implikation)
(Elimination Äquivalenz)
165
Substitutionstheorem
Theorem.
Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens)
einem Vorkommen der Teilformel F .
Dann ist H äquivalent zu H ′ , wobei H ′ aus H hervorgeht, indem (irgend)
ein Vorkommen von F in H durch G ersetzt wird.
Beispiel:
A∨B ≡B ∨A
impliziert
(C ∧ (A ∨ B)) ≡ (C ∧ (B ∨ A))
166
Substitutionstheorem
Theorem.
Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens)
einem Vorkommen der Teilformel F .
Dann ist H äquivalent zu H ′ , wobei H ′ aus H hervorgeht, indem (irgend)
ein Vorkommen von F in H durch G ersetzt wird.
Beweis: Strukturelle Induktion.
Induktionsbasis: Beweisen. dass das Theorem für alle atomaren Formeln gilt.
Induktionsvoraussetzung: Sei H eine Formel (die nicht atomar ist)
Annahme: Theorem gilt für alle Teilformeln von F , die nicht gleich F sind.
Induktionsschritt: Beweis durch Fallunterscheidung:
Fall 1: H = ¬H1 .
Induktionvoraussetzung: Theorem gilt für H1 . Folgere, dass Theorem auch für H gilt.
Fall 2: H = H1 op H2 .
Induktionvoraussetzung: Theorem gilt für H1 , H2 . Folgere, dass Theorem auch für H gilt.
167
Ein zweiter Kalkül: Logische Umformung
Definition: Äquivalenzumformung
• (Wiederholte) Ersetzung einer (Unter-)Formel durch äquivalente
Formel
• Anwendung des Substitutionstheorems
Theorem
Äquivalenzumformung bildet mit den aufgelisteten wichtigen Äquivalenzen einen vollständigen Kalkül:
Wenn F und G logisch äquivalent sind, kann F in G umgeformt werden.
Anwendung: Test für Erfüllbarkeit/Unerfüllbarkeit/Allgemeingültigkeit
168
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
169
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
170
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
(Elimination Implikation)
(Elimination Implikation)
171
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
(Elimination Implikation)
172
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
173
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
174
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität)
175
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität)
176
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥)
≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R)
(Äquivalenzen mit ⊥)
(Äquivalenzen mit ⊥)
177
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R)) (Distributivität)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P)) (Kommutativität)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥)
(Äquivalenzen mit ⊥)
≡(¬P ∧ ¬Q ∧ P ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R)
(Distributivität)
≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R)
≡(¬P ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R)
(Äquivalenzen mit ⊥)
(Kommutativität)
178
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡(¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡(¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡(¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡(¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
(Distributivität)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P))
(Kommutativität)
≡(¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R)
(Äquivalenzen mit ⊥)
≡(¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥)
(Äquivalenzen mit ⊥)
≡(¬P ∧ ¬Q ∧ P ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R)
(Distributivität)
≡(¬P ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R)
(Kommutativität)
≡((¬P ∧ P) ∧ ¬Q ∧ ¬R) ∨ ((Q ∧ ¬Q) ∧ P ∧ ¬R) (Assoziativität)
179
Beispiel
(P → Q) ∧ ¬((Q → R) → (P → R))
≡ (¬P ∨ Q) ∧ ¬((¬Q ∨ R) → (¬P ∨ R))
(Elimination Implikation)
≡ (¬P ∨ Q) ∧ (¬¬(¬Q ∨ R) ∧ ¬(¬P ∨ R))
(De Morgan’s Regel,∨)
≡ (¬P ∨ Q) ∧ ¬(¬(¬Q ∨ R) ∨ (¬P ∨ R))
≡ (¬P ∨ Q) ∧
((¬Q ∨ R) ∧ (¬¬P ∧ ¬R))
≡ (¬P ∨ Q) ∧ ((¬Q ∨ R) ∧ (P ∧ ¬R))
≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ P ∧ ¬R))
(Elimination Implikation)
(Doppelte Negation, De Morgan, ∨)
(Doppelte Negation)
(Distributivität)
≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ (R ∧ ¬R ∧ P))
(Kommutativität)
≡ (¬P ∨ Q) ∧ (¬Q ∧ P ∧ ¬R)
(Äquivalenzen mit ⊥)
≡ (¬P ∨ Q) ∧ ((¬Q ∧ P ∧ ¬R) ∨ ⊥)
(Äquivalenzen mit ⊥)
≡ (¬P ∧ ¬Q ∧ P ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R)
(Distributivität)
≡ (¬P ∧ P ∧ ¬Q ∧ ¬R) ∨ (Q ∧ ¬Q ∧ P ∧ ¬R)
(Kommutativität)
≡ ⊥ ∨ ⊥≡⊥
(Äquivalenzen mit ⊥)
≡ ((¬P ∧ P) ∧ ¬Q ∧ ¬R) ∨ ((Q ∧ ¬Q) ∧ P ∧ ¬R) (Assoziativität)
180
Allgemeingültigkeit/Folgerung
F , G Formeln; N Formelmenge.
Theorem. F |= G gdw. |= F → G .
Theorem. N ∪ {F } |= G gdw. N |= F → G .
Theorem. F ≡ G gdw. |= F ↔ G .
181
Unerfüllbarkeit/Allgemeingültigkeit/Folgerung
F , G Formeln; N Formelmenge.
Theorem. F ist allgemeingültig gdw. ¬F ist unerfüllbar.
Theorem. F |= G gdw. F ∧ ¬G ist unerfüllbar.
Theorem. N |= G gdw. N ∪ ¬G ist unerfüllbar.
Nota bene: falls N unerfüllbar, so N |= G für jede Formel G
... auch für ⊥.
Notation: N |= ⊥ für N unerfüllbar.
182
Unser Ziel
Kalkül(e) zur systematischen Überprüfung von Erfüllbarkeit
(für Formeln und/oder Formelmengen)
Dazu brauchen wir “Normalformen”
183
2.4 Normalformen
184
Normalformen
Definition:
• Atom: aussagenlogische Variable
• Literal: Atom, oder
negation eines Atoms
Definition:
Klausel: Eine Disjunktion von Literalen
• mehrstellige Disjunktionen (P ∨ ¬Q ∨ R), (P ∨ P ∨ ¬Q)
• einstellige Disjunktionen P
• die nullstellige Disjunktion (leere Klausel) ⊥
185
Normalformen
Definition:
Konjunktive Normalform (KNF): Eine Konjunktion von Disjunktionen von
Literalen, d.h., eine Konjunktion von Klauseln
mehrstellig, einstellig oder nullstellig
Beispiele:
(P ∨ ¬Q) ∧ (Q ∨ ¬R ∨ ¬S)
P ∨Q
P ∧ (Q ∨ R)
P ∧Q
P ∧P
⊤
186
Normalformen
Definition:
Disjunktive Normalform (DNF): Eine Disjunktion von Konjunktionen von
Literalen.
mehrstellig, einstellig oder nullstellig
Beispiele:
(P ∧ ¬Q) ∨ (Q ∧ ¬R ∧ ¬S)
P ∧Q
P ∨ (Q ∧ R)
P ∨Q
P ∨P
⊥
187
Normalformel
Eigenschaften:
• Zu jeder aussagenlogischen Formel gibt es:
- eine äquivalente Formel in KNF
- eine äquivalente Formel in DNF
• Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig
188
Normalformel
Eigenschaften:
• Zu jeder aussagenlogischen Formel gibt es:
- eine äquivalente Formel in KNF
- eine äquivalente Formel in DNF
• Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig
• Solche Formeln können aus einer Wahrheitstafel abgelesen werden
189
Beispiel
F :
(P ∨ Q) ∧ ((¬P ∧ Q) ∨ R)
(P ∨ Q)
¬P
(¬P ∧ Q)
((¬P ∧ Q) ∨ R)
F
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
P
Q
R
0
0
0
0
0
0
0
1
0
190
Beispiel
F :
(P ∨ Q) ∧ ((¬P ∧ Q) ∨ R)
(P ∨ Q)
¬P
(¬P ∧ Q)
((¬P ∧ Q) ∨ R)
F
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
P
Q
R
0
0
0
0
0
0
0
1
0
191
Beispiel
F :
(P ∨ Q) ∧ ((¬P ∧ Q) ∨ R)
(P ∨ Q)
¬P
(¬P ∧ Q)
((¬P ∧ Q) ∨ R)
F
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
P
Q
R
0
0
0
0
0
0
DNF:
0
1
0
(¬P ∧ Q ∧ ¬R) ∨ (¬P ∧ Q ∧ R) ∨ (P ∧ ¬Q ∧ R) ∨ (P ∧ Q ∧ R)
192
Beispiel
F :
(P ∨ Q) ∧ ((¬P ∧ Q) ∨ R)
(P ∨ Q)
¬P
(¬P ∧ Q)
((¬P ∧ Q) ∨ R)
F
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
P
Q
R
0
0
0
0
0
0
0
1
0
¬F
1
DNF für ¬F : (¬P ∧ ¬Q ∧ ¬R) ∨ (¬P ∧ ¬Q ∧ R) ∨ (P ∧ ¬Q ∧ ¬R) ∨ (P ∧ Q ∧ ¬R)
193
Beispiel
F :
(P ∨ Q) ∧ ((¬P ∧ Q) ∨ R)
(P ∨ Q)
¬P
(¬P ∧ Q)
((¬P ∧ Q) ∨ R)
F
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
P
Q
R
0
0
0
0
0
0
0
1
0
¬F
1
DNF für ¬F : (¬P ∧ ¬Q ∧ ¬R) ∨ (¬P ∧ ¬Q ∧ R) ∨ (P ∧ ¬Q ∧ ¬R) ∨ (P ∧ Q ∧ ¬R)
KNF für F : (P ∨ Q ∨ R) ∧ (P ∨ Q ∨ ¬R) ∧ (¬P ∨ Q ∨ R) ∧ (¬P ∨ ¬Q ∨ R)
194
Normalformel
DNF für F :
_
A(P1 )
(P1
A(Pn )
∧ · · · ∧ Pn
)
A:{P1 ,...,Pn }→{0,1}
A(F )=1
wobei:
P 0 = ¬P
P1 = P
Theorem
Für alle Interpretationen A′ : {P1 , . . . , Pn } → {0, 1}:
_
A(P )
A(P )
′
′
A (F ) = 1 gdw. A (
(P1 1 ∧ · · · ∧ Pn n )) = 1.
A:{P1 ,...,Pn }→{0,1}
A(F )=1
195
Normalformel
DNF für F :
_
A(P1 )
(P1
A(Pn )
∧ · · · ∧ Pn
)
A:{P1 ,...,Pn }→{0,1}
A(F )=1
wobei:
P 0 = ¬P
P1 = P
KNF für F: ¬F ′ ,
wobei F ′ die DNF von ¬F ist.
196
Normalformel
Eigenschaften:
• Zu jeder aussagenlogischen Formel gibt es:
- eine äquivalente Formel in KNF
- eine äquivalente Formel in DNF
• Diese äquivalenten Formeln in DNF bzw. KNF sind nicht eindeutig
• Solche Formeln können aus einer Wahrheitstafel abgelesen werden
• Solche Formeln können durch Umformungen hergestellt werden
197
Umformung in KNF
Vier Schritte:
1. Elimination von ↔
Verwende A ↔ B ≡ (A → B) ∧ (B → A)
2. Elimination von →
Verwende A → B ≡ (¬A ∨ B)
3. “Nach innen schieben” von ¬
Verwende de Morgans Regeln und ¬¬A ≡ A
4. “Nach innen schieben” von ∨
Verwende Distributivität von ∨ über ∧
198
Umformung in KNF: Beispiel
Gegeben:
P ↔ (Q ∨ R)
1. Elimination von ↔
(P → (Q ∨ R)) ∧ ((Q ∨ R) → P)
2. Elimination von →
(¬P ∨ Q ∨ R) ∧ (¬(Q ∨ R) ∨ P)
3. “Nach innen schieben” von ¬
(¬P ∨ Q ∨ R) ∧ ((¬Q ∧ ¬R)) ∨ P)
4. “Nach innen schieben” von ∨
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ P) ∧ (¬R ∨ P))
199
Beispiel zur exponentiellen Länge der KNF
Gegeben:
An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 )
Zu An äquivalente KNF
^
(P1,f (1) ∨ · · · ∨ Pn,f (n) )
f :{1,...,n}→{1,2}
Größe der KNF:
• Klausel in KNF von An : 2n
Beweis: Induktion
200
Beispiel zur exponentiellen Länge der KNF
Gegeben:
An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 )
Länge: 21
n = 1 : A1 = P11 ∧P12
n = 2 : A2 = (P11 ∧P12 )∨(P21 ∧P22 )
≡ ((P11 ∧P12 )∨P21 )∧((P11 ∧P12 )∨P22 )
≡ (P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 )
Länge: 22
n = 3 : A3 = (P11 ∧P12 )∨(P21 ∧P22 )∨(P31 ∧P32 )
{z
}
|
A
2
≡ ((P11 ∨P21 )∧(P
12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨(P31 ∧P32 )
|
{z
}
KNF (A2 )
≡ (((P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨P31 )∧
(((P11 ∨P21 )∧(P12 ∨P21 )∧(P11 ∨P22 )∧(P12 ∨P22 ))∨P32 )
≡ (((P11 ∨P21 ∨P31 )∧(P12 ∨P21 ∨P31 )∧(P11 ∨P22 ∨P31 )∧(P12 ∨P22 ∨P31 )∧
(((P11 ∨P21 ∨P32 )∧(P12 ∨P21 ∨P32 )∧(P11 ∨P22 ∨P32 )∧(P12 ∨P22 ∨P32 ) Länge: 23
201
Beispiel zur exponentiellen Länge der KNF
Gegeben: An = (P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 )
• Klausel in KNF von An : 2n
Beweis durch Induktion
Induktionsvoraussetzung: KNF von An hat 2n Klausel
KNF (An ) = C1 ∧ · · · ∧ C2n , Ci = (Li1 ∨ · · · ∨ Lini ) Klausel
Induktionsschritt: Zu zeigen: KNF von An+1 hat 2n+1 Klausel
An+1 =
≡
≡
≡
≡
(P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 ) ∨ (P(n+1),1 ∧ P(n+1),2 )
((P11 ∧ P12 ) ∨ · · · ∨ (Pn1 ∧ Pn2 )) ∨ (P(n+1),1 ∧ P(n+1),2 )
{z
}
|
An
(C1 ∧ · · · ∧ C2n ) ∨ (P(n+1),1 ∧ P(n+1),2 )
|
{z
}
KNF (An )
((C1 ∧ · · · ∧ C2n ) ∨ P(n+1),1 ) ∧ ((C1 ∧ · · · ∧ C2n ) ∨ P(n+1),2 )
(C1 ∨ P(n+1),1 ) ∧ · · · ∧ (C2n ∨ P(n+1),1 ) ∧ (C1 ∨ P(n+1),2 ) ∧ · · · ∧ (C2n ∨ P(n+1),2 )
{z
} |
{z
}
|
2n
2n
202
KNF: Mengenschreibweise
Notation:
Klausel als Menge von Literalen
Formel in KNF als Menge von Klauseln
Beispiel:
(P ∨ Q ∨ R) ∧ (P ∨ Q ∨ ¬R) ∧ (¬P ∨ Q ∨ R) ∧ (¬P ∨ ¬Q ∨ R)
{ {P, Q, R}, {P, Q, ¬R}, {¬P, Q, R}, {¬P, ¬Q, R} }
203
KNF: Mengenschreibweise
Bedeutung der leeren Menge
• Leere Klausel
= leere Menge von Literalen
= leere Disjunktion
=⊥
• Leere Menge von Klauseln
= leere Konjunktion
=⊤
204
Vereinfachung der KNF: Subsumption
Theorem (Subsumption Regel)
Enthält eine KNF-Formel (= Klauselmenge) Klauseln K , K ′ mit
K ⊂ K′
dann entsteht eine äquivalente Formel, wenn K ′ weggelassen wird.
Beweis:
K = {L1 , . . . , Lp } ⊆ {L1 , . . . , Lp , Lp+1 , . . . , Lm } = K ′
F enthält K ∧ K ′
K ∧ K′ =
≡
(L1 ∨ · · · ∨ Lp ) ∧ ((L1 ∨ · · · ∨ Lp ) ∨ Lp+1 ∨ . . . Lm )
(L1 ∨ · · · ∨ Lp ) = K
(Absorption)
205
Das SAT-Problem (Erfüllbarkeitsproblem)
Definition: SAT-Problem
Gegeben:
Eine aussagenlogische Formel F
Frage:
Ist F erfüllbar?
NB: F allgemeingültig gdw. ¬F nicht erfüllbar
206
Das SAT-Problem (Erfüllbarkeitsproblem)
Erfüllbarkeitsproblem für DNF Formeln
V
W
Sei F = ni=1 ( m
j=1 Lij ) in DNF
V
F unerfüllbar gdw. ( m
j=1 Lij ) unerfüllbar für alle i = 1, . . . , n
Vm
gdw. ( j=1 Lij ) enthält zwei komplementäre Literale für alle i
Allgemeingültigkeit für DNF Formeln
F in KNF allgemeingültig gdw. jede Disjunktion zwei komplementäre
Literale enthält.
207
Das SAT-Problem (Erfüllbarkeitsproblem)
Definition: SAT-Problem
Gegeben:
Eine aussagenlogische Formel F
Frage:
Ist F erfüllbar?
Theorem (ohne Beweis)
SAT ist ein NP-vollständiges Problem
208
NP
Zur Erinnerung:
• P ist die Klasse aller Probleme, die in polynomieller Zeit entscheidbar
sind.
• NP ist die Klasse aller Probleme, die nichtdeterministisch in
polynomieller Zeit entscheidbar sind.
Ein Entscheidungsproblem ist genau dann in NP, wenn eine gegebene
Lösung für das entsprechende Suchproblem in Polynomialzeit überprüft
werden kann.
SAT ist in NP:
• Rate eine “Lösung”
(Interpretation A mit A(F ) = 1)
• Überprüfe, ob A wirklich eine “Lösung” ist
(i.e. ob A(F ) = 1)
kann in Polynomialzeit überprüft werden
209
NP-Vollständigkeit
Zur Erinnerung:
“SAT ist NP-vollständig” heißt:
• SAT ist nichtdeterministisch in polynomieller Zeit entscheidbar
• Jedes nichtdeterministisch in polynomieller Zeit entscheidbare Problem
kann in polynomieller Zeit auf SAT reduziert werden
• Wenn es stimmt, dass NP 6= P, dann ist SAT nicht in polynomieller
Zeit entscheidbar
210
Teilklassen des Erfüllbarkeitsproblems
Definition:
k-KNF Formel: KNF-Formeln, deren Klauseln höchstens k Literale haben
Theorem
• Erfüllbarkeit für Formeln in KNF: NP-vollständig
• Erfüllbarkeit für Formeln in 3-KNF: NP-vollständig
(ohne Beweis)
(Beweisidee)
• Erfüllbarkeit für Formeln in 2-KNF: polynomiell entscheidbar
• Erfüllbarkeit für Formeln in DNF: polynomiell entscheidbar
211
3-SAT
Theorem
Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig
Beweis
• 3-SAT ist ein Spezialfall von SAT und deshalb wie SAT in NP.
• Um zu zeigen, dass 3-SAT ebenfalls NP-vollständig ist, müssen wir
zeigen, dass jedes SAT Problem in polynomieller Zeit auf das 3-SAT
Problem reduzierbar ist.
212
3-SAT
Theorem
Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig
Beweis (Teil 2)
Wir zeigen, dass jedes SAT Problem in polynomieller Zeit auf das 3-SAT
Problem reduzierbar ist.
Gegeben sei eine Formel F in KNF. Wir transformieren F in eine Formel F ′
in 3-KNF, so dass:
F ist erfüllbar gdw. F ′ ist erfüllbar.
Eine k-Klausel sei eine Klausel mit k Literalen.
Aus einer 1- bzw 2-Klausel können wir leicht eine äquivalente 3-Klausel
machen, indem wir ein Literal wiederholen.
Was machen wir mit k-Klauseln für k > 3?
213
3-SAT
Theorem
Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig
Beweis (Teil 3)
Sei C beispielsweise eine 4-Klausel der Form
C = L1 ∨ L2 ∨ L3 ∨ L4 .
In einer Klauseltransformation ersetzen wir C durch die Teilformel
C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ),
wobei H eine zusätzlich eingeführte Hilfsvariable bezeichnet.
F ′ sei aus F entstanden durch Ersetzung von C durch C0 .
zu zeigen: F ′ erfüllbar gdw. F erfüllbar
214
3-SAT
Theorem
Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig
Beweis (Teil 4)
C = L1 ∨ L2 ∨ L3 ∨ L4 ; C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ),
F ′ sei aus F entstanden durch Ersetzung von C durch C0 .
zu zeigen: F ′ erfüllbar gdw. F erfüllbar
“⇐”
Sei A eine erfüllende Belegung für F . A weist mindestens einem Literal aus C den
Wert 1 zu. Wir unterscheiden zwei Fälle:
1) Falls L1 oder L2 den Wert 1 haben, so ist F ′ für A(H) = 0 erfüllt.
2) Falls L3 oder L4 den Wert 1 haben, so ist F ′ für A(H) = 1 erfüllt.
Also ist F ′ in beiden Fällen erfüllbar.
215
3-SAT
Theorem
Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig
Beweis (Teil 5)
C = L1 ∨ L2 ∨ L3 ∨ L4 ; C0 = (L1 ∨ L2 ∨ H) ∧ (¬H ∨ L3 ∨ L4 ),
F ′ sei aus F entstanden durch Ersetzung von C durch C0 .
zu zeigen: F ′ erfüllbar gdw. F erfüllbar
“⇒”
Sei A eine erfüllende Belegung für F ′ . Wir unterscheiden zwei Fälle:
1) Falls A(H) = 0, so muss A(L1 ) = 1 oder A(L2 ) = 1.
2) Falls A(H) = 1, so muss A(L3 ) = 1 oder A(L4 ) = 1
In beiden Fällen erfüllt A somit auch C , i.e. auch F .
216
3-SAT
Theorem
Erfüllbarkeit für Formeln in 3-KNF (3-SAT) ist NP-vollständig
Beweis (Teil 6)
Wir verallgemeinern die Klauseltransformation für k ≥ 4:
Jede Klausel der Form
L1 ∨ L2 ∨ · · · ∨ Lk−1 ∨ Lk
wird durch eine Formel der Form
(L1 ∨ L2 ∨ ... ∨ Lk−2 ∨ H) ∧ (¬H ∨ Lk−1 ∨ Lk )
ersetzt.
Die Erfüllbarkeitsäquivalenz folgt analog zum Fall k = 4.
217
Bis jetzt
• Das SAT-Problem (Erfüllbarkeitsproblem)
• Teilklassen des Erfüllbarkeitsproblems
k-KNF Formel: KNF-Formeln, deren Klauseln höchstens k Literale haben
Theorem
• Erfüllbarkeit für Formeln in KNF: NP-vollständig
(ohne Beweis)
• Erfüllbarkeit für Formeln in 3-KNF (3-SAT): NP-vollständig
• Erfüllbarkeit für Formeln in 2-KNF: polynomiell entscheidbar
(nächste Vorlesung)
• Erfüllbarkeit für Formeln in DNF: polynomiell entscheidbar
Wn Vm
F = i=1 ( j=1 Lij ) Formel in DNF unerfüllbar gdw. für alle
Vm
i, ( j=1 Lij ) enthält zwei komplementäre Literale.
218
Horn-Formeln
Defintion:
Horn-Formel: Formel in KNF, in der jede Klausel höchstens ein positives
Literal enthält
Notation: als Implikation
¬P1 ∨ · · · ∨ ¬Pn ∨ P
P1 ∧ · · · ∧ Pn → P
¬P1 ∨ · · · ∨ ¬Pn
PA ∧ · · · ∧ Pn →
P
→P
P1 ∧ · · · ∧ Pn : Rumpf
P: Kopf
219
Horn Formel: Beispiele
Klausel
Literalmengen
Implikationen
¬P
{¬P}
P→
Q ∨ ¬R ∨ ¬S
{Q, ¬R, ¬S}
R ∧S →Q
¬Q ∨ ¬S
{¬Q, ¬S}
Q∧S →
R
{R}
→R
¬Q ∨ P
{¬Q, P}
Q→P
220
Horn Formel: Beispiele
Klausel
Literalmengen
Implikationen
¬P
{¬P}
P→
Q ∨ ¬R ∨ ¬S
{Q, ¬R, ¬S}
R, S → Q
¬Q ∨ ¬S
{¬Q, ¬S}
Q, S →
R
{R}
→R
¬Q ∨ P
{¬Q, P}
Q→P
221
Erfüllbarkeitsproblem für Horn-Formeln
Lemma. Sei F Hornformel die keine Fakten enthält. Dann ist F erfüllbar.
Beweis: Sei A : Π → {0, 1} mit A(P) = 0 für alle P ∈ Π. Dann A(F ) = 1.
222
Erfüllbarkeitsproblem für Horn-Formeln
Theorem
Die Erfüllbarkeit von Horn-Formeln ist in quadratischer Zeit entscheidbar.
Beweis: (Idee)
Ziel: A : Π → {0, 1} mit A(F ) = 1.
Falls keine Fakten in F : F erfüllbar.
Sonst: Für alle Fakten → P in F : A(P) := 1;
Wiederhole das Verfahren für F ′ , entstanden aus F durch Ersetzung von P
mit ⊤.
223
Erfüllbarkeitstest für Horn-Formeln
Eingabe: F = D1 ∧ · · · ∧ Dn eine Hornformel
(die Klausel Di enthält höchstens ein positives Literal)
Ein Atom in H zu markieren, bedeutet, es an allen Stellen seines Auftretens
in H zu markieren
224
Erfüllbarkeitstest für Horn-Formeln
0:
IF keine Fakten (Klausel → A) vorhanden
THEN Ausgabe: erfüllbar
1:
ELSE markiere alle Fakten in F (Atome A mit → A in H)
IF keine Klausel A1 ∧ · · · ∧ An → B in F , so dass
alle Atome in A1 , . . . , An markiert aber B nicht
THEN Ausgabe: erfüllbar
ELSE wähle die erste solche Klausel
IF B leer
THEN Ausgabe: unerfüllbar
ELSE markiere überall B in F
GOTO 1
225
Zusammenfassung: Normalformen
• Literale, Klauseln
• Konjunktive und Disjunktive Normalform
• Ablesen von DNF und KNF aus Wahrheitstafeln
• Umformen in KNF
• Mengenschreibweise
• Subsumption
• SAT-Problem (SAT, 3-SAT, 2-SAT, DNF-SAT)
• Horn-Formeln
• Erfüllbarkeitstest für Hornformeln
226
2.5 Der aussagenlogische Resolutionkalkül
227
Der aussagenlogische Resolutionkalkül
Wesentliche Eigenschaften
• Widerlegungskalkül: Testet auf Unerfüllbarkeit
• Voraussetzung: Alle Formeln in konjunktiver Normalform
• Eine einzige Regel
• Operiert auf Klauseln (in Mengenschreibweise)
228
Resolutionskalkül
Definition: Resolutionsregel (einzige Regel des Kalküls)
C1 ∪ {P}
{¬P} ∪ C2
C1 ∪ C2
wobei
• P eine aussagenlogische Variable
• C1 , C2 Klauseln (können leer sein)
Definition:
C1 ∪ C2 heißt Resolvente von C1 ∪ {P}, C2 ∪ {¬P}
229
Resolution: Beispiel
Gegeben die Klauselmenge:
M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }}
Resolution:
{P1 , P2 } {P1 , ¬P2 }
{P1 }
{¬P1 , P2 } {¬P1 , ¬P2 }
{¬P1 }
{P1 }
{¬P1 }
⊥
Insgesamt: M ⊢Res ⊥
also: M unerfüllbar
230
Resolution: Weiteres Beispiel
Zu zeigen:
(P → Q) → ((Q → R) → (P → R))
ist allgemeingültig
Dazu zeigen wir, dass
¬[(P → Q) → ((Q → R) → (P → R))]
unerfüllbar ist.
Klauselnormalform:
{{¬P, Q}, {¬Q, R}, {P}, {¬R}}
231
Resolution: Weiteres Beispiel
Klauselnormalform:
M = {{¬P, Q}, {¬Q, R}, {P}, {¬R}}
Ableitung der leeren Klausel aus M:
(1)
{¬P, Q}
gegeben
(2)
{¬Q, R}
gegeben
(3)
{P}
gegeben
(4)
{¬R}
gegeben
(5)
{Q}
aus (1) und (3)
(6)
{R}
aus (2) und (5)
(7)
⊥
aus (4) und (6)
232
Resolution: Bemerkungen
Vorsicht bei Klauseln mit mehreren Resolutionsmöglichkeiten
• Zwei Klauseln können mehr als eine Resolvente haben
z.B.: {A, B} und {¬A, ¬B}
• {A, B, C } und {¬A, ¬B, D} haben NICHT {C , D} als Resolvente
Heuristik: Immer möglichst kleine Klauseln ableiten
233
Notwendigkeit der Mengenschreibweise
Die Menge
E = {P1 ∨ ¬P2 , ¬P1 ∨ P2 , ¬P1 ∨ ¬P2 , P1 ∨ P2 }
ist unerfüllbar.
Es gibt folgende Resolutionsmöglichkeiten (ohne Mengenschreibweise)
P1 ∨ ¬P2 ¬P1 ∨ P2
¬P2 ∨ P2
¬P1 ∨ P2 ¬P1 ∨ ¬P2
¬P1 ∨ ¬P1
P1 ∨ ¬P2 ¬P1 ∨ P2
¬P1 ∨ P1
¬P1 ∨ P2 P1 ∨ P2
P2 ∨ P2
P1 ∨ ¬P2 ¬P1 ∨ ¬P2
¬P2 ∨ ¬P2
¬P1 ∨ ¬P2 P1 ∨ P2
¬P1 ∨ P1
P1 ∨ ¬P2 P1 ∨ P2
P1 ∨ P1
¬P1 ∨ ¬P2 P1 ∨ P2
¬P2 ∨ P2
Auf diese Weise ist ⊥ nicht herleitbar
234
Ohne Mengenschreibweise
Resolutionsregel:
C1 ∨ P
¬P ∨ C2
C1 ∨ C2
Faktorisieren:
C ∨L∨L
C ∨L
235
Resolution mit Faktorisierung
Die Menge
E = {P1 ∨ ¬P2 , ¬P1 ∨ P2 , ¬P1 ∨ ¬P2 , P1 ∨ P2 }
ist unerfüllbar.
Es gibt folgende Resolutionsmöglichkeiten (mit Faktorisieren)
P1 ∨ ¬P2 ¬P1 ∨ P2
¬P2 ∨ P2
P1 ∨ ¬P2 ¬P1 ∨ P2
¬P1 ∨ P1
P1 ∨ ¬P2 ¬P1 ∨ ¬P2
¬P2 ∨ ¬P2
¬P1 ∨ P2 ¬P1 ∨ ¬P2 ¬P1 ∨ P2 P1 ∨ P2 ¬P1 ∨ ¬P2 P1 ∨ P2
¬P1 ∨ ¬P1
P2 ∨ P2
¬P1 ∨ P1
P1 ∨ P1 ¬P1 ∨ ¬P1 P2 ∨ P2 ¬P2 ∨ ¬P2
P1
¬P1
P2
¬P2
P1 ∨ ¬P2 P1 ∨ P2
P1 ∨ P1
¬P1 ∨ ¬P2 P1 ∨ P2
¬P2 ∨ P2
P1 ¬P1
⊥
236
Resolution: Beispiel
Gegeben die Klauselmenge:
M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }}
Resolution:
{P1 , P2 } {P1 , ¬P2 }
{P1 }
{¬P1 , P2 } {¬P1 , ¬P2 }
{¬P1 }
{P1 }
{¬P1 }
⊥
Insgesamt: M ⊢Res ⊥
also: M unerfüllbar
237
Resolution
Sei F eine Klauselmenge und
Res(F ) = F ∪ {R | R ist eine Resolvente zweier Klauseln aus F }
Res0 (F ) = F
Resn+1 (F ) = Res(Resn (F ))
Res⋆ (F ) =
S
n
Res
(F )
n∈N
(bezeichnet die Vereinigung der Resolventen aus aller möglichen Resolutionsschritte
auf F )
Notation: Falls C ∈ Res⋆ (F ), so schreiben wir F ⊢Res C .
Definition: Beweis für C (aus F ): C1 , . . . Cn , wobei:
Cn = C und für alle 1 ≤ i ≤ n: (Ci ∈ F oder Ci Resolvente für
j1 , j2 <i).
Cj1 Cj2
Ci
mit
238
Resolution: Korrektheit
Theorem
Für eine Menge M von Klauseln gilt: Falls M ⊢Res ⊥, so M unerfüllbar.
Beweis: Annahme: M ⊢Res ⊥. Zu zeigen: M unerfüllbar.
Widerspruchsbeweis: wir zeigen, dass ein Widerspruch entsteht, wenn die
zu beweisende Behauptung falsch wäre.
Wir nehmen an, dass M erfüllbar.
Sei A : Π → {0, 1} mit A(C ) = 1 für alle C ∈ M.
Lemma: C1 ∨ P, C2 ∨ ¬P |= C1 ∨ C2
Beweis: Sei A Interpretation mit A(C1 ∨ P) = 1 und A(C2 ∨ ¬P) = 1.
Zu zeigen: A(C1 ∨ C2 ) = 1
Fall 1: A(C1 ) = 1. Dann A(C1 ∨ C2 ) = 1.
Fall 2: A(C1 ) = 0. Dann A(P) = 1. Da A(C2 ∨ ¬P) = 1, so A(C2 ) = 1,
d.h. A(C1 ∨ C2 ) = 1.
239
Resolution: Korrektheit
Theorem
Für eine Menge M von Klauseln gilt: Falls M ⊢Res ⊥, so M unerfüllbar.
Beweis: Annahme: M ⊢Res ⊥, i.e. ⊥∈ Resn (M)
Zu zeigen: M unerfüllbar.
Widerspruchsbeweis: wir zeigen, dass ein Widerspruch entsteht, wenn die
zu beweisende Behauptung falsch wäre.
Wir nehmen an, dass M erfüllbar.
Sei A : Π → {0, 1} mit A(C ) = 1 für alle C ∈ M.
Lemma: C1 ∨ P, C2 ∨ ¬P |= C1 ∨ C2
Induktion: Fur alle m ∈ N gilt: Falls D ∈ Resm (M), so A(D) = 1.
Da ⊥∈ Resn (M), A(⊥) = 1. Widerspruch!
240
Resolution: Vollständigkeit
Theorem.
Für jede endliche Menge M von Klauseln gilt:
falls M unerfüllbar, so M ⊢Res ⊥.
Beweis: Induktion:
p(n):
Sei M Menge von Klauseln mit n Aussagenvariablen.
Falls M unerfüllbar, so M ⊢Res ⊥
Induktionsbasis: n = 0. dann M = {⊥}, d.h. M ⊢Res ⊥
Induktionsschritt: Annahme: p(n) gilt. Beweise p(n + 1).
Sei M Menge von Klauseln mit Aussagenvariablen {P1 , . . . , Pn , Pn+1 }.
M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥
M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤
241
Resolution: Vollständigkeit
M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥:
- Pn+1 wird aus allen Klauseln gelöscht,
- Klauseln, die ¬Pn+1 enthalten werden ebenfalls gelöscht
M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤:
- ¬Pn+1 wird aus allen Klauseln gelöscht,
- Klauseln, die Pn+1 enthalten werden ebenfalls gelöscht
Fakten:
• M0 , M1 enthalten nur Aussagenvariablen {P1 , . . . , Pn }
• M0 , M1 unerfüllbar
Induktionsvoraussetzung:
M0 ⊢Res ⊥, i.e. es gibt C1 , C2 , . . . , Cm Beweis (aus M0 ) für ⊥
M1 ⊢Res ⊥, i.e. es gibt D1 , D2 , . . . , Dk Beweis (aus M1 ) für ⊥
242
Resolution: Vollständigkeit
M0 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊥:
- Pn+1 wird aus allen Klauseln gelöscht,
- Klauseln, die ¬Pn+1 enthalten werden ebenfalls gelöscht
M1 sei aus M entstanden durch Ersetzung von Pn+1 durch ⊤:
- ¬Pn+1 wird aus allen Klauseln gelöscht,
- Klauseln, die Pn+1 enthalten werden ebenfalls gelöscht
Fakten:
• M0 , M1 enthalten nur Aussagenvariablen {P1 , . . . , Pn }
• M0 , M1 unerfüllbar
Induktionsvoraussetzung:
M0 ⊢Res ⊥, i.e. es gibt C1 , C2 , . . . , Cm Beweis (aus M0 ) für ⊥
Pn+1 zurück: C1′ , C2′ , . . . , Cm′ Beweis (aus M) für ⊥ oder Pn+1
M1 ⊢Res ⊥, i.e. es gibt D1 , D2 , . . . , Dk Beweis (aus M1 ) für ⊥
¬Pn+1 zurück: D1′ , D2′ , . . . , Dk′ Beweis (aus M) für ⊥ oder ¬Pn+1
9
>
>
=
>
>
;
⇒ M ⊢Res ⊥
243
Resolution: Vollständigkeit
Theorem.
Für jede endliche Menge M von Klauseln gilt:
falls M unerfüllbar, so M ⊢Res ⊥.
Es gilt auch:
Theorem.
Für jede Menge M von Klauseln gilt:
falls M unerfüllbar, so M ⊢Res ⊥.
244
2-SAT
Theorem
Erfüllbarkeit für Formeln in 2-KNF (2SAT) ist polynomiell entscheidbar
Beweis (Krom, 1967)
Fall 1: Für jede Aussagenvariable P, entweder enthalten alle Klauseln P oder ¬P:
erfüllbar.
Fall 2: Es gibt Klauseln C1 = L1 ∨ P, C2 = L2 ∨ ¬P
Resolutionschritt; Resolvente L1 ∨ L2 (Mengennotation)
Fakt: Resolventen sind immer auch in 2-KNF.
Wenn F n Aussagenvariablen enthält, gibt es 2n mögliche Literale, und ≤ 4n2
nicht-leere verschiedene 2-KNF Klauseln.
F ist erfüllbar gdw. ⊥6∈ Res∗ (F )
Wenn wir Res∗ (F ) berechnen: nicht mehr als (4n2 )2 Resolutionsschritte
notwendig.
7→ Erfüllbarkeit von F ist polynomiell entscheidbar.
245
Andere Kalküle
• 1-Resolution
• Das Davis-Putnam-Verfahren
• Semantische Tableaux
246
2.5
1-Resolution
Korrekt aber unvollständig.
247
1-Resolution
Syllogismus (in der ersten Vorlesung erwähnt):
P
P→C
C
1-Resolution (unit resolution)
{P}
{¬P} ∪ C
C
{¬P}
{P} ∪ C
C
248
1-Resolution
Die 1-Resolution (unit resolution) benutzt dieselbe Notation wie im
Resolutionskalkül. Die 1-Resolutionsregel ist ein Spezialfall der allgemeinen
Resolutionsregel:
{P}
{¬P} ∪ C
C
{¬P}
{P} ∪ C
C
249
1-Resolution
Die 1-Resolution (unit resolution) benutzt dieselbe Notation wie im
Resolutionskalkül. Die 1-Resolutionsregel ist ein Spezialfall der allgemeinen
Resolutionsregel:
{P}
{¬P} ∪ C
C
{¬P}
{P} ∪ C
C
Der 1-Resolutionskalkül ist nicht vollständig.
Die Klauselmenge
M = {{P1 , P2 }, {P1 , ¬P2 }, {¬P1 , P2 }, {¬P1 , ¬P2 }}
ist nicht erfüllbar, aber mit 1-Resolution ist aus M nichts ableitbar, also
auch nicht ⊥.
250
Andere Kalküle
• 1-Resolution
• Das Davis-Putnam-Verfahren
• Semantische Tableaux
251
2.7
Das Davis-Putnam-Verfahren
252
Das Davis-Putnam-Verfahren
Gegeben: N Klauselmenge
Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell)
Martin Davis and Hilary Putnam, 1960
253
Das Davis-Putnam-Verfahren
Gegeben: N Klauselmenge
Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell)
Allgemeine Idee:
• 1-Resolution + Fallunterscheidung
• N Klauselmenge, P Aussagenvariable in N.
N[P 7→⊥]: aus N entstanden durch Ersetzung von P durch ⊥
- P wird aus allen Klauseln gelöscht,
- Klauseln, die ¬P enthalten werden ebenfalls gelöscht
N[P 7→ ⊤]: aus N entstanden durch Ersetzung von P durch ⊤
- ¬P wird aus allen Klauseln gelöscht,
- Klauseln, die P enthalten werden ebenfalls gelöscht
N unerfüllbar gdw. (N[P 7→⊥] unerfüllbar und N[P 7→ ⊤] unerfüllbar)
254
Das Davis-Putnam-Verfahren
Gegeben: N Klauselmenge
Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell)
Allgemenine Idee:
• 1-Resolution + Fallunterscheidung
• N Klauselmenge, P Aussagenvariable in N.
N[P 7→⊥]: aus N entstanden durch Ersetzung von P durch ⊥
- P wird aus allen Klauseln gelöscht,
7→ Resolventen mit {¬P}
- Klauseln, die ¬P enthalten werden ebenfalls gelöscht
Subsumption
N[P 7→ ⊤]: aus N entstanden durch Ersetzung von P durch ⊤
- ¬P wird aus allen Klauseln gelöscht,
- Klauseln, die P enthalten werden ebenfalls gelöscht
7→ Resolventen mit {P}
Subsumption
N unerfüllbar gdw. (N[P 7→⊥] unerfüllbar und N[P 7→ ⊤] unerfüllbar)
255
Das Davis-Putnam-Verfahren
N: eine Menge von Klauseln
Programm DP(N):
IF (N = ⊤) THEN Return “wahr”
ELSE IF (N = ⊥) THEN Return “falsch”
ELSE IF (N enthält Klausel {P}) THEN return DP(N[P 7→ ⊤])
ELSE IF (N enthält Klausel {¬P}) THEN return DP(N[P 7→⊥])
ELSE IF (N enthält pures Literal P (d.h. ¬P kommt in N nicht vor))
THEN return DP(N[P 7→ ⊤])
ELSE IF (N enthält pures Literal ¬P (d.h. P kommt in N nicht vor))
THEN return DP(N[P 7→ ⊥])
ELSE {
Sei P Aussagenvariable in N
IF (DP(N ∪ {¬P}) THEN return “wahr”
ELSE return DP(N ∪ {P}) }
256
Das Davis-Putnam-Verfahren
N: eine Menge von Klauseln
Programm DP(N):
IF (N = ⊤) THEN Return “wahr”
ELSE IF (N = ⊥) THEN Return “falsch”
ELSE IF (N enthält Klausel {P}) THEN return DP(N[P 7→ ⊤])
ELSE IF (N enthält Klausel {¬P}) THEN return DP(N[P 7→⊥])
ELSE IF (N enthält pures Literal P (d.h. ¬P kommt in N nicht vor))
THEN return DP(N[P 7→ ⊤])
ELSE IF (N enthält pures Literal ¬P (d.h. P kommt in N nicht vor))
THEN return DP(N[P 7→ ⊥])
ELSE {
Sei P Aussagenvariable in N
IF (DP(N[P 7→ ⊥]) THEN return “wahr”
ELSE return DP(N[P 7→ ⊤]) }
257
Das Davis-Putnam Verfahren: Beispiel
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R)
258
Das Davis-Putnam Verfahren: Beispiel
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R)
R ∧ ¬R ∧ (P ∨ ¬R)
dd
d
d
d
d
d
d
d
d Q7→⊤
259
Das Davis-Putnam Verfahren: Beispiel
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R)
R ∧ ¬R ∧ (P ∨ ¬R)
R
¬R
⊥
dd
d
d
d
d
d
d
d
d Q7→⊤
(oder: R7→⊥)
⊥
260
Das Davis-Putnam Verfahren: Beispiel
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R)
R ∧ ¬R ∧ (P ∨ ¬R)
R
¬R
⊥
dd
d
d
d
d
d
d
d
d Q7→⊤
YYYYYY
YYYYY
Q7→⊥
¬P ∨ R
(oder: R7→⊥)
⊥
261
Das Davis-Putnam Verfahren: Beispiel
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R)
R ∧ ¬R ∧ (P ∨ ¬R)
dd
d
d
d
d
d
d
d
d Q7→⊤
YYYYYY
YYYYY
Q7→⊥
¬P ∨ R
R7→⊤
R
¬R
⊥
(oder: R7→⊥)
¬P
⊥
262
Das Davis-Putnam Verfahren: Beispiel
(¬P ∨ Q ∨ R) ∧ (¬Q ∨ R) ∧ (¬Q ∨ ¬R) ∧ (P ∨ ¬Q ∨ ¬R)
R ∧ ¬R ∧ (P ∨ ¬R)
dd
d
d
d
d
d
d
d
d Q7→⊤
YYYYYY
YYYYY
Q7→⊥
¬P ∨ R
R7→⊤
R
¬R
⊥
(oder: R7→⊥)
¬P
P7→⊥
⊥
⊤
A = (P 7→ 0, R 7→ 1, Q 7→ 0)
263
Das Davis-Putnam Verfahren
Das Davis-Putnam Verfahren: 1-Resolution + Fallunterscheidung
Weiterentwicklung:
Das Davis-Putnam-Logemann-Loveland Verfahren (DPLL)
Martin Davis, Hilary Putnam, George Logemann and Donald W. Loveland
1962
264
DPLL
Gegeben: N Klauselmenge
Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell)
Idee: Erfüllende Wertebelegung inkrementell gebildet.
265
DPLL
Gegeben: N Klauselmenge
Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell)
Idee: Erfüllende Wertebelegung inkrementell gebildet.
“partielle Wertebelegungen”
Wir beginnen mit der leeren Belegung und versuchen diese Belegung zu
einem Modell für N zu erweitern.
266
DPLL
Gegeben: N Klauselmenge
Ziel: Entscheide, ob N erfüllbar ist. (Falls ja: Modell)
Idee: Erfüllende Wertebelegung inkrementell gebildet.
“partielle Wertebelegungen”
Wir beginnen mit der leeren Belegung und versuchen diese Belegung zu
einem Modell für N zu erweitern.
Falls A partielle Wertebelegung, so können Literale und Klauseln in A wahr,
falsch oder undefiniert sein.
Eine Klausel ist wahr in A, wenn ein Literal in C wahr ist; falsch, wenn alle
Literale falsch sind. Sonst ist C undefiniert (unresolved).
267
Einerklauseln (Unit clauses)
Definition. Sei A eine Interpretation. Sei C = L1 ∨ · · · ∨ Ln ∨ L ∈ N, so
dass L1 , . . . , Ln falsch in A und L nicht definiert.
Dann heißt C Einerklausel (Unit clause).
Lemma. Seien A eine Interpretation und C = L1 ∨ · · · ∨ Ln ∨ L ∈ N, so
dass L1 , . . . , Ln falsch in A und L nicht definiert.
Es gibt ein Modell von N, das A erweitert,
genau dann, wenn
es ein Modell von N gibt, das A erweitert und L wahr macht.
268
Pure Literale
Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien
Mengen von Literalen), wenn
• L Element einer Klausel in N ist und
• das Komplement von L in keiner Klausel von N enthalten ist.
Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N
pures Literal enthält.
Lemma.
Für jede pure Klausel C in einer Klauselmenge N:
N erfüllbar gdw. N\{C } erfüllbar
269
Pure Literale
Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien
Mengen von Literalen), wenn
• L Element einer Klausel in N ist und
• das Komplement von L in keiner Klausel von N enthalten ist.
Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N
pures Literal enthält.
Lemma.
Für jede pure Klausel C in einer Klauselmenge N:
N erfüllbar gdw. N\{C } erfüllbar
Beweis:
“⇒” Falls N erfüllbar, ist N\{C } auch erfüllbar.
“⇐” Annahme: N\{C } erfüllbar (sei A Modell), C enthält ein in N pures Literal L.
(
A(Q)
falls Q 6= P
L = P: A′ : Π → {0, 1} mit A′ (Q) =
ist Modell für N.
1
falls Q = P
270
Pure Literale
Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien
Mengen von Literalen), wenn
• L Element einer Klausel in N ist und
• das Komplement von L in keiner Klausel von N enthalten ist.
Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N
pures Literal enthält.
Lemma.
Für jede pure Klausel C in einer Klauselmenge N:
N erfüllbar gdw. N\{C } erfüllbar
Beweis:
“⇒” Falls N erfüllbar, ist N\{C } auch erfüllbar.
“⇐” Annahme: N\{C } erfüllbar (sei A Modell), C enthält ein in N pures Literal L.
(
A(Q)
falls Q 6= P
L = ¬P: A′ : Π → {0, 1} mit A′ (Q) =
ist Modell für N.
0
falls Q = P
271
Pure Literale
Definition: Ein Literal L heißt pur in einer Klauselmenge N (Klauseln seien
Mengen von Literalen), wenn
• L Element einer Klausel in N ist und
• das Komplement von L in keiner Klausel von N enthalten ist.
Eine Klausel C in einer Klauselmenge N heißt pur in N, wenn C ein in N
pures Literal enthält.
Lemma.
Für jede pure Klausel C in einer Klauselmenge N:
N erfüllbar gdw. N\C erfüllbar
Lemma.
Sei A eine partielle Wertebelegung.
Für jedes pure Literal L in einer Klauselmenge N gilt:
Es gibt ein Modell von N, das A erweitert
genau dann, wenn
es ein Modell von N gibt, das A erweitert und L wahr macht.
272
DPLL
N: eine Menge von Klauseln, A partielle Wertebeleung
Programm DPLL(N, A):
IF (alle Klauseln in N wahr in A) THEN Return “wahr”
ELSE IF (eine Klausel in N falsch in A) Return “falsch”
ELSE IF (N enthält Einerklausel {P}) THEN return DPLL(N, A ∪ {P 7→ 1})
ELSE IF (N enthält Einerklausel {¬P}) THEN return DPLL(N, A ∪ {P 7→ 0})
ELSE IF (N enthält pures Literal P) THEN return DPLL(N, A ∪ {P 7→ 1})
ELSE IF (N enthält pures Literal ¬P) THEN return DPLL(N, A ∪ {P 7→ 0})
ELSE {
Sei P undefinierte Aussagenvariable in N
IF (DPLL(N, A(P 7→ 0))) THEN return “wahr”
ELSE return DPLL(N, A ∪ {P 7→ 1})
273
DPLL
N: eine Menge von Klauseln, A partielle Wertebeleung
Programm DPLL(N, A):
IF (alle Klauseln in N wahr in A) THEN Return “wahr”
ELSE IF (eine Klausel in N falsch in A) Return “falsch”
ELSE IF (N enthält Einerklausel {P}) THEN return DPLL(N, A ∪ {P 7→ 1})
ELSE IF (N enthält Einerklausel {¬P}) THEN return DPLL(N, A ∪ {P 7→ 0})
ELSE IF (N enthält pures Literal P) THEN return DPLL(N, A ∪ {P 7→ 1})
ELSE IF (N enthält pures Literal ¬P) THEN return DPLL(N, A ∪ {P 7→ 0})
ELSE {
Sei P undefinierte Aussagenvariable in N
IF (DPLL(N, A(P 7→ 0))) THEN return “wahr”
ELSE return DPLL(N, A ∪ {P 7→ 1})
Am Anfang: A = ∅
DPLL(N, ∅)
274
Eine alternative Formulierung
Zustand: M||F
wobei:
- M Sequenz von Literalen (partielle Wertebelegung)
(Ld : Entscheidungsliteral)
- F Klauselmenge
275
Eine alternative Formulierung
UnitPropagation
M||F , C ∨ L ⇒ M, L||F , C ∨ L falls M |= ¬C , und L undef. in M
Decide
M||F ⇒ M, Ld ||F
falls L oder ¬L kommt in F vor, L undef. in M
Fail
M||F , C ⇒ Fail
Backjump
M, Ld , N||F ⇒ M, L′ ||F
falls M |= ¬C , M enthält kein Entscheidungsliteral
8
′ mit:
>
es
gibt
eine
Klausel
C
∨
L
>
>
>
>
< F |= C ∨ L′ , M |= ¬C ,
falls
>
L′ undef. in M
>
>
>
>
: L′ oder ¬L′ kommt in F vor.
276
Eine alternative Formulierung
Backjump
M, Ld , N||F ⇒ M, L′ ||F
8
′ mit:
>
es
gibt
eine
Klausel
C
∨
L
>
>
>
>
< F |= C ∨ L′ , M |= ¬C ,
falls
>
L′ undef. in M
>
>
>
>
: L′ oder ¬L′ kommt in F vor.
Es gibt mehrere mögliche backjump Klauseln. Ein Kandidat ist
¬L1 ∨ · · · ∨ ¬Ln wo L1 , . . . , Ln alle Entscheidungsliterale in MLd N sind.
(Es gibt manchmal bessere Kandidaten).
277
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
278
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
¬P1
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (Pure Literal)
279
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
¬P1
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (Pure Literal)
280
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Decide)
¬P1
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
281
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Decide)
¬P1
¬P1 ¬P3 P5 d
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (UnitProp)
282
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Decide)
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Backtrack)
¬P1
¬P1 ¬P3 P5 d
¬P1 ¬P3 P5 d ¬P6
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ ¶5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (UnitProp)
283
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Decide)
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Backtrack)
¬P1
¬P1 ¬P3 P5 d
¬P1 ¬P3 P5 d ¬P6
¬P1 ¬P3 ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (UnitProp)
284
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Decide)
¬P1 ¬P3 P5 d ¬P6
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Backtrack)
¬P1 ¬P3 ¬P5 P6
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
¬P1
¬P1 ¬P3 P5 d
¬P1 ¬P3 ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (UnitProp)
⇒ (UnitProp)
285
Beispiel
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
¬P1 ¬P3
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Decide)
¬P1 ¬P3 P5 d ¬P6
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Backtrack)
¬P1 ¬P3 ¬P5 P6
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
¬P1
¬P1 ¬P3 P5 d
¬P1 ¬P3 ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (UnitProp)
⇒ (UnitProp)
Die Klauselmenge ist erfüllbar.
Modell:
A(P1 ) = 0, A(P3 ) = 0, A(P5 ) = 0, A(P6 ) = 1
A(P2 ), A(P4 ) beliebig.
286
DPLL
Das DPLL-Verfahren (Davis-Putnam-Logemann-Loveland)
• Das bekannteste und am meisten verbreitete Verfahren zur
systematischen Suche eines Modells
• wurde in den letzten Jahrzehnten mit Hilfe von Heuristiken
und Lernverfahren stark verbessert
287
Andere Kalküle
• 1-Resolution
• Das Davis-Putnam-Verfahren
• Semantische Tableaux
288
2.8
Der aussagenlogische Tableaukalkül
289
Der aussagenlogische Tableaukalkül
Geschichte
• Beth (1955), Hintikka (1955) and Schütte (1956)
• Analytic tableaus: Smullyan 1968
• Automatisches Beweisen/Mechanisierung:
Kanger 1957, Prawitz 1960, Wang 1960, Davis 1960, Maslov 1968.
• Weiterentwicklung/Verfeinerungen:
Loveland 1968 (Model elimination),
Kowalski, Kuehner 1971 (SL-resolution)
Bibel 1975,
Andrews 1976
...
290
Der aussagenlogische Tableaukalkül
Wesentliche Eigenschaften
• Widerlegungskalkül: Testet auf Unerfüllbarkeit
• Beweis durch Fallunterscheidung
• Top-down-Analyse der gegebenen Formeln
291
Der aussagenlogische Tableaukalkül
Vorteile
• Intuitiver als Resolution
• Formeln müssen nicht in Normalform sein
• Falls Formelmenge erfüllbar ist (Test schlägt fehl), wird ein
Gegenbeispiel (eine erfüllende Interpretation) konstruiert
Nachteile
• Mehr als eine Regel
292
Formeltypen
Konjunktive Formeln: Typ α
• ¬¬F
• F ∧G
• ¬(F ∨ G )
• ¬(F → G )
Disjunktive Formeln: Typ β
• ¬(F ∧ G )
• F ∨G
• F →G
293
Formeltypen
Konjunktive Formeln: Typ α
• ¬¬F
• F ∧G
• ¬(F ∨ G )
• ¬(F → G )
Zuordnungsregeln Formeln / Unterformeln
α
F ∧G
α1
α2
F
G
¬F
¬G
¬(F → G )
F
¬G
¬¬F
F
¬(F ∨ G )
294
Formeltypen
Disjunktive Formeln: Typ β
• ¬(F ∧ G )
• F ∨G
• F →G
Zuordnungsregeln Formeln / Unterformeln
β
β1
β2
¬(F ∧ G )
¬F
¬G
F
G
¬F
G
F ∨G
F →G
295
Regeln des (aussagenlogischen) Tableaukalküls
p∧q
|
p
|
q
α
Konjunktiv
α1
α2
β
β1 | β2
p∨q
Disjunktiv
p
φ
¬φ
⊥
/
Widerspruch
\
q
φ
¬φ
|
⊥
296
Instanzen der α und β-Regel
Instanzen der α-Regel
P ∧Q
¬(P ∨ Q)
¬(P → Q)
¬¬P
P
¬P
P
P
Q
¬Q
¬Q
Instanzen der β-Regel
P ∨Q
¬(P ∧ Q)
P→Q
P | Q
¬P | ¬Q
¬P | Q
297
Ein Tableau für {P ∧ ¬(Q ∨ ¬R), ¬Q ∨ ¬R}
1.
P ∧ ¬(Q ∨ ¬R)
2.
¬Q ∨ ¬R
PP
PP
¬R
3.
¬Q
5.
P
10.
P
6.
¬(Q ∨ ¬R)
11.
¬(Q ∨ ¬R)
7.
¬Q
8.
¬¬R
9.
R
4.
Dieses Tableau ist nicht
“maximal”, aber der erste
“Ast” ist.
Dieser Ast ist nicht
“geschlossen” (enthält
keinen Widerspruch),
also ist die Menge {1, 2}
erfüllbar.
(Diese Begriffe werden auf
den nächsten Seiten
erklärt.)
298
Determinismus von Kalkül und Regeln
Determinismus
• Die Regeln sind alle deterministisch
• Der Kalkül aber nicht:
Auswahl der nächsten Formel, auf die eine Regel angewendet wird
Heuristik
• Nicht-verzweigende Regeln zuerst: α vor β
Nota bene:
Dieselbe Formel kann mehrfach (auf verschiedenen Ästen) verwendet
werden
299
Formale Definition des Kalküls
Definition
Tableau: Binärer Baum, dessen Knoten mit Formeln markiert sind
Definition
Tableauast: Maximaler Pfad in einem Tableau (von Wurzel zu Blatt)
300
Formale Definition des Kalküls
Sei M eine Formelmenge
Initialisierung
Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M
Erweiterung
• T ein Tableau für M
• B ein Ast von T
• F eine Formel auf B oder in M, die kein Literal ist
T ′ entstehe durch Erweiterung von B gemäß der auf F anwendbaren Regel
(α oder β)
Dann ist T ′ ein Tableau für M.
301
Formale Definition des Kalküls
Nota bene:
Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M
302
Formale Definition des Kalküls
Definition.
Ast B eines Tableaus für M ist geschlossen, wenn
F , ¬F ∈ B ∪ M
Definition.
Ein Tableau ist geschlossen, wenn jeder seiner Äste geschlossen ist.
Definition.
Ein Tableau für M, das geschlossen ist, ist ein Tableaubeweis für (die
Unerfüllbarkeit von) M
303
Beispiel
Zu zeigen:
(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) allgemeingültig
Wir zeigen, dass
¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))]
unerfüllbar ist.
304
Beispiel
1.
¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))]
2.
(P → (Q → R))
[11 ]
3.
¬((P ∨ S) → ((Q → R) ∨ S))
[12 ]
4.
P ∨S
[31 ]
5.
¬((Q → R) ∨ S))
[32 ]
6.
¬(Q → R)
[51 ]
7.
¬S
[52 ]
hhhhh
hhh
8.
¬P
9.
[21 ]
Q→R
[22 ]
XXXX
X
10.
P
[41 ]
11.
S
[42 ]
geschlossenes Tableau.
305
Klauseltableau
M Menge von Klauseln
Änderungen
• Keine α-Regel
• Erweiterungsregel kann Verzweigungsgrad > 2 haben
• Alle Knoten im Tableau enthalten Literale
306
Klauseltableau: Beispiel
M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} }
307
Klauseltableau: Beispiel
M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} }
¬P
1. TTT
i
i
i
TTTT
i
i
i
i
TT
iii
Q
308
Klauseltableau: Beispiel
M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} }
¬P
P
u
uuu
1. UUUU
h
h
h
h
UUUU
h
h
h
h
UU
h
hh
Q JJ
KKK
w
JJ
w
w
w
¬Q
P
¬Q
309
Klauseltableau: Beispiel
M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} }
P
g 1. VVVVV
g
g
g
VVVV
gg
g
g
g
VV
gg
Q LL
¬P K
u
K
LL
u
u
K
u
u
u
u
u
¬Q
¬Q O
P I
p
O
I
p
s
OO
I
p
s
s
p
s
P
Q
R
¬P
¬Q
310
Klauseltableau: Beispiel
M = { {P, Q, R}, {¬R}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} }
P
⊥
1. VVVV
g
g
g
g
VVVV
g
g
g
g
VVV
gggg
Q LL
¬P K
u
K
LL
u
u
K
u
u
u
u
u
¬Q
¬Q P
P I
p
P
I
p
s
PP
p
I
s
p
s
p
s
P
Q
R
¬P
¬Q
⊥
⊥
⊥
⊥
⊥
⊥
311
Korrektheit und Vollständigkeit des
Tableaukalküls
Theorem.
Eine Formelmenge M ist unerfüllbar
genau dann, wenn
es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt
312
Korrektheit und Vollständigkeit des
Tableaukalküls
Theorem.
Eine Formelmenge M ist unerfüllbar
genau dann, wenn
es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt
Korrektheit: “⇐”
Falls es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt
(d.h. ein Tableau für M, das geschlossen ist)
so ist M unerfüllbar.
... alternativ:
Falls M erfüllbar ist, hat M kein geschlossenes Tableau.
313
Korrektheit und Vollständigkeit des
Tableaukalküls
Theorem.
Eine Formelmenge M ist unerfüllbar
genau dann, wenn
es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt
Vollständigkeit: “⇒”
Falls M unerfüllbar ist,
gibt es einen Tableaubeweis für (die Unerfüllbarkeit von) M
(d.h. ein Tableau für M, das geschlossen ist).
314
Kern des Korrektheitsbeweises
Theorem (Korrektheit)
Falls es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt
(d.h. ein Tableau für M, das geschlossen ist) so ist M unerfüllbar.
... alternativ: Falls M erfüllbar ist, hat M kein geschlossenes Tableau.
315
Kern des Korrektheitsbeweises
Theorem (Korrektheit)
Falls es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt
(d.h. ein Tableau für M, das geschlossen ist) so ist M unerfüllbar.
... alternativ: Falls M erfüllbar ist, hat M kein geschlossenes Tableau.
Definition.
Ein Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist
Ein Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat
Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar
Lemma 2. Ein geschlossenes Tableau ist nicht erfüllbar
... Also: Kein geschlossenes Tableau für erfüllbare Formelmenge
316
Lemma 1: Beweis
Definition.
Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist.
Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat
Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar
Beweis: Induktion
p(n): Falls M erfüllbar und das Tableau T in n Schritten
aus M gebildet wurde, ist T erfüllbar
Induktionsbasis: T wurde in einem Schritt gebildet.
Initialisierung
Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M
da M erfüllbar ist, ist ein solches Tableau erfüllbar
317
Lemma 1: Beweis
Definition.Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist.
Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat
Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar
Beweis: Induktion
p(n): Falls M erfüllbar und das Tableau T in n Schritten
aus M gebildet wurde, ist T erfüllbar
Induktionsschritt: Annahme p(n) gilt. Zu zeigen: p(n + 1).
Sei T ein in n + 1 Schritten gebildetes Tableau für M.
Dann gibt es ein Tableau T ′ für M (in n Schritten gebildet), ein Ast B von T ′ und
eine Formel F auf B oder in M, die kein Literal ist, so dass T durch die Erweiterung
von B gemäß der auf F anwendbaren Regel (α oder β) entstanden ist.
Induktionsvoraussetzung: T ′ erfüllbar, d.h. hat (mindestens) einen erfüllbaren Ast B ′ .
Fall 1: B ′ 6= B. Dann ist B ′ auch Ast in T , d.h. T erfüllbar.
318
Lemma 1: Beweis
Definition.Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist.
Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat
Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar
Beweis: Induktion
p(n): Falls M erfüllbar und das Tableau T in n Schritten
aus M gebildet wurde, ist T erfüllbar
Induktionsschritt: Annahme p(n) gilt. Zu zeigen: p(n + 1).
Sei T ein in n + 1 Schritten gebildetes Tableau für M.
Dann gibt es ein Tableau T ′ für M (in n Schritten gebildet), ein Ast B von T ′ und
eine Formel F auf B oder in M, die kein Literal ist, so dass T durch die Erweiterung
von B gemäß der auf F anwendbaren Regel (α oder β) entstanden ist.
Induktionsvoraussetzung: T ′ erfüllbar, d.h. hat (mindestens) einen erfüllbaren Ast B ′ .
Fall 2: B ′ = B d.h. B erfüllbar. Sei A Modell für die Formeln NB auf B.
Fall 2a: α-Regel angewandt F ≡ F1 ∧ F2 . Dann ist A Modell für
NB ∪ {F1 , F2 }, d.h.: die Erweiterung von B mit dieser α-Regel ist erfüllbar,
so T erfüllbar.
319
Lemma 1: Beweis
Definition.Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist.
Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat
Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar
Beweis: Induktion
p(n): Falls M erfüllbar und das Tableau T in n Schritten
aus M gebildet wurde, ist T erfüllbar
Induktionsschritt: Annahme p(n) gilt. Zu zeigen: p(n + 1).
Sei T ein in n + 1 Schritten gebildetes Tableau für M.
Dann gibt es ein Tableau T ′ für M (in n Schritten gebildet), ein Ast B von T ′ und
eine Formel F auf B oder in M, die kein Literal ist, so dass T durch die Erweiterung
von B gemäß der auf F anwendbaren Regel (α oder β) entstanden ist.
Induktionsvoraussetzung: T ′ erfüllbar, d.h. hat (mindestens) einen erfüllbaren Ast B ′ .
Fall 2: B ′ = B d.h. B erfüllbar. Sei A Modell für die Formeln NB auf B.
Fall 2b: β-Regel angewandt F ≡F1 ∨F2 . Dann 1=A(F )=A(F1 )∨A(F2 ), so
A(F1 )=1 oder A(F2 )=1. Dann A|=NB ∪{Fi }, i=1 oder 2, d.h. A Modell
für alle Formeln auf der Erweiterung von B mit F1 oder F2 , so T erfüllbar.
320
Lemma 2: Beweis
Definition.
Tableauast ist erfüllbar, wenn die Menge seiner Formeln erfüllbar ist
Tableau ist erfüllbar, wenn es (mindestens) einen erfüllbaren Ast hat
Lemma 1. Jedes Tableau für eine erfüllbare Formelmenge M ist erfüllbar
Lemma 2. Ein geschlossenes Tableau ist nicht erfüllbar
Beweis: Kontraposition
Annahme: T erfüllbar. Dann hat T einen erfüllbaren Ast B.
Falls die Menge der Formeln auf B (und M) erfüllbar ist, kann B nicht ⊥ enthalten,
d.h. B kann nicht geschlossen sein.
321
Kern des Vollständigkeitsbeweises
Definition.
Ein Tableau heißt voll expandiert, wenn
• jede Regel
• auf jede passende Formel
• auf jedem offenen Ast
angewendet worden ist.
Lemma 3.
B offener Ast in voll expandiertem Tableau, dann B ∪ M erfüllbar.
... Also: Voll expandiertes Tableau für unerfüllbares M ist geschlossen
322
Lemma 3: Beweis
Lemma 3.
B offener Ast in voll expandiertem Tableau, dann B ∪ M erfüllbar.
Beweis: (für klausale Tableaux)
Sei N die Menge der Formeln auf B. Da B offen ist, ist ⊥ nicht in N.
Seien C ∨ A, D ∨ ¬A zwei Klauseln in N die komplementäre Literale enthalten. Einer
von C , D ist nicht leer (sonst wäre B geschlossen).
Annahme: C nicht leer. Da B voll expandiert ist, wurde die β-Regel für C ∨ A
angewandt (auch für D ∨ ¬A falls D nicht leer).
Fall
Fall
Fall
Fall
1: A, ¬A ∈ B: unmöglich, da B offen ist.
2: A, L ∈ B mit L Literal in D. N erfüllbar gdw. N\{D ∨ ¬A} erfüllbar.
3: L, ¬A ∈ B, mit L Literal in C . N erfüllbar gdw. N\{C ∨ A} erfüllbar.
4: L1 , L2 ∈ B, mit L1 Literal in C , L2 Literal in D.
N erfüllbar gdw. N\{C ∨ A, D ∨ ¬A} erfüllbar.
N 7→ N ′ , N ′ Klauselmenge ohne komplementäre Literale und ohne ⊥
Die Erfüllbarkeit von N ′ folgt aus der Vollständigkeit der Resolution.
323
Klauseltableau: Einschränkungen des Suchraums
Regularität:
Kein Literal darf auf einem Ast mehr als einmal vorkommen
Schwache Konnektionsbedingung (Connection calculus)
Bei Erweiterung von Ast B muss mindestens eines der neuen Literale
komplementär zu Literal in B ∪ M sein.
Starke Konnektionsbedingung (Modellelimination)
Bei Erweiterung von Ast B muss mindestens eines der neuen Literale
komplementär zum Blatt von B sein – außer beim ersten Schritt.
324
Klauseltableau: Einschränkungen des Suchraums
Theorem (hier ohne Beweis)
Regularität, starke und schwache Konnektionsbedingung
erhalten Vollständigkeit.
Jedoch
Bei starker Konnektionsbedingung kann ungünstige Erweiterung in
Sackgasse führen.
(bei schwacher Konnektionsbedinung nicht)
Beispiel: M = {{P}, {¬Q}, {¬P, Q}, {¬P, R}}
Zuerst {¬P, Q}: OK
Zuerst {¬P, R}: Sackgasse
325
Klauseltableau: Weiteres Beispiel
Signatur: F : Flugreise V : Vollpension M: Meer P: Pool
Falls sie nicht mit dem Flugzeug fliegen, besteht der Vater auf Vollpension am Meer.
¬F → (V ∧ M)
Die Mutter möchte mindestens einen ihrer drei Wünsche erfüllt sehen: ans Meer
fliegen, oder am Meer ohne Pool, oder Vollpension und Pool.
(M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P)
Gibt es keinen Pool, so besteht Tochter Lisa auf einer Flugreise und Urlaub am Meer
und darauf, dass keine Vollpension gebucht wird.
¬P → (F ∧ M ∧ ¬V )
Auch dem Baby soll einer seiner Wünsche erfüllt werden: erstens einen Pool und nicht
fliegen oder zweitens Vollpension, dann aber ohne Pool.
(P ∧ ¬F ) ∨ (V ∧ ¬P)
326
Klauseltableau: Weiteres Beispiel
Behauptung
Dann müssen sie ans Meer mit Vollpension, mit Pool und ohne Flug.
M ∧ V ∧ P ∧ ¬F
Zu zeigen:
{¬F → (V ∧ M), (M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P),
¬P → (F ∧ M ∧ ¬V ), (P ∧ ¬F ) ∨ (V ∧ ¬P)}
|=
M ∧ V ∧ P ∧ ¬F
Wir zeigen, dass die folgende Konjunktion unerfüllbar ist:
(¬F → (V ∧ M), (M ∧ F ))∧
((M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P))∧
(¬P → (F ∧ M ∧ ¬V ))∧
((P ∧ ¬F ) ∨ (V ∧ ¬P))∧
¬M ∨ ¬V ∨ ¬P ∨ F
(Negation der Behauptung)
327
Klauseltableau: Weiteres Beispiel
¬F → (V ∧ M)
(M ∧ F ) ∨ (M ∧ ¬P) ∨ (V ∧ P)
¬P → (F ∧ M ∧ ¬V )
(P ∧ ¬F ) ∨ (V ∧ ¬P)
Negation der Behauptung
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
F ∨V
F ∨M
M∨V
M∨P
M ∨ ¬P ∨ V
F ∨M∨V
F ∨M∨P
F ∨ ¬P ∨ V
P ∨F
P ∨M
P ∨ ¬V
P ∨V
¬F ∨ V
¬F ∨ ¬P
¬M ∨ ¬V ∨ ¬P ∨ F
328
Klauseltableau: Weiteres Beispiel
Beobachtung
Konstruktion des Konnektionstableaus
• bei Beginn mit Klausel (1)
• mit Regularität
• mit starker Konnektionsbedingung
Dann:
Nahezu deterministische Beweiskonstruktion
329
Klauseltableau: Weiteres Beispiel
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
F ∨V
F ∨M
M∨V
M∨P
M ∨ ¬P ∨ V
F ∨M∨V
F ∨M∨P
F ∨ ¬P ∨ V
P ∨F
P ∨M
P ∨ ¬V
P ∨V
¬F ∨ V
¬F ∨ ¬P
¬M ∨ ¬V ∨ ¬P ∨ F
1
F
V
V
F
P
P
P
V
P
F
V
F
F
M
M
V
P
F
330
Terminierung
Aussagenlogische Resolution (für Klauselmengen in Mengennotation)
terminiert, für jede endliche Menge von Klauseln.
Beweis: Es gibt nicht mehr als 22n Klauseln (in Mengennotation) mit n
Aussagenvariablen.
7→ nicht mehr als (22n )2 mögliche Anwendungen der Resolutionsregel.
331
Terminierung
Das Davis-Putnam und das DPLL Verfahren terminieren ebenfalls.
Beweis (Idee auf Beispiel)
Wertebelegung:
Klauselmenge:
∅
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5
¬P1
¬P1 ¬P3
¬P1 ¬P3 P5 d
¬P1 ¬P3 P5 d ¬P6
¬P1 ¬P3 ¬P5
¬P1 ¬P3 ¬P5 P6
∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
||¬P1 ∨ P2 , ¬P3 ∨ P4 , ¬P5 ∨ ¬P6 , P6 ∨ P5 , P6 ∨ ¬P5
⇒ (Pure Literal)
⇒ (Pure Literal)
⇒ (Decide)
⇒ (UnitProp)
⇒ (Backtrack)
⇒ (UnitProp)
Noether’sche Ordnung auf partiellen Wertebelegungen
(Wieviele Literale sind undefiniert? Gibt es Entscheidungsliterale?
Partielle Wertebelegungen werden mit jedem Schritt kleiner.
332
Terminierung
Ähnliches Resultat für Tableaux?
333
Terminierung
Definition. Ein Tableau ist strikt, falls für jede Formel F die entsprechende
Erweiterungsregel höchstens einmal auf jeden Ast, der die Formel enthält,
angewandt wurde.
Theorem.
Sei T ein striktes aussagenlogisches Tableau. Dann ist T endlich.
Beweis: Neue Formeln mit denen ein Tableau erweitert wird sind ⊥, (⊤) oder
Teilformeln der Formel, auf der die Erweiterungsregel angewandt wird. Da T strikt
ist, wird für jede Formel F die entsprechende Erweiterungsregel höchstens einmal auf
jeden Ast, der die Formel enthält, angewandt.
Dann sind alle Äste in T endlich, und so ist auch T endlich (König’s Lemma).
334
Zusammenfassung: Tableaukalkül
Beweis durch Widerspruch und Fallunterscheidung
• Tableauregeln (mit uniformer Notation)
• Formale Definition des Kalküls
• Korrektheit und Vollständigkeit
• Klauseltableau
• Regularität
• Schwache und starke Konnektionsbedingung
• Strikte Tableaux
• Terminierung
335
3. Prädikatenlogik
336
Rückblick: Vor- und Nachteile von Aussagenlogik
+ Aussagenlogik ist deklarativ: Syntaxelemente entsprechen Fakten
+ Aussagenlogik erlaubt konjunktive / disjunktive / negative Aussagen
(im Gegensatz zu vielen Datenstrukturen und Datenbanken)
+ Aussagenlogik ist kompositional:
Bedeutung von F1 ∧ F2 leitet sich ab aus der von F1 und F2
+ Bedeutung in Aussagenlogik ist kontextunabhängig
(im Gegensatz zu natürlicher Sprache)
− Aussagenlogik hat nur beschränkte Ausdruckskraft
(im Vergleich zu natürlicher Sprache)
Beispiele:
• Die Aussage “Alle Menschen sind sterblich” erfordert eine Formel für
jeden Mensch.
337
Rückblick: Vor- und Nachteile von Aussagenlogik
+ Aussagenlogik ist deklarativ: Syntaxelemente entsprechen Fakten
+ Aussagenlogik erlaubt konjunktive / disjunktive / negative Aussagen
(im Gegensatz zu vielen Datenstrukturen und Datenbanken)
+ Aussagenlogik ist kompositional:
Bedeutung von F1 ∧ F2 leitet sich ab aus der von F1 und F2
+ Bedeutung in Aussagenlogik ist kontextunabhängig
(im Gegensatz zu natürlicher Sprache)
− Aussagenlogik hat nur beschränkte Ausdruckskraft
(im Vergleich zu natürlicher Sprache)
Beispiele:
• Die Aussage “Jede natürliche Zahl ist entweder gerade oder ungerade”
erfordert eine Formel für jede Zahl.
338
Prädikatenlogik
Reichere Struktur
• Objekte (Elemente)
Leute, Häuser, Zahlen, Theorien, Farben, Jahre, ...
• Relationen (Eigenschaften)
rot, rund, prim, mehrstöckig, ...
ist Bruder von, ist größer als, ist Teil von, hat Farbe, besitzt, ..
=, ≥, ...
• Funktionen
+, Mitte von, Vater von, Anfang von, ...
339
Weitere Logiken
Logik
Aussagenlogik
Fakten
wahr/falsch
Prädikatenlogik
Objekte, Funktionen,
wahr/falsch
Relationen
Temporallogik
Fakten, Zeitpunkte
wahr/falsch
Mehrwertige Logik
Fakten
wahr/falsch/unbekannt
Fuzzy-Logik
Fakten
[0, 1]
...
...
...
340
Syntax der Prädikatenlogik: Logische Zeichen
Wie in der Aussagenlogik
⊤ Symbol für die Formel “wahr” (Formel, die immer wahr ist)
⊥ Symbol für die Formel “falsch” (Formel, die immer falsch ist)
¬ Negationssymbol (“nicht”)
∧ Konjunktionssymbol (“und”)
∨ Disjunktionssymbol (“oder”)
→ Implikationssymbol (“wenn . . . dann”)
↔ Symbol für Äquivalenz (“genau dann, wenn”)
( ) die beiden Klammern
Quantoren
Allquantor (“für alle”)
Existenzquantor (“es gibt”)
341
E
A
Syntax der Prädikatenlogik: Vokabular
Signatur
Zweck: Festlegung der nichtlogischen Symbole
Σ = (Ω, Π),
342
Syntax der Prädikatenlogik: Vokabular
Definition
Prädikatenlogische Signatur: Paar Σ = (Ω, Π) wobei:
• Ω eine Menge von Funktionssymbolen f mit Stelligkeit n ≥ 0,
geschrieben f /n,
z.B. 2/0, koblenz/0, c/0, sqrt/1, leftLegOf/1, +/2, -/2
• Π Menge von Prädikatensymbolen p mit Stelligkeit m ≥ 0, geschrieben
p/m
z.B. bruderVon/1, > /2, ≈ /2, . . .
Bemerkung: Das Gleichheitsprädikat ≈ kann (muss aber nicht) enthalten
sein. Es wird infix notiert.
343
Syntax der Prädikatenlogik: Vokabular
Definition.
Funktionsssymbole mit Stelligkeit n = 0 heißen Konstante
z.B. 2, koblenz, c
Definition.
Prädikatensymbole mit Stelligkeit n = 0 heißen Aussagenvariablen
344
Syntax der Prädikatenlogik: Vokabular
Variablen
Prädikatenlogik erlaubt die Formulierung abstrakter (schematischer)
Aussagen. Technisches Hilfmittel hierfür sind die Variablen.
Wir nehmen an, dass
X
eine vorgegebene Menge von abzählbar unendlich vielen Symbolen ist, die
wir für (die Bezeichnung von) Variablen verwenden.
345
Terme
Terme über Σ (bzw. Σ-Terme) werden nach folgenden syntaktischen Regeln
gebildet:
s, t, u, v
::=
|
x
,x ∈X
(Variable)
f (s1 , ..., sn )
, f /n ∈ Ω
(F-Terme)
Mit TΣ (X ) bezeichnen wir die Menge der Σ-Terme
Menge TΣ (X ) der Σ-Terme:
Die kleinste Menge mit: X ⊆ TΣ (X )
Wenn • f ∈ Ω,
• n ist die Stelligkeit von f
• t1 , . . . , tn ∈ TΣ (X )
dann
f (t1 , . . . , tn ) ∈ TΣ (X )
346
Terme
Terme sind also vollständig geklammerte Ausdrücke, die wir auch
als markierte, geordnete Bäume auffassen können. Die Knoten sind
mit Funktionssymbolen oder Variablen markiert. Jeder mit einem
Funktionssymbol f der Stelligkeit n markierte Knoten hat genau n
Unterbäume, einen für jedes Argument von f .
347
Beispiele
Σ = (Ω, Π)
Ω = {Jan/0, Vater /1, Mutter /1}
{x, y , z} ⊆ X
Terme:
x
Jan
Vater (x)
Vater (Jan)
Mutter (x)
Mutter (Jan)
Vater (Mutter (x))
Vater (Mutter (Jan))
348
Beispiele
Σ = (Ω, Π)
Σ = {0/0, 1/0, succ/1, +/2}
{x, y , z} ⊆ X
Terme:
x, y , z, 0, 1
succ(x), succ(0), succ(1)
x + y , x + z, x + 0, x + 1, (x + (succ(y ) + 1)), ...
+(x, y ), +(x, z), +(x, 0), +(x, 1), +(x, +(succ(y ), 1))
Infix
Präfix
349
Atome
Atome (Atomare Formeln) über Σ genügen dieser Syntax:
A, B
h
::=
|
p(s1 , ..., sm )
, p/m ∈ Π
(s ≈ t)
(Gleichung)
i
Ist m = 0, so handelt es sich bei p um eine Aussagenvariable. Wir
verwenden insbesondere die Buchstaben P, Q, R, S, um Aussagenvariablen
zu bezeichnen
350
Beispiele
Σ = (Ω, Π)
Ω = {Jan/0, Anna/0, Vater /1, Mutter /1}
Π = {Mann/1, Frau/1, Bruder /2, ≈ /2}
{x, y , z} ⊆ X
Atome:
Mann(x)
Mann(Jan)
Mann(Anna)
Mann(Vater (x))
Frau(Vater (Jan))
Mann(Vater (Jan))
Bruder (x, y )
Bruder (x, Jan)
Bruder (x, Anna)
Vater (Jan) ≈ Vater (Anna)
Vater (x) ≈ Mutter (y )
351
Beispiele
Σ = (Ω, Π)
Ω = {0/0, 1/0, succ/1, +/2}
Π = {≤, ≈}
{x, y , z} ⊆ X
Atome:
x ≤ y , z ≈ 0,
0≤1
succ(x) ≤ succ(0),
succ(1) ≈ succ(0)
x + y ≤ x + z, x + 0 ≈ x + 1 (x + (succ(y ) + 1)) ≤ z, ...
Infix
Präfix:
≤ (+(x, y ), +(x, z)),
+ (x, 0) ≈ +(x, 1),
≤ (+(x, +(succ(y ), 1)), z)
352
Literale
L
::=
|
A
(positives Literal)
¬A
(negatives Literal)
353
Klauseln
C, D
::=
|
⊥
L1 ∨ . . . ∨ Lk , k ≥ 1
(leere Klausel)
(nichtleere Klausel)
354
Formeln
Formeln über Σ:
::=
⊥
(Falsum)
|
⊤
(Verum)
|
A
(atomare Formel)
|
¬F
|
(F ∧ G )
(Konjunktion)
|
(F ∨ G )
(Disjunktion)
|
(F → G )
(Implikation)
|
(F ↔ G )
(Äquivalenz)
|
|
(Negation)
A
xF
(Allquantifizierung)
E
F, G, H
xF
(Existenzquantifizierung)
355
Formeln
Menge ForΣ der Formeln über Σ:
Die kleinste Menge, die
• Alle atomare Formeln enthält,
• ⊤ ∈ ForΣ , ⊥ ∈ ForΣ ,
• Wenn F , G ∈ ForΣ , dann auch
¬F , F ∧ G , F ∨ G , F → G , F ↔ G ∈ ForΣ ,
• Wenn F ∈ ForΣ und x ∈ X , dann
E
A
xF ∈ ForΣ , xF ∈ ForΣ
356
Konventionen zur Notation
• Klammereinsparungen werden nach folgenden Regeln vorgenommen:
– ¬
>p
∧
>p
∨
>p
→
>p
↔
(Präzedenzen),
– ∨ und ∧ sind assoziativ und kommutativ.
• Qx1 , . . . , xn F für Qx1 . . . Qxn F .
• Terme und Atome in Infix-, Präfix-, Postfix- oder Mixfixnotation;
Beispiele:
s +t
für +(s, t)
s≤t
für ≤ (s, t)
−s
für −(s)
0
für 0()
357
Beispiel
“Alle, die in Koblenz studieren, sind schlau”
Ω = {koblenz/0}
Π = {studiertIn/2, schlau/1}
A
x(studiertIn( x , koblenz ) → schlau( x ))
|{z}
|{z} | {z }
|
|
|
Variable
Konstante
Term
Term
{z
Atom
{z
Formel
{z
Formel
Variable
Term
}
|
{z
Atom
}
}
}
358
Beispiel
“Es gibt jemand, der in Landau studiert und schlau ist”
Ω = {landau/0}
Π = {studiertIn/2, schlau/1}
E
x(studiertIn( x , landau ) ∧ schlau( x ))
|{z}
|{z} | {z }
Variable Konstante
Term
|
|
|
{z
Variable
Term
Atom
{z
Formel
{z
Formel
Term
}
|
{z
Atom
}
}
}
359
Beispiel: Peano-Arithmetik
ΣPA = (ΩPA , ΠPA )
ΩPA = {0/0, +/2, ∗/2, s/1}
ΠPA = {≤ /2, < /2, ≈ /2}
+, ∗ infix; ∗ >p +
Formelbeispiele über dieser Signatur sind
E
E A
A
A
A E
A
x, y (x ≤ y ↔ z(x + z ≈ y ))
x y (x + y ≈ y )
x, y (x ∗ s(y ) ≈ x ∗ y + x)
x, y (s(x) ≈ s(y ) → x ≈ y )
x y x <y
360
Bemerkungen zum Beispiel
Wie man an diesen Formeln sieht, sind die Symbole ≤, <, 0 redundant,
da sie über + in PL mit Gleichheit definiert werden können. So definiert
die erste Formel ≤, während die zweite Formel die Null definiert. Die
Eliminierung der zugehörigen Existenzquantoren durch Skolemisierung
(siehe unten) führt dann aber die Funktionssymbole wieder ein.
361
Beispiel: Tante Agatha
Jemand, der in Schloss Dreadbury wohnt, hat Tante
Agatha ermordet. Agatha, ihr Butler und ihr Neffe Charles
waren die einzigen Bewohner von Schloss Dreadbury. Ein
Mörder hasst immer sein Opfer und ist niemals reicher als
sein Opfer. Charles hasst niemanden, den Tante Agatha
gehasst hat. Agatha hat jeden gehasst außer ihrem Butler.
Der Butler hasst jeden, der nicht reicher ist als Tante
Agatha. Der Butler hasst jeden, den Tante Agatha gehasst
hat. Niemand hasst jeden. Agatha war nicht der Butler.
Wer hat Tante Agatha ermordet?
362
Beispiel: Tante Agatha
Zuerst formalisieren wir das Problem:
Jemand, der in Schloss Dreadbury wohnt, hat Tante Agatha
ermordet.
E
◮
x (schlossbewohner(x) ∧ ermordet(x, a))
Agatha, ihr Butler und ihr Neffe Charles waren die einzigen
Bewohner von Schloss Dreadbury.
A
◮
x (schlossbewohner(x) ↔ (x ≈ a ∨ x ≈ b ∨ x ≈ c))
363
Beispiel: Tante Agatha
Ein Mörder hasst immer sein Opfer und ist niemals reicher als sein
Opfer.
A
A
◮
x, y (ermordet(x, y ) → hasst(x, y ))
x, y (ermordet(x, y ) → ¬ reicher(x, y ))
Charles hasst niemanden, den Tante Agatha gehasst hat.
A
◮
x (hasst(c, x) → ¬ hasst(a, x))
Agatha hat jeden gehasst außer ihrem Butler.
A
◮
¬ hasst(a, x) ↔ x ≈ b)
x (¬
364
Beispiel: Tante Agatha
Der Butler hasst jeden, der nicht reicher ist als Tante Agatha.
A
◮
¬ reicher(x, a) → hasst(b, x))
x (¬
Der Butler hasst jeden, den Tante Agatha gehasst hat.
A
◮
x (hasst(a, x) → hasst(b, x))
Niemand hasst jeden.
E A
◮
x
¬ hasst(x, y ))
y (¬
Agatha war nicht der Butler.
◮
¬a≈b
365
Gebundene und freie Variablen
A E
In QxF , Q ∈ { , }, heißt F der Bindungsbereich des Quantors Qx. Ein
Auftreten einer Variablen x heißt gebunden, wenn es zum Bindungsbereich
eines Quantors Qx gehört. Alle anderen Auftreten von Variablen heißen frei.
Formeln ohne freie Variablen heißen Satzformen. Variablenfreie Formeln
heißen Grundformeln.
366
Beispiel
Bindungsbereich
y
Bind.
}|
z }| {
( x p(x)
A
z
{
→
q(x, y ))
367
A
Beispiel
E
A
p(z) →
x (q(x, z) ∧ z r (y , z))
• x gebunden
• y frei
• z frei und gebunden
368
Substitution eines Termes für eine Variable
Mit F [s/x] bezeichnen wir das Resultat der Substitution aller freien
Auftreten von x in F durch den Term s. F [s/x] sei durch strukturelle
Induktion über den Aufbau von F wie folgt definiert:
x[s/x]
′
x [s/x]
f (s1 , . . . , sn )[s/x]
⊥[s/x]
⊤[s/x]
p(s1 , . . . , sn )[s/x]
(u ≈ v )[s/x]
¬F [s/x]
(F ρG )[s/x]
(QxF )[s/x]
(QyF )[s/x]
=
=
=
=
=
=
=
=
=
=
=
s
′
′
x ; falls x 6= x
f (s1 [s/x], . . . , sn [s/x])
⊥
⊤
p(s1 [s/x], . . . , sn [s/x])
(u[s/x] ≈ v [s/x])
¬(F [s/x])
(F [s/x]ρG [s/x]) ; für alle binären Junktoren ρ ∈ {∧, ∨, →, ↔}
QxF
Qz((F [z/y ])[s/x]) ; falls y 6= x, z neue Variable
369
Problematik
Der Grund für die Umbenennung der gebundenen Variablen y in eine neue
unbenutzte“ Variable z ist die Vermeidung des Einfangens freier Variablen
”
in s.
Sollte y in s auftreten, wären sonst diese Auftreten nach erfolgter
Substitution gebunden.
370
Beispiel
Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2}
E
A
( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x]
A
=
A
E
=
A
E
=
A
E
x(p(x, g (f (x), y )))[g (y , z)/x] ∧
x(p(x, g (f (x), y ))) ∧
x(p(x, g (f (x), y ))) ∧
x(p(x, g (f (x), y ))) ∧
E
=
z(x ≈ g (y , z))[g (y , z)/x]
u(((x ≈ g (y , z))[u/z])[g (y , z)/x])
u((x ≈ g (y , u))[g (y , z)/x])
u(g (y , z) ≈ g (y , u))
371
Substitution allgemein
Definition. Substitutionen sind Abbildungen
σ : X → TΣ (X ),
so dass der Bereich von σ, d.h. die Menge
dom(σ) = {x ∈ X | σ(x) 6= x},
endlich ist. Die Menge der eingeführten Variablen, d.h. der Variablen die in einem der
Terme σ(x), für x ∈ dom(σ), auftreten, wird mit codom(σ) bezeichnet.
Substitutionen schreiben wir auch als [s1 /x1 , . . . , sn /xn ], xi pw. verschieden, und
meinen dann die Abbildung
[s1 /x1 , . . . , sn /xn ](y ) =
(
si ,
falls y = xi
y,
sonst
Ab jetzt schreiben wir für die Applikation σ(x) von Substitutionen xσ.
372
Anwendung einer Substitution
Homomorphe“ Fortsetzung von σ auf Terme und Formeln:
”
f (s1 , . . . , sn )σ = f (s1 σ, . . . , sn σ)
⊥σ = ⊥
⊤σ = ⊤
p(s1 , . . . , sn )σ = p(s1 σ, . . . , sn σ)
(u ≈ v )σ = (uσ ≈ v σ)
¬F σ = ¬(F σ)
(F ρG )σ = (F σρG σ) ; für alle binären Junktoren ρ
(QxF )σ = Qz((F [z/x])σ); wobei z neue“ Variable
”
Abänderung einer Substitution σ an x zu t:
(
t,
σ[x → t](y ) =
σ(y ),
falls y = x
sonst
373
Beispiel
Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2}
E
A
( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x, f (x)/y , a/z]
=
E
A
=
A
=
A
E
=
A
E
x(p(x, g (f (x), y )))[g (y , z)/x, f (x)/y , a/z] ∧
z(x ≈ g (y , z))[g (y , z)/x, f (x)/y , a/z]
E
u(p(u, g (f (u), f (x)))) ∧
u(p(u, g (f (u), f (x)))) ∧
u(p(u, g (f (u), f (x)))) ∧
v (((x ≈ g (y , z))[v /z])[g (y , z)/x, f (x)/y , a/z])
v ((x ≈ g (y , v ))[g (y , z)/x, f (x)/y , a/z])
v (g (y , z) ≈ g (f (x), u))
374
3.2 Semantik
375
Semantik
Semantik geben bedeutet für logische Systeme, einen Begriff von Wahrheit
für Formeln zu definieren. Das hier für die Prädikatenlogik zu definierende
Konzept geht auf Tarski zurück.
In der klassischen Logik (zurückgehend auf Aristoteles) gibt es nur“ die
”
zwei Wahrheitswerte wahr“ und falsch“, die wir mit 1 und 0 bezeichnen.
”
”
376
Strukturen
Definition.
Eine Σ-Struktur (bzw. Σ-Interpretation bzw. Σ-Modell) ist ein Tripel
A = (U, (fA : U n → U)f /n∈Ω , (pA ⊆ U m )p/m∈Π )
wobei U 6= ∅ eine Menge, genannt Universum von A.
Oft identifizieren wir U mit A, wenn die Interpretation der Funktions- und
Prädikatensymbole eindeutig aus dem Kontext hervorgeht.
Mit Σ-Str bezeichnen wir die Menge aller Σ-Strukturen.
377
Valuationen
Variablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen
(Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen.
Definition.
Unter einer (Variablen-) Belegung oder einer Valuation (über einer
Σ-Struktur A) versteht man eine Abbildung
β:X →U
378
Wert eines Terms in A bzgl. β
Durch strukturelle Induktion definieren wir:
A(β)(x) = β(x),
x ∈X
A(β)(f (s1 , . . . , sn )) = fA (A(β)(s1 ), . . . , A(β)(sn )),
f /n ∈ Ω
379
Wert eines Terms in A bzgl. β
Wert eines Terms in A bzgl. β, A(β)(t):
• Falls t = x ∈ X : A(β)(t) = β(x)
• Falls t = c eine Konstante: A(β)(t) = cA
• Falls t = f (t1 , . . . , tn ):
A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn ))
Beispiel: Σ = ({+/2, 0/0}, {≤, ≈})
N = (N, {0N , +N : N × N → N}, {≤N ⊆ N × N, ≈N })
0N = 0 ∈ N,
+N (n1 , n1 ) = n1 + n2 ∈ N
β : {x, y , z} → N mit β(x) = 5, β(y ) = 10, β(z) = 3
N (β)((x + (y + z)) + (z + 0)) =
= (β(x) +N (β(y ) +N β(z))) +N (β(z) +N 0N ) =
= (5 + (10 + 3)) + (3 + 0) = 21
380
Wahrheitswert einer Formel in A bzgl. β
Die Menge der Wahrheitswerte sei {0, 1}.
A(β) : ForΣ → {0, 1} wird induktiv über Aufbau von F wie folgt definiert:
A(β)(⊥) = 0
A(β)(⊤) = 1
381
Wahrheitswert einer Formel in A bzgl. β
A(β)(p(s1 , . . . , sn )) = 1
g.d.w.
(A(β)(s1 ), . . . , A(β)(sn )) ∈ pA
A(β)(s ≈ t) = 1
g.d.w.
A(β)(s) = A(β)(t)
382
Wahrheitswert einer Formel in A bzgl. β
A(β)(¬F ) = 1
g.d.w.
A(β)(F ) = 0
A(β)(F ρG ) = Bρ (A(β)(F ), A(β)(G ))
mit Bρ die ρ zugeordnete Boolesche Funktion
383
Wahrheitswert einer Formel in A bzgl. β
A
A(β)( xF ) = min{A(β[x → a])(F )} =
a∈U
E
A(β)( xF ) = max{A(β[x → a])(F )} =
a∈U
(
1
0
8
>
>
< 1
>
>
: 0
falls A(β[x 7→ a])(F ) = 1 für alle a ∈ U
sonst
falls A(β[x 7→ a])(F ) = 1 für mindestens
sonst
ein a ∈ U
Für x ∈ X und a ∈ U bezeichne β[x → a] : X → U die Belegung, mit
8
<a
falls x = y
β[x → a](y ) :=
:β(y ) sonst
384
Beispiel
UN = {0, 1, 2, . . .}
0N = 0 ∈ UN
sN : UN → UN , sN (n) = n + 1
+N : UN2 → UN , +N (n, m) = n + m
∗N : UN2 → UN , ∗N (n, m) = n ∗ m
≤N = “kleiner-gleich” ⊆ UN2
<N = “kleiner” ⊆ UN2
Mit β(x) = 1, β(y ) = 3 ergibt sich beispielsweise:
N(β)(s(x) + s(0))
=
3
N(β)(x + y ≈ s(y ))
=
1
A
=
1
A
=
0
E A
=
1
N(β)( x, y (x + y ≈ y + x))
N(β)( z z ≤ y )
N(β)( x y x < y )
385
Modelle, Gültigkeit, Erfüllbarkeit
386
Gültigkeit und Erfüllbarkeit
Definition. F gilt in A unter β:
A, β |= F g.d.w. A(β)(F ) = 1
Definition. F gilt in A (A ist Modell von F ):
A |= F g.d.w. A, β |= F , für alle β : X → UA
Definition. F ist (allgemein-) gültig:
|= F g.d.w. A |= F , für alle A ∈ Σ-Str
F heißt erfüllbar gdw. es A und β gibt, so daß A, β |= F .
Sonst heißt F unerfüllbar.
387
Folgerung und Äquivalenz
Definition. F impliziert G (oder G folgt aus F ), i.Z. F |= G
gdw. für alle A ∈ Σ-Str und β : X → UA gilt:
Falls A, β |= F , so A, β |= G .
Definition. F und G sind äquivalent
gdw. für alle A ∈ Σ-Str und β : X → UA gilt:
A, β |= F genau dann, wenn A, β |= G .
Satz. F impliziert G gdw. (F → G ) ist gültig
Satz. F und G sind äquivalent gdw. (F ↔ G ) ist gültig.
Erweiterung auf Formelmengen N in natürlicher Weise, z.B.:
N |= G gdw.
für alle A ∈ Σ-Str und β : X → UA :
falls A, β |= F , für alle F ∈ N, so A, β |= G .
388
Gültigkeit und Unerfüllbarkeit
Nachweis von Gültigkeit (und damit Folgerung oder Äquivalenz) durch
Unerfüllbarkeitstest:
F gültig genau dann, wenn ¬F unerfüllbar
389
Universelle Quantifizierung
Intuition
A
xF entspricht in etwa der (unendlichen) Konjunktion aller Instanzen von F
Beispiel:
A
x(studiertIn(x, koblenz) → schlau(x))
entspricht:
(studiertIn(student1, koblenz) → schlau(student1))
∧
(studiertIn(student2, koblenz) → schlau(student2))
∧
...
∧
(studiertIn(koblenz, koblenz) → schlau(koblenz))
390
Universelle Quantifizierung
Faustregel
A
→ ist der logische (Top-level-)Operator mit
Häufiger Fehler
A
Verwendung von ∧ mit
Beispiel
“Alle, die in Koblenz studieren, sind schlau”
x(studiertIn(x, koblenz) → schlau(x))
A
Falsch:
A
Richtig:
x(studiertIn(x, koblenz) ∧ schlau(x))
“Alle studieren in Koblenz und sind schlau”, d.h.
“Alle studieren in Koblenz und alle sind schlau”
391
Existenzielle Quantifizierung
Intuition.
E
xF entspricht in etwa der (unendlichen) Disjunktion aller Instanzen von F .
Beispiel:
E
x(studiertIn(x, landau) ∧ schlau(x))
entspricht
(studiertIn(student1, landau) ∧ schlau(student1))
∨
(studiertIn(student2, landau) ∧ schlau(student2))
∨
...
∨
(studiertIn(landau, landau) ∧ schlau(landau))
392
Universelle Quantifizierung
Faustregel
E
∧ ist der logische (Top-level-)Operator mit
Häufiger Fehler
E
Verwendung von → mit
Beispiel
“Es gibt jemand, der in Landau studiert und schlau ist”
x(studiertIn(x, landau) ∧ schlau(x))
E
Falsch:
E
Richtig:
x(studiertIn(x, landau) → schlau(x))
“Es gibt jemanden, der, falls er/sie in Landau studiert, schlau ist”
Trivial wahr, wenn es irgendjemanden gibt, der nicht in Landau studiert
393
Eigenschaften von Quantoren
Quantoren gleicher Art kommutieren
A A
A A
x y ist das gleiche wie
y x
E E
E E
x y ist das gleiche wie y x
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt:
(1)
A A
A A
(2)
E E
E E
x yF ≡
y xF
x yF ≡ y xF
394
Eigenschaften von Quantoren
Verschiedene Quantoren kommutieren NICHT
Beispiel:
E A
x y Mutter (y , x)
Jeder hat eine Mutter
(richtig)
A E
y x Mutter (y , x)
Es gibt eine Person, die die Mutter von jedem ist
(falsch)
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt:
A E
E A
E A
A E
x y F |= y x F
Es gibt eine Signatur Σ = (Ω, Π) und eine Formel F mit:
x y F 6|= y x F
395
Eigenschaften von Quantoren
Dualität der Quantoren
E
A
x... ist das gleiche wie ¬ x¬...
A
E
x... ist das gleiche wie ¬ x¬...
Beispiel:
E
A
x mag(x, eiskrem) ist das gleiche wie ¬ x ¬mag(x, eiskrem)
A
E
x mag(x, broccoli) ist das gleiche wie ¬ x ¬mag(x, broccoli)
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt:
(1)
A
E
(2)
E
A
x F ≡ ¬ x ¬F
x F ≡ ¬ x ¬F
396
Eigenschaften von Quantoren
A
distributiert über ∧
A
A
A
x(... ∧ ...) ist das gleiche wie ( x...) ∧ ( x...)
Beispiel
A
x (studiert(x) ∧ arbeitet(x)) ist das gleiche wie
A
A
( x studiert(x)) ∧ ( x arbeitet(x))
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt:
A
A
A
x(F ∧ G ) ≡
xF ∧ xG
397
Eigenschaften von Quantoren
E
distributiert über ∨
E
E
E
x(... ∨ ...) ist das gleiche wie ( x...) ∨ ( x...)
Beispiel
E
x (eiskrem(x) ∨ broccoli(x)) ist das gleiche wie
E
E
( x eiskrem(x)) ∨ ( x broccoli(x))
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt:
E
E
E
x (F ∨ G ) ≡ ( x F ) ∨ ( x G )
398
Eigenschaften von Quantoren
A
distributiert NICHT über ∨
A
A
A
x(... ∨ ...) ist NICHT das gleiche wie ( x...) ∨ ( x...)
Beispiel
A
x (eiskrem(x) ∨ broccoli(x)) ist NICHT das gleiche wie
A
A
( x eiskrem(x)) ∨ ( x broccoli(x))
A
x (gerade(x) ∨ ungerade(x)) ist NICHT das gleiche wie
A
A
( x gerade(x)) ∨ ( x ungerade(x))
Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit:
A
A
A
x(F ∨ G ) 6≡
xF ∨ xG
399
Eigenschaften von Quantoren
E
distributiert NICHT über ∧
E
E
E
x(... ∧ ...) ist NICHT das gleiche wie ( x...) ∧ ( x...)
Beispiel
E
E
x (gerade(x) ∧ ungerade(x)) ist NICHT das gleiche wie
( x gerade(x)) ∧ ( x ungerade(x))
E
Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit:
E
E
E
x(F ∧ G ) 6≡ xF ∧ xG
400
Eigenschaften von Quantoren
Quantoren gleicher Art kommutieren
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt:
(1)
x yF ≡ y xF
(2)
x yF ≡ y xF
E E
A A
E E
A A
Verschiedene Quantoren kommutieren NICHT
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt:
x y F |= y x F
Es gibt eine Signatur Σ = (Ω, Π) und eine Formel F mit:
x y F 6|= y x F
A E
E A
E A
A E
Dualität der Quantoren
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F gilt:
x F ≡ ¬ x ¬F
(1)
(2)
x F ≡ ¬ x ¬F
A
E
401
E
A
Eigenschaften von Quantoren
distributiert über ∧
A
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt:
x(F ∧ G ) ≡ xF ∧ xG
A
A
A
distributiert über ∨
E
Sei Σ = (Ω, Π) eine Signatur. Für alle Σ-Formeln F , G gilt:
x (F ∨ G ) ≡ ( x F ) ∨ ( x G )
E
E
E
distributiert NICHT über ∨
A
Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit:
x(F ∨ G ) 6≡ xF ∨ xG
A
A
A
distributiert NICHT über ∧
E
Es gibt eine Signatur Σ = (Ω, Π) und Σ-Formeln F , G mit:
x(F ∧ G ) 6≡ xF ∧ xG
E
402
E
E
Beispiele: Familienverhältnisse
• “Brüder sind Geschwister”
x y (bruder (x, y ) → geschwister (x, y ))
A A
• “bruder” ist symmetrisch
x y (bruder (x, y ) → bruder (y , x))
A A
• “Ein Cousin ersten Grades ist das Kind eines Geschwisters eines
Elternteils”
x y (cousin1(x, y ) → p ps (elternteil(p, x) ∧ geschwister (ps , p) ∧
elternteil(ps , y )))
E E
A A
• Definition für “Bruder, der nicht nur Halbbruder ist”
x ybruder (x, y ) ↔ (¬(x ≈ y )∧
A A
E E
m v (¬(m = v )∧
elternteil(m, x) ∧ elternteil(v , x)
elternteil(m, y ) ∧ elternteil(v , y )))
403
Strukturelle Induktion
Sei p(F ) eine Eigenschaft der Formeln in Prädikatenlogik
Behauptung: Für alle Formeln F , p(F ) gilt
Beweis durch Strukturelle Induktion:
Induktionsbasis: Zu zeigen:
p(F ) gilt für F ∈ {⊤, ⊥} und für alle atomaren Formeln.
Induktionsvoraussetzung: Sei F eine Formel (nicht atomar oder ⊤ oder ⊥).
Annahme: p(G ) gilt für alle Teilformeln G von F (mit G 6= F )
Induktionsschritt: Zu zeigen: p(F ) gilt:
Fall 1
F = ¬G
Fall 2
F = G 1 ∨ G2
Fall 3
F = G 1 ∧ G2
Fall 4
F = G 1 → G2
Fall 5
F = G 1 ↔ G2
Fall 6
F =
Fall 7
F = xG
A
xG
E
404
Strukturelle Induktion
Sei p(t) eine Eigenschaft der Terme in Prädikatenlogik
Behauptung: Für alle Terme t, p(t) gilt
Beweis durch Strukturelle Induktion:
Induktionsbasis: Zu zeigen:
p(t) gilt für t ∈ X und für alle Konstanten.
Induktionsvoraussetzung: Sei t ein Term (nicht Variable oder Konstante).
Annahme: p(s) gilt für alle Teilterme s von t (mit s 6= t)
Induktionsschritt: Zu zeigen: p(t) gilt:
Fallunterschied über alle f ∈ Ω mit t = f (t1 , . . . , tn ).
405
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F ,
Variablen x und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F
Beweis: Strukturelle Induktion
Wir benutzen folgendes Lemma:
Lemma: Für alle Σ-Strukturen A, Wertebelegungen β,
Variable x und Terme ti , t:
A(β)(ti [t/x]) = A(β[x → A(β)(t)])(ti )
406
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F ,
Variablen x und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F
Beweis: Strukturelle Induktion
1. Induktionsbasis: Zu zeigen: Die Eigenschaft gilt für ⊤, ⊥ und alle atomaren Formeln.
Fall 1: F = ⊤ Dann F [t/x] = ⊤;
A(β)(F [t/x])=A(β)(⊤)=1=A(β[x→A(β)(t)])(⊤)=A(β[x→A(β)(t)])(F )
Fall 2: F = ⊥ Dann F [t/x] = ⊥;
A(β)(F [t/x])=A(β)(⊥)=0=A(β[x→A(β)(t)])(⊥)=A(β[x→A(β)(t)])(F ).
Fall 3: F = p(t1 , . . . , tn ) mit p/n ∈ Ω. Dann F [t/x] = p(t1 [t/x], . . . , tn [t/x]).
A(β)(F [t/x])=A(β)(p(t1 [t/x], .., tn [t/x]))=1 iff (A(β)(t1 [t/x]), .., A(β)(tn [t/x]))∈pA
A(β[x→A(β)(t)])(p(t1 , .., tn ))=1 iff (A(β[x→A(β)(t)])(t1 ), .., A(β[x→A(β)(t)])(tn ))∈pA
Lemma: A(β)(ti [t/x]) = A(β[x→A(β)(t)])(ti ). Äquivalenz folgt daraus.
407
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F ,
Variablen x und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F
Beweis: ctd.
2. Induktionsvoraussetzung: Sei F eine Formel (nicht atomar oder ⊤ oder ⊥).
Annahme: p(G ) gilt für alle Teilformeln G von F (mit G 6= F )
3. Induktionsschritt: Zu zeigen: p(F ) gilt:
Fall 1: F = ¬G . Dann F [t/x] = ¬(G [t/x]).
A(β)(F [t/x]) = A(β)(¬(G [t/x]) = 1 iff A(β)(G [t/x]) = 0 iff (Ind.Voraus.)
A(β[x→A(β)(t)])(G )=0 iff A(β[x→A(β)(t)])(¬G )=1 iff A(β[x→A(β)(t)])(F )=1
Fall 2-5: F = G1 opG2 , op ∈ {∨, ∧, →, ↔. Dann F [t/x] = G1 [t/x]opG2 [t/x].
A(β)(F [t/x])=A(β)(G1 [t/x]opG2 [t/x])=A(β)(G1 [t/x])opB A(β)(G2 [t/x])= (I.V.)
A(β[x→A(β)(t)])(G1 )opB A(β[x→A(β)(t)])(G2 )=A(β[x→A(β)(t)])(G1 opG2 ).
| {z }
F
408
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F ,
Variablen x und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F
A
yG .
A
Fall 6: F =
A
Fall 6.1: y = x. Dann F [t/x] = xG [t/x] = xG .
A(β)(F [t/x])=A(β)( xG )=min{A(β[x 7→ a])(G ) | a ∈ UA }
A(β[x→A(β)(t)])( xG )=min{A(β[x→A(β)(t)][x→a])(G ) | a ∈ UA } =
min{A(β[x 7→ a])(G ) | a ∈ UA }.
A
A
A
A
Fall 6.2: y 6= x, t enthält nicht y . Dann F [t/x] = yG [t/x] = y (G [t/x]).
A(β)(F [t/x])=A(β)( y (G [t/x])=min{A(β[y →a])(G [t/x])|a∈UA } = (Ind.Vor.)
min{A(β[y →a, x→A(β[y →a])(t))(G )|a∈UA }=
min{A(β[y →a, x→A(β)(t)])(G )|a∈UA } (y kommt in t nicht vor)
A(β[x→A(β)(t)])( yG )= = min{A(β[x→A(β)(t)][y →a])(G )|a∈UA }=
min{A(β[y 7→ a, x→A(β)(t)])(G ) = |a∈UA }.
A
A
409
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F ,
Variablen x und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F
A
yG .
Fall 6.3: y 6= x, t enthält y . Dann F [t/x] =
A
Fall 6: F =
y ′ G [y ′ /y ][t/x].
A
A(β)(F [t/x])=A(β)( y ′ (G [y ′ /y ][t/x])=
=min{A(β[y ′ →a])(G [y ′ /y ][t/x])|a∈UA } =
(Ind.Vor.)
= min{A(β[y ′ →a, x→A(β[y ′ →a])(t))(G [y ′ /y ])|a∈UA }= (Ind.Vor.)
= min{A(β[y ′ →a, x→A(β[y ′ →a])(t), y →a])(G )|a∈UA } =
[ Rem: A(β[y ′ →a, x→A(β[y ′ →a])(t)])(y ′ ) = a]
= min{A(β[x→A(β)(t), y →a])(G )|a∈UA } (y ′ kommt in t u. G nicht
A
A(β[x→A(β)(t)])( yG )=min{A(β[x→A(β)(t)][y →a])(G )|a∈UA }=
=min{A(β[y 7→ a, x→A(β)(t)])(G )|a∈UA }.
410
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F ,
Variablen x und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x → A(β)(t)] |= F
E
Fall 7: F = yG .
Ähnlich zu Fall 6.
411
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x
und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x→A(β)(t)] |= F
Allgemeiner gilt für beliebige Substitutionen σ:
Theorem.
A, β |= F σ g.d.w. A, β ◦ σ |= F ,
wobei β ◦ σ : X → A die Wertebelegung mit β ◦ σ(x) = A(β)(xσ), für
alle Variablen x.
412
Substitutionen und Valuationen
Theorem (Substitutionslemma)
Für alle Σ-Strukturen A, Wertebelegungen β, Σ-Formeln F , Variablen x
und Terme t gilt:
A, β |= F [t/x] g.d.w. A, β[x→A(β)(t)] |= F
Allgemeiner gilt für beliebige Substitutionen σ:
Theorem.
A, β |= F σ g.d.w. A, β ◦ σ |= F ,
wobei β ◦ σ : X → A die Wertebelegung mit β ◦ σ(x) = A(β)(xσ), für
alle Variablen x.
Beweis: σ = [t1 /x1 , . . . tn /xn ]
Induktion nach Anzahl n von Variablen in dom(σ) = {x1 , . . . , xn }
413
Umbenennung von Variablen
Lemma
Für alle Σ-Formeln F , Variablen x gilt:
A
A
xF ≡
z F [z/x]
wobei z eine neue Variable ist.
414
2.3 Algorithmische Probleme
415
Algorithmische Probleme
Gültigkeit(F ):
|= F ?
Erfüllbarkeit(F ):
F erfüllbar?
Modelltest(F ,A):
A |= F ?
(Σ fest)
(Σ fest)
(Σ fest)
416
Ausblick: Kalküle, Entscheidbarkeit
Kalküle
Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B.
Resolution)
417
Ausblick: Kalküle, Entscheidbarkeit
Kalküle
Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B.
Resolution)
Aber diese Kalküle können die Erfüllbarkeit von Formeln NICHT entscheiden
418
Ausblick: Kalküle, Entscheidbarkeit
Kalküle
Es gibt korrekte und vollständige Kalküle für Prädikatenlogik (z.B.
Resolution)
Aber diese Kalküle können die Erfüllbarkeit von Formeln NICHT entscheiden
Aussagenlogik
Allgemeingültigkeit, Erfüllbarkeit, Unerfüllbarkeit ENTSCHEIDBAR
Prädikatenlogik
• Es gibt Σ, so dass Gültigkeit(F ) unentscheidbar.
• Menge der allgemeingültigen Formeln REKURSIV AUFZÄHLBAR
• Menge der unerfüllbaren Formeln REKURSIV AUFZÄHLBAR
• Menge der erfüllbaren Formeln NICHT REKURSIV AUFZÄHLBAR
419
Rekursiv Aufzählbar
Informelle Definition. Als rekursiv aufzählbare Menge
(auch semi-entscheidbare Menge, positiv semi-entscheidbare Menge,
halb-entscheidbare Menge, berechenbar aufzählbare Menge, kurz r.e., c.e)
wird in der Berechenbarkeitstheorie eine aufzählbare Menge A (z.B. eine
Teilmenge von N) bezeichnet, wenn es einen Algorithmus gibt, der die
Elemente von A aufzählt.
Äquivalent ist folgende Definition: es gibt einen Algorithmus, der 1 ausgibt
wenn die Eingabe in A ist, und auf anderen Eingaben 0 ausgibt oder nicht
hält.
420
Zusammenfassung: Syntax und Semantik
• Prädikatenlogische Signatur
• Term, Atom, Formel
• Prädikatenlogisches Modell
• Auswertung von Formeln in Modellen
• Erfüllbarkeit, Gültigkeit; Folgerung, Äquivalenz
• Eigenschaften von Quantoren (Vertauschbarkeit untereinander und mit
∧, ∨)
• Entscheidbarkeit der Erfüllbarkeit von Formeln
421
Unser Ziel
Kalküle zur systematischen Überprüfung von Erfüllbarkeit
(für Formeln und/oder Formelmengen)
422
2.4 Normalformen
423
Normalformen, Skolemisierung,
Herbrandmodelle
Vorteile von Normalformen
• Reduktion der logischen Konzepte
• einfache Datenstrukturen für Beweisverfahren
424
Negationsnormalform
Definition. Eine Formel F ∈ ForΣ ist in Negationsnormalform (NNF), falls:
• →, ↔ kommen in F nicht vor
• jedes Negationszeichen in F steht direkt vor einem Atom (insbes. auch
kein ¬¬)
425
Negationsnormalform
Definition. Eine Formel F ∈ ForΣ ist in Negationsnormalform (NNF), falls:
• →, ↔ kommen in F nicht vor
• jedes Negationszeichen in F steht direkt vor einem Atom (insbes. auch
kein ¬¬)
Beispiele:
NNF:
P,
¬P,
(¬P ∨ Q) ∧ (R ∨ (Q ∧ ¬P))
p(x, y ) ∨ ¬q(y )
nicht NNF:
¬¬P,
¬(P ∨ Q)
p(x, y ) → q(x)
426
Bereinigte Formeln
Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls:
• Keine Variable in F sowohl gebunden als auch frei vorkommt
• Keine Variable mehr als einmal in F quantifiziert ist
427
Bereinigte Formeln
Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls:
• Keine Variable in F sowohl gebunden als auch frei vorkommt
• Keine Variable mehr als einmal in F quantifiziert ist
Beispiele:
Bereinigt
P ∨Q
E
E A
x y (p(x) ∨ q(x, y ) ∨ z r (x, z))
428
Bereinigte Formeln
Definition. Eine Formel F ∈ ForΣ ist bereinigt, falls:
• Keine Variable in F sowohl gebunden als auch frei vorkommt
• Keine Variable mehr als einmal in F quantifiziert ist
Beispiele:
Bereinigt
P ∨Q
E
E A
x y (p(x) ∨ q(x, y ) ∨ z r (x, z))
Nicht bereinigt
A
p(x) ∨ x q(x)
A
A
( x p(x)) ∨ ( x q(x))
429
Pränexe Normalform
Definition: Pränexe Formeln sind von der Form
Q 1 x1 . . . Q n xn F ,
E A
wobei F quantorenfrei, Qi ∈ { , }. Hierbei heißt Q1 x1 . . . Qn xn der
Quantorenpräfix und F die Matrix der Formel.
430
Pränexe Normalform
Definition: Pränexe Formeln sind von der Form
Q 1 x1 . . . Q n xn F ,
E A
wobei F quantorenfrei, Qi ∈ { , }. Hierbei heißt Q1 x1 . . . Qn xn der
Quantorenpräfix und F die Matrix der Formel.
Beispiele
In Pränexnormalform
p(x) ∨ q(x)
E A
x y (p(x) ∨ q(y ))
Nicht in Pränexnormalform
E
A
( x p(x)) ∨ ( y q(y ))
431
Pränexe Normalform
Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in
Pränexnormalform
Konstruktiver Beweis
• Formel bereinigen
• Formel in NNF transformieren (Negationszeichen nach innen)
E
A
– ¬ F ≡ ¬F
– aussagenlogische Umformungen
• Alle Quantoren nach vorne (Reihenfolge unverändert lassen)
432
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
1. Bereinigung
F ≡ F1 := ( x ′ ((p(x ′ )∨q(x ′ , y ))∧ z ′ r (x ′ , y , z ′ )))→((p(z)∧q(x, z))∧ z ′′ r (z ′′ , x, y ))
A
E
A
2. NNF
E
A
z ′′ r (z ′′ , x, y ))
¬
(DeMorgan)
(De Morgan)
E
A
A
A
E
E
A
E
E
=:
z ′ ¬r (x ′ , y , z ′ )) ∨ ((p(z) ∧ q(x, z)) ∧
≡
¬
≡
A
E
x ′ ((¬p(x ′ ) ∧ ¬q(x ′ , y )) ∨
≡
A
≡
A
≡
¬
E
¬( x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z ′ r (x ′ , y , z ′ ))) ∨ ((p(z) ∧ q(x, z)) ∧ z ′′ r (z ′′ , x, y ))
x ′ ¬((p(x ′ ) ∨ q(x ′ , y )) ∧ z ′ r (x ′ , y , z ′ ))) ∨ ((p(z) ∧ q(x, z)) ∧ z ′′ r (z ′′ , x, y ))
x ′ (¬(p(x ′ ) ∨ q(x ′ , y )) ∨ ¬ z ′ r (x ′ , y , z ′ ))) ∨ ((p(z) ∧ q(x, z)) ∧ z ′′ r (z ′′ , x, y ))
F1 ≡
¬
F2
3. Alle Quantoren nach vorne 7→ Pränexnormalform
E
|
′
A
x
z
′
A
F2 ≡
z
′′
′
′
′
′
′′
((¬p(x ) ∧ ¬q(x , y )) ∨ ¬r (x , y , z )) ∨ ((p(z) ∧ q(x, z)) ∧ r (z , x, y ))
{z
}
Pränexnormalform von F
433
Pränexe Normalform
Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in
Pränexnormalform
Direkter Beweis: Strukturelle Induktion
Induktionsbasis: ⊤, ⊥ und jede atomare Formel F = q(t1 , . . . , tn ) sind in Pränexnormalform, d.h. sind äquivalent zu
einer Formel in Pränexnormalform.
Sei F eine Formel, die nicht ⊤, ⊥ und nicht atomar ist.
Induktionsvoraussetzung (I.V.): Jede Teilformel G von F (G 6= F ) ist äquivalent zu einer Formel in Pränexnormalform.
Induktionsschritt: Zu zeigen: F äquivalent zu einer Formel in Pränexnormalform.
E E
=
,
A
I .V .
′ y G′)
Fall 2: F = G1 ∧ G2 ≡ (Q1 x1 . . . Qn xn G1′ ) ∧ (Q1′ y1 . . . Qm
m 2
′
′
′
′
′
′
′ y ′ G ′ [y ′ /y ])
≡ (Q1 x1 . . . Qn xn G1 [xi /xi ]) ∧ (Q1 y1 . . . Qm
m 2 i i
′
′
′
′
′
′
′
′
≡ Q1 x1 . . . Qn xn Q1 y1 . . . Qm ym (G1 [xi /xi ] ∧ G2′ [yi′ /yi ])
=
A
I .V .
Fall 1: F = ¬G ≡ ¬(Q1 x1 . . . Qn xn G ′ ) ≡ Q 1 x1 . . . Q n xn ¬G ′ (wobei
).
(Bereinigung)
(Quantoren nach vorne)
(Pränexnormalform)
Fall 3,4,5: F = G1 opG2 (op ∈ {∨, →, ↔}) analog
A
Fall 6: F =
x(Q1 x1 . . . Qn xn G ′ )
A
I .V .
xG ≡
Fall 6: F =
(Pränexnormalform)
E
xG analog
434
Pränexe Normalform
Theorem. Zu jeder Formel F ∈ ForΣ gibt es eine äquivalente Formel in
Pränexnormalform
Konstruktiver Beweis
• Formel bereinigen
• Formel in NNF transformieren (Negationszeichen nach innen)
E
A
– ¬ F ≡ ¬F
– aussagenlogische Umformungen
• Alle Quantoren nach vorne (Reihenfolge unverändert lassen)
435
Pränexe Normalform
Äquivalenzbeweis
Folgt aus:
A
E
E
A
¬ F ≡ ¬F
¬ F ≡
¬F
Aussagenlogische Umformungen zur Berechnung der NNF: Äquivalenzerhaltend
Falls x nicht in G vorkommt:
A
A
A
A
E
E
E
E
( xF ) ∧ G ≡
( xF ) ∨ G ≡
x(F ∧ G )
x(F ∨ G )
( xF ) ∧ G ≡ x(F ∧ G )
( xF ) ∨ G ≡ x(F ∨ G )
436
Pränexe Normalform
Alternatives Verfahren (ohne Bereinigung, ohne NNF)
Herstellung von pränexer Normalform durch ⇒P :
(F ↔ G )
⇒P
(F → G ) ∧ (G → F )
¬QxF
⇒P
Qx¬F
(QxF ρ G )
⇒P
Qy (F [y /x] ρ G ), y neu, ρ ∈ {∧, ∨}
(QxF → G )
⇒P
Qy (F [y /x] → G ), y neu
(F ρ QxG )
⇒P
Qy (F ρ G [y /x]), y neu, ρ ∈ {∧, ∨, →}
und
E
E
=
=
A
A
Hierbei ist Q der zu Q duale Quantor, d.h.
(¬Q)
.
437
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
438
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
E
E
⇒P
x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z)) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
439
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
E
E
⇒P
A
⇒P
E
x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z)) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
E
x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
440
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
E
⇒P
E
⇒P
A
⇒P
E
A E
x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
E
x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
x ′ z ′ (((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y )
441
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
E
⇒P
E
⇒P
A E
⇒P
A
⇒P
E
A E
x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
E
x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) →
z ′′ ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y
442
Beispiel
A
E
A
F := ( x((p(x) ∨ q(x, y )) ∧ z r (x, y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
E
⇒P
E
⇒P
A E
⇒P
A E
⇒P
A
⇒P
E
A A E
x ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ z r (x ′ , y , z))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
E
x ′ ( z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ ))) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → ((p(z) ∧ q(x, z)) ∧ z r (z, x, y ))
A
x ′ z ′ ((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) →
z ′′ ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y
x ′ z ′ z ′′ (((p(x ′ ) ∨ q(x ′ , y )) ∧ r (x ′ , y , z ′ )) → ((p(z) ∧ q(x, z)) ∧ r (z ′′ , x, y
443
Skolemnormalform
Definition. Eine Formel F ∈ ForΣ ist in Skolemnormalform (SNF), falls:
• F ist in Pränexnormalform
• F enthält nur universelle Quantoren
Beispiele:
In Skolemnormalform
A A
x y (p(x) ∨ q(y ))
Nicht in Skolemnormalform
A
A
x p(x) ∨ y q(y )
E A
x y (p(x) ∨ q(y ))
444
Skolemisierung
Skolemisierung: Transformation ⇒S :
⇒S
A
E
A
x1 , . . . , xn yF
x1 , . . . , xn F [f (x1 , . . . , xn )/y ]
wobei f /n ein neues Funktionssymbol (Skolemfunktion).
445
Skolemisierung
Beispiel
Gegeben:
E
A
E
A
w ( x(p(w , x) ∨ y (q(w , x, y ) ∧ z r (y , z))))
Pränexnormalform:
E A E A
w x y z((p(w , x) ∨ (q(w , x, y ) ∧ r (y , z))))
Skolemisierung:
A A
w y ((p(w , sk(w )) ∨ (q(w , sk(w ), y ) ∧ r (y , g (w , y )))))
446
Skolemisierung
Zusammen:
∗
G
⇒S
H
|{z}
|{z}
pränexe Form
pränex, kein
E
∗
F ⇒P
Theorem:
Seien F , G und H wie oben angenommen. Dann:
(1) F und G sind äquivalent.
(2)
G erfüllbar
gdw.
H erfüllbar
(bzgl. Σ-Str)
(bzgl. Σ′ -Str)
wobei Σ′ = (Ω ∪ SKF , Π), wenn Σ = (Ω, Π).
447
Klauselnormalform (konjunktive Normalform)
Transformationsregeln ⇒K
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(F ↔ G )
⇒K
(F → G ) ∧ (G → F )
(F → G )
⇒K
¬(F ∧ G )
⇒K
(F ∧ G ) ∨ H
⇒K
(F ∨ H) ∧ (G ∨ H)
(F ∧ ⊥)
⇒K
⊥
⇒K
F
¬(F ∨ G )
¬¬F
(F ∧ ⊤)
(F ∨ ⊤)
(F ∨ ⊥)
⇒K
(¬F ∨ G )
(¬F ∧ ¬G )
(¬F ∨ ¬G )
⇒K
F
⇒K
F
⇒K
⊤
Die ersten 5 Regeln, zusammen mit Regel (¬Q), stellen die Negationsnormalform
(NNF) her.
448
Gesamtbild
∗
⇒P
Q1 y1 . . . Qn yn G
(G quantorenfrei)
⇒S
A
(H quantorenfrei)
∗
∗
⇒K
x1 , . . . , xm H
A
F
x1 , . . . , xn
|
{z
}
weglassen
|
k
^
i=1
{z
F′
ni
_
Lij
j=1
| {z }
Klauseln
Ci
}
N = {C1 , . . . , Ck } heißt Klausel(normal)form (KNF) von F.
Merke: Die Variablen in Klauseln sind implizit allquantifiziert.
Falls F freie Variablen enthält, werden diese Variablen mit Konstanten ersetzt
(F (x) erfüllbar gdw. xF (x) erfüllbar)
E
Theorem: F ist erfüllbar, gdw. F ′ erfüllbar, gdw. N erfüllbar.
Viel Optimierungspotential vorhanden, wenn nur Erfüllbarkeit bewahrt werden muß
und kann: Größenexplosion, kleine Stelligkeit von Skolemfunktionen.
449
Beispiel
E
A
A
E
F ≡ z(( x(p(z, x))) → ( y (q(z, y ) ∧ ( xr (y , x)))))
Pränexnormalform:
A
E
≡
A
≡
E
E
z(( x(p(z, x))) → ( y (q(z, y ) ∧ ( x ′ r (y , x ′ )))))
A
E
E
≡
A
≡
E
A
E A E E
z((¬ xp(z, x)) ∨ ( y (q(z, y ) ∧ ( x ′ r (y , x ′ )))))
E
F
z(( x¬p(z, x)) ∨ ( y (q(z, y ) ∧ ( x ′ r (y , x ′ )))))
z x y x ′ (¬p(z, x) ∨ (q(z, y ) ∧ r (y , x ′ )))
(Bereinigung)
(NNF)
(Pränexnormalform)
Skolemisierung z 7→ sk1 ; x 7→ sk2 ; x ′ 7→ sk3 (y )
A
⇒∗
S
y (¬p(sk1 , sk2 ) ∨ (q(sk1 , y ) ∧ r (y , sk3 (y ))))
(Erfüllbarkeitsäquivalente Formel in Skolemnormalform)
Klauselnormalform:
A
⇒∗
K
y ((¬p(sk1 , sk2 ) ∨ q(sk1 , y )) ∧ (¬p(sk1 , sk2 ) ∨ r (y , sk3 (y ))))
Klauselmenge: N = {{¬p(sk1 , sk2 ), q(sk1 , y )}, {¬p(sk1 , sk2 ), r (y , sk3 (y ))}}
450
2.5
Herbrand-Interpretationen
451
Herbrand-Interpretationen
Ab jetzt betrachten wir, falls nichts Anderes angegeben, immer nur PL ohne Gleichheit.
Ω enthalte immer mindestens ein Konstantensymbol.
Definition. Herbrand-Interpretationen (über Σ) sind Σ-Strukturen A mit:
1. UA = TΣ
Menge der Grundterme, d.h. variablenfreien Terme über Σ
2. fA : (s1 , . . . , sn ) 7→ f (s1 , . . . , sn ), f /n ∈ Ω
f
fA (△, . . . , △) =
△
...
△
d.h. vorgegeben sind Terme als Daten und Funktionen als Termkonstruktoren.
Variabel sind nur die Interpretationen der Prädikatensymbole
pA ⊆ TΣm , pm ∈ Π
452
Herbrand-Interpretationen als Mengen von
Grundatomen
Satz.
Jede Menge von Grundatomen I identifiziert genau eine HerbrandInterpretation A durch
(s1 , . . . , sn ) ∈ pA genau dann, wenn p(s1 , . . . , sn ) ∈ I
Im folgenden werden wir daher nicht zwischen Herbrand-Interpretationen
(über Σ) und Mengen von Σ-Grundatomen unterscheiden.
453
Herbrand-Interpretationen als Mengen von
Grundatomen
Beispiel:
ΣPres = ({0/0, s/1, +/2}, {< /2, ≤ /2})
N als Herbrand-Interpretation über ΣPres
I ={
0 ≤ 0, 0 ≤ s(0), 0 ≤ s(s(0)), . . . ,
0 + 0 ≤ 0, 0 + 0 ≤ s(0), . . . ,
. . . , (s(0) + 0) + s(0) ≤ s(0) + (s(0) + s(0))
...
s(0) + 0 < s(0) + 0 + 0 + s(0)
. . .}
454
Existenz von Herbrand-Modellen
Definition. Eine Herbrand-Interpretation I heißt Herbrand-Modell von F ,
falls I |= F .
Theorem [Herbrand] Sei N eine Menge von Σ-Klauseln.
N erfüllbar
g.d.w.
N hat Herbrand-Modell (über Σ)
g.d.w.
GΣ (N) hat Herbrand-Modell (über Σ)
wobei
GΣ (N) = {C σ Grundklausel | C ∈ N, σ : X → TΣ }
die Menge der Grundinstanzen von N ist.
[Beweis später im Zusammenhang mit dem Vollständigkeitsbeweis für
Resolution.]
455
Beispiel für GΣ
Bzgl. ΣPres erhält man für
C = (x < y ) ∨ (y ≤ s(x))
folgende Grundinstanzen:
(0 < 0) ∨ (0 ≤ s(0))
(s(0) < 0) ∨ (0 ≤ s(s(0)))
...
(s(0) + s(0) < s(0) + 0) ∨ (s(0) + 0 ≤ s(s(0) + s(0)))
...
456
2.6
Prädikatenlogische Resolution
457
Wiederholung: Aussagenlogische Resolution
Aussagenlogische Klauseln entsprechen Grundklauseln und umgekehrt.
458
Wiederholung: Resolutionskalkül
(Mengennotation)
Resolutionsregel:
C ∪ {A}
{¬A} ∪ D
C ∪D
C ∪ D: Resolvente
A: resolviertes Atom
459
Beispielrefutation (Mengennotation)
1.
{¬P(f (a)), ¬P(f (a)), Q(b)}
(gegeben)
2.
{P(f (a)), Q(b)}
(gegeben)
3.
{¬P(g (b, a)), ¬Q(b)}
(gegeben)
4.
{P(g (b, a))}
(gegeben)
5.
{¬P(f (a)), Q(b)}
(Res. 2. in 1.)
6.
{Q(b)}
(Res. 2. in 5.)
7.
{¬P(g (b, a))}
(Res. 6. in 3.)
8.
⊥
(Res. 4. in 9.)
460
Wiederholung: Resolutionskalkül
(Klauselnotation)
Resolutionsregel:
C ∨A
¬A ∨ D
C ∨D
C ∨ D: Resolvente
A: resolviertes Atom
Faktorisieren:
C ∨L∨L
C ∨L
∨“ wird in Klauseln als assoziativ und kommutativ aufgefaßt.
”
461
Beispielrefutation (Klauselnotation)
1.
¬P(f (a)) ∨ ¬P(f (a)) ∨ Q(b)
(gegeben)
2.
P(f (a)) ∨ Q(b)
(gegeben)
3.
¬P(g (b, a)) ∨ ¬Q(b)
(gegeben)
4.
P(g (b, a))
(gegeben)
5.
¬P(f (a)) ∨ Q(b) ∨ Q(b)
6.
¬P(f (a)) ∨ Q(b)
7.
Q(b) ∨ Q(b)
8.
Q(b)
9.
¬P(g (b, a))
(Res. 8. in 3.)
⊥
(Res. 4. in 9.)
10.
(Res. 2. in 1.)
(Fakt. 5.)
(Res. 2. in 6.)
(Fakt. 7.)
462
Wiederholung: Korrektheit und Vollständigkeit
Aussagenlogische Resolution ist korrekt und vollständig.
• Mengennotation: Resolutionsregel
• Klauselnotation: Resolutionsregel + Faktorisieren
463
Prädikatenlogische Resolution: Idee
Grundidee
Vor Resolutionsschritt durch geeignete Substitution komplementäres Paar
von Literalen erzeugen
Möglichkeit für Resolutionsregel
C1 ∪ {L}
C2 ∪ {¬L′ }
C1 σ ∪ C2 σ
wobei
• die Elternklauseln keine Variablen gemeinsam haben (bereinigt)
7→ ggf. umbenennen
• σ(L) = σ(L′ )
Nachteil: Viel zu viele Substitutionen σ mit σ(L) = σ(l ′ )
Idee: Wähle die “allgemeinste” Substitution, mit σ(L) = σ(l ′ )
464
Unifikation
.
.
Sei E = {s1 = t1 , . . . , sn = tn } (si , ti Terme oder Atome) eine Menge von
Gleichheitsproblemen.
Definition: Eine Substitution σ heißt ein Unifikator von E g.d.w.
A
1 ≤ i ≤ n : si σ = ti σ.
Existiert ein Unifikator, so heißt E unifizierbar.
Definition: σ heißt allgemeiner als τ
σ ≤ τ :⇔ es gibt Subst.̺ : σ ◦ ̺ = τ
wobei (σ ◦ ̺)(x) := (xσ)̺ die Komposition von σ und ̺ als Abbildungen.a
a Ist
wohldefiniert, weil σ ◦ ̺ einen endlichen Bereich hat.
465
Ein paar simple Fakten
• Jeder Term ist mit sich selbst unifizierbar (mittels id)
• Terme der Gestalt f (s1 , . . . , sn ), f (t1 , . . . , tn ) sind unifizierbar g.d.w.
si und ti unifizierbar für 1 ≤ i ≤ n
• Atome der Gestalt p(s1 , . . . , sn ), p(t1 , . . . , tn ) sind unifizierbar g.d.w.
si und ti unifizierbar für 1 ≤ i ≤ n
• Terme der Gestalt f (s1 , . . . , sn ), g (t1 , . . . , tm ) sind niemals unifb.
• Atome der Gestalt p(s1 , . . . , sn ), q(t1 , . . . , tn ) sind niemals unifb.
• Eine Variable x und ein Term t, der x nicht enthält, sind immer unifb.
(mittels [t/x])
• Eine Variable x und ein Term t 6= x, der x enthält, sind niemals
unifizierbar
466
Unifikation nach Martelli/Montanari
.
(1)
t = t, E
⇒MM
E
(2)
f (s1 , . . . , sn ) = f (t1 , . . . , tn ), E
⇒MM
s1 = t1 , . . . , sn = tn , E
(3)
f (. . .) = g (. . .), E
⇒MM
⊥
(4)
x = t, E
⇒MM
x = t, E [t/x]
.
.
.
.
.
.
falls x ∈ var (E ), x 6∈ var (t)
(5)
.
x = t, E
⇒MM
⊥
falls x 6= t, x ∈ var (t)
(6)
.
t = x, E
⇒MM
.
x = t, E
falls t 6∈ X
467
Beispiel 1
.
.
{f (g (a, x), g (y , b)) = f (x, g (v , w )), f (x, g (v , w )) = f (g (x, a), g (v , b)}
(2)
⇒MM
(5)
⇒MM
.
.
.
.
{g (a, x) = x, g (y , b) = g (v , w ), x = g (x, a), g (v , w ) = g (v , b)}
⊥
nicht unifizierbar
468
Beispiel 2
.
.
{f (g (a, x), g (y , b)) = g (x, g (v , w )), f (x, g (v , w )) = f (g (x, a), g (v , b)}
(3)
⇒MM
⊥
nicht unifizierbar
469
Beispiel 3
.
.
{f (g (a, x), g (y , b)) = f (z, g (v , w )), f (z, g (v , w )) = f (g (x, a), g (v , b)}
(2)
⇒MM
(4)
.
.
.
.
{g (a, x) = z, g (y , b) = g (v , w ), z = g (x, a), g (v , w ) = g (v , b)}
.
.
.
.
⇒MM
{z = g (a, x), g (y , b) = g (v , w ), g (a, x) = g (x, a), g (v , w ) = g (v , b)}
⇒∗MM
{z = g (a, x), y = v , b = w , a = x, x = a, v = v , w = b}
⇒∗MM
{z = g (a, x), y = v , b = w , a = x, x = a, w = b}
⇒∗MM
{z = g (a, a), y = v , b = b, a = a, x = a, w = b}
⇒∗MM
{z = g (a, a), y = v , x = a, w = b}
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Allgemeinster Unifikator:
[g (a, a)/z, v /y , a/x, w /b]
470
Unifikation: Haupteigenschaften
Definition. Eine Substitition σ heißt idempotent, wenn σ ◦ σ = σ.
Lemma.
σ ist idempotent gdw. dom(σ) ∩ codom(σ) = ∅.
Theorem.
∗
1. E ⇒MM ⊥ gdw. E nicht unfizierbar.
∗
.
.
2. E unifizierbar gdw. E ⇒MM x1 = u1 , . . . , xk = uk ,
mit xi pw. verschieden, xi 6∈ var (uj ), 1 ≤ i, j ≤ k.
∗
.
.
3. Falls E ⇒MM x1 = u1 , . . . , xk = uk ,
mit xi pw. verschieden, xi 6∈ var (uj ) so
σ = [u1 /x1 , . . . , uk /xk ] ist allgemeinster Unifikator von E .
471
Unifikation: Haupteigenschaften
Theorem.
E unifizierbar g.d.w. es gibt allgemeinsten Unifikator σ von E , so dass:
(1) σ idempotent und
(2) dom(σ) ∪ codom(σ) ⊆ var (E ).
Notation: σ = mgu(E ) ( most general unifier“)
”
Problem: exponentielles Anwachsen der Terme möglich.
Beispiel:
E = {x1 ≈ f (x0 , x0 ), x2 ≈ f (x1 , x1 ), . . . , xn ≈ f (xn−1 , xn−1 )}
m.g.u. [x1 7→ f (x0 , x0 ), x2 7→ f (f (x0 , x0 ), f (x0 , x0 )), ...]
xi 7→ kompletter binärer Baum der Höhe i
Zeit/Raum: exponentiell
Idee: Terme: azyklische Termgraphen
472
Beweisideen
• Falls E ⇒MM E ′ , dann σ Unifikator von E gdw. σ Unifikator von E ′ . (⊥ habe
keinen Unifikator.)
• Bzgl. ⇒MM irreduzible E sind trivialerweise nicht unifizierbar (E = ⊥)
oder haben die Form einer idempotenten Substitution. In diesem Fall ist die
Substitution der allgemeinste Unifikator.
• ⇒MM ist Noethersch. Eine geeignete lexikographische Ordnung auf Gleichungsmengen E (mit ⊥ minimal und kleiner als alle Gleichungsmengen) zeigt dieses.
Man vergleiche in dieser Reihenfolge:
.
1. Anzahl der definierten Variablen (d.h. Variablen x in Gleichung x = t mit
x 6∈ var (t)), die auch außerhalb ihrer Definition in E vorkommen
2. Mengenordnung induziert von (i) der Größe (Anzahl der Symbole) einer
.
.
Gleichung; (ii) bei gleicher Größe betrachten wir x = t kleiner als t = x,
falls t 6∈ X .
• σ ist idempotent wegen der Substitution in Regel 4. dom(σ) ⊆ var (E ), weil
keine neuen Variablen eingeführt werden.
473
Prädikatenlogische Resolutionsregel
Prädikatenlogische Resolutionsregel
C1 ∪ {L}
C2 ∪ {¬L′ }
C1 σ ∪ C2 σ
wobei
• die Elternklauseln keine Variablen gemeinsam haben (bereinigt)
7→ ggf. umbenennen
• σ ein allgemeinster Unifikator (MGU) von L, L′ ist.
474
Beispiel
{L} ∪ C1 = {p(a, x), p(x, x)}
| {z }
L
{L′ } ∪ C2 = {¬p(y , y )}
| {z }
L′
Allgemeinster Unifikator von L, L′ :
.
{p(a, x) = p(y , y )}
.
.
.
.
⇒MM
{a = y , x = y }
⇒MM
{y = a, x = a}
σ = [a/y , a/x]
C1 ∪ {L}
C2 ∪ {¬L′ }
C1 σ ∪ C2 σ
R := {p(x, x)}σ ∪ {}σ = {p(a, a)}
475
Prädikatenlogische Resolutionsregel
Resolutionsregel in dieser Form alleine unvollständig für Prädikatenlogik
Beispiel:
{{p(x), p(y )}, {¬p(u), ¬p(v )}}
• unerfüllbar
• aber nur Resolventen der Länge 2
476
Faktorisierung
Faktorisierung
{L1 , . . . , Ln } ∪ C
({L1 , . . . , Ln } ∪ C )σ
wobei
• σ allgemeinster Unifikatior (MGU) von {L1 , . . . , Ln } ist
({L1 , . . . , Ln } ∪ C )σ heißt Faktor von {L1 , . . . , Ln } ∪ C
477
Beispiel für Faktorisierung
{p(x), p(y ), r (y , z)}
{p(x), r (x, z)}
{p(x), p(y ), p(a), r (y , z)}
{p(a), r (a, z)}
478
Beispiel
1.
P(x) ∨ P(f (x)) ∨ ¬Q(x)
[Gegeben]
2.
¬P(y )
[Gegeben]
3.
P(g (x ′ , x ′′ )) ∨ Q(x ′′ )
[Gegeben; Bereinigt]
4.
P(f (x)) ∨ ¬Q(x)
[Res. 1, 2]
5.
¬Q(x)
[Res. 4, 2]
6.
Q(x ′′ )
[Res. 3, 2]
7.
⊥
479
Resolutionskalkül Res für allgemeine Klauseln
C ∨A
D ∨ ¬B
(C ∨ D)σ
falls σ = mgu(A, B)
[Resolution]
C ∨ L1 ∨ L2
(C ∨ A)σ
falls σ = mgu(A, B)
[Faktorisierung]
Es wird immer implizit angenommen, dass die Variablen in einer der beiden
Prämissen der Resolutionsregel ggfs. (bijektiv) umbenannt werden, so dass
sie disjunkt mit denen der anderen Prämisse sind.
Dieses implizite Umbenennen werden wir nicht formalisieren.
Welche Variablennamen man verwendet ist egal.
Beispielsweise könnte man sich vorstellen, dass am Anfang alle Klauseln
paarweise variablendisjunkt sind und das Unifikatoren so gewählt werden,
dass in ihrem Wertebereich nur neue Variablen vorkommen.
480
Allgemeine Resolution mit implizitem
Faktorisieren
Günstiger ist es, Resolutionsregel und Faktorisierungsregel in eine Regel
zusammenzuziehen.
C ∨ L1 ∨ . . . ∨ Ln
D ∨ ¬L′1 ∨ . . . ∨ ¬L′m
(C ∨ D)σ
• wobei die Elternklauseln keine Variablen gemeinsam haben (bereinigt)
7→ ggf. umbenennen
• σ = mgu(L1 , . . . , Ln , L′1 , . . . , L′m )
481
Allgemeine Resolution: Beispiel
(Hier verwenden wir Resolution mit implizitem Faktorisieren.)
Man sieht, dass (i) beim Instanziieren verschiedene Literale gleich werden
können, und dass (ii) i. allg. mehrere verschiedene Instanzen einer Klausel
an einem Beweis partizipieren.
1.
P(x) ∨ P(f (a)) ∨ ¬Q(x)
[Gegeben]
2.
¬P(y )
[Gegeben]
3.
P(g (x ′ , x ′′ )) ∨ Q(x ′′ )
[Gegeben]
4.
¬Q(f (a))
[RIF 1, 2]
5.
Q(x ′′ )
[RIF 3, 2]
6.
⊥
[RIF 4, 5]
482
Wichtig: Häufige Fehlerquellen
• Das Bereinigen (Umbenennen) nicht vergessen!
• Das Faktorisierungen (falls möglich) nicht vergessen!
• Selbstresolution ist möglich!
483
Notation
Sei N eine Klauselmenge und
Res(N) = N ∪ {R | R ist eine Resolvente zweier Klauseln aus N
oder Resultat der Faktorisierung einer Klausel aus N}
Res0 (N) = N
Resn+1 (N) = Res(Resn (N))
Res⋆ (N) =
S
n∈N
Resn (N)
(bezeichnet die Vereinigung der Ergebnisse aus aller möglichen Resolutions- und
Faktorisierungsschritte auf N)
484
Resolution: Korrektheit
Theorem
Für eine Menge N von Klauseln gilt: Falls ⊥∈ Res∗ (N), so N unerfüllbar.
Beweis: Wie bei Aussagenlogik.
Einzelne Regelanwendung erhält die Erfüllbarkeit der Klauselmenge
Auch dies einfach zu beweisen wie in Aussagenlogik (beachte dabei:
Variablen in Klauseln sind universell quantifiziert)
485
Resolution: Korrektheit
Theorem
Für eine Menge N von Klauseln gilt: Falls ⊥∈ Res∗ (N), so N unerfüllbar.
x(C1 ∨ L1 ), A |=
A
A
Beweis:
Annahme: A |= C1 ∨ L1 , A |= C2 ∨ ¬L2 (d.h. A |=
x(C2 ∨ ¬L2 ))
Sei σ = mgu(L1 , L2 ).
Zu zeigen: A |= x(C1 ∨ C2 )σ.
A
Sei β beliebig.
A(β)((C1 ∨ C2 )σ) = A(β ◦ σ)(C1 ∨ C2 )
(Substitution-Lemma)
• Fall 1: A(β ◦ σ)(C1 ) = 1. Dann A(β)((C1 ∨ C2 )σ) = 1.
• Fall 2: A(β ◦ σ)(C1 ) = 0. Laut Annahme, A(β ◦ σ)(C1 ∨ L1 ) = 1, so
A(β ◦ σ)(L1 ) = 1. Dann: A(β ◦ σ)(L2 ) = A(β)(L2 σ) = A(β)(L1 σ) =
A(β ◦ σ)(L1 ) = 1. Also: A(β ◦ σ)(¬L2 ) = 0.
Aber A(β ◦ σ)(C2 ∨¬L2 )=1, so A(β ◦ σ)(C2 )=1. Dann A(β)((C1 ∨C2 )σ)=1.
486
Resolution: Vollständigkeit
Theorem
Für eine Menge N von Klauseln gilt: Falls N unerfüllbar, so ⊥∈ Res∗ (N).
Beweisplan:
1. Sei N eine unter Res saturierte Menge allgemeiner Klauseln, d.h.
Res(N) ⊆ N. Dann ist auch GΣ (N) saturiert.
Beweis: “Lifting-Lemma”
2. Sei N eine Menge von Σ-Klauseln.
N erfüllbar g.d.w. N besitzt Herbrand-Modell über Σ.
3. Sei N Menge allgemeiner Klauseln mit Res(N) ⊆ N. Dann
N |= ⊥ genau dann, wenn ⊥ ∈ N.
487
Lifting-Lemma
Lemma. Falls
C
?
?
yσ
D
?
?
yσ
Cσ
Dσ
[aussagenlogische Resolution]
C′
dann gibt es τ , so dass
C
D
C ′′
?
?
y
[allgemeine Resolution]
τ
C ′ = C ′′ τ
Entsprechend für Faktorisieren.
488
Lifting-Lemma: Beweis
Beweis (Idee)
Sei C = C1 ∨ L1 , D = C2 ∨ ¬L2 .
C σ = C1 σ ∨ L1 σ, Dσ = C2 σ ∨ ¬L2 σ.
L1 σ = L2 σ und C ′ = (C1 ∨ C2 )σ.
L1 , L2 unifizierbar. Sei ρ = mgu(L1 , L2 ).
Die Resolvente C ′′ ist dann (C1 ∨ C2 )ρ.
ρ ist allgemeiner als σ, d.h. es gibt eine Substitution τ mit σ(x) = τ (ρ(x))
für alle x ∈ X .
C ′′ τ = (C1 ∨ C2 )ρτ = (C1 ∨ C2 )σ = C ′ .
489
Saturiertheit von Mengen allgemeiner Klauseln
Sei N eine Klauselmenge und
Res(N) = N ∪ {R | R ist eine Resolvente zweier Klauseln aus N
oder Resultat der Faktorisierung einer Klausel aus N}
Res0 (N) = N
Resn+1 (N) = Res(Resn (N))
Res⋆ (N) =
S
n∈N
Resn (N)
(bezeichnet die Vereinigung der Resolventen aus aller möglichen Resolutionsschritte
auf N)
490
Saturiertheit von Mengen allgemeiner Klauseln
Theorem.
Sei N eine unter Res saturierte Menge allgemeiner Klauseln, d.h.
Res(N) ⊆ N. Dann ist auch GΣ (N) saturiert, d.h.
Res(GΣ (N)) ⊆ GΣ (N).
Beweis. Sei C ′ ∈ Res(GΣ (N)). D.h. es gibt: (i) Grundinstanzen C σ und Dσ ′ von N
mit Resolvente C ′ , oder (ii) Grundinstanz C σ s.d. C ′ durch Faktorisierung abgeleitet.
(i) Ist C ′ Resolvente, so können wir o.B.d.A. annehmen, dass σ = σ ′ .
(Nur wenn C und D nicht variablen-disjunkt wären, könnte dies schiefgehen.
Dann aber dürfen und müssen wir die Variablen in einer Klausel umbenennen.)
Wegen des Lifting-Lemmas sind C und D resolvierbar mit einer Resolvente C ′′
so dass C ′′ τ = C ′ , für eine geeignete Substitution τ . Weil C ′′ ∈ N nach
Voraussetzung, ist C ′ ∈ GΣ (N).
(ii) Analog für den Fall, dass C ′ durch Faktorisierung abgeleitet wurde.
491
Satz von Herbrand
Theorem (Herbrand)
Sei N eine Menge von Σ-Klauseln.
N erfüllbar g.d.w. N besitzt Herbrand-Modell über Σ
Beweis:
“⇐” trivial
“⇒”
N 6|= ⊥
⇒ ⊥ 6∈ Res ∗ (N)
(Res. korrekt)
⇒ ⊥ 6∈ GΣ (Res ∗ (N))
⇒ GΣ (Res ∗ (N)) hat ein (’aussagenlogisches’) Modell
⇒ GΣ (Res ∗ (N)) hat ein Herbrand Modell I
⇒ I |= Res ∗ (N)
⇒ I |= N
(I Herbrand-Modell)
(N ⊆ Res ∗ (N))
492
Korrektheit und Vollständigkeit der allgemeinen
Resolution
Theorem
Sei N Menge allgemeiner Klauseln mit Res(N) ⊆ N. Dann:
N |= ⊥ genau dann, wenn ⊥ ∈ N
Proof: “⇐” trivial
“⇒:” Sei N Klauselmenge mit Res(N) ⊆ N.
Dann Res(GΣ (N)) ⊆ GΣ (N) (Theorem Seite 10)
Annahme: N |= ⊥. Dann GΣ (N) |= ⊥ (Wir haben gezeigt, dass GΣ (N) 6|= ⊥ ⇒ GΣ (N)
hat Herbrand Modell I und I |= N)
Aber GΣ (N) |= ⊥ gdw. ⊥ ∈ GΣ (N) (aussag.log. Resol. vollständig + korrekt).
Es ist leicht zu sehen, dass ⊥ ∈ GΣ (N) gdw. ⊥ ∈ N.
493
Resolution: Vollständigkeit
Theorem
Für eine Menge N von Klauseln gilt: Falls N unerfüllbar, so ⊥∈ Res∗ (N).
Beweis:
Sei M = Res∗ (N). Dann Res(M) ⊆ M. So: M |=⊥ gdw. ⊥∈ M.
Widerspruchsbeweis:
Annahme: ⊥6∈ Res∗ (N). Dann Res∗ (N) 6|=⊥, d.h. Res∗ (N) hat ein Modell A.
Da N ⊆ Res∗ (N), A |= N, d.h. N 6|=⊥.
494
Prädikatenlogische Resolution: Beispiel (1)
Gegeben die Formel F :
A A
( x y (p(x, y ) → q(x, y ))∧
A A
x y (r (x, y ) → s(x, y ))
)→
E
A A
( x y (( z(p(x, z) ∧ r (z, y ))) →
E
( z(q(x, z) ∧ s(z, y )))))
)
Gezeigt werden soll die Allgemeingültigkeit von F mittels Resolution
495
Prädikatenlogische Resolution: Beispiel (2)
Dazu zeigen wir die Unerfüllbarkeit von ¬F :
A A
¬(( x y (p(x, y ) → q(x, y ))∧
A A
x y (r (x, y ) → s(x, y ))
)→
E
A A
( x y (( z(p(x, z) ∧ r (z, y ))) →
E
( z(q(x, z) ∧ s(z, y ))))
))
Diese Formel muss zunächst in Klauselnormalform transformiert werden
496
Prädikatenlogische Resolution: Beispiel (3)
Elimination der Implikationen:
A A
¬(¬( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x y (¬r (x, y ) ∨ s(x, y ))
∨
E
)
A A
( x y (¬( z(p(x, z) ∧ r (z, y )))∨
E
( z(q(x, z) ∧ s(z, y ))))
))
497
Prädikatenlogische Resolution: Beispiel (4)
Äußere Negation nach innen schieben:
A A
(( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x y (¬r (x, y ) ∨ s(x, y ))
) ∧
E
A A
¬( x y (¬( z(p(x, z) ∧ r (z, y )))∨
E
z(q(x, z) ∧ s(z, y )))
))
498
Prädikatenlogische Resolution: Beispiel (5)
Negation an den Allquantoren vorbei:
A A
(( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x y (¬r (x, y ) ∨ s(x, y ))
) ∧
E
E E
( x y ¬(¬( z(p(x, z) ∧ r (z, y )))∨
E
z(q(x, z) ∧ s(z, y )))
))
499
Prädikatenlogische Resolution: Beispiel (6)
De Morgan:
A A
(( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x y (¬r (x, y ) ∨ s(x, y ))
) ∧
E
E E
( x y (( z(p(x, z) ∧ r (z, y )))∧
E
¬ z(q(x, z) ∧ s(z, y )))
))
500
Prädikatenlogische Resolution: Beispiel (7)
Negation am Quantor vorbei:
A A
(( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x y (¬r (x, y ) ∨ s(x, y ))
) ∧
E
E E
( x y (( z(p(x, z) ∧ r (z, y )))∧
A
z¬(q(x, z) ∧ s(z, y )))
))
501
Prädikatenlogische Resolution: Beispiel (8)
De Morgan
A A
(( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x y (¬r (x, y ) ∨ s(x, y ))
) ∧
E
E E
( x y (( z(p(x, z) ∧ r (z, y )))∧
A
z(¬q(x, z) ∨ ¬s(z, y )))
))
Nun ist die Formel in Negationsnormalform
502
Prädikatenlogische Resolution: Beispiel (9)
Bereinigen der Formel führt zu:
A A
(( x y (¬p(x, y ) ∨ q(x, y ))∧
A A
x ′ y ′ (¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ ))
) ∧
E
E
E
( x ′′ y ′′ (( z(p(x ′′ , z) ∧ r (z, y ′′ )))∧
A
z ′ (¬q(x ′′ , z ′ ) ∨ ¬s(z ′ , y ′′ )))
))
503
Prädikatenlogische Resolution: Beispiel (10)
Da die Formel bereinigt und in NNF ist, kann man alle Quantoren nach
vorne ziehen:
x y x ′ y ′ x ′′ y ′′ z z ′ (
A E
E
E A A A A
(¬p(x, y ) ∨ q(x, y ))∧
(¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ ))
p(x ′′ , z)∧
r (z, y ′′ ∧
(¬q(x ′′ , z ′ ) ∨ ¬s(z ′ , y ′′ ))
)
Nun ist die Formel in Pränexnormalform, die Matrix der Formel ist auch
schon in konjunktiver Normalform
504
Prädikatenlogische Resolution: Beispiel (11)
Skolemisieren von x ′′ und y ′′ :
A E A A A A
x y x′ y ′ z z′(
(¬p(x, y ) ∨ q(x, y ))∧
(¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ ))
p(f (x, y , x ′ , y ′ ), z)∧
r (z, g (x, y , x ′ , y ′ ))∧
(¬q(f (x, y , x ′ , y ′ ), z ′ ) ∨ ¬s(z ′ , g (x, y , x ′ , y ′ )))
)
505
Prädikatenlogische Resolution: Beispiel (12)
Skolemisieren von z:
A E A A A A
x y x′ y ′ z z′(
(¬p(x, y ) ∨ q(x, y ))∧
(¬r (x ′ , y ′ ) ∨ s(x ′ , y ′ ))
p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))∧
r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))∧
(¬q(f (x, y , x ′ , y ′ ), z ′ ) ∨ ¬s(z ′ , g (x, y , x ′ , y ′ )))
)
506
Prädikatenlogische Resolution: Beispiel (13)
In Klauselmengenschreibweise:
1.
{¬p(x, y ), q(x, y )}
2.
{¬r (x ′ , y ′ ), s(x ′ , y ′ )}
3.
{p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))}
4.
{r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))}
5.
{¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))}
507
Prädikatenlogische Resolution: Beispiel (14)
1.
{¬p(x, y ), q(x, y )}
2.
{¬r (x ′ , y ′ ), s(x ′ , y ′ )}
3.
{p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))}
4.
{r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))}
5.
{¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))}
Resolution der Klauseln 1. und 3. Dazu zunächst Umbenennung der
Variablen x, y in 3., um die Klauseln variablendisjunkt zu machen
Verwendeter MGU: [f (u, v , x ′ , y ′ )/x, h(u, v , x ′ , y ′ )/y ]
1 : {¬p(x, y ), q(x, y )} 3′ : {p(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))}
6 : {q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))}
508
Prädikatenlogische Resolution: Beispiel (15)
1.
{¬p(x, y ), q(x, y )}
2.
{¬r (x ′ , y ′ ), s(x ′ , y ′ )}
3.
{p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))}
4.
{r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))}
5.
{¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))}
6.
{q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))}
Resolution der Klauseln 2 und 4. Dazu zunächst Umbenennung der
Variablen x ′ , y ′ in 4, um die Klauseln variablendisjunkt zu machen
Verwendeter MGU: [h(x, y , u, v )/x ′ , g (x, y , u, v )/y ′ ]
2 : {¬r (x ′ , y ′ ), s(x ′ , y ′ )} 4′ : {r (h(x, y , u, v ), g (x, y , u, v ))}
7 : {s(h(x, y , u, v ), g (x, y , u, v ))}
509
Prädikatenlogische Resolution: Beispiel (16)
1.
{¬p(x, y ), q(x, y )}
2.
{¬r (x ′ , y ′ ), s(x ′ , y ′ )}
3.
{p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))}
4.
{r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))}
5.
{¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))}
6.
{q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ )}
7.
{s(h(x, y , u, v ), g (x, y , u, v ))}
Resolution der Klauseln 5 und 6. Dazu zunächst Umbenennung der
Variablen x ′ , y ′ in 6, um die Klauseln variablendisjunkt zu machen.
Verwendeter MGU: [u/x, v /y , u ′ /x ′ , v ′ /y ′ , h(u, v , u ′ , v ′ )/z ′ ]
5 : {¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))} 6 : {q(f (u, v , u ′ , v ′ ), h(u, v , u ′ , v ′ )}
8 : {¬s(h(u, v , u ′ , v ′ ), g (u, v , u ′ , v ′ ))}
510
Prädikatenlogische Resolution: Beispiel (17)
1.
{¬p(x, y ), q(x, y )}
2.
{¬r (x ′ , y ′ ), s(x ′ , y ′ )}
3.
{p(f (x, y , x ′ , y ′ ), h(x, y , x ′ , y ′ ))}
4.
{r (h(x, y , x ′ , y ′ ), g (x, y , x ′ , y ′ ))}
5.
{¬q(f (x, y , x ′ , y ′ ), z ′ ), ¬s(z ′ , g (x, y , x ′ , y ′ ))}
6.
{q(f (u, v , x ′ , y ′ ), h(u, v , x ′ , y ′ ))}
7.
{s(h(x, y , u, v ), g (x, y , u, v ))}
8.
{¬s(h(u, v , u ′ , v ′ ), g (u, v , u ′ , v ′ ))}
Resolution der Klauseln 7 und 8. Dazu zunächst Umbenennung der
Variablen u, v in 8, um die Klauseln variablendisjunkt zu machen.
Verwendeter MGU: [u ′′ /x, v ′′ /y , u ′ /u, v ′ /v ]
7 : {s(h(x, y , u, v ), g (x, y , u, v ))}
8′ : {¬s(h(u ′′ , v ′′ , u ′ , v ′ ), g (u ′′ , v ′′ , u ′ , v ′ ))}
⊥
511
Prädikatenlogische Resolution: Beispiel (18)
Damit ist die leere Klausel ⊥ abgeleitet,
also ist die Klauselmenge unerfüllbar,
also ist die Formel ¬F unerfüllbar,
also ist die Formel F allgemeingültig
512
Zusammenfassung: Prädikatenlogische Resolution
• Prädikatenlogische Resolutionsregel
• Faktorisierung
• Kombination von Resolution und Faktorisierung
• Häufige Fehlerquellen
• Korrektheit und Vollständigkeit
513
2.7
Tableaukalkül
514
Wiederholung: Der aussagenlogische
Tableaukalkül
Wesentliche Eigenschaften
• Widerlegungskalkül: Testet auf Unerfüllbarkeit
• Beweis durch Fallunterscheidung
• Top-down-Analyse der gegebenen Formeln
515
Wiederholung: Der aussagenlogische
Tableaukalkül
Vorteile
• Intuitiver als Resolution
• Formeln müssen nicht in Normalform sein
• Falls Formelmenge erfüllbar ist (Test schlägt fehl), wird ein
Gegenbeispiel (eine erfüllende Interpretation) konstruiert
Nachteile
• Mehr als eine Regel
516
Formeltypen
Konjunktive Formeln: Typ α
• ¬¬F
• F ∧G
• ¬(F ∨ G )
• ¬(F → G )
Disjunktive Formeln: Typ β
• ¬(F ∧ G )
• F ∨G
• F →G
517
Formeltypen
Konjunktive Formeln: Typ α
• ¬¬F
• F ∧G
• ¬(F ∨ G )
• ¬(F → G )
Zuordnungsregeln Formeln / Unterformeln
α
F ∧G
α1
α2
F
G
¬F
¬G
¬(F → G )
F
¬G
¬¬F
F
¬(F ∨ G )
518
Formeltypen
Disjunktive Formeln: Typ β
• ¬(F ∧ G )
• F ∨G
• F →G
Zuordnungsregeln Formeln / Unterformeln
β
β1
β2
¬(F ∧ G )
¬F
¬G
F
G
¬F
G
F ∨G
F →G
519
Regeln des (aussagenlogischen) Tableaukalküls
p∧q
|
p
|
q
α
Konjunktiv
α1
α2
β
β1 | β2
p∨q
Disjunktiv
p
φ
¬φ
⊥
/
Widerspruch
\
q
φ
¬φ
|
⊥
520
Instanzen der α und β-Regel
Instanzen der α-Regel
P ∧Q
¬(P ∨ Q)
¬(P → Q)
¬¬P
P
¬P
P
P
Q
¬Q
¬Q
Instanzen der β-Regel
P ∨Q
¬(P ∧ Q)
P→Q
P | Q
¬P | ¬Q
¬P | Q
521
Beispiel
Zu zeigen:
(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S)) allgemeingültig
Wir zeigen, dass
¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))]
unerfüllbar ist.
522
Beispiel
1.
¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))]
2.
(P → (Q → R))
[11 ]
3.
¬((P ∨ S) → ((Q → R) ∨ S))
[12 ]
4.
P ∨S
[31 ]
5.
¬((Q → R) ∨ S))
[32 ]
6.
¬(Q → R)
[51 ]
7.
¬S
[52 ]
hhhhh
hhh
8.
¬P
9.
[21 ]
Q→R
[22 ]
XXXX
X
10.
P
[41 ]
11.
S
[42 ]
geschlossenes Tableau.
523
Beispiel
Geschlossenes Tableau gefunden
... also ist die Formel
¬[(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))]
unerfüllbar,
... d.h. die Formel
(P → (Q → R)) → ((P ∨ S) → ((Q → R) ∨ S))
ist allgemeingültig
524
Zusätzlich: Prädikatenlogische Formeltypen
universell
E
¬ xF
F [t/x]
¬F [t/x]
δ
δ(t)
xF
F [t/x]
A
A
xF
γ(t)
E
γ
existentiell
¬ xF
¬F [t/x]
525
Zusätzlich: Prädikatenlogische Tableauregeln
γ-Regel
A
γ
γ(t)
xq(x)
|
q(t)
universell
wobei t ein beliebiger Term ist.
δ-Regel
E
δ
δ(f (y1 ,...,yn ))
existentiell
xp(x, y1 , . . . , yn )
|
p(f (y1 , . . . , yn ), y1 , . . . , yn )
wobei f eine neue Skolemfunktion ist, und y1 , . . . , yn die freien Variablen in δ
sind.
Skolemisierung ist also ein Bestandteil des Kalküls und wird nicht als ein
Vorverarbeitungsschritt vorausgesetzt. Aber natürlich könnte man ebensogut vorher
Skolemisieren, was auch Vorteile haben kann.
526
Instanzen der γ und δ-Regel
Instanzen der γ-Regel
A
F (t)
E
xF (x)
¬ xF (x)
¬F (t)
Instanzen der δ-Regel
A
E
¬ xF (x, y1 , . . . , yn )
xF (x, y1 , . . . , yn )
F (f (y1 , . . . , yn ), y1 , . . . , yn )
¬F (f (y1 , . . . , yn ), y1 , . . . , yn )
wobei f eine neue Skolemfunktion ist und y1 , . . . , yn die freien Variablen in
xF (x, y1 , . . . , yn ) (resp. xF (x, y1 , . . . , yn )) sind.
A
527
E
Determinismus der Regeln
α- und β-Regeln
deterministisch (wie in Aussagenlogik)
γ-Regel
• hochgradig nicht-deterministisch
• muss für Vollständigkeit mehrfach angewendet werden (pro Ast)
• Grund für Nicht-Terminierung
δ-Regel
• nicht-deterministisch
• muss dennoch nur einmal pro Ast und Formel angewendet werden
528
Formale Definition des Kalküls
Fast wie in der Aussagenlogik definiert (kleine Änderungen)
(Definition auf den folgenden Seiten).
529
Formale Definition des Kalküls
Definition
Tableau: Binärer Baum, dessen Knoten mit Formeln markiert sind
Definition
Tableauast: Maximaler Pfad in einem Tableau (von Wurzel zu Blatt)
530
Definition: Tableau (mit freien Variablen)
Sei M = {F1 , . . . , Fn } eine Formelmenge
Initialisierung
Das Tableau, das nur aus dem Knoten 1 besteht, ist ein Tableau für M
Erweiterung
•
•
•
•
T ein Tableau für M
B ein Ast von T
F eine Formel auf B oder in M, die kein Literal ist
T ′ entstehe durch Erweiterung von B gemäß der auf F anwendbaren Regel (α,
β, γ oder δ)
Dann ist T ′ ein Tableau für M.
Substitutionsregel
• Ist T ein Tableau für M und
• ist σ eine Substitution,
so ist auch T σ ein Tableau für M.
531
Formale Definition des Kalküls
Definition.
Ast B eines Tableaus für M ist geschlossen, wenn
F , ¬F ∈ B ∪ M
Definition.
Ein Tableau ist geschlossen, wenn jeder seiner Äste geschlossen ist.
Definition.
Ein Tableau für M, das geschlossen ist, ist ein Tableaubeweis für (die
Unerfüllbarkeit von) M
532
Beispiel
Eine Aussage über Mengen
(1)
S ∩Q
=
∅
(2)
P
⊆
Q ∪R
(3)
P=∅
→
Q 6= ∅
(4)
Q ∪R
⊆
S
(5)
P ∩R
6=
∅
533
Beispiel
Eine Aussage über Mengen
Modellierung
E
(1)
S ∩Q
=
∅
(2)
P
⊆
Q ∪R
A
(3)
P=∅
→
Q 6= ∅
(¬( xP(x))) → ( yQ(y ))
∧
(4)
Q ∪R
⊆
S
A
)
(5)
P ∩R
6=
∅
(¬ x(S(x) ∧ Q(x))
x(P(x) → (Q(x) ∨ R(x))
E
E
x((Q(x) ∨ R(x)) → S(x))
∧
∧
→
E
x((P(x) ∧ R(x)))
534
Beispiel
Modellierung
Unerfüllbarkeit der Menge M
E
E
∧
¬ x(S(x) ∧ Q(x))
(1)
∧
A
(2)
(¬( xP(x))) → ( yQ(y ))
∧
(¬( xP(x))) → ( yQ(y ))
(3)
A
)
A
x((Q(x) ∨ R(x)) → S(x))
(4)
E
(5)
E
E
x((Q(x) ∨ R(x)) → S(x))
E
x((P(x) ∧ R(x)))
x(P(x) → (Q(x) ∨ R(x))
E
A
x(P(x) → (Q(x) ∨ R(x))
→
E
(¬ x(S(x) ∧ Q(x))
¬ x((P(x) ∧ R(x)))
535
Beispiel
E
E
(6) ¬¬ xP(x) [31 , β]
ee 1 XXXXXXX
e
e
e
e
e
XXX
eeee
(7) yQ(y ) [32 , β]
E
(8) xP(x) [61 , α]
(9) Q(d) [7, δ]
(10) P(c) [8, δ]
(∗∗)
(11) ¬(P(c) ∧ R(c)) [5, γ]
(12) ¬P(c) [111 , β]
YYYYYY
Y
ffffff
(13) ¬R(c) [112 , β]
14 : P(c) → (Q(c) ∨ R(c)) [2, γ]
⊥
15 : ¬P(c) [141 , β]
⊥
e
e
e
e
e
e
e
16 : Q(c) ∨ R(c) [142 , β]
XXXXXX
17 : Q(c) [161 , β]
18 : R(c) [162 , β]
(∗)
⊥
536
Beispiel
Ast (*), Fortsetzung:
17 : Q(c) [161 , β]
19 : ¬(S(c) ∧ Q(c)) [1, γ]
20 : ¬S(c) [191 , β]
e
eeeeee
21 : ¬Q(c) [192 , β]
22 : Q(c) ∨ R(c) → S(c) [4, γ]
⊥
23 : ¬(Q(c) ∨ R(c)) [221 , β]
24 : S(c) [222 , β]
25 : ¬Q(c) [231 , α]
⊥
YYYYYY
YY
26 : ¬R(c) [232 , α]
⊥
537
Beispiel
Ast (**), Fortsetzung:
E
(7) yQ(y ) [32 , β]
(9) Q(d) [7, δ]
(27) : ¬(S(d) ∧ Q(d)) [1, γ]
(28) : ¬S(d) [271 , β]
XXXXXX
e
e
e
e
e
e
e
e
(29) : ¬Q(d) [272 , β]
(30) : Q(d) ∨ R(d) → S(d) [4, γ]
⊥
YYYYYY
YY
(31) : ¬(Q(d) ∨ R(d)) [301 , β]
(32) : S(d) [302 , β]
(33) : ¬Q(d)
⊥ [311 , α]
(34) : ¬R(d) [312 , α]
⊥
538
Bemerkungen
Nota bene:
Alle Äste in einem Tableau für M enthalten implizit alle Formeln in M
Die Substitutionsregel ändert potentiell alle Formeln des Tableau.
Das ist das Globale an der Beweismethode.
Nimmt man die Substitutionsregel wörtlich, so zählt man, in Verbindung
mit der γ-Regel, alle Substitutionsinstanzen allquantifizierter Formeln auf,
ein Rückschritt im Vergleich zur Resolution.
Das braucht man aber nicht.
539
Beispiel
E A E
A E
1.
¬[ w x p(x, w , f (x, w )) → w x y p(x, w , y )]
2.
A E
3.
¬ w x y p(x, w , y )
4.
A
5.
¬ x y p(x, v1 , y )
6.
¬ y p(b(v1 ), v1 , y )
7.
p(v2 , a, f (v2 , a))
4(v2 ) [γ]
8.
¬p(b(v1 ), v1 , v3 )
6(v3 ) [γ]
w x p(x, w , f (x, w ))
11 [α]
E A E
12 [α]
x p(x, a, f (x, a))
2(a) [δ]
E A
3(v1 ) [γ]
E
5(b(v1 )) [δ]
7. und 8. sind (modulo Unifikation) komplementär:
.
.
.
v2 = b(v1 ), a = v1 , f (v2 , a) = v3
ist lösbar mit mgu σ = [a/v1 , b(a)/v2 , f (b(a), a)/v3 ] und somit ist T σ ein
geschlossenes (lineares) Tableau für Formel 1.
540
Formale Definition des Kalküls
Problem: Es ist sehr schwierig, zu “raten”, welche Instanzen im Beweis
nützlich sind.
Idee:
• Substitutionsregel auf Unifikatoren komplementärer Formeln beschränken!
• γ-Regel führen nur freien Variablen ein (Tableaus mit freien Variablen)
Freie Variablen (Dummies, Platzhalten) werden ’bei Bedarf’ (bei
Abschluss) instantiiert (wie bei Resolution).
Wir sprechen von einem AMGU-Tableau, wenn die Substitutionsregel nur
für Substitutionen σ angewendet wird, für die es einen Pfad in T mit
Literalen ¬A und B gibt, so daß σ = mgu(A, B).
541
Tableaus mit freien Variablen
Neue γ-Regel
A
γ
γ(y )
xq(x)
|
q(y )
universell
wobei y eine neue freie Variable ist
Neue Abschlussregel
L1
¬L2
⊥
Widerspruch
p(y )
¬p(a)
⊥
mgu: [a/y ]
wobei L1 , L2 unifizierbare Literale.
542
Tableaus mit freien Variablen
Neue γ-Regel
A
γ
γ(y )
xq(x)
|
q(y )
universell
wobei y eine neue freie Variable ist
Neue Abschlussregel
L1
¬L2
⊥
Widerspruch
p(y )
¬p(a)
⊥
mgu: [a/y ]
wobei L1 , L2 unifizierbare Literale.
Nota bene: Allgemeinster Unifikator von L1 , L2 wird auf das ganze Tableau
angewendet.
543
Konvention
Wir nehmen an, dass die Menge der Variablen X in 2 disjunkte unendliche
Teilmengen Xf und Xg partitioniert ist, und dass:
• Für gebundene Variablen nur solche aus Xg verwendet werden.
(Vermeidet das Einfangproblem bei Substitution.)
• Die Variabeln, die durch die neue γ-Regel eingeführt werden immer
aus Menge Xf gewählt sind.
544
Prädikatenlogische Klauseltableaux
Klauseltableaux für eine Klauselmenge S
• Abschlussregel wie zuvor
• Keine α, keine δ-Regel
• β- und γ-Regel zusammengefasst:
– Sei B ein Ast in T
– Sei C = {L1 , . . . , Ln } eine Klausel in S
– Sei C ′ = C σ = {L′1 , . . . , L′n } aus C durch Variablenumbenennung
Dann kann B erweitert werden, indem n Blätter mit L′1 , . . . , L′n
angehängt werden.
545
Beispiel
S = {{p(0)}, {¬p(x), p(s(x))}, {¬p(s(s(0)))}}
1
¬p(x1 )
p(0) R
RRRR
m
m
m
mm
llll
p(s(x1 ))
SSS
S
⊥
¬p(x2 )
[0/x1 ]
⊥
¬p(s(s(0)))
[s(0)/x2 ]
⊥
p(s(x2 ))
[s(0)/x2 ]
546
Korrektheit und Vollständigkeit
Theorem
Eine Formelmenge M ist unerfüllbar
genau dann, wenn
es einen Tableaubeweis für (die Unerfüllbarkeit von) M gibt.
547
Korrektheit
Bei gegebener Signatur Σ bezeichnen wir mit Σsko das Ergebnis der
Hinzunahme unendlich vieler neuer Skolemfunktionen zu Σ, die wir in der
δ-Regel verwenden dürfen.
Sei A eine Σsko -Interpretation, T ein Tableau, und β eine Variablenbelegung
über A.
Definition. T heißt (A, β)-erfüllt, wenn es einen Pfad Pβ in T gibt, so dass
A, β |= F , für jede Formel F auf Pβ .
Definition. T heißt erfüllbar, falls es ein A gibt, so dass für jede
Variablenbelegung β das Tableau T (A, β)-erfüllt ist. (D.h. wir dürfen Pβ
in Abhängigkeit von β wählen.)
548
Korrektheit
Sei M = {F1 , . . . , Fn } eine Formelmenge (so dass Fi keine freien Variablen
enthält).
Theorem
Sei T ein Tableau für {F1 , . . . , Fn }.
{F1 , . . . , Fn } erfüllbar genau dann, wenn T erfüllbar.
Beweis:
“ ⇐ ”: Falls T erfüllbar, so gibt es eine Struktur A, so dass für jede Variablenbelegung
β das Tableau T (A, β)-erfüllt ist,
d.h. es gibt einen Pfad Pβ in T , so dass A, β |= F , für jede Formel F auf Pβ .
Dann ist aber leicht zu sehen, dass A, β |= M (Alle Äste in einem Tableau für M
enthalten implizit alle Formeln in M).
549
Korrektheit
Sei M = {F1 , . . . , Fn } eine Formelmenge (so dass Fi keine freien Variablen
enthält).
Theorem
Sei T ein Tableau für {F1 , . . . , Fn }.
{F1 , . . . , Fn } erfüllbar genau dann, wenn T erfüllbar.
Beweis von “ ⇒ ” durch Induktion über die Tiefe von T .
Tableau mit Tiefe 1 (mit einem Knoten) erfüllbar wenn {F1 , . . . , Fn } erfüllbar.
Induktionsvoraussetzung: Implikation gilt für alle Tableaux mit Tiefe ≤ n.
Induktionsschritt: Sei T ein Tableau mit Tiefe n + 1. T entsteht durch eine Erweiterung
mit einer α, β, γ oder δ-Regel aus einem Tableau mit Tiefe ≤ n.
α/β-Regeln: Beweis wie für Aussagenlogik; γ-Regel: Offensichtlich.
Bei δ müssen die Ideen aus dem Beweis der Bewahrung von Erfüllbarkeit bei
Skolemisierung verwendet werden.
550
Striktheitbedingung
Definition. Ein Tableau ist strikt, falls für jede Formel F die entsprechende
Erweiterungsregel höchstens einmal auf jeden Ast, der die Formel enthält,
angewandt wurde.
551
Striktheitsbedingung für γ unvollständig
A
¬[ x p(x) → (p(a) ∧ p(b))]
A
1.
2.
11
x p(x)
3.
¬(p(a) ∧ p(b))
4.
p(v1 )
12
2(v1 )
XXX
XX
5.
¬p(a)
31
6.
¬p(b)
32
Würde die Striktheitsbedingung für γ gelten, wäre das Tableau nur noch
durch Anwendung der Substitutionsregel weiter expandierbar. Aber es gibt
keine Substitution (für v1 ), unter der beide Pfade gleichzeitig abgeschlossen
werden können.
552
Mehrfachanwendung von γ löst das Problem
A
¬[ x p(x) → (p(a) ∧ p(b))]
A
2.
11
x p(x)
3.
¬(p(a) ∧ p(b))
12
4.
p(v1 )
2v1
XXX
XX
5.
¬p(a)
31
6.
¬p(b)
32
7.
p(v2 )
2v2
Der Punkt ist, dass die verschiedenen Anwendungen von γ auf
jeweils neue freie Variablen für x einsetzen dürfen.
A
1.
x p(x)
Jetzt liefert zweifache Anwendung der AMGU-Regel die Substitution
[a/v1 , b/v2 ] und somit ein geschlossenes Tableau.
553
Wie oft muss γ angewendet werden?
Theorem
Es gibt keine berechenbare Funktion f : ForΣ × ForΣ → N, so dass, falls
eine Satzform F unerfüllbar, es ein geschlossenes Tableau für F gibt,
wobei für Formeln xG , die in T vorkommen, die γ-Regel auf jedem
Pfad, auf dem xG vorkommt, höchstens f (F , xG )-mal angewendet
worden ist.
A
A
A
Sonst wäre Unerfüllbarkeit bzw. Gültigkeit in Logik erster Stufe entscheidbar, weil man
nur Tableaux in einer Tiefe aufzählen müsste, die durch f beschränkt wird. Daher sind
Tableaux mit freien Variablen i.allg. notwendigerweise unbeschränkt in ihrer Tiefe.
A
wirkt wie eine unendliche Konjunktion. Durch iteratives Anwenden von γ, in
Verbindung mit der Substitutionsregel, können alle Instanzen F [t/x] aufgezählt und
untereinander, also konjunktiv, in jedem Pfad durch xF eingesetzt werden.
A
554
Vollständigkeit
Theorem
{F1 , . . . , Fn } erfüllbar genau dann, wenn es kein geschlossenes, striktes
(mit Ausnahme von γ) AMGU-Tableau für {F1 , . . . , Fn } gibt.
Beweis (Idee, Klauseltableaux)
Zum Beweis definiert man einen fairen Tableaux-Expansionssprozess, der gegen ein
unendliches Tableau konvergiert, wo auf jedem Pfad jede γ-Formel in alle Varianten
(modulo Wahl der freien Variablen) expandiert wurde. Man kann dann wieder zeigen,
dass alle Pfade bis auf Redundanz unter Resolution saturiert sind. Hierzu verwendet
man die Lifting-Argumente für Resolutionsinferenzen, um die AMGU-Einschränkung
als vollständig zu beweisen.
555
Vom Kalkül zur Beweissuchprozedur
• Vollständigkeit der Tableauregeln garantiert nur Existenz eines
geschlossenen Tableaus.
• Eine systematische Beweissuchprozedur ist notwendig, um einen
Beweis zu finden.
Tableaukonstruktion ist nicht-deterministisch: Choice points
• Nächster zu betrachtender Ast?
• Abschluss- oder Erweiterung?
• Falls Abschluss: Mit welchem Literal-Paar?
• Falls Erweiterung: Mit welcher Formel?
556
Vom Kalkül zur Beweissuchprozedur
Schlechte Wahl kann das Finden eines Beweises verhindern!
Harmlos: Astauswahl
Beliebige Strategie (z.B. links nach rechts) führt zum Erfolg
Mit Fairnessstrategie handhabbar: Formelauswahl
Jede Formel auf jedem Ast, γ-Formeln beliebig oft
Kritisch: Abschluss erfordert Backtracking
Alternativ: Keinen Abschluss machen, bis sich alle Äste zugleich schließen
lassen
557
Beispiel
Unfaire Bevorzugung einer Formel
A
xp(x)
|
q ∧ ¬q
|
p(X1 )
|
p(X2 )
...
558
Beispiel
Bevorzugung eines Abschlusses
p(0)
A
x(p(x) → p(s(x)))
¬p(s(s(0)))
p(X1 ) → p(s(X2 ))
¬p(X1 )
VVVVV
VV
ii
i
i
i
i
p(X2 ) → p(s(X2 ))
⊥
(mgu: [0/X1 ])
p(s(X1 ))
¬p(X2 )
h
h
h
h
h
hh
⊥
p(s(X2 ))
...
(mgu: [0/X2 ])
559
Beispiel
Abschluss statt Erweiterung
p(a)
A
x((p(b) ∧ p(c) → p(x)) → ¬(q(x) → (q(b) ∨ q(c))))
¬q(d)
((p(b) ∧ p(c) → p(X )) → ¬(q(X ) → (q(b) ∨ q(c))))
¬(p(b) ∧ p(c) → p(X ))
d
d
d
d
d
d
d
d
dd
ZZZZZZZZ
ZZ
¬(q(X ) → (q(b) ∨ q(c))))
p(b) ∧ p(c)
q(X )
¬p(X )
¬(q(b) ∨ q(c))
560
Zusammenfassung
Prädikatenlogische Tableaukalküle
• γ- und δ-Regel
• Determinismus der Regeln
• Tableaux mit freien Variablen
neue γ- und neue Abschlussregel
• Prädikatenlogische Klauseltableaux
• Beweissuchprozedur
561
4. Anwendungen
562
Anwendungsbereiche
MATHEMATIK
Aufgaben
− Beweisen
− Beweisuberprufung
Theorien
− Zahlen
− Polynomen
− Funktionen auf
Zahlenbereichen
− Algebren
VERIFIKATION
Aufgaben
− Programme
− Korrektheit
− Terminierung
− reaktive/hybride
Systeme
− Sicherheit
Theorien
− Zahlen
− Datentypen
− Funktionen auf
Zahlenbereichen
DATENBANKEN
Aufgaben
− Konsistenz
− Anfragen
beantworten
− Kleiner Suchraum
Theorien
− Logik erster Stufe
− Datalog
− ...
− Komplexe Theorien
− Funktionen
− Zahlen
komplexe Systeme (MAS, mit eingebetteter Software, Datenbanken)
563
Anwendungsbereiche
MATHEMATIK
Aufgaben
− Beweisen
− Beweisuberprufung
VERIFIKATION
Aufgaben
− Programme
− Korrektheit
− Terminierung
− reaktive/hybride
Systeme
− Sicherheit
DATENBANKEN
Aufgaben
− Konsistenz
− Anfragen
beantworten
− Kleiner Suchraum
Theorien
− Logik erster Stufe
− Zahlen
Formale
Methoden
Theorien
− Datalog
− Polynomen
− ...
− Zahlen
Verfahren:
- Probleme
Formeln kodiert
− Komplexe Theorien
− Funktionen
auf 7→ als− logische
Datentypen
Zahlenbereichen
− Funktionen
- Verifikationsaufgaben:
zu Erf
ültigkeitstests
− Funktionen
aufüllbarkeit/G
− Zahlen
Zahlenbereichen
− Algebren
Theorien
reduziert
komplexe Systeme (MAS, mit eingebetteter Software, Datenbanken)
564
Beispiel: Sicherheitsprotokole
Ziel: zwei Personen (Alice und Bob) wollen miteinander kommunizieren
• über ein unsicheres Daten- oder Telefonnetz,
• sicher, d. h., ohne dass ein Eindringling (Charlie) mithören oder sich
als Alice oder Bob ausgeben kann.
Hilfsmittel: Verschlüsselung
• Alice und Bob vereinbaren einen gemeinsamen Schlüssel
und nutzen ihn, um ihr Gespräch zu verschlüsseln.
• Nur wer den Schlüssel kennt, kann das Gespräch entschlüsseln.
565
Beispiel: Sicherheitsprotokolle
Problem: wie kommen die Gesprächspartner an den gemeinsamen Schlüssel?
• Persönliche Übergabe kommt nicht immer in Frage.
• Wird der gemeinsame Schlüssel über das Netz
unverschlüsselt verschickt, könnte Charlie ihn abfangen oder
austauschen.
• Annahme: es gibt eine sichere Schlüsselzentrale, mit der Alice und Bob
jeweils einen gemeinsamen Schlüssel vereinbart haben.
566
Beispiel: Sicherheitsprotokolle
Das folgende Schlüsselaustauschverfahren wurde 1993 von den beiden Kryptographen Neuman und Stubblebine vorgeschlagen:
Schritt 1:
Alice schickt Bob die Nachricht 1: A, Na.
Die Nachricht enthäIt den Namen von Alice, A, und
eine Zufallszahl Na.
Die Aufgabe von Na liegt darin, diesen Protokollauf
eindeutig zu kennzeichnen, um das wiederholen von
Nachrichten durch einen Angreifer sinnlos werden
zu lassen.
Alice schickt (offen) Identifikation und Zufallszahl an Bob.
567
Beispiel: Sicherheitsprotokolle
Bob schickt die Nachricht 2 : B, E (Kbt, A, Na, Tb), Nb an Trust.
Nachdem Bob die Nachricht von Alice erhalten hat, weiss er,
dass sie einen sicheren Schlüssel mit ihm etablieren will.
Deshalb schickt Bob die Nachricht 2 an Trust.
Schritt 2:
Die Nachricht enthält:
- seinen Namen, B,
- einen verschlüsselten Mittelteil
- eine von Bob generierte Zufallszahl, Nb,
- Tb: Zeitspanne für die Gültigkeitsdauer des Schlüssels
Der Term E (Kbt, A, Na, Tb) steht für die Nachricht A, Na, Tb
verschlüsselt mit dem Schlüssel Kbt, dem sicheren Schlüssel
zwischen Bob und Trust.
Bob leitet Nachricht weiter an Schlüsselzentrale ( Trust“).
”
568
Beispiel: Sicherheitsprotokolle
Trust schickt die Nachricht 3
E (Kat, B, Na, Kab, Tb), E (Kbt, A, Kab, Tb), Nb an Alice.
Schritt 3:
Nachdem Trust Bob’s Nachricht gelesen und entschlüsselt hat,
generiert er den sicheren Schlüssel Kab für die Kommunikation
zwischen Alice und Bob.
Er verschickt den Schlüssel mit Nachricht 3 an Alice.
Der erste Teil der Nachricht kann von Alice entschlüsselt werden,
während sie den zweiten Teil später einfach an Bob weiterleitet,
siehe Schritt 4.
Trust schickt Nachricht an Alice. Darin: ein neuer gemeinsamer Schlüssel,
einmal für Alice und einmal für Bob verschlüsselt.
569
Beispiel: Sicherheitsprotokolle
Alice schickt die Nachricht 4:
E (Kbt, A, Kab, Tb), E (Kab, Nb) an Bob.
Schritt 4:
Alice liest Nachricht 3, entschlüsselt den ersten Teil durch
den gemeinsamen Schlüssel Kat mit Trust und erhält so den
neuen Schlüssel Kab, um mit Bob zu kommunizieren.
Sie leitet den zweiten Teil von Trust’s Nachricht an Bob weiter
und fügt die Nachricht E (Kab, Nb) hinzu.
Alice leitet den neuen gemeinsamen Schlüssel weiter an Bob.
570
Beispiel: Sicherheitsprotokolle
Bob liest Nachricht 4, entschlüsselt den ersten Teil und erhält
so auch den Schlüssel Kab.
Schritt 5:
Diesen verwendet er dann zur Entschlüsselung des zweiten
Teils und vergleicht die enthaltene Zufallszahl Nb mit der,
die er ursprünglich in Nachricht 2 an Trust schickte.
Auf diese Weise ist sich Bob sicher, dass die Nachricht
von Alice stammt und Kab der gewünschte Schlüssel ist.
Alice und Bob können nun mit dem gemeinsamen Schlüssel kommunizieren.
571
Beispiel: Sicherheitsprotokolle
A, Na
1.
A
2.
B
B, Nb , EKbt (A, Na , Tb )
T
3.
T
EKat (B, Na , Kab , Tb ), EKbt (A, Kab , Tb ), Nb
A
4.
A
EKbt (A, Kab , Tb ), EKab (Nb )
B
B
572
Beispiel: Sicherheitsprotokolle
Ist das Verfahren sicher?
Wir übersetzen das Problem in Formeln und lassen sie von einem
Theorembeweiser untersuchen.
573
Beispiel: Sicherheitsprotokolle
Zuerst formalisieren wir die Eigenschaften des Protokolls:
• Wenn Alice/Bob/Trust eine Nachricht in einem bestimmten Format
bekommt, dann schickt er/sie eine andere Nachricht ab.
Dann formalisieren wir die Eigenschaften des Angreifers:
• Wenn eine Nachricht übermittelt wird, kann Charlie sie mithören.
• Wenn Charlie eine verschlüsselte Nachricht bekommt und den
passenden Schlüssel hat, kann er sie entschlüsseln.
• Wenn Charlie eine Nachricht hat, dann kann er sie an Alice/Bob/Trust
abschicken.
...
574
Formalisierung der Eigenschaften des Protokolls
1. A, Na
(1) Ak(key (at, t))
(2) M(sent(a, b, pair (a, na)))
Formel (1) beschreibt, dass Alice am Anfang den Schlüssel at für die Kommunikation
mit Trust besitzt. (Wir lassen “K ” bei der Benamung von Schlüsseln weg.)
Formel (2) formalisiert Nachricht 1.
Nachrichten werden durch die dreistellige Funktion “sent” ausgedrückt, wobei das
erste Argument den Absender bezeichnet, das zweite den Empfänger und das dritte
den Inhalt der Nachricht.
Die Konstante a bezeichnet Alice, b Bob, t Trust und i Intruder.
Die Funktionen “pair” (triple, quadr) gruppieren Sequenzen von Nachrichten
entsprechender Länge.
575
Formalisierung der Eigenschaften des Protokolls
2. B, Nb, E (Kbt, A, Na, Tb)
(3) Bk(key (bt, t))
A
(4)
xa, xna[M(sent(xa, b, pair (xa, xna))) →
M(sent(b, t, triple(b, nb(xna), encr (triple(xa, xna, tb(xna)), bt)))))]
Formel (3): Bob besitzt den Schlüssel bt zur Kommunikation mit Trust.
Formel (4): Wann immer er eine Nachricht in der Form von Nachricht 1 erhält
(Formel 2), schickt er die Anfrage nach einem Schlüssel an Trust wie in Nachricht
2 festgelegt.
Die Verschlüsselung wird mit Hilfe der zweistelligen Funktion “encr” beschrieben.
Das erste Argument der Funktion ist die zu verrschlüsselnde Nachricht und das zweite
Argument der benutzte Schlüssel.
Alle Symbole die mit einem kleinen x anfangen, bezeichnen Variablen.
Die Funktionen nb und tb generieren Bob’s Zufallszahl und Ablaufdatum
aus xna, xa’s (Alice’s ) Zufallszahl.
576
Formalisierung der Eigenschaften des Protokolls
3. E (Kat, B, Na, Kab, Tb), E (Kbt, A, Kab, Tb), Nb
(5) Tk(key (at, a))) ∧ Tk(key (bt, b))
A
(6)
xb, xnb, xa, xna, xbet, xbt, xat, xk
[(M(sent(xb, t, triple(xb, xnb, encr (triple(xa, xna, xbet), xbt)))) ∧
Tk(key (xbt, xb)) ∧ Tk(key (xat, xa))) →
M(sent(t, xa, triple(encr (quadr (xb, xna, kt(xna), xbet), xat),
encr (triple(xa, kt(xna), xbet), xbt),
xnb)))]
(5) Trust besitzt die Schlüssel für Alice und Bob und ...
(6) ... antwortet entsprechend des Protokolls auf Nachricht 2.
Entschlüsselung wird hierbei durch Unifikation mit einer entsprechenden Termstruktur
realisiert, wobei zusätzlich überprüft wird, dass Trust die benötigten Schlüssel auch
besitzt.
Trust generiert den neuen Schlüssel durch die Funktion kt aus der Zufallszahl xna.
577
Formalisierung der Eigenschaften des Protokolls
4. E (Kbt, A, Kab, Tb), E (Kab, Nb)
A
(7)
xnb, xbet, xk, xm, xb, xna
[M(sent(t, a, triple(encr (quadr (xb, xna, xk, xbet), at), xm, xnb)) →
(M(sent(a, xb, pair (xm, encr (xnb, xk)))) ∧ Ak(key (xk, xb)))]
(8)
xbet, xk, xnb, xa, xna
[M(sent(xa, b, pair (encr (triple(xa, xk, tb(xna)), bt), encr (nb(xna), xk))) →
Bk(key (xk, xa))]
A
Formel (7): Alice antwortet in korrekter Weise auf Nachricht 3 und merkt sich den
neuen Schlüssel.
Formel (8) beschreibt Bob’s Verhalten nachdem er Alices Nachricht erhalten hat.
Bob entschlüsselt die Nachricht und extrahiert den neuen Schlüssel.
578
Formalisierung des Angreifers
Der Angreifer wird als unermüdlicher Hacker implementiert, der keine
Möglichkeit unversucht lässt, das Protokoll anzugreifen.
Er hört alle Nachrichten ab und zerlegt sie in ihre Bestandteile, solange er
dazu nicht einen Schlüssel braucht, den er nicht hat.
Die Bestandteile werden dann auf jeder Art und Weise zu neuen Nachrichten
beliebiger Länge komponiert.
Jeder Bestandteil wird als Schlüssel in Betracht gezogen und sowohl zum
verschlüsseln als auch zum entschlüsseln verwendet.
Alle so generierten Nachrichten werden verschickt.
Die Menge aller Nachrichten(teile), die der Intruder so erhält, wird durch
das Prädikat “Im” ausgedrückt.
579
Der Angreifer
• Die Teilnehmer (Participants) sind Alice, Bob, Trust und Intruder:
(9) P(a) ∧ P(b) ∧ P(t) ∧ P(i)
• Intruder hört alle Nachrichten ab.
A
(10)
xa, xb, xm[M(sent(xa, xb, xm)) → Im(xm)]
• Er dekomponiert und entschlüsselt alle Nachrichten, soweit er dafür den Schlüssel
besitzt.
(11)
A
(12)
A
(13)
A
(14)
A
u, v [Im(pair (u, v )) → (Im(u) ∧ Im(v ))]
u, v , w [Im(triple(u, v , w )) → (Im(u) ∧ Im(v ) ∧ Im(w ))]
u, v , w , z[Im(quadr (u, v , w , z)) → (Im(u) ∧ Im(v ) ∧ Im(w ) ∧ Im(z))]
u, v , w [(Im(encr (u, v )) ∧ Ik(key (v , w )) → Im(u)]
580
Der Angreifer
• Alle Nachrichten(teile) werden auf alle möglichen Arten neu komponiert.
(15)
A
(16)
A
(17)
A
u, v [(Im(u) ∧ Im(v ) → Im(pair (u, v ))]
u, v , w [(Im(u) ∧ Im(v ) ∧ Im(w )) → Im(triple(u, v , w ))
u, v , w , z[(Im(u) ∧ Im(v ) ∧ Im(w ) ∧ Im(z)) → Im(quadr (u, v , w , z))
• Jeder Nachrichtenteil wird auch als Schlüssel aufgefasst und zur Verschlüsselung
benutzt.
(18)
A
(19)
A
u, v , w [(Im(v ), P(w ) → Ik(key (v , w ))]
u, v , w [(Im(v ), P(w ), Ik(key (v , w ))) → Im(encr (u, v ))]
• Der Angreifer schickt alles was er hat an jeden.
A
(20)
x, y , u[(P(x) ∧ P(y ) ∧ Im(u)) → M(sent(x, y , u))]
581
Formalisierung
Zum Schluss müssen wir noch formalisieren was es bedeutet, dass der
Angreifer Erfolg hat.
Dies ist dann der Fall, wenn er einen Schlüssel zur Kommunikation mit Bob
hat, von dem Bob glaubt, es sei ein Schlüssel für Alice.
E
x[Ik(key (x, b)) ∧ Bk(key (x, a))]
582
Automatische Analyse
Die Formalisierung des Protokolls, Formeln (1)-(8) zusammen mit den
Angreiferformeln (9)-(20) und der Erfolgsbedingung für den Angreifer kann
man nun in einen Theorembeweiser eingeben.
Dieser antwortet “erfüllbar”.
Das beweist dann automatisch, dass der Angreifer das Protokoll brechen
kann und der kritische Schlüssel die Zufallszahl Na ist.
583
Beispiel: Sicherheitsprotokolle
Was kann passieren?
Charlie fängt die letzte Nachricht von Alice ab.
584
Beispiel: Sicherheitsprotokolle
Intruder schickt die Nachricht 5:
Was kann passieren?
E (Kbt, A, Na, Tb), E (Na, Nb) an Bob.
Das Problem des Protokolls liegt darin, dass die Nachricht
E (Kbt, A, Kab, Tb) in Nachricht 4 und die Nachricht
E (Kbt, A, Na, Tb) in Nachricht 2 fast identisch sind.
Die beiden Nachrichten unterscheiden sich nur an der 2. Position.
(Nachricht 4 enthält dort den Schlüssel Kab,
Nachricht 2 die Zufallszahl Na.)
Da der Intruder alle Nachrichten lesen und auch selbst
Nachrichten schicken kann, fängt er also Nachricht 4 ab,
wiederholt den obigen Teil aus Nachricht 2 und fügt
E (Na, Nb) hinzu.
Die beiden Zufallszahlen wurden bereits unverschlüsselt verschickt.
Charlie schickt eine veränderte Nachricht an Bob.
585
Beispiel: Sicherheitsprotokolle
Was kann passieren?
Bob entschlüsselt die Nachricht und denkt, sie komme von Alice,
und dass Na der sichere Schlüssel zur Kommunikation mit Alice ist.
586
Beispiel: Sicherheitsprotokolle
Was kann passieren?
Bob startet Kommunikation mit Alice . . .
587
Beispiel: Sicherheitsprotokolle
Was kann passieren?
. . . aber spricht in Wirklichkeit mit Charlie.
588
Beispiel: Sicherheitsprotokolle
Der Fehler ist tatsächlich leicht zu beheben.
Mit ein wenig Erfahrung erkennt man aus der Ausgabe des Theorembeweisers, wie es geht.
Dieser Angriff lässt sich reparieren, in dem man die Elemente des Protokolls
typisiert, so dass Zufallszahlen und Schlüssel nicht mehr austauschbar sind.
Dies lässt sich dann auch wieder formalisieren;
der Theoremenbeweise antwortet jetzt “unerfüllbar”.
589
Beispiel: Sicherheitsprotokolle
Literatur
[1] Neuman, B. C. and Stubblebine, S. G., 1993, A note on the use of
timestamps as nonces, ACM SIGOPS, Operating Systems Review, 27(2),
10-14.
[2] Weidenbach, C., 1999, Towards an automatic analysis of security
protocols in first-order logic, in H. Ganzinger, ed., 16th International
Conference on Automated Deduction, CADE-16, Vol. 1632 of LNAI,
Springer, pp. 378-382.
590
Andere Anwendungsbereiche
Theorien
− Zahlen
− Polynomen
− Funktionen auf
Zahlenbereichen
− Algebren
Aufgaben
− Programme
− Korrektheit
− Terminierung
− reaktive/hybride
Systeme
− Sicherheit
Theorien
− Zahlen
− Datentypen
− Funktionen auf
Zahlenbereichen
Beispiel: Geometrie
a
d
(A1)
(A2)
A A A A
Aufgaben
− Beweisen
− Beweisuberprufung
VERIFIKATION
A A A A
MATHEMATIK
b
c
x y u v (T (x, y , u, v )→P(x, y , u, v )
x y u v (P(x, y , u, v )→E (x, y , v , u, v , y )
(A3) T (a, b, c, d)
A1 ∧ A2 ∧ A3 → E (a, b, d, c, d, b)
591
Andere Anwendungsbereiche
MATHEMATIK
Aufgaben
− Beweisen
− Beweisuberprufung
Theorien
− Zahlen
− Polynomen
− Funktionen auf
Zahlenbereichen
− Algebren
VERIFIKATION
Aufgaben
− Programme
− Korrektheit
− Terminierung
− reaktive/hybride
Systeme
− Sicherheit
Theorien
− Zahlen
− Datentypen
− Funktionen auf
Zahlenbereichen
Beispiel: Programmverifikation
int [] BubbleSort(int[] a) {
int i, j, t;
for (i := |a| − 1; i > 0; i := i − 1) {
for (j := 0; j < i; j := j + 1) {
if (a[j] > a[j + 1]){t := a[j];
a[j] := a[j + 1];
a[j + 1] := t};
}} return a}
592
Andere Anwendungsbereiche
Controllers
MATHEMATIK
Aufgaben
− Beweisen
− Beweisuberprufung
Theorien
− Zahlen
− Polynomen
− Funktionen auf
Zahlenbereichen
− Algebren
VERIFIKATION
Aufgaben
− Programme
− Korrektheit
− Terminierung
− reaktive/hybride
Systeme
− Sicherheit
Überprüfe:
Theorien
− Zahlen
− Datentypen
− Funktionen auf
Zahlenbereichen
• Kein “overflow”
• Substanzen in der richtigen Proportion
• ... andernfalls:
Tank kann in ≤ 200s geleert werden.
593
Weitere Anwendungebereiche
Controllers
MATHEMATIK
Aufgaben
− Beweisen
− Beweisuberprufung
Theorien
− Zahlen
− Polynomen
− Funktionen auf
Zahlenbereichen
− Algebren
VERIFIKATION
Aufgaben
− Programme
− Korrektheit
− Terminierung
− reaktive/hybride
Systeme
− Sicherheit
Zugkontrollsysteme
RBC
Theorien
− Zahlen
− Datentypen
− Funktionen auf
Zahlenbereichen
braking + reaction
distance
• Task: Keine Kollision
594
Beispiel: ETCS Fallstudie
AVACS: ETCS Fallstudie [Jacobs,VS’06,’07; Faber,Jacobs,VS’07]
RBC
braking + reaction
distance
Anzahl der Züge:
n>0
Z
Minimaler sicherer Abstand:
lalarm > 0
R
Minimale / maximale Geschwindigkeit : 0 ≤ min < max R
Zeit zwischen Updates:
∆t > 0
R
Zugpositionierung vor/nach Update:
pos, pos′
:Z→R
595
Beispiel: ETCS Fallstudie
AVACS: ETCS Fallstudie [Jacobs,VS’06,’07; Faber,Jacobs,VS’07]
RBC
braking + reaction
distance
...
i (0 < i < n ∧ pos(i − 1) > 0 ∧ pos(i − 1) − pos(i) ≥ lalarm
→ pos(i) + ∆t ∗ min ≤ pos ′ (i) ≤ pos(i) + ∆t∗max)
Induktive Invariante: Keine Kollision
Sicher(pos)∧Update(pos, pos′ )∧¬Sicher(pos′ ) |=⊥
Sicher(pos) :
A
•
i (i = 0 → pos(i) + ∆t∗min ≤ pos ′ (i) ≤ pos(i) + ∆t∗max)
A
•
A
Update(pos, pos′ ) :
i, j(i<j→pos(i)>pos(j))
596
Weitere Logiken
• Alternativen zur klassischen Logik
• Erweiterungen der klassischen Logik
597
Weitere Logiken
• Alternativen: z.B. Mehrwertige Logiken
Ausgangspunkt für die Entwicklung mehrwertiger Logiken war die Frage, ob
Annahme, das es nur zwei Wahrheitswerte 0 (falsch) und 1 (wahr) geben
kann nicht zu Einschränkungen führen kann.
Für Aussagen über die Zukunft stellte bereits Aristoteles diese Frage, indem
er argumentierte, dass die Wahrheit einer Aussage wie
“Morgen wird eine Seeschlacht stattfinden”
erst am Abend des morgigen Tages feststehen wird und dass sie bis zu
diesem Zeitpunkt noch als unbestimmt betrachtet werden muss.
598
Weitere Logiken
• Alternativen: z.B. Mehrwertige Logiken.
Wahrheitswerten: Menge W mit 0, 1 ∈ W
z.B: W = {0, 1, unbekannt}
W = {0, n1 , n2 , . . . ,
n−1
, 1}
n
oder W = [0, 1].
In neuerer Zeit haben mehrwertige Logiken im Bereich der Informatik hohe
praktische Bedeutung gewonnen.
Sie ermöglichen den Umgang mit der Tatsache, dass Datenbanken nicht
nur eindeutig bestimmte, sondern auch unbestimmte, fehlende oder sogar
widersprüchliche Informationen enthalten können.
599
Weitere Logiken
• Erweiterungen:
In einer nichtklassischen Erweiterung der klassischen Logik werden
zusätzliche logische Operatoren hinzugefügt.
• Modale Logiken: Zusätzliche logische Operatoren:
“2”: steht für “Es ist notwendig, dass...”.
“3”: steht für “Es ist möglich, dass...”.
• Dynamische Logik: Zusätzliche logische Operatoren:
[α], <α>, α Programm.
[α]F : F gilt nach jeder Ausführung von α
<α>: es gibt eine Ausführung von α nach der F gilt
600
Weitere Logiken
• Erweiterungen:
In einer nichtklassischen Erweiterung werden zusätzliche logische Operatoren
hinzugefügt.
• Temporale Logiken: Erweiterungen der Logik, durch die zeitliche
Abläufe erfasst werden können.
Die Aussagenlogik kann Aussagen, deren Wahrheitswerte sich mit der
Zeit ändern, nicht oder nur mit Mühe adäquat behandeln.
So ist “Es regnet” nur wahr, wenn es am Ort und zur Zeit der
Äusserung gerade regnet, sonst nicht.
Klassische Logiken zählen daher den Äußerungszeitpunkt zu den
Wahrheitsbedingungen.
601
Weitere Logiken
• Erweiterungen:
In einer nichtklassischen Erweiterung werden zusätzliche logische Operatoren
hinzugefügt.
• Temporale Logiken: Erweiterungen der Logik, durch die zeitliche
Abläufe erfasst werden können.
Zeitlogiken führen Operatoren ein, so dass jeder Fall der Äusserung
des Satzes unter denselben Wahrheitsbedingungen steht.
Diese Operatoren lassen es zu, differenziertere zeitliche Aussagen
logisch zu analysieren, so dass der Wahrheitswert von “Es hat
geregnet”, “Es wird regnen”, “Es regnet immer” von der Erfüllung von
“Es regnet” zu bestimmten Zeitpunkten abhängig ist.
Temporale Logik wird in der Informatik für die Programm Spezifikation
und Verifikation benutzt.
602
Logik höherer Stufe
Logik höherer Stufe erweitert die Prädikatenlogik erster Stufe um die
Möglichkeit, über alle Relationen/Funktionen zu quantifizieren.
603
Acknowledgements
Für die Vorbereitung der Vorlesungsmaterialien habe ich Material zu den Vorlesungen
von:
• Bernhard Beckert (Logik für Informatiker“, gehalten an der Universität
Koblenz-Landau)
• Harald Ganzinger, Uwe Waldmann, Viorica Sofronie-Stokkermans (Äutomated
Reasoning“, gehalten an der Universität des Saarlandes)
• Ulrich Furbach (Logik für Informatiker“, gehalten an der Universität KoblenzLandau) benutzt.
Material aus anderen Vorlesungen:
• Ulrich Furbach: Logic for Computer Scientists. Vorlesungsskriptum und Wikibook
• Harald Ganzinger, Viorica Sofronie-Stokkermans, Uwe Waldmann: Folien Äutomated ReasoningSSS 2004. Online: http://www.mpi-inf.mpg.de/ uwe/lehre/autreas/readings
• Gert Smolka: Einführung in die Computationale Logik; SS 2003. Online at
http://www.ps.uni-sb.de/courses/cl-ss03/skript/.
604
Literatur
Aussagenlogik, Prädikatenlogik:
• Melvin Fitting: First-Order Logic and Automated Theorem Proving. SpringerVerlag, New York, 1996.
• Uwe Schöning Logik für Informatiker. Spektrum Akademischer Verlag, 2000
• Huth and Ryan: Logic in Computer Science. modelling and reasoning about
systems. Cambridge University Press, 2004.
• Armin Biere, Marijn Heule, Hans van Maaren, Toby Walsh (Editors) Handbook
of Satisfiability IOS Press, 2009
605
Herunterladen