11.11.2014 Aufrufe

Kapitel 1 - Fachgebiet Theoretische Informatik

Kapitel 1 - Fachgebiet Theoretische Informatik

Kapitel 1 - Fachgebiet Theoretische Informatik

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!