unerf¨ullbar - Theoretische Informatik

Werbung
Theoretische Informatik II
Vorlesung mit Übungen im SS 2005
Vorlesung:
Dienstag
8 - 10 Uhr, Raum 1332 WA
Donnerstag 9 - 10 Uhr, Raum 1332 WA
Beginn: Dienstag, den 12.04.2003, 815 Uhr.
Übungen in 3 Gruppen:
Grp. 1: Donnerstag 10 - 11 Uhr, Raum -1319 WA
Grp. 2:
”
10 - 11 Uhr, Raum -1607 WA
Grp. 3: Montag
10 - 11 Uhr, Raum -1319 WA
Ergänzendes Tutorium:
Grp. 1: Donnerstag 11 - 12 Uhr, Raum -1319 WA
Grp. 2:
”
11 - 12 Uhr, Raum -1607 WA
Grp. 3: Montag
11 - 12 Uhr, Raum -1319 WA
Homepage:
http://www.theory.informatik.uni-kassel.de/
veranstaltungen/theoInf2SS2005/index.html
Abschlussklausur:
Freitag, den 22. Juli 2005, 1000 - 1300 Uhr
in Raum 1603 WA
Literatur:
Buch zur Vorlesung:
Uwe Schöning,
Logik für Informatiker.
Spektrum Akademischer Verlag, Heidelberg/Berlin,
5. Auflage, 2000.
Ergänzende Literatur:
B. Heinemann, K. Weihrauch;
Logik für Informatiker. Eine Einführung.
Teubner Verlag, 1992.
H. Hamburger, D. Richards;
Logic and Language Models for Computer Science.
Prentice Hall, 2002.
A. Yasuhara;
Recursive Function Theory and Logic.
Academic Press, 1971.
u.v.m.
Einleitung
Formale Logik:
- Verknüpfen von Aussagen
- Beweise:
Axiome, Schlussregeln → Theoreme
Logik ist Basis der Mathematik:
- Was ist Wahrheit?
- Welche Theorien sind axiomatisierbar?
- Wie sehen die Modelle für gewisse Theorien aus?
Informatik verwendet gewisse Teilgebiete der Logik:
- Programmverifikation (Korrektheitsbeweise)
- Semantik von Programmiersprachen
- Automatisches Beweisen (K.I.)
- Logik-Programmierung (Prolog)
1
Aufbau der Vorlesung
Kap. 1: Aussagenlogik
Kap. 2: Prädikatenlogik (erster Stufe)
Kap. 3: Programm-Verifikation
Kap. 4: Logik-Programmierung (Grundlagen)
Folien der Vorlesung sowie Übungsaufgaben finden
sich auf der Homepage der Vorlesung im pdf-Format.
2
Kapitel 1.
Aussagenlogik
1.1 Grundbegriffe
In der Aussagenlogik werden einfache Verknüpfungen
zwischen atomaren sprachlichen Gebilden
( Aussagen“) untersucht.
”
Beispiele für atomare Aussagen:
A = Kassel ist der Nabel der Welt“
”
B = Pferde fressen Heu“
”
Diese atomaren Aussagen können wahr oder falsch
sein.
Aussagen entstehen durch Verknüpfungen aus
atomaren Aussagen:
A und B
Wie ergeben sich die Wahrheitswerte in solchen
Aussagen aus den Wahrheitswerten der darin
enthaltenen atomaren Aussagen?
3
Definition (Syntax der Aussagenlogik)
Eine atomare Formel hat die Form Ai (i = 1, 2, 3, . . .).
Formeln werden induktiv definiert:
1. Alle atomaren Formeln sind Formeln.
2. Sind F und G Formeln, so auch
(F ∧ G) und (F ∨ G).
3. Ist F eine Formel, so auch ¬F .
¬F
: Negation von F
F ∧ G : Konjunktion von F und G
F ∨ G : Disjunktion von F und G
Tritt eine Formel F als Teil einer Formel G auf,
so heißt F eine Teilformel von G.
Beispiel:
F = ¬((A5 ∧ A6) ∨ (¬A3 ∧ A5))
Teilformeln von F :
F, ((A5 ∧ A6) ∨ (¬A3 ∧ A5)), (A5 ∧ A6),
A5, A6, (¬A3 ∧ A5), ¬A3, A3
4
Abkürzende Schreibweisen:
A, B, C, . . . statt A1, A2, A3, . . .
(F1 → F2) statt (¬F1 ∨ F2)
(F1 ↔ F2) statt ((F1 ∧ F2) ∨ (¬F1 ∧ ¬F2))
n
W
(
Fi)
statt (..((F1 ∨ F2) ∨ F3) ∨ . . . ∨ Fn)
i=1
n
V
(
i=1
Fi)
statt (..((F1 ∧ F2) ∧ F3) ∧ . . . ∧ Fn)
Beachte:
Formeln sind lediglich syntaktische Objekte.
Beispiel:
(((¬B → F )∧((B∧F ) → ¬E))∧((E∨¬B) → ¬F ))
↔ (B ∧ ¬(E ∧ F ))
5
Definition (Semantik der Aussagenlogik)
Wahrheitswerte {0, 1} (0 =
ˆ falsch, 1 =
ˆ wahr)
Sei D eine Menge von atomaren Formeln, und
sei E die Menge der Formeln über D.
Eine Abbildung A : D → {0, 1} ist eine Belegung
von D. Sie liefert eine Funktion  : E → {0, 1}:
1. Für A ∈ D ist Â(A) := A(A).
2. Â((F ∧G)) :=
(
1, falls Â(F ) = 1 und Â(G) = 1
0, sonst
3. Â((F ∨G)) :=
(
1, falls Â(F ) = 1 oder Â(G) = 1
0, sonst
4. Â(¬F )
(
1, falls Â(F ) = 0
0, sonst.
:=
Beachte:
Die Funktion  wird durch A eindeutig festgelegt.
Schreibweise:
A statt Â.
6
Beispiel:
Seien A(A) = 1, A(B) = 1 und A(C) = 0.
Dann:
A(¬((A ∧ B) ∨ C))
(
1, falls A(((A ∧ B) ∨ C)) = 0
=
0, sonst
=
(
0, falls A(((A ∧ B) ∨ C)) = 1
1, sonst
=
(
0, falls A((A ∧ B)) = 1 oder A(C) = 1
1, sonst
=
(
0, falls A(A) = 1 und A(B) = 1
1, sonst
=0
7
Verknüpfungstabellen für ∧, ∨, ¬:
A(F ) A(G) A((F ∧ G)) A((F ∨ G)) A(¬F )
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
Beispiel (Forts.):
F = ¬((A ∧ B) ∨ C)
Aufbau von F darstellbar durch eine Baumstruktur:
GFED
@ABC
¬
ONML
HIJK
∨ @@@
}}
}}
}
}}
}}
ONML
HIJK
∧ BBB
A
∧
∨
¬
→
↔
}}
}}
}
}
}}
@@
@@
@@
C
BB
BB
BB
B
und“
”
oder“
”
nicht“
”
wenn, dann“
”
genau dann, wenn“
”
8
Bemerkung: (Induktion über den Formelaufbau)
z.z.: Eine Behauptung B gilt für alle Formeln.
Beweisprinzip:
1. Zeige, B gilt für alle atomaren Formeln.
2. Zeige, dass B für (F ∧ G), (F ∨ G) und ¬F gilt,
wenn B für F und G gilt.
Definition (Modell, gültig, erfüllbar)
Sei F eine Formel und A eine Belegung.
A ist zu F passend, wenn A(A) für alle in F
vorkommenden atomaren Formeln A definiert ist.
A |= F : A ist passend zu F , und A(F ) = 1.
A 6|= F : A ist passend zu F , und A(F ) = 0.
Sprechweise:
F gilt unter der Belegung A (nicht),
A ist (k)ein Modell für F .
9
Ist F eine Menge von Formeln, so ist A ein Modell
für F, wenn A |= F für alle F ∈ F gilt.
F heißt erfüllbar , wenn F ein Modell hat, sonst ist F
unerfüllbar .
F heißt Tautologie (gültig), falls A |= F für jede zu
F passende Belegung gilt.
Schreibweise:
|= F : F ist Tautologie.
6|= F : F ist keine Tautologie.
10
Satz
Eine Formel F ist eine Tautologie genau dann, wenn
¬F unerfüllbar ist.
Beweis
F ist Tautologie
gdw. jede zu F passende Belegung ist ein Modell
für F
gdw. A(F ) = 1 für jede zu F passende Belegung
gdw. A(¬F ) = 0 für jede zu ¬F passende
Belegung
gdw. ¬F besitzt kein Modell
gdw. ¬F ist unerfüllbar.
2
Das Spiegelungsprinzip der Negation:
alle aussagenlogischen Formeln
gültige Formeln erfüllbare, aber
unerfüllbare
nicht gültige
Formeln
Formeln
F
|
¬F
¬G
|
G
H | ¬H
11
Definition (Folgerung)
Eine Formel G ist eine Folgerung der Formeln F1, . . . , Fk ,
falls jede Belegung A, die zu F1, . . . , Fk und zu G
passend ist, ein Modell für G ist, wenn sie ein
Modell für {F1, . . . , Fk } ist.
Satz
Die folgenden drei Aussagen sind äquivalent:
1. G ist eine!Folgerung
! von F1, . . . , Fk .
2.
3.
k
V
i=1
k
V
i=1
→ G ist eine Tautologie.
Fi
!
!
Fi ∧ ¬G ist unerfüllbar.
Beachte: 6|= ((A → B) → (¬A → ¬B))
Wähle A mit A(A) = 0 und A(B) = 1.
Dann folgt: A((A → B)) = 1, aber
A((¬A → ¬B)) = 0, was
A(((A → B) → (¬A → ¬B))) = 0 liefert.
Wahrheitstafel:
A
B
0
0
0
1
1
0
1
1
A→B
1
1
0
1
¬A → ¬B
1
0
1
1
C
1
0
1
1
12
Beispiel (Forts.):
A1 := (((¬B → F ) ∧ ((B ∧ F ) → ¬E)) ∧ ((E ∨ ¬B) → ¬F ))
B E F ¬B ¬B → F B ∧F (B ∧F ) → ¬E E ∨¬B (E ∨¬B) → ¬F
0 0 0
1
0
0
1
1
1
0 0 1
1
1
0
1
1
0
0 1 0
1
0
0
1
1
1
0 1 1
1
1
0
1
1
0
1 0 0
0
1
0
1
0
1
0
1
1
1
0
1
1 0 1
1 1 0
0
1
0
1
1
1
1 1 1
0
1
1
0
1
0
A2 := B ∧ ¬(E ∧ F )
B E F E ∧ F ¬(E ∧ F )
0 0 0
0
1
0 0 1
0
1
0 1 0
0
1
1
0
0 1 1
1 0 0
0
1
1 0 1
0
1
1 1 0
0
1
1
0
1 1 1
B ∧ ¬(E ∧ F )
0
0
0
0
1
1
1
0
A1 ↔ A2
1
1
1
1
1
1
1
1
A1
0
0
0
0
1
1
1
0
Lemma
Eine Formel F der Form F =
k
V
i=1
!
Gi ist erfüllbar
genau dann, wenn die Formelmenge M = {G1, . . . , Gk }
erfüllbar ist.
Lemma
Seien F und G Formeln, die keine gemeinsame
atomare Formel enthalten.
Ist (F → G) eine Tautologie, so ist F unerfüllbar
oder G ist eine Tautologie.
14
1.2 Äquivalenz und Normalformen
Definition
Zwei Formeln F und G heißen (semantisch) äquivalent, falls für alle Belegungen A, die sowohl für F
als auch für G passend sind, A(F ) = A(G) gilt.
Schreibweise:
F ≡G
Satz (Ersetzbarkeitstheorem)
Seien F und G äquivalente Formeln, und sei H eine
Formel, in der F als Teilformel (mindestens einmal)
vorkommt. Entsteht H 0 aus H, indem ein Vorkommen von F in H durch G ersetzt wird, so sind H
und H 0 äquivalent.
Beweis: Induktion über den Formelaufbau von H:
H ist atomar : H = F und H 0 = G.
H ist nicht atomar:
(i) H = F : Dann ist H 0 = G.
(ii) H = ¬H1 : H10 entstehe aus H1 durch
Ersetzung einer Teilformel F durch G.
Nach I.V.: H1 ≡ H10 .
Also H = ¬H1 ≡ ¬H10 = H 0.
(iii) H = H1 ∨ H2 :
Dann H = H1 ∨ H2 ≡ H10 ∨ H20 = H 0.
(iv) H = H1 ∧ H2 : analog zu (iii).
2
15
Satz
Es gelten die folgenden Äquivalenzen:
(F ∧ F ) ≡ F (Idempotenz)
(F ∨ F ) ≡ F
(F ∧ G) ≡ (G ∧ F ) (Kommutativität)
(F ∨ G) ≡ (G ∨ F )
((F ∧ G) ∧ H) ≡ (F ∧ (G ∧ H)) (Assoziativität)
((F ∨ G) ∨ H) ≡ (F ∨ (G ∨ H))
(F ∧ (F ∨ G)) ≡ F
(Absorption)
(F ∨ (F ∧ G)) ≡ F
(F ∧ (G ∨ H)) ≡ ((F ∧ G) ∨ (F ∧ H)) (Distributivität)
(F ∨ (G ∧ H)) ≡ ((F ∨ G) ∧ (F ∨ H))
¬¬F ≡ F
(Doppelnegation)
¬(F ∧ G) ≡ (¬F ∨ ¬G) (deMorgansche Regeln)
¬(F ∨ G) ≡ (¬F ∧ ¬G)
(F ∨ G) ≡ F , falls F eine Tautologie ist.
(F ∧ G) ≡ G, falls F eine Tautologie ist.
(F ∨ G) ≡ G, falls F unerfüllbar ist.
(F ∧ G) ≡ F , falls F unerfüllbar ist.
(F ∨ ¬F )
(F ∧ ¬F )
≡
≡
1
0
Hierbei ist 1 eine Abkürzung für eine Tautologie,
und 0 ist eine Abkürzung für eine unerfüllb. Formel.
16
Beispiel:
((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ ((B ∧ ¬A) ∨ C)
Beweis durch Anwendung obiger Äquivalenzen:
((A ∨ (B ∨ C)) ∧ (C ∨ ¬A))
≡ (((A ∨ B) ∨ C) ∧ (C ∨ ¬A)) (Assoziativität)
≡ ((C ∨ (A ∨ B)) ∧ (C ∨ ¬A)) (Kommutativität)
≡ (((C ∧ C) ∨ (C ∧ ¬A)) ∨ (((A ∨ B) ∧ C) ∨
((A ∨ B) ∧ ¬A)))
(Distributivität)
≡ (((C ∨ (C ∧ ¬A)) ∨ ((A ∨ B) ∧ C)) ∨
((A∨B)∧¬A)) (Idempotenz, Assoziativität)
≡ ((C ∨ ((A ∨ B) ∧ C)) ∨ ((A ∨ B) ∧ ¬A))
(Absorption)
≡ (C ∨ ((A ∨ B) ∧ ¬A))
(Absorption, Kommutativität)
≡ (C ∨ (¬A ∧ (A ∨ B)))
(Kommutativität)
≡ (C ∨ ((¬A ∧ A) ∨ (¬A ∧ B))) (Distributivität)
≡ (C ∨ (¬A ∧ B))
(Unerfüllbarkeit)
≡ (C ∨ (B ∧ ¬A))
(Kommutativität)
≡ ((B ∧ ¬A) ∨ C)
(Kommutativität)
17
Lemma
Es gelten folgende Verallgemeinerungen:
¬
n
W
i=1
¬
n
V
i=1
m
W
i=1
m
V
i=1
Fi
!
Fi
!
≡
n
V
i=1
≡
!
Fi ∧
!
Fi ∨
n
W
i=1
n
W
j=1
n
V
j=1
¬Fi
!
¬Fi
!
Gj
!!
Gj
!!
≡
m
W
i=1
≡
m
V
i=1
n W
j=1
n V
j=1
Fi ∧ Gj
Fi ∨ Gj
Schreibweise:
F1 ∧ F2 ∧ . . . ∧ Fn für (..((F1 ∧ F2) ∧ . . . ∧ Fn)
F1 ∨ F2 ∨ . . . ∨ Fn für (..((F1 ∨ F2) ∨ . . . ∨ Fn)
18
!!
!!
Definition (Normalformen)
Ein Literal ist eine atomare Formel oder die
Negation einer atomaren Formel
(positives/negatives Literal).
Die Formel F ist in konjunktiver Normalform (KNF),
wenn sie eine Konjunktion von Disjunktionen von
Literalen ist:

F =
n
^
i=1


m
_i
j=1

Li,j  mit Li,j ∈ { Ak , ¬Ak | k ≥ 1 }.
Eine Formel F ist in disjunktiver Normalform (DNF),
wenn sie eine Disjunktion von Konjunktionen von
Literalen ist:

F =
m
_
i=1


m
^i
j=1

Li,j  mit Li,j ∈ { Ak , ¬Ak | k ≥ 1 }.
Satz
Für jede Formel F gibt es eine äquivalente Formel
in KNF und eine äquivalente Formel in DNF.
Beweis:
Induktion über den Aufbau von F .
F atomar : F ist in KNF und in DNF.
19
(1.) F = ¬G :
Nach I.V.: G ≡ G1 =
≡
¬
i=1
n
W
≡
i=1
n
W
≡
m
Wi
j=1
m
Vi
j=1
m
Vi
j=1
n
V
i=1
Also: F = ¬G ≡ ¬G1 = ¬
n
W
m
Wi
n
V
Li,j
¬Li,j
Li,j
Li,j
!!
m
Wi
i=1 j=1
!!
!!
Li,j
!!
(deMorgan)
!!
(DNF)
i=1 j=1
(
Ak , falls Li,j = ¬Ak
mit Li,j :=
¬Ak falls Li,j = Ak .
Analog: DNF für G1 ergibt KNF für F
(2.) F = (G ∨ H) : DNF für G und H ergeben DNF für F .
G≡
n
V
i=1
Gi und H =
Damit: F ≡
≡
n
V
k
V
!j=1
Gi ∨
i=1
n
k V
V
i=1
j=1
(3.) F = (G ∧ H): analog.
(KNF).
Hj
k
V
j=1
Hj
Gi ∨ Hj
!
!
(KNF)
2
20
Berechnung der DNF aus der Wahrheitstafel:
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
1
0
0
0
1
1
0
0
: ¬A ∧ ¬B ∧ ¬C
: A ∧ ¬B ∧ ¬C
: A ∧ ¬B ∧ C
F ≡ (¬A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ ¬C) ∨
(A ∧ ¬B ∧ C).
Bestimme minimale äquivalente DNF (oder KNF) zu
einer gegebenen Formel!
21
1.3 Hornformeln
Definition (Hornformeln)
Eine Formel F ist eine Hornformel, wenn F in KNF
ist, und wenn jede Disjunktion in F höchstens ein
positives Literal enthält.
Beispiele:
Hornformel:
F = (A ∨ ¬B) ∧ (¬C ∨ ¬A ∨ D) ∧ (¬A ∨ ¬B) ∧
D ∧ ¬E
Keine Hornformeln:
G = (A ∨ ¬B) ∧ (C ∨ ¬A ∨ D)
H = (A ∨ ¬B) ∨ (C ∧ ¬A)
Interpretation von Hornklauseln als Konjunktionen
von Implikationen:
F ≡ (B → A) ∧ (C ∧ A → D) ∧ (A ∧ B → 0) ∧
(1 → D) ∧ (E → 0)
wobei 0 unerfüllbare Formel
1 Tautologie
22
Erfüllbarkeitstest für Hornformeln:
Eingabe: Eine Hornformel F
1. Markiere alle Vorkommen von atomaren Formeln
A in F , für die F eine Teilformel der Form (1 → A)
enthält;
2. while es gibt in F eine Teilformel
G = (A1 ∧ . . . ∧ An → B) oder
G = (A1 ∧ . . . ∧ An → 0) mit n ≥ 1,
so dass A1, . . . , An markiert sind
(und B nicht markiert ist)
do
if G hat die erste Form then
markiere alle Vorkommen von B in F
else gib unerfüllbar“ aus und halte;
”
3. Gib erfüllbar“ aus und halte.
”
23
Satz
Der Markierungsalgorithmus für Hornformeln
ist korrekt. Er stoppt nach spätestens n
Markierungsschritten, wobei n die Anzahl der
in F vorkommenden verschiedenen atomaren
Formeln ist.
Beweis:
Sei F eine Hornformel.
24
Behauptung 1:
Ist F erfüllbar, so liefert der Algorithmus die korrekte
Antwort.
Beweis:
Sei B ein Modell für F = D1 ∧ D2 ∧ . . . ∧ Dm, d.h.
B(Di) = 1, i = 1, . . . , m.
Di = (1 → A):
B(A) = 1 und alle Vorkommen von A in F werden
in Schritt 1 markiert.
Di = (A1 ∧ . . . ∧ An → B):
Sind A1, . . . , An markiert, dann gilt B(Aj ) = 1,
j = 1, . . . , n. Wegen B(Di) = 1 folgt B(B) = 1,
und alle Vorkommen von B in F werden in Schritt 2
markiert.
Di = (A1 ∧ . . . ∧ An → 0):
Wegen B(Di ) = 1 muss B(Aj ) = 0 sein für ein
j ∈ {1, . . . , n}, d.h. Aj ist nicht markiert.
Also bricht der Algorithmus nicht in Schritt 2 ab. 2
25
Behauptung 2:
Liefert der Algorithmus die Antwort erfüllbar“, dann
”
ist
A(Ai) :=
(
1, falls Ai markiert wird
0, sonst
)
ein Modell für F .
Beweis:
Sei F = D1 ∧ D2 ∧ . . . ∧ Dm.
z.z.: A(F ) = 1.
Di = (1 → A):
A wird markiert in Schritt 1.
Also A(A) = 1 und damit A(Di) = 1.
Di = (A1 ∧ . . . ∧ An → B):
Sind A1, . . . , An markiert, dann wird auch B markiert. Es gelten A(Aj ) = 1 = A(B), 1 ≤ j ≤ n,
und damit A(Di) = 1.
Di = (A1 ∧ . . . ∧ An → B):
Ein Aj (1 ≤ j ≤ n) ist nicht markiert.
Dann A(Aj ) = 0 und damit A(Di) = 1.
Di = (A1 ∧ . . . ∧ An → 0):
Da der Algorithmus in Schritt 2 nicht abbricht, ist ein
Aj (1 ≤ j ≤ n) nicht markiert.
Also gilt A(Aj ) = 0 und damit A(Di) = 1.
2
26
Beispiel:
F = (¬A ∨ ¬B ∨ ¬D) ∧ ¬E ∧ (¬C ∨ A) ∧ C ∧ B ∧
(¬G ∨ D) ∧ G
6 verschiedene atomare Teilformeln:
26 = 64 Belegungen
F ≡ (A ∧ B ∧ D → 0) ∧ (E → 0) ∧
(C → A) ∧ (1 → C) ∧ (1 → B) ∧
(G → D) ∧ (1 → G)
Schritt 1: Markiere B, C und G:
(A ∧ B̂ ∧ D → 0) ∧ (E → 0) ∧ (Ĉ → A) ∧
(1 → Ĉ) ∧ (1 → B̂) ∧ (Ĝ → D) ∧ (1 → Ĝ)
Schritt 2: Markiere A und D:
(Â ∧ B̂ ∧ D̂ → 0) ∧ (E → 0) ∧ (Ĉ → Â) ∧
(1 → Ĉ) ∧ (1 → B̂) ∧ (Ĝ → D̂) ∧ (1 → Ĝ)
Ausgabe: unerfüllbar“.
”
27
1.4 Endlichkeitssatz
Satz (Endlichkeitssatz, compactness theorem)
Eine Menge M von Formeln ist erfüllbar genau dann,
wenn jede ihrer endlichen Teilmengen erfüllbar ist.
Beweis:
Ist M erfüllbar, dann gibt es ein Modell A für M.
Dann ist A auch ein Modell für jede (endliche)
Teilmenge von M.
Sei nun jede endliche Teilmenge von M erfüllbar.
z.z.: M hat ein Modell.
Für n ≥ 1 sei Mn die Menge der Formeln aus M,
die nur die atomaren Formeln A1, . . . , An enthaln
ten. Da es nur 22 verschiedene Wahrheitstafeln
n
für A1, . . . , An gibt, enthält Mn höchstens k ≤ 22
verschiedene Formeln F1, . . . , Fk , die paarweise nicht
zueinander äquivalent sind. Mn und {F1, . . . , Fk }
haben dieselben Modelle. Sei An ein Modell für Mn.
Dann ist An ein Modell für
n
S
i=1
Mi .
28
Konstruktion eines Modells für M:
Stufe 0: A := ∅
I := {1, 2, 3, . . .}
Stufe n > 0:
if es gibt unendlich viele Indizes i ∈ I mit Ai(An) = 1
then A := A ∪ {(An, 1)};
I := I − { i | Ai(An) 6= 1}
else A := A ∪ {(An, 0)};
I := I − { i | Ai(An) 6= 0}
end
Nach n Stufen hat A Definitionsbereich {A1, . . . , An}.
Behauptung:
A ist ein Modell für M.
Beweis:
Sei F ∈ M. Dann gibt es ein ` mit F ∈ M`. Also
sind A`, A`+1, . . . Modelle für F . In Stufe ` ist A auf
{A1, . . . , A`} festgelegt. Es gilt A(Aj ) = Ak (Aj )
für ein k ≥ ` und alle j = 1, . . . , `,
d.h. A(F ) = Ak (F ) = 1.
2
29
Bemerkung:
Obiger Beweis ist nicht konstruktiv.
Folgerung:
Eine Menge M von Formeln ist nicht erfüllbar genau
dann, wenn sie eine endliche Teilmenge enthält, die
nicht erfüllbar ist.
Dies liefert einen Test für die Unerfüllbarkeit:
M = {F1, F2, F3, . . .}
Für i = 1, 2, 3, . . . teste,
ob {F1, F2, . . . , Fi } unerfüllbar ist.
Dieser Test terminiert genau dann, wenn M unerfüllbar ist.
30
1.5 Resolution
Kalkül:
syntaktische Umformungsregeln
Resolutionskalkül: {F1, F2} → F3
Aufgabe: Unerfüllbarkeit einer Formelmenge
nachweisen!
R.Kalkül ist korrekt und vollständig.
Zur Erinnerung:
|= F gdw. ¬F ist unerfüllbar.
G ist eine Folgerung von {F1, . . . , Fk } gdw.
|= F1 ∧ F2 ∧ . . . ∧ Fk → G gdw.
F1 ∧ F2 ∧ . . . ∧ Fk ∧ ¬G ist unerfüllbar.
R.Kalkül ist anwendbar auf Formeln in KNF:
F = (L1,1 ∨ . . . ∨ L1,n1 ) ∧ . . . ∧ (Lk,1 ∨ . . . ∨ Lk,nk )
Schreibweise: Menge von Klauseln:
F = {{L1,1, . . . , L1,n1 }, . . . , {Lk,1, . . . , Lk,nk }}
31
Definition
Seien K1, K2 und R Klauseln. R heißt Resolvent
von K1 und K2, falls es ein Literal L gibt mit
L ∈ K1 und L ∈ K2, und
R = (K1 − {L}) ∪ (K2 − {L}).
Hierbei ist L :=
(
¬Ai, falls L = Ai,
Ai ,
falls L = ¬Ai.
Graphische Notation:
K2
K1C
CC
CC
CC
C
R
Leere Klausel:
{{
{{
{
{
{{
2
Beispiel:
{A3, ¬A4,NA1}
NNN
NNN
NNN
NNN
NNN
{A3, AI1}
II
II
II
II
II
II
{A4, ¬A1}
s
ss
ss
s
ss
ss
ss
s
s
{A3, A1, ¬A1}
pp
ppp
p
p
pp
ppp
p
p
pp
{A3, A1N }
NNN
NNN
NNN
NNN
NNN
{A3, ¬A1}
ss
ss
ss
s
s
ss
ss
s
s
{¬A3}
{A3}M
MM
MMM
MM
MMM
MMM
M
2
||
||
|
|
||
|
||
32
Lemma
Sind K1 und K2 Hornklauseln, dann ist jeder
Resolvent von K1 und K2 wieder eine Hornklausel.
Resolutions-Lemma
Sei F eine Formel in KNF. Ferner sei R ein Resolvent zweier Klauseln K1 und K2 in F . Dann sind F
und F ∪ {R} äquivalent.
Beweis:
Sei A eine zu F passende Belegung.
Gilt A |= F ∪ {R}, so folgt A |= F .
Umgekehrt, aus A |= F folgt A |= K1 und A |= K2.
Sei R = (K1 − {L}) ∪ (K2 − {L}).
(1.) A |= L : A(L) = 0 und A |= K2 implizieren
A |= K2 − {L}, d.h. A |= R.
(2.) A 6|= L : A |= K1 impliziert
A |= K1 − {L}, d.h. A |= R.
2
33
Definition
Sei F eine Klauselmenge.
Res(F ) := F ∪{ R | R ist Resolvent zweier Klauseln in F }.
Res0(F ) := F .
Resn+1(F ) := Res(Resn(F )) für alle n ≥ 0.
S
Resn(F )
Res∗(F ) :=
n≥0
Lemma
Sei F eine endliche Klauselmenge. Dann gibt es ein
k ≥ 0 mit Resk (F ) = Res∗(F ).
Beweis:
F enthält nur die atomaren Formeln A1, . . . , An.
Also kommen in Res∗(F ) nur Klauseln über A1, . . . , An
vor. Über A1, . . . , An gibt es nur 22n = 4n verschiedene Klauseln. Aus F = Res0(F ) ⊆ Res(F ) ⊆
Res2(F ) ⊆ . . . ⊆ Res∗(F ) sieht man, dass nur
endlich viele dieser Inklusionen echt sind. Ist aber
Resk (F ) = Resk+1(F ) für ein k, so ist die Folge
ab dieser Stelle stationär, d.h. Resk (F ) = Res∗(F ).
Also gilt k ≤ 4n .
2
34
Resolutionssatz (der Aussagenlogik)
Eine Klauselmenge F ist unerfüllbar gdw. 2 ∈ Res∗(F ).
Der Resolutionskalkül ist also widerlegungsvollständig
für die Aussagenlogik.
Beweis:
Korrektheit: Sei 2 ∈ Res∗(F ).
Resolutions-Lemma: F ≡ Res1(F ) ≡ Res2(F ) ≡
. . . ≡ Resn(F ) ≡ . . .. Es gibt nun ein n ≥ 0 mit
2 ∈ Resn(F ). Also gibt es K1, K2 ∈ Resn−1(F ),
so dass 2 ein Resolvent von K1 und K2 ist, d.h.
K1 = {L} und K2 = {L}. Dann ist {K1, K2}
unerfüllbar, d.h. Resn−1(F ) (und damit F ) ist unerfüllbar.
Vollständigkeit: Sei F unerfüllbar.
Wegen dem Endlichkeitssatz können wir o.B.d.A.
annehmen, dass F endlich ist.
z.z.: 2 ∈ Res∗(F ).
Beweis durch Induktion über die Anzahl n der in F
vorkommenden atomaren Formeln.
35
I.A.: n = 0 : Dann ist F = {2}.
I.V.: Für ein n ≥ 0 gelte, dass 2 ∈ Res∗(G) ist,
wenn G eine unerfüllbare Klauselmenge ist, in der
nur die atomaren Formeln A1, . . . , An vorkommen.
I.S.: F enthalte die atomaren Formeln A1, . . . , An, An+1.
Konstruiere zwei Klauselmengen F0 und F1 aus F :
F0: streiche alle Vorkommen von An+1 in F ,
streiche alle Klauseln in F , in denen ¬An+1
vorkommt.
F1: streiche alle Vorkommen von ¬An+1 in F ,
streiche alle Klauseln in F , in denen An+1
vorkommt.
Behauptung:
F0 und F1 sind unerfüllbar.
Beweis:
Sei A : {A1, . . . , An} → {0, 1} mit A |= F0.
Definiere A0 : {A1, . . . , An, An+1} → {0, 1}
durch A0(Ai) := A(Ai) (1 ≤ i ≤ n) und
A0(An+1) := 0.
Dann folgt A0 |= F : Widerspruch
Analog: F1 ist nicht erfüllbar.
2
36
Nach I.V.: 2 ∈ Res∗(F0) und 2 ∈ Res∗(F1).
Es gibt eine Folge von Klauseln K1, K2, . . . , Km
mit:
Km = 2, und für alle i = 1, 2, . . . , m gilt:
Ki ∈ F0, oder Ki ist Resolvent von Ka, Kb
mit a, b < i.
Ferner gibt es eine Folge von Klauseln K10 , K20 , . . . , Kt0
mit:
Kt0 = 2, und für alle j = 1, 2, . . . , t gilt:
Kj0 ∈ F1, oder Kj0 ist Resolvent von Kc0 , Kd0
mit c, d < j.
Die erste Folge liefert eine Folge K̂1, K̂2, . . . , K̂m
von Klauseln in Res∗(F ) mit K̂m = 2 oder K̂m =
{An+1}.
Die zweite Folge liefert eine Folge K̂10 , K̂20 , . . . , K̂t0
von Klauseln in Res∗(F ) mit K̂t0 = 2 oder K̂t0 =
{¬An+1}.
In jedem Fall folgt dann 2 ∈ Res∗(F ).
2
37
Resolutionsverfahren für Unerfüllbarkeitstest
einer KNF-Formel:
Eingabe: Eine Formel F in KNF.
Bilde aus F eine Klauselmenge F ;
repeat G := F ;
F := Res(F )
until (2 ∈ F ) or (F = G);
if 2 ∈ F then F ist unerfüllbar“
”
else F ist erfüllbar“.
”
Korrektheit: Resolutionssatz und -lemma.
Beispiel:
F = {{¬A, ¬B, ¬D}, {¬E}, {¬C, A}, {C}, {B},
{¬G, D}, {G}}
{¬G, 9D}
99
99
99
{G}
{D}=
==
==
==
{¬A, ¬B, ¬D}
ppp
ppp
p
p
ppp
{¬A, ¬B}
N
NNN
NNN
NNN
N
{B}
t
tt
tt
t
t
tt
{¬A}J
JJ
JJ
JJ
JJ
{¬C, A}
{¬C}
@
{C}
@@
@@
@@
2
38
Definition
Eine Deduktion (Herleitung, Beweis) der leeren
Klausel aus einer Klauselmenge F ist eine Folge
K1, K2, . . . , Km von Klauseln mit folgender Eigenschaft:
- Km = 2
- Für alle i = 1, . . . , m gilt: Ki ∈ F , oder Ki ist
Resolvent zweier Klauseln Ka, Kb mit a, b < i.
Bemerkung:
Eine Klauselmenge F ist unerfüllbar gdw. eine
Deduktion der leeren Klausel aus F existiert.
Beispiel:
F = {{A, B, ¬C}, {¬A}, {A, B, C, }, {A, ¬B}}
Eine Deduktion der leeren Klausel aus F :
K1
K2
K3
K4
K5
K6
K7
= {A, B, ¬C}
= {A, B, C}
= {A, B}
= {A, ¬B}
= {A}
= {¬A}
=2
(K1
(K2
(K3
(K4
(K5
(K6
(K7
∈ F)
∈ F)
: Resolvent von K1 und K2)
∈ F)
: Resolvent von K3 und K4)
∈ F)
: Resolvent von K5 und K6)
Graphische Darstellung: Resolutionsgraph
39
Beispiel:
F := {{¬A, B}, {¬B, C}, {A, ¬C}, {A, B, C}}
G := A ∧ B ∧ C
Behauptung:
G ist Folgerung von F .
z.z.: F ∪ {¬G} = F ∪ {¬A, ¬B, ¬C} ist
unerfüllbar.
{¬A, ¬B,J¬C}
JJ
JJ
JJ
JJ
JJ
JJ
J
{¬A, B}
H
{¬B, :C}
}
}}
}
}}
}}
}
}}
::
::
::
::
:
tt
tt
tt
t
t
tt
tt
t
t
==
==
==
==
=
{¬A} TTT
TTTT
TTTT
TTTT
TTTT
TTTT
TTT
{A, C}
=
{¬A, ¬B}
HH
HH
HH
HH
HH
HH
{A, B, C}
2
o
ooo
o
o
oo
ooo
o
o
oo
ooo
{A, ¬C}
}}
}}
}
}}
}}
}
}
{A}
40
Beispiel:
F := (¬B ∧ ¬C ∧ D) ∨ (¬B ∧ ¬D) ∨ (C ∧ D) ∨ B
Behauptung:
|= F .
z.z.: ¬F = {{B, C, ¬D}, {B, D}, {¬C, ¬D}, {¬B}}
ist unerfüllbar.
{B, C, ¬D}
A
AA
AA
AA
AA
AA
{B, D}
;
;;
;;
;;
;;
;
77
77
77
77
7
{B, C}
7
{¬C, ¬D}
}}
}}
}
}}
}}
}
}
{B, ¬C}
{B}=
{¬B}
==
==
==
==
=
2
z
zz
zz
z
zz
zz
z
z
41
Definition (Einheitsresolution)
Ein Resolvent zweier Klauseln K1, K2 darf nur dann
gebildet werden, wenn |K1| = 1 oder |K2| = 1 gilt.
Satz
Die Einheitsresolution ist vollständig für die Klasse
der Hornformeln, d.h. eine Menge H von Hornklauseln ist unerfüllbar genau dann, wenn 2 mittels Einheitsresolution aus H hergeleitet werden kann.
Bemerkung:
Für allgemeine Klauselmengen ist die Einheitsresolution nicht vollständig.
Beispiel:
F = {{A1, A2}, {¬A1, A2}, {¬A1, ¬A2}, {A1, ¬A2}}
Kein Einheitsresolutionsschritt ist anwendbar, aber:
{A1, ¬A
}
A 2
AA
AA
AA
AA
AA
{A1, A2}
{¬A1, A
}
D 2
DD
DD
DD
DD
DD
D
{A1} PP
PPP
PPP
PPP
PPP
PPP
P
2
l
lll
lll
l
l
l
lll
lll
l
l
ll
{¬A1, ¬A2}
w
ww
ww
w
ww
ww
w
w
{¬A1}
42
Herunterladen