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