1 Aussagenlogik

Werbung
Logik für Informatiker
1
1.1
Wintersemester 2013/14
Aussagenlogik
Grundbegriffe der Aussagenlogik
atomare/elementare sprachliche Gebilde:
A = „Bayern München ist deutscher Fußballmeister“
B = „Würzburg ist eine große Stadt“
C = „Würzburg hat über 300.000 Einwohner“
Man nennt diese Gebilde auch atomare Formeln oder Atome.
Atome können – je nach Interpretation – wahr oder falsch sein.
In der Praxis hat man oft eine Standard–Interpretation im Sinne, von der wir
in der Logik aber absehen.
Prof. Dr. Dietmar Seipel
1
Logik für Informatiker
Wintersemester 2013/14
Wir bezeichnen alle denkbaren Atome mit Buchstaben A, B, C, . . . ,
oder durchnummeriert mit A1 , A2 , . . . , oder mit allgemeinen Zeichenketten
(’Erkältung’), ohne ihnen eine inhaltliche Interpretation zu geben.
Wir interessieren uns dafür, wie sich die Wahrheitswerte von komplexeren
Formeln aus den Wahrheitswerten der atomaren Formeln zusammensetzen:
F = A ∨ ¬B
Baumdarstellung:
A
B
?
¬
U ∨
?
F
Prof. Dr. Dietmar Seipel
2
Logik für Informatiker
Wintersemester 2013/14
Wahrheitswerte:
• 0 (falsch),
• 1 (wahr)
4 mögliche Interpretationen:
A
B
F
I1
0
0
1
I2
1
0
1
I3
0
1
0
I4
1
1
1
Für jede Belegung I (Interpretation) der beteiligten Atome A und B mit
Wahrheitswerten, ergibt sich der Wahrheitswert I(F ) für die Formel F .
Prof. Dr. Dietmar Seipel
3
Logik für Informatiker
Wintersemester 2013/14
Definition (Syntax der Aussagenlogik)
Aufbau (komplexer) Formeln
1. Alle atomaren Formeln sind Formeln.
Die Menge der atomaren Formeln bezeichnen wir mit A.
2. Für alle Formeln F und G sind auch
• die Konjunktion (F ∧ G) und
• die Disjunktion (F ∨ G)
Formeln. Die Klammen kann man meist weglassen.
3. Für jede Formel F ist auch die Negation ¬F wieder eine Formel.
Die Menge aller Formeln bezeichnen wir mit F. Es gilt A ⊆ F.
Eine Formel F , die als Teil einer Formel G auftritt, heißt Teilformel von G.
Prof. Dr. Dietmar Seipel
4
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Formeln, Teilformeln)
• G = (A ∨ ¬B)
hat die Teilformeln A, B, ¬B, G
• F = ((A ∧ B) ∨ (¬A ∧ ¬B))
hat die Teilformeln A, B, ¬A, ¬B, (A ∧ B), (¬A ∧ ¬B), F
Abkürzende Schreibweisen:
(F1 → F2 ) für (¬F1 ∨ F2 )
(Implikation)
(F1 ↔ F2 ) für ((F1 ∧ F2 ) ∨ (¬F1 ∧ ¬F2 ))
(Äquivalenz)
Wn
( i=1 Fi ) für (. . . ((F1 ∨ F2 ) ∨ F3 ) ∨ . . . ∨ Fn )
Vn
( i=1 Fi ) für (. . . ((F1 ∧ F2 ) ∧ F3 ) ∧ . . . ∧ Fn )
Prof. Dr. Dietmar Seipel
5
Logik für Informatiker
Wintersemester 2013/14
Wegen der Kommutativität und der Assoziativität der Junktoren ∧ und ∨,
kommt es auf die Reihenfolge und Klammerung in den folgenden Formeln
nicht an:
(F1 ∧ F2 ) ist gleichwertig zu (F2 ∧ F1 ),
(F1 ∨ F2 ) ist gleichwertig zu (F2 ∨ F1 ),
((F1 ∧ F2 ) ∧ F3 ) ist gleichwertig zu (F1 ∧ (F2 ∧ F3 )),
((F1 ∨ F2 ) ∨ F3 ) ist gleichwertig zu (F1 ∨ (F2 ∨ F3 )).
Es wird sich später zeigen, daß folgende Formeln unter jeder denkbaren
Interpretation I wahr sind; man nennt sie Tautologien:
((F1 ∧ F2 ) ↔ (F2 ∧ F1 )),
((F1 ∨ F2 ) ∨ F3 ) ↔ (F1 ∨ (F2 ∨ F3 )),
(¬(F1 ∧ F2 ) ↔ (¬F1 ∨ ¬F2 )).
Die letzte Formel entspricht einer der beiden Regeln von De Morgan.
Prof. Dr. Dietmar Seipel
6
Logik für Informatiker
Wintersemester 2013/14
Die beiden arithmetischen Operatoren Multiplikation und Addition sind
ebenfalls kommutativ und assoziativ, die Division allerdings nicht:
8 ÷ 4 = 2 6= 0.5 = 4 ÷ 8,
(8 ÷ 4) ÷ 2 = 1 6= 4 = 8 ÷ (4 ÷ 2).
Es gilt wie in der Arithmetik die Regel “Punkt vor Strich”.
Dabei entspricht die Konjunktion ∧ der Multiplikation (Punkt),
und die Disjunktion ∨ entspricht der Addition (Strich). Also gilt:
• F1 ∧ F2 ∨ F3 entspricht (F1 ∧ F2 ) ∨ F3 .
• Die andere Bindung F1 ∧ (F2 ∨ F3 ) erreicht man durch Klammerung.
Prof. Dr. Dietmar Seipel
7
Logik für Informatiker
Wintersemester 2013/14
Wahrheitswerte: 0,1
Boolesche Operatoren: ∧, ∨, ¬
Verknüpfungstafeln:
∧
0 1
∨
0 1
0
0 0
0
0 1
1
0 1
1
1 1
¬
0
1
1
0
abgeleitete Verknüpungstafeln:
Prof. Dr. Dietmar Seipel
F →G
0 1
F ↔G
0 1
0
1 1
0
1 0
1
0 1
1
0 1
8
Logik für Informatiker
Wintersemester 2013/14
Definition (Semantik der Aussagenlogik)
Eine Interpretation ist eine Abbildung
I : D → {0, 1},
die zunächst für eine Teilmenge D ⊆ A der atomaren Formeln definiert ist
(Belegung). Sie kann wie folgt zu einer (partiellen) Abbildung
I : F → {0, 1}
auf der Menge F aller Formeln erweitert werden:
1. Für atomare Formeln A ∈ D ist I bereits definiert.
2. Für Konjunktionen und Disjunktionen gilt
I((F ⊗ G)) = I(F ) ⊗ I(G),
für ⊗ ∈ {∧, ∨} (Homomorphismus).
Prof. Dr. Dietmar Seipel
9
Logik für Informatiker
Wintersemester 2013/14
D.h.
I((F ∧ G))
I((F ∨ G))
=
=

1,
0,

1,
0,
falls I(F ) = 1 und I(G) = 1
sonst
falls I(F ) = 1 oder I(G) = 1
sonst
3. Für eine Formel ¬F gilt I(¬F ) = ¬I(F ).
D.h.
I(¬F ) =

1
0,
falls I(F ) = 0
sonst
Induktive Definition:
„von einfachen Formeln auf komplexere Formeln gehen“
Prof. Dr. Dietmar Seipel
10
Logik für Informatiker
Wintersemester 2013/14
Eine Interpretation I heißt zu einer Formel F passend, falls I für alle in F
vorkommenden atomaren Formeln A definiert ist (d.h. A ∈ D).
Dabei ist die Erweiterung von I auch auf F definiert, d.h. I(F ) ∈ {0, 1}.
Ansonsten erklären wir I auf F als undefiniert.
Beispiel (Interpretationen)
Zur Formel
F = ¬((A ∧ B) ∨ C)
sind die folgenden beiden Interpretation I und J passend:
I
A
B
C
1
1
0
J
A B
C
D
1
0
1
1
I und J definieren alle in F vorkommenden Atome, nämlich A, B und C.
J definiert sogar noch ein weiteres Atom D.
Prof. Dr. Dietmar Seipel
11
Logik für Informatiker
Wintersemester 2013/14
Formel:
F = ¬((A ∧ B) ∨ C)
Baumdarstellung:
A
B
R
∧
R
Prof. Dr. Dietmar Seipel
C
∨
?
¬
?
F
12
Logik für Informatiker
Wintersemester 2013/14
Interpretation I:
I
A
B
C
1
1
0
Auswertung der Formel:
I(¬ ((A ∧ B) ∨ C)) =
I(A) = 1
¬ I((A ∧ B) ∨ C) =
¬ (I(A ∧ B) ∨ I(C)) =
¬ (((I(A) ∧ I(B)) ∨ I(C)) = 0.
| {z } | {z } | {z }
1
1
0
{z
}
|
1
{z
}
|
1
Prof. Dr. Dietmar Seipel
R
I(B) = 1
I(C) = 0
∧ 1
R
∨ 1
?
¬ 0
?
I(F ) = 0
13
Logik für Informatiker
Wintersemester 2013/14
Boolesche Funktion
Wenn man eine Formel F als boolesche Funktion f auffaßt, die zu
gegebenen Wahrheitswerten ai = I(Ai ) für die in F vorkommenden Atome
Ai einen Wahrheitswert berechnet, dann gilt
f (a1 , . . . , an ) = I(F ).
Also kann man z.B. für F = ¬ ((A ∧ B) ∨ C) schreiben:
f (a, b, c) = ¬ ((a ∧ b) ∨ c),
f (1, 1, 0) = ¬ ((1 ∧ 1) ∨ 0) = 0.
Die Interpretation I wird also zu einer Variablenbelegung (1, 1, 0):
I
Prof. Dr. Dietmar Seipel
A
B
C
1
1
0
14
Logik für Informatiker
Wintersemester 2013/14
Exkurs: Auswertung in P ROLOG
In der Logikprogrammierung werden auch die Rückgabewerte von
Berechnungen als Parameter der zugehörigen Prädikate behandelt.
Sei die Liste Assignment = [A1 =v1 ,...,An =vn ] eine Zuweisung
von Wahrheitswerten vi an die atomaren Formeln Ai , d.h. eine
Interpretation.
Für eine atomare Formel A wird der Wahrheitswert Value mittels
member(A=Value, Assignment) in Assignment nachgeschaut:
evaluate_boolean_formula(Assignment, A, Value) :boolean_formula_is_atomic(A),
member(A=Value, Assignment).
Mittels boolean_formula_is_atomic(A) wird getestet, ob A eine
atomare Formel ist, d.h. ohne Konjunktion, Disjunktion bzw. Negation.
Prof. Dr. Dietmar Seipel
15
Logik für Informatiker
Wintersemester 2013/14
Berechnungsbeispiel mit Trace in P ROLOG:
[trace] ?- Formula = a,
Assignment = [a=1, b=0],
eval(Assignment, Formula, Value).
Call: (8)
Call: (9)
Exit: (9)
Call: (9)
Exit: (9)
Exit: (8)
Value = 1.
eval([a=1, b=0], a, Value) ? creep
boolean_formula_is_atomic(a) ? skip
boolean_formula_is_atomic(a) ? creep
member(a=Value, [a=1, b=0]) ? skip
member(a=1, [a=1, b=0]) ? skip
eval([a=1, b=0], a, 1) ? skip
evaluate_boolean_formula wurde als eval abgekürzt.
Prof. Dr. Dietmar Seipel
16
Logik für Informatiker
Wintersemester 2013/14
Die Konjunktion in P ROLOG
/* boolean_and(U, V, W) <W is derived as the boolean conjunction
of the truth values U and V. */
boolean_and(0,
boolean_and(0,
boolean_and(1,
boolean_and(1,
0,
1,
0,
1,
0).
0).
0).
1).
Das Prädikat boolean_and/3 ist hier als Wahrheitswertetabelle
realisiert.
Prof. Dr. Dietmar Seipel
17
Logik für Informatiker
Wintersemester 2013/14
Berechnungsbeispiel:
?- boolean_and(1, 0, W).
W = 0 .
Man kann die Berechnung sogar umkehren, und nach allen Paaren von
Wahrheitswerten U und V fragen, deren Konjunktion 0 ist:
?- boolean_and(U, V, 0).
U = 0, V = 0 ;
U = 0, V = 1 ;
U = 1, V = 0
Dabei wird durch die Eingabe von ; hinter einer Lösung die Berechnung
der nächsten Lösung angestoßen.
Prof. Dr. Dietmar Seipel
18
Logik für Informatiker
Wintersemester 2013/14
Auswertung komplexer Formeln
Der Wahrheitswert einer Konjunktion (A,B) ergibt sich durch
Konjunktion der Wahrheitswerte der beiden Glieder A und B:
evaluate_boolean_formula(
Assignment, (A,B), Value) :evaluate_boolean_formula(Assignment, A, V_A),
evaluate_boolean_formula(Assignment, B, V_B),
boolean_and(V_A, V_B, Value).
Zunächst werden die Wahrheitswerte V_A und V_B der beiden Glieder A
und B berechnet, danach deren Konjunktion.
Prof. Dr. Dietmar Seipel
19
Logik für Informatiker
Wintersemester 2013/14
Im D DK ist auch folgende funktionale Schreibweise möglich:
evaluate_boolean_formula(
Assignment, (A,B), Value) :Value <= boolean_and(
evaluate_boolean_formula(Assignment, A),
evaluate_boolean_formula(Assignment, B) ).
Jetzt wird direkt ein verschachtelter Ausdruck ausgewertet, anstelle mittels
evaluate_boolean_formula/3 (unten abgekürzt: eval ) vorher die
Zwischenresultate V_A und V_B zu erzeugen. Zugehörige Umformung:
eval (I, A, VA ), eval (I, B, VB ), and(VA , VB , V ) 7→
VA <= eval (I, A), VB <= eval (I, B), V <= and (VA , VB ) 7→
V <= and(eval (I, A), eval(I, B)).
I steht für Assignment und V für Value.
Prof. Dr. Dietmar Seipel
20
Logik für Informatiker
Wintersemester 2013/14
Der Wahrheitswert einer Disjunktion (A;B) ist 1, falls der Wahrheitswert
von mindestens einem der beiden Glieder A und B gleich 1 ist, sonst ist
er 0:
evaluate_boolean_formula(
Assignment, (A;B), Value) :evaluate_boolean_formula(Assignment, A, V_A),
evaluate_boolean_formula(Assignment, B, V_B),
boolean_or(V_A, V_B, Value).
boolean_or(0,
boolean_or(0,
boolean_or(1,
boolean_or(1,
Prof. Dr. Dietmar Seipel
0,
1,
0,
1,
0).
1).
1).
1).
21
Logik für Informatiker
Wintersemester 2013/14
Der Wahrheitswert einer Negation -A ergibt sich durch Negation des
Wahrheitswerts von A.
evaluate_boolean_formula(Assignment, -A, Value) :evaluate_boolean_formula(Assignment, A, V_A),
boolean_not(V_A, Value).
boolean_not(0, 1).
boolean_not(1, 0).
Prof. Dr. Dietmar Seipel
22
Logik für Informatiker
Wintersemester 2013/14
Berechnungsbeispiel:
?- Formula = -((a,b;c)),
Assignment = [a=1, b=1, c=0],
evaluate_boolean_formula(
Assignment, Formula, Value).
Value = 0
Es gilt “Punkt vor Strich”, d.h.
-((a,b;c)) bedeutet -((a,b);c) bzw. ¬((a ∧ b) ∨ c).
Die zusätzliche äußere Klammerung in -((a,b;c)) ist erforderlich.
In der ungeklammerten Formel -(a,b;c) faßt P ROLOG das - als binären
Operator mit den zwei Argumenten a und b;c auf.
Prof. Dr. Dietmar Seipel
23
Logik für Informatiker
Wintersemester 2013/14
Trace in P ROLOG:
?- trace.
true.
[trace]
Call:
Call:
Call:
Exit:
Call:
Exit:
Call:
Exit:
Exit:
Prof. Dr. Dietmar Seipel
?- eval([a=1, b=1, c=0], -((a,b;c)), Value).
(7)
(8)
(9)
(9)
(9)
(9)
(9)
(9)
(8)
eval(..., - (a,b;c), _G402) ? creep
eval(..., (a,b;c), _G573) ? creep
eval(..., (a,b), _G573) ? skip
eval(..., (a,b), 1) ? creep
eval(..., c, _G579) ? skip
eval(..., c, 0) ? creep
or(1, 0, _G582) ? skip
or(1, 0, 1) ? creep
eval(..., (a,b;c), 1) ? creep
24
Logik für Informatiker
Wintersemester 2013/14
Call: (8) not(1, _G402) ? skip
Exit: (8) not(1, 0) ? creep
Exit: (7) eval(..., - (a,b;c), 0) ? creep
Value = 0 .
[trace]
?-
Aus Platzgründen haben wir die Prädikatensymbole abgekürzt und die
Variablenbelegung [a=1, b=1, c=0] in eval/3 mittels ...
angedeutet.
Prof. Dr. Dietmar Seipel
25
Logik für Informatiker
Wintersemester 2013/14
Modelle
Definition (Modelle)
Sei F eine Formel und I : D → {0, 1} eine Interpretation.
1. I ist ein Modell von (für) F , falls
• I zu F passend ist und
• I(F ) = 1 gilt.
Schreibweise: I |= F .
Dann sagen wir auch: F gilt unter (in, bezüglich) I.
2. Andernfalls ist I kein Modell von (für) F .
Schreibweise: I 6|= F .
Dann sagen wir auch: F gilt unter I nicht.
Prof. Dr. Dietmar Seipel
26
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Modelle)
Die folgende Formel F repräsentiert des exklusive Oder:
F = (A ∨ B) ∧ (¬A ∨ ¬B) ≡ A ⊕ B.
Interpretationen:
I1
A B
0
1
I2
A B
1
1
I1 und I2 sind passend zu F , aber nur I1 ist ein Modell für F :
I1 F, I2 2 F .
Es gibt hier noch ein weiteres Modell I3 für F :
I3
A B
1
Prof. Dr. Dietmar Seipel
0
27
Logik für Informatiker
Wintersemester 2013/14
Man kann alle möglichen passenden Interpretationen über den in F
vorkommenden atomaren Formeln in einer Wahrheitswertetafel
zusammenstellen:
A B
F
I4
0
0
0
I1
0
1
1
I3
1
0
1
I2
1
1
0
In der Spalte für F wird der Wahrheitswert I(F ) angegeben.
I ist ein Modell für F , g.d.w. I(F ) = 1 ist.
Prof. Dr. Dietmar Seipel
28
Logik für Informatiker
Wintersemester 2013/14
Definition (Erfüllbarkeit, Gültigkeit)
1. Eine Formel F heißt erfüllbar, falls F mindestens ein Modell besitzt,
andernfalls unerfüllbar.
2. Eine Menge M von Formeln heißt erfüllbar, falls es eine Interpretation
I gibt, welche für alle Formeln F ∈ M ein Modell ist:
∃(I : D → {0, 1}) : ∀F ∈ M : I F
Insbesondere muß I natürlich auch passend sein zu allen F ∈ M .
3. Eine Formel F heißt gültig (oder Tautologie), falls jede zu F passende
Interpretation ein Modell für F ist.
Dann schreiben wir auch F ; anderenfalls 2 F .
Prof. Dr. Dietmar Seipel
29
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Erfüllbarkeit, Gültigkeit)
1. Die Formel F = A ∨ B ist erfüllbar:
A B
F
0
0
0
0
1
1
1
0
1
1
1
1
2. Die Formel G = A ∨ ¬A ist gültig (Tautologie);
die Formel H = ¬G = ¬(A ∨ ¬A) ist unerfüllbar:
Prof. Dr. Dietmar Seipel
A G
H
0
1
0
1
1
0
30
Logik für Informatiker
Wintersemester 2013/14
Die beiden passenden Interpretationen I1 und I2 erfüllen G:
I1 G, I2 G.
I1
A
I2
0
A
1
3. Die zu H äquivalente Formel H ′ = ¬A ∧ A ist ebenfalls unerfüllbar.
4. Die Formel F = (A ∨ B) ∧ (¬A ∨ ¬B) zum exklusiven Oder ist
erfüllbar, aber keine Tautologie:
Prof. Dr. Dietmar Seipel
A B
F
0
0
0
0
1
1
1
0
1
1
1
0
31
Logik für Informatiker
Wintersemester 2013/14
Zum Feststellen der Erfüllbarkeit bzw. Gültigkeit einer Formel F genügt es,
die endlich vielen Interpretationen, die genau auf den in F vorkommenden
atomaren Formeln definiert sind, zu testen.
Falls die Formel n verschiedene atomare Formeln enthällt, so sind dies
genau 2n Interpretationen.
Wahrheitswertetafeln:
F1 = A → B,
F2 = (A ∧ (A → B)) → B,
F3 = A ∨ ¬A,
F4 = (A ∧ B) ∨ (A ∧ ¬C).
F2 und F3 sind offenbar Tautologien.
Prof. Dr. Dietmar Seipel
32
Logik für Informatiker
Wintersemester 2013/14
A B
F1
A ∧ F1
F2
A B
C
F4
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
A F3
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
Offenbar gilt: I(F1 ) = I(A → B) = 1, genau dann, wenn I(A) ≤ I(B).
Prof. Dr. Dietmar Seipel
33
Logik für Informatiker
Wintersemester 2013/14
Exkurs: Berechnung von Wahrheitswertetafeln in P ROLOG
?- Formula = -((a,b;c)),
Atoms = [a,b,c],
boolean_formula_to_truth_table(Formula, Atoms).
Mittels boolean_formula_to_models(Formula, Atoms,
Models) werden nur die Modelle ausgegeben.
Prof. Dr. Dietmar Seipel
34
Logik für Informatiker
Wintersemester 2013/14
Satz (Tautologie, Erfüllbarkeit)
Eine Formel F ist genau dann eine Tautologie, wenn ¬F unerfüllbar ist.
Beweis:
F ist eine Tautologie:
⇔ jede zu F passende Interpretation ist ein Modell für F
⇔ jede zu ¬F passende Interpretation ist kein Modell für ¬F
⇔ ¬F besitzt kein Modell
⇔ ¬F ist unerfüllbar
Prof. Dr. Dietmar Seipel
35
Logik für Informatiker
1.2
Wintersemester 2013/14
Äquivalenz und Normalformen
Im folgenden lassen wir – falls möglich – die äußersten Klammern einer
Formel meist weg.
Definition (F ≡ G)
Zwei Formeln F und G heißen (semantisch) äquivalent, falls für alle
Interpretation I,
• die sowohl für F als auch für G passend sind,
• I(F ) = I(G) gilt.
Beispiel (Äquivalenz)
1. A ∨ B ≡ B ∨ A
(Kommutativität)
2. A ∨ ¬A ≡ (A ∧ (A → B)) → B
Prof. Dr. Dietmar Seipel
(beides Tautologien)
36
Logik für Informatiker
Wintersemester 2013/14
Ersetzbarkeit
Sei F ≡ F ′ , und H eine Formel, in der F als Teilformel auftritt.
Sei H ′ die Formel, welche man durch Ersetzen aller Vorkommen von F in
H durch F ′ erhält.
Dann gilt H ≡ H ′ .
Beispiel (Ersetzbarkeit)
Aus F ≡ F ′ folgt
F ∧ G ≡ F ′ ∧ G,
(F ∧ G) → K ≡ (F ′ ∧ G) → K.
Prof. Dr. Dietmar Seipel
37
Logik für Informatiker
Wintersemester 2013/14
Satz (Äquivalenz)
Indempotenz
Absorption
Kommutativität
F ⊗ F ≡ F , für ⊗ ∈ {∧, ∨},
F ∧ (F ∨ G) ≡ F ≡ F ∨ (F ∧ G),
F ⊗ G ≡ G ⊗ F , für ⊗ ∈ {∧, ∨},
Assoziativität
(F ⊗ G) ⊗ H ≡ F ⊗ (G ⊗ H), für ⊗ ∈ {∧, ∨},
Distributivität
F ∧ (G ∨ H) ≡ (F ∧ G) ∨ (F ∧ H),
F ∨ (G ∧ H) ≡ (F ∨ G) ∧ (F ∨ H),
Prof. Dr. Dietmar Seipel
38
Logik für Informatiker
Wintersemester 2013/14
Doppelnegation
De Morgan–Regeln
¬(¬F ) ≡ F ,
¬(F ∧ G) ≡ ¬F ∨ ¬G,
¬(F ∨ G) ≡ ¬F ∧ ¬G,
Resolution
Tautologie–Regeln
F ≡ (F ∨ G) ∧ (F ∨ ¬G),
F ∨ G ≡ F , F ∧ G ≡ G,
falls F eine Tautologie ist.
Unerfüllbarkeits–Regeln
F ∨ G ≡ G, F ∧ G ≡ F ,
falls F unerfüllbar ist.
Prof. Dr. Dietmar Seipel
39
Logik für Informatiker
Wintersemester 2013/14
Beweis:
Alle Äquivalenzen können leicht mittels Wahrheitstafeln nachgeprüft
werden:
F
G F ∧G
¬(F ∧ G)
¬F
0
0
0
¬G ¬F ∨ ¬G ¬¬F
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
Man erkennt:
(DM) ¬(F ∧ G) ≡ ¬F ∨ ¬G,
(DN) ¬(¬F ) ≡ F.
Die duale Aussage von (DM) zeigen wir durch Einsetzen von ¬F ′ für F
und von ¬G′ für G und anschließende Doppelnegation.
Prof. Dr. Dietmar Seipel
40
Logik für Informatiker
Wintersemester 2013/14
Aufgrund
• der ersten De Morgan–Regel (DM),
• der Regel für Doppelnegation (DN), und
• der Regel zur Ersetzbarkeit (E)
erhalten wir nun folgendes:
¬F ′ ∧ ¬G′
DN
¬¬(¬F ′ ∧ ¬G′ )
DM
′
′
∨
¬¬G
¬(¬¬F
| {z } | {z })
≡
≡
≡ F′
DN
E
≡
≡ G′
DN
¬(F ′ ∨ G′ )
u.s.w.
Prof. Dr. Dietmar Seipel
41
Logik für Informatiker
Wintersemester 2013/14
Bemerkungen:
(i) Das Assoziativgesetz erlaubt es bei mehrgliedrigen Konjunktionen
bzw. Disjunktionen auf die Klammerung zu verzichten: z.B. für ∧:
A ∧ B ∧ C ∧ D ≡ (A ∧ B) ∧ (C ∧ D) ≡ A ∧ (B ∧ C) ∧ D ≡
A ∧ (B ∧ (C ∧ D)) ≡ ((A ∧ B) ∧ C) ∧ D ≡ (A ∧ (B ∧ C)) ∧ D
(ii) Aufgrund der Kommutativität wären sogar beliebige Permutationen
von A, B, C, D möglich:
A∧ B ∧ C ∧ D ≡ B ∧ D ∧ C ∧ A ≡ ...
(iii) Die Distributivität gilt hier symmetrisch für ∧ und ∨, im Gegensatz zu
„ · “ und „+“:
a · (b + c) = a · b + a · c.
Vertauscht mann · und +, so gilt die arithmetische Regel nicht.
Prof. Dr. Dietmar Seipel
42
Logik für Informatiker
Wintersemester 2013/14
Definition (Literal)
Sei A eine atomare Formel.
1. Dann sind A (positives Literal) und seine Negation ¬A (negatives
Literal) Literale.
2. Man nennt die beiden Literale A und ¬A komplementär.
Seien die Li , mit 1 ≤ i ≤ m, Literale.
Vm
1. Die Konjunktion i=1 Li ist unerfüllbar,
falls sie zwei komplementäre Literale enthält.
V0
2. Die leere Konjunktion K = i=1 Li ist eine Tautologie.
Wm
3. Die Disjunktion i=1 Li ist eine Tautologie,
falls sie zwei komplementäre Literale enthält.
W0
4. Die leere Disjunktion D = i=1 Li ist unerfüllbar.
Prof. Dr. Dietmar Seipel
43
Logik für Informatiker
Wintersemester 2013/14
Normalformen
Definition (Normalformen)
Gegeben seien Literale Lij , für 1 ≤ i ≤ m, 1 ≤ j ≤ ni .
1. Eine Formel F ist in konjunktiver Normalform (KNF), falls sie eine
Konjunktion von Disjunktionen ist:
Vm Wni
F = i=1 ( j=1 Lij ).
2. Eine Formel F ist in disjunktiver Normalform (DNF), falls sie eine
Disjunktion von Konjunktionen ist:
Wm Vni
F = i=1 ( j=1 Lij ).
Falls F eine Formel über n Atomen ist, so genügt es ni ≤ n zu wählen.
Andernfalls sind die Teil–Disjunktionen/Konjunktionen redundant,
da sie komplementäre Literale enthalten.
Prof. Dr. Dietmar Seipel
44
Logik für Informatiker
Wintersemester 2013/14
Falls zwei Literale innerhalb derselben
Wni
1. Disjunktion Di = j=1 Lij komplementär sind, so kann man die
Vm Wni
Tautologie Di aus F = i=1 ( j=1 Lij ) entfernen.
Vni
2. Konjunktion Ki = j=1 Lij komplementär sind, so kann man die
Wm Vni
unerfüllbare Teilformel Ki aus F = i=1 ( j=1 Lij ) entfernen.
In beiden Fällen erhält man eine äquivalente, kürzere Formel F ′ .
Beispiel (Komplementäre Literale in Normalform)
(A ∨ B) ∧ (B ∨ ¬B) ≡ (A ∨ B).
(A ∧ B) ∨ (B ∧ ¬B) ≡ (A ∧ B).
Prof. Dr. Dietmar Seipel
45
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Normalformen)
F = ¬(A ∧ (B ∨ C))
Prof. Dr. Dietmar Seipel
A B C
F
0 0 0
1
0 0 1
1
0 1 0
1
0 1 1
1
1 0 0
1
1 0 1
0
1 1 0
0
1 1 1
0
−→
in DNF: ¬A ∧ ¬B ∧ C
−→
in KNF: ¬A ∨ B ∨ ¬C
46
Logik für Informatiker
Wintersemester 2013/14
KNF:
FK = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C)
DNF:
FD = (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ ¬C) ∨
(¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C)
DNF und KNF sind nicht eindeutig:
Durch Umformung von F erhalten wir hier eine weitere, kompaktere zu F
äquivalente DNF und KNF:
F = ¬(A ∧ (B ∨ C)) ≡ ¬A ∨ ¬(B ∨ C)
≡ ¬A ∨ (¬B ∧ ¬C) ≡ (¬A ∨ ¬B) ∧ (¬A ∨ ¬C)
|
{z
}
{z
}
|
DNF
Prof. Dr. Dietmar Seipel
KNF
47
Logik für Informatiker
Wintersemester 2013/14
Die KNF–Darstellung aufgrund der Nullstellen erinnert an die
Polynomdarstellung aus der Analysis.
Ein Polynom vom Grad 2 mit den zwei Nullstellen 2 und 3 und dem
führenden Koeffizienten 1 hat die Darstellung
p(X) = (X − 2) · (X − 3).
Durch die Produktdarstellung wird erreicht, daß das Polynom genau für die
beiden Nullstellen den Wert 0 hat, denn ein Produkt ist genau dann 0, wenn
einer der beiden Faktoren 0 ist.
Auch wenn das Polynom keine zwei Nullstellen hat, kann man eine
ähnliche Überlegung anstellen.
Eine Analogie zur DNF–Darstellung kann man nicht so leicht ziehen.
Prof. Dr. Dietmar Seipel
48
Logik für Informatiker
Wintersemester 2013/14
Wahrheitswertetabelle → Normalformen
Zwei Formeln F und G sind (semantisch) äquivalent genau dann, wenn sie
dieselben Wahrheitswertetabellen haben.
Da es nur zwei Wahrheitswerte gibt, genügt es bereits, wenn F und G
dieselben Einsstellen haben:
I(F ) = 1 ⇐⇒ I(G) = 1.
Ebenso genügt es, wenn F und G dieselben Nullstellen haben:
I(F ) = 0 ⇐⇒ I(G) = 0.
Dies muß für alle zu beiden Formeln passenden Interpretationen I gelten.
Prof. Dr. Dietmar Seipel
49
Logik für Informatiker
Wintersemester 2013/14
Gegeben sei eine Formel F über n Atomen A1 , . . . , An .
DNF:
Ist I eine Interpretation mit I(F ) = 1, so bilden wir eine Konjunktion
αI = αI1 ∧ αI2 ∧ . . . ∧ αIn
der Länge n mit

A ,
i
αIi =
¬Ai ,
falls I(Ai ) = 1
falls I(Ai ) = 0
Dann ist FD eine DNF für F :
W
FD =
αI .
I: I(F )=1
Für eine Interpretation J ist J(αI ) = 1 genau dann, wenn J = I ist.
Also haben F und FD dieselben Einsstellen, und es gilt F ≡ FD .
Prof. Dr. Dietmar Seipel
50
Logik für Informatiker
Wintersemester 2013/14
Aus den Einsstellen von F bildet man die Konjunktionen αI der DNF:
α(0,0,0)
α(0,0,1)
α(0,1,0)
α(0,1,1)
α(1,0,0)
=
=
=
=
=
¬A ∧ ¬B ∧ ¬C,
¬A ∧ ¬B ∧ C,
¬A ∧ B ∧ ¬C,
¬A ∧ B ∧ C,
A ∧ ¬B ∧ ¬C.
Wir repräsentieren hier eine Interpretation I durch ein Tupel von
Wahrheitswerten.
DNF:
FD = α(0,0,0) ∨ α(0,0,1) ∨ α(0,1,0) ∨ α(0,1,1) ∨ α(1,0,0)
= (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ ¬C) ∨
(¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C)
Prof. Dr. Dietmar Seipel
51
Logik für Informatiker
Wintersemester 2013/14
KNF:
Ist I eine Interpretation mit I(F ) = 0, so bilden wir eine Disjunktion
βI = βI1 ∨ βI2 ∨ . . . ∨ βIn
der Länge n mit

¬A ,
i
i
βI =
Ai ,
falls I(Ai ) = 1
falls I(Ai ) = 0
Dann ist FK eine KNF für F :
V
FK =
βI .
I: I(F )=0
Für eine Interpretation J ist J(βI ) = 0 genau dann, wenn J = I ist.
Also haben F und FK dieselben Nullstellen, und es gilt F ≡ FK .
Prof. Dr. Dietmar Seipel
52
Logik für Informatiker
Wintersemester 2013/14
Aus den Nullstellen von F bildet man die Disjunktionen βI der KNF:
β(1,0,1) = ¬A ∨ B ∨ ¬C,
β(1,1,0) = ¬A ∨ ¬B ∨ C,
β(1,1,1) = ¬A ∨ ¬B ∨ ¬C.
Wir repräsentieren hier eine Interpretation I durch ein Tupel von
Wahrheitswerten.
KNF:
FK = β(1,0,1) ∧ β(1,1,0) ∧ β(1,1,1)
= (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C)
Prof. Dr. Dietmar Seipel
53
Logik für Informatiker
Wintersemester 2013/14
Eindeutigkeit
Die DNF/KNF, in der jede Konjunktion/Disjunktion die Länge n hat und
jedes Atom Ai genau einmal (als Ai oder als ¬Ai ) enthält, ist eindeutig –
abgesehen von der Reihenfolge der Teilformeln (Kommutativität).
FD = (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C) ∨ (¬A ∧ B ∧ ¬C) ∨
(¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C)
≡ (¬A ∧ C ∧ ¬B) ∨ (¬A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ B ∧ ¬C) ∨
(¬A ∧ B ∧ C) ∨ (A ∧ ¬B ∧ ¬C),
FK = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C)
≡ (¬A ∨ C ∨ ¬B) ∧ (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ ¬C).
Konjunktionen/Disjunktionen mit mehr als n Atomen müssen eines der
Atome entweder doppelt oder komplementär enthalten. Somit können sie
verkürzt bzw. ganz weggelassen werden.
Prof. Dr. Dietmar Seipel
54
Logik für Informatiker
Wintersemester 2013/14
Aus einer KNF GK für eine Formel G kann man eine DNF für die Formel
F = ¬G bilden:
Vn Wmi
GK = i=1 j=1 Lij
Dann erhalten wir aus GK mittels De Morgan (DM) eine DNF für F :
DM
F = ¬G ≡ ¬GK ≡
n
_
i=1
mit Lij ≡ ¬Lij :

A ,
k
Lij =
¬Ak ,
¬
mi
_
j=1
DM
Lij ≡
mi
n ^
_
i=1 j=1
¬Lij ≡
mi
n ^
_
Lij
i=1 j=1
falls Lij = ¬Ak
falls Lij = Ak
Analog erhält man aus einer DNF GD für G eine KNF für F = ¬G.
Prof. Dr. Dietmar Seipel
55
Logik für Informatiker
Wintersemester 2013/14
Für die boolesche Formel
F = ¬(A ∨ B)
zum N OR ist G = A ∨ B bereits in DNF.
Mittels De Morgan (DM) kann man daraus eine KNF für F gewinnen:
DM
F = ¬G ≡ ¬A ∧ ¬B.
Diese kann man aufgrund der Resolutions–Regel noch erweitern, so daß
jedes Atom in jeder Disjunktion vorkommt:
• Aus ¬A erhält man durch Erweiterung um B bzw. ¬B die beiden
Disjunktionen ¬A ∨ B und ¬A ∨ ¬B.
• Aus ¬B erhält man durch Erweiterung um A bzw. ¬A die beiden
Disjunktionen A ∨ ¬B und ¬A ∨ ¬B.
Prof. Dr. Dietmar Seipel
56
Logik für Informatiker
Wintersemester 2013/14
Aufgrund der Idempotenz können wir eine der beiden doppelten
Disjunktionen ¬A ∨ ¬B eliminieren und erhalten folgende weitere KNF:
F ≡ (¬A ∨ B) ∧ (¬A ∨ ¬B) ∧ (A ∨ ¬B).
Man erkennt, daß diese genau die drei Nullstellen von F widerspiegelt:
A B
G F
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
Wir haben also dasselbe Resultat erhalten wie bei der Konstruktion
aufgrund der Wahrheitswertetabelle. Es gilt β(1,0) = ¬A ∨ B,
β(1,1) = ¬A ∨ ¬B und β(0,1) = A ∨ ¬B.
Prof. Dr. Dietmar Seipel
57
Logik für Informatiker
Wintersemester 2013/14
Existenz und Konstruktion der Normalformen
Durch die obige Konstruktion aus den Konjunktionen αI bzw. den
Disjunktionen βI ist die Existenz einer DNF bzw. KNF für jede Formel F
eigentlich bereits gezeigt.
Der folgende Satz zeigt dies noch einmal, und zwar durch strukturelle
Induktion über den Aufbau der Formel F .
Dabei wird gezeigt, wie man die Normalformen für
1. Negationen,
2. Disjunktionen und
3. Konjunktionen
aus den Normalformen ihrer Bestandteile konstruieren kann.
Prof. Dr. Dietmar Seipel
58
Logik für Informatiker
Wintersemester 2013/14
Satz (Normalformen)
Für jede Formel F gibt es eine äquivalente Formel F ′ in KNF bzw. DNF.
Beweis: Strukturelle Induktion über den Aufbau der Formel F
Induktionsanfang:
Falls F eine atomare Formel ist, so ist F bereits in KNF bzw. in DNF.
Induktionsschritt:
1. Sei F = ¬G eine Negation:
Nach Induktionsannahme gibt es zu G äquivalente Formeln GK in
KNF und GD in DNF.
Wie bereits gezeigt kann man aus GK / GD eine zu F äquivalente
Formel in DNF / KNF bilden.
Prof. Dr. Dietmar Seipel
59
Logik für Informatiker
Wintersemester 2013/14
2. Sei F = G ∨ H eine Disjunktion:
Nach Induktionsannahme gibt es zu G, H äquivalente Formeln
• GK und HK in KNF und
• GD und HD in DNF
der folgenden Form:
Vn
GK = i=1 βi ,
Vn′
HK = j=1 βj′ ,
GD =
HD =
Dabei sind
Wm
i=1 αi ,
Wm′ ′
j=1 αj .
• βi , βj′ Disjunktionen und
• αi , αj′ Konjunktionen
von Literalen.
Prof. Dr. Dietmar Seipel
60
Logik für Informatiker
Wintersemester 2013/14
Wir erhalten nach dem Distributivgesetz (D) eine KNF:
F
=
=
D
≡
=
D
≡
G ∨ H ≡ GK ∨ HK
Vn′ ′
GK ∨ j=1 βj
Vn′
′
)
(G
∨
β
K
j
j=1
Vn′ Vn
′
((
β
)
∨
β
i
j)
j=1
i=1
Vn′ Vn
′
j=1 i=1 (βi ∨ βj )
Dies ist eine KNF, da die βi ∨ βj′ Disjunktionen von Literalen sind.
Diese KNF enthält m · n Disjunktionen von Literalen. In der Praxis
kann man diese Darstellung oft vereinfachen.
Prof. Dr. Dietmar Seipel
61
Logik für Informatiker
Wintersemester 2013/14
Wir erhalten durch disjunktive Verkettung eine DNF:
F
=
=
=
G ∨ H ≡ GD ∨ HD
Wm
Wm′ ′
( i=1 αi ) ∨ ( j=1 αj )
Wm+m′
αi
i=1
Dabei setzen wir αm+j = αj′ , für 1 ≤ j ≤ m′ .
Dies eine DNF, da die αi Konjunktionen von Literalen sind.
3. Der Induktionsschritt für eine Konjunktion F = G ∧ H erfolgt analog
zur Disjunktion.
Prof. Dr. Dietmar Seipel
62
Logik für Informatiker
Wintersemester 2013/14
Beispiel (DNF, KNF)
Für die folgende Formel F ist G = A und H = B ∧ C:
F = A ∨ (B ∧ C).
F ist bereits in DNF. Nach unserem Schema erhalten wir genau diese DNF
durch disjunktive Verkettung der zwei DNFs
• GD = α1 = A und
• HD = α1′ = B ∧ C.
Eine KNF für F erhalten wir nach dem Distributivgesetz durch
Kombination der zwei KNFs
• GK = β1 = A und
• HK = β1′ ∧ β2′ , mit β1′ = B und β2′ = C.
Die KNF ist (β1 ∨ β1′ ) ∧ (β1 ∨ β2′ ) = (A ∨ B) ∧ (A ∨ C).
Prof. Dr. Dietmar Seipel
63
Logik für Informatiker
Wintersemester 2013/14
Für die folgende Formel F ist G = A ∨ (D ∧ E) und H = B ∧ C:
F = (A ∨ (D ∧ E)) ∨ (B ∧ C).
Eine DNF für F erhalten wir durch Weglassen der Klammerung um G:
A ∨ (D ∧ E) ∨ (B ∧ C).
Eine KNF für F erhalten wir nach dem Distributivgesetz durch
Kombination der zwei KNFs
• GK = β1 ∧ β2 , mit β1 = A ∨ D und β2 = A ∨ E, und
• HK = β1′ ∧ β2′ , mit β1′ = B und β2′ = C.
Die KNF ist
(β1 ∨ β1′ ) ∧ (β1 ∨ β2′ ) ∧ (β2 ∨ β1′ ) ∧ (β2 ∨ β2′ ) =
(A ∨ D ∨ B) ∧ (A ∨ D ∨ C) ∧ (A ∨ E ∨ B) ∧ (A ∨ E ∨ C).
Prof. Dr. Dietmar Seipel
64
Logik für Informatiker
Wintersemester 2013/14
Exkurs: Berechnung von Normalformen
Aus dem Beweis ergeben sich P ROLOG–Regeln zur Berechnung von
Normalformen (knf, dnf):
boolean_normalize(knf, (A;B), Cs) :boolean_normalize(knf, A, As),
boolean_normalize(knf, B, Bs),
findall( C,
( member(C1, As),
member(C2, Bs),
append(C1, C2, C) ),
Cs ).
boolean_normalize(dnf, (A;B), Cs) :boolean_normalize(dnf, A, As),
boolean_normalize(dnf, B, Bs),
append(As, Bs, Cs).
Prof. Dr. Dietmar Seipel
65
Logik für Informatiker
Wintersemester 2013/14
boolean_normalize(knf, (A,B), Cs) :boolean_normalize(knf, A, As),
boolean_normalize(knf, B, Bs),
append(As, Bs, Cs).
boolean_normalize(dnf, (A,B), Cs) :boolean_normalize(dnf, A, As),
boolean_normalize(dnf, B, Bs),
findall( C,
( member(C1, As),
member(C2, Bs),
append(C1, C2, C) ),
Cs ).
Prof. Dr. Dietmar Seipel
66
Logik für Informatiker
Wintersemester 2013/14
Zur Berechnung einer KNF für eine Formel ¬A braucht man eine DNF für
die Formel A; analoges gilt für die DNF:
boolean_normalize(knf, -A, Cs) :boolean_normalize(dnf, A, Cs_2),
maplist( literals_to_complements,
Cs_2, Cs ).
boolean_normalize(dnf, -A, Cs) :boolean_normalize(knf, A, Cs_2),
maplist( literals_to_complements,
Cs_2, Cs ).
Das Prädikat literals_to_complements/2 berechnet die
Komplemente zu einer Liste von Literalen.
Prof. Dr. Dietmar Seipel
67
Logik für Informatiker
Wintersemester 2013/14
Für atomare Formeln A wird eine Liste [[A]] bestehend aus einer
Einerliste [A] erzeugt:
boolean_normalize(_, A, [[A]]) :boolean_formula_is_atomic(A),
!.
Man kann jederzeit für weitere Typen von Formeln – wie z.B. Implikation
und exklusives Oder – P ROLOG–Regeln zur Erzeugung einer KNF / DNF
angeben.
Prof. Dr. Dietmar Seipel
68
Logik für Informatiker
Wintersemester 2013/14
Der folgende Test bestimmt den Funktor F und die Stelligkeit N von A.
Wenn das Paar F:N nicht in der angegebenen Menge liegt, d.h. wenn A
keine
• Negation (Funktor “-” mit Stelligkeit 1),
• Konjunktion (Funktor “,” mit Stelligkeit 2) oder
• Disjunktion (Funktor “;” mit Stelligkeit 2)
ist, dann ist A atomar:
boolean_formula_is_atomic(A) :\+ ( functor(A, F, N),
member(F:N, [’-’:1, ’,’:2, ’;’:2]) ).
Prof. Dr. Dietmar Seipel
69
Logik für Informatiker
Wintersemester 2013/14
Berechnungsbeispiel:
?- Formula = -((a,(b;c))),
boolean_normalize(knf, Formula, Cs),
boolean_normal_form_to_formula(knf, Cs, F).
Cs = [[-a, -b], [-a, -c]],
F = ((-a;-b), (-a;-c))
?- Formula = -((a,(b;c))),
boolean_normalize(dnf, Formula, Cs),
boolean_normal_form_to_formula(dnf, Cs, F).
Cs = [[-a], [-b, -c]],
F = (-a ; -b,-c)
Es gilt wieder “Punkt vor Strich”, d.h.
(-a;-b,-c) bedeutet (-a;(-b,-c)) bzw. ¬a ∨ (¬b ∧ ¬c).
Prof. Dr. Dietmar Seipel
70
Logik für Informatiker
Wintersemester 2013/14
Weitere Regeln
Für beliebige aussagenlogische Formeln F , F1 , F2 und G gilt:
Resolution:
(F1 ∨ G) ∧ (F2 ∨ ¬G) → F1 ∨ F2 ist eine Tautologie,
(F ∨ G) ∧ (F ∨ ¬G) ≡ F.
Implikation:
F ∨ ¬G ≡ G → F.
Moduns Ponens:
(G ∧ (G → F )) → F ist eine Tautologie.
Prof. Dr. Dietmar Seipel
71
Logik für Informatiker
Wintersemester 2013/14
Mithilfe der Resolutions–Regel
(F ∨ G) ∧ (F ∨ ¬G) ≡ F
kann eine KNF vereinfacht werden:
HK
=
(¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C)
≡
(¬A ∨ ¬B) ∧ (¬A ∨ ¬C).
Denn wir können folgende Ersetzungen vornehmen:
(¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (¬A ∨ ¬C),
(¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) ≡ (¬A ∨ ¬B).
Die Teilformel ¬A ∨ ¬B ∨ ¬C, die in beiden Ersetzungen verwendet wird,
kann man aufgrund der Idempotenz duplizieren.
Aufgrund der Kommutativität und der Assoziativität der Konjunktion ∧
kann man die zu ersetzenden Teilformeln erzeugen.
Prof. Dr. Dietmar Seipel
72
Logik für Informatiker
1.3
Wintersemester 2013/14
Hornformeln
Definition (Hornformeln)
Eine Formel F ist eine Hornformel, falls F in KNF ist und jedes
Disjunktionglied in F höchstens ein positives Literal enthält.
nach dem Logiker Alfred Horn
Beispiel (Hornformeln)
1. F = (¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C)
ist eine Hornformel.
2. G = A ∨ B
ist keine Hornformel.
Prof. Dr. Dietmar Seipel
73
Logik für Informatiker
Wintersemester 2013/14
Aus der Definition der Implikation F → G ≡ ¬F ∨ G und den Regeln von
De Morgan ergibt sich die Regelschreibweise A1 ∧ . . . ∧ An → B:
¬A1 ∨ . . . ∨ ¬An ∨ B ≡
¬(A1 ∧ . . . ∧ An ) ∨ B ≡ A1 ∧ . . . ∧ An → B.
Wir nennen die Konjunktion A1 ∧ . . . ∧ An den Rumpf und B den Kopf der
Regel. Unter der Annahme, daß die Konjunktion stärker bindet als die
Implikation, können wir die Klammern um den Regelrumpf weglassen.
Wir setzen 0 = 2D (leere Disjunktion) und 1 = 2K (leere Konjunktion).
0 ist eine unerfüllbare Formel, 1 ist eine Tautologie, und es gilt:
¬A1 ∨ . . . ∨ ¬An ≡ ¬(A1 ∧ . . . ∧ An ) ≡ A1 ∧ . . . ∧ An → 0
B ≡ 1→B
Wir nennen A1 ∧ . . . ∧ An → 0 eine Integritätsbedingung, 1 → B ein Fakt.
Prof. Dr. Dietmar Seipel
74
Logik für Informatiker
Wintersemester 2013/14
Folglich kann man eine Hornformel als Konjunktion von Implikationen
schreiben (prozedurale Deutung):
F
H
=
(¬A ∨ B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C)
≡
(A ∧ C → B) ∧ (A ∧ B → C) ∧ (A ∧ B ∧ C → 0)
=
A ∧ (¬A ∨ B) ∧ (¬A ∨ ¬C)
≡
(1 → A) ∧ (A → B) ∧ (A ∧ C → 0).
Wir können eine KNF–Formel
F = β1 ∧ . . . ∧ βn
auch als Menge von Disjunktionen auffassen:
F = { β1 , . . . , βn }
Dann können wir für die Teilformeln βi ∈ F schreiben.
Prof. Dr. Dietmar Seipel
75
Logik für Informatiker
Wintersemester 2013/14
Interpretationen als Mengen von Atomen
Eine Menge I von atomaren Formeln repräsentiert eine Interpretation I ′
von F :

1, falls A ∈ I
I ′ (A) =
0, falls A ∈
/I
Beispiel
Die Menge I = { A, C } repräsentiert die folgende Interpretation:
I′
A B
C
D
1
1
0
0
I ′ ist hier nur für eine Auswahl von Atomen, die uns interessieren,
angegeben.
Prof. Dr. Dietmar Seipel
76
Logik für Informatiker
Wintersemester 2013/14
I verletzt eine Regel
A1 ∧ . . . ∧ An → B,
falls { A1 , . . . , An } ⊆ I und B 6∈ I.
Die zugehörige Interpretation I ′ ist noch kein Modell der Regel,
da sie den Regelrumpf erfüllt, nicht aber den Regelkopf.
• Falls B = 0 ist (Integritätsbedingung), so kann I nicht zu einer Menge
erweitert werden, die ein Modell der Regel repräsentiert.
• Andernfalls repräsentiert die um das Atom B aus dem Regelkopf
erweiterte Menge I ∪ { B } ein Modell der Regel.
Beispiel
Die obige Interpretation zu I = { A, C } verletzt die Regel A → B,
da A ∈ I und B 6∈ I.
I kann zu einem Modell I ∪ { B } = { A, B, C } erweitert werden.
Prof. Dr. Dietmar Seipel
77
Logik für Informatiker
Wintersemester 2013/14
Effizienter Erfüllbarkeitstest für Hornformeln F
1. Sei I die Menge aller Kopfatome B zu den Fakten (1 → B) ∈ F .
2. Solange sich I verändert:
• Falls es eine verletzte Integritätsbedingung
(A1 ∧ . . . ∧ An → 0) ∈ F gibt, so ist F unerfüllbar, und der
Algorithmus kann stoppen. Wir setzen dann I = ▽.
• Andernfalls fügen wir die Menge J aller atomaren Formeln B zu
den verletzten Regeln (A1 ∧ . . . ∧ An → B) ∈ F zu I hinzu:
I = I ∪ J.
Falls am Ende I 6= ▽ gilt, so ist F ist erfüllbar, und I repräsentiert ein
Modell I ′ von F .
Prof. Dr. Dietmar Seipel
78
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Erfüllbarkeitstest)
F
=
(¬A ∨ ¬B ∨ C) ∧ A ∧ D ∧ (¬D ∨ B) ∧ (¬C ∨ ¬E)
≡
(A ∧ B → C) ∧ (1 → A) ∧ (1 → D) ∧ (D → B) ∧ (C ∧ E → 0)
Nach Schritt 1 erhalten wir wegen (1 → A), (1 → D) ∈ F :
I0 = { A, D }.
Nach i Durchläufen von Schritt 2:
I1 = { A, D, B }, wegen (D → B) ∈ F,
I2 = { A, D, B, C }, wegen (A ∧ B → C) ∈ F.
Die Regel (C ∧ E → 0) feuert als einzige nicht, so daß am Ende I2 ein
Modell I2′ von F repräsentiert:
I2′
Prof. Dr. Dietmar Seipel
A B
C
D
E
1
1
1
0
1
79
Logik für Informatiker
Wintersemester 2013/14
Eigenschaften des Erfüllbarkeitstests
Zu jedem Zeitpunkt des Algorithmus gilt für die aktuelle Menge I:
Für alle Atome A ∈ I und alle Modelle M von F gilt M (A) = 1
(falls es überhaupt Modelle M von F gibt).
Beweis durch vollständige Induktion über die Anzahl N der
Schleifendurchläufe:
N = 0: Ist (1 → B) ∈ F , so muß offenbar M (B) = 1 gelten.
N → N + 1: Seien A1 , . . . , An ∈ I nach N Schleifendurchläufen.
Dann gilt nach Induktionsannahme für jedes Modell M von F :
• Ist r = (A1 ∧ . . . ∧ An → B) ∈ F dann gilt auch M (B) = 1,
sonst würde M 6|= r gelten. Also gilt auch für das im N + 1–ten
Schleifendurchlauf zu I hinzukommende Atom B: M (B) = 1.
• Ist r = (A1 ∧ . . . ∧ An → 0) ∈ F , dann gibt es kein Modell M
für F , denn aus M (A1 ) = . . . = M (An ) = 1 folgt M 6|= r.
Prof. Dr. Dietmar Seipel
80
Logik für Informatiker
Wintersemester 2013/14
Falls der Algorithmus mit I 6= ▽ terminiert, so ist I ′ ein Modell für F ,
denn für alle Implikationen r ∈ F gilt I ′ |= r:
• Fakt r = (1 → B):
Nach Schritt 1 gilt B ∈ I und somit I ′ (B) = 1, d.h. I ′ |= r.
• Integritätsbedingung r = (A1 ∧ . . . ∧ An → 0):
Für mindesten ein i gilt Ai ∈
/ I,
sonst hätte der Algorithmus mit I = ▽ gestoppt.
Deshalb gilt I ′ (A1 ∧ . . . ∧ An ) = 0, und somit I ′ |= r.
• Regel r = (A1 ∧ . . . ∧ An → B):
I ′ (A1 ∧ . . . ∧ An ) = 1 ist äquivalent zu A1 ∈ I, . . . , An ∈ I.
Also ist B ∈ I, sonst würde Schritt 2 noch einmal ausgeführt.
Dies ist wiederum gleichbedeutend mit I ′ (B) = 1.
Also gilt I ′ |= r.
Prof. Dr. Dietmar Seipel
81
Logik für Informatiker
Wintersemester 2013/14
Minimale Modelle, kleinstes Modell
Sei M eine Klauselmenge.
1. Ein Modell I ′ von M heißt minimal, falls die zugehörige Menge
I = { A | I ′ (A) = 1 } von wahren Atomen minimal ist: d.h., es gibt
kein anderes Modell J ′ von M mit J = { A | J ′ (A) = 1 } ( I.
2. Ein Modell I ′ von M heißt kleinstes Modell, falls für alle Modelle J ′
von M gilt: I ⊆ J.
Wenn es ein kleinstes Modell gibt, so ist dieses eindeutig; außerdem ist es
dann auch das einzige minimale Modell.
Sei F eine Hornformel.
1. Bei Erfüllbarkeit berechnet der Test das kleinste Modell I ′ für F .
Definiert man 0 < 1, so gilt I ′ (A) ≤ J ′ (A), für alle Atome A.
2. Falls der Algorithmus mit I = ▽ stoppt, so gibt es kein Modell für F .
Prof. Dr. Dietmar Seipel
82
Logik für Informatiker
Wintersemester 2013/14
{A, B}
Beispiel (Minimale Modelle, kleinstes Modell)
1. Die Formel
G = A∨B
{A}
{B}
∅
hat zwei minimale Modelle I1′ und I2′ mit den folgenden zugehörigen
Mengen I1 = { A } und I2 = { B } von wahren Atomen.
Also hat G kein kleinstes Modell, und somit gibt es keine zu G
äquivalente Hornformel.
Daneben hat G noch ein nicht–minimales Modell zu I3 = { A, B }.
2. Die erweiterte Formel
H = (A ∨ B) ∧ ¬B
ist dagegen äquivalent zur folgenden Hornformel:
H ≡ A ∧ ¬B.
Prof. Dr. Dietmar Seipel
83
Logik für Informatiker
Wintersemester 2013/14
Terminierung
Sei nF die Anzahl der atomaren Formeln in F .
Da in jeder außer der letzten Iteration mindestens ein Atom zu I
hinzukommen muß, stoppt der Erfüllbarkeitstest nach höchstens nF
Iterationen.
Satz (Korrektheit des Erfüllbarkeitstests)
1. Falls der Algorithmus mit I 6= ▽ terminiert, so repräsentiert die
berechnete Menge I ein Modell für F, ja sogar das kleinste Modell für
F , und F ist erfüllbar.
2. Falls der Algorithmus mit I = ▽ terminiert, so gibt es kein Modell für
F , und F ist unerfüllbar.
Prof. Dr. Dietmar Seipel
84
Logik für Informatiker
Wintersemester 2013/14
Regeln, Fakten und Integritätsbedingungen
1. Regeln
A1 ∧ . . . ∧ An → B
mit n ≥ 1 und B 6= 0 dienen beim Erfüllbarkeitstest zu Erweiterung
der Menge I von Atomen.
2. Hornformeln F ohne Fakten
1→B
sind immer erfüllbar, und die berechnete Menge I ist leer:
I = ∅, d.h., in I ′ sind alle Atome falsch.
3. Hornformeln F ohne Integritätsbedingungen
A1 ∧ . . . ∧ An → 0
sind immer erfüllbar.
Prof. Dr. Dietmar Seipel
85
Logik für Informatiker
Wintersemester 2013/14
Exkurs: Logikprogrammierung
Wenn wir in Hornformeln komplexere Atome zulassen, dann sind wir bei
einem Spezialfall der Prädikatenlogik, nämlich der Logikprogrammierung.
Die Regel
grandparent(X , Z ) ← parent(X , Y ) ∧ parent(Y , Z )
entspricht der Konjunktion aller Instanzen
parent(x , y) ∧ parent(y, z ) → grandparent(x , z ),
bei denen die Variablen X, Y, Z durch Personen x, y, z ersetzt wurden.
Ein Beispiel wäre die Instanz
parent(’William’, ’Charles’) ∧ parent(’Charles’, ’Elizabeth’) →
grandparent(’William’, ’Elizabeth’).
Prof. Dr. Dietmar Seipel
86
Logik für Informatiker
Wintersemester 2013/14
Zusammen mit den Fakten
1 → parent(’Elizabeth’, ’George’),
1 → parent(’Charles’, ’Elizabeth’),
1 → parent(’William’, ’Charles’),
würde der Erfüllbarkeitstest folgende Mengen ableiten:
I0 = { parent(’Elizabeth’, ’George’),
parent(’Charles’, ’Elizabeth’),
parent(’William’, ’Charles’) },
I1 = I0 ∪ { grandparent(’Charles’, ’George’),
grandparent(’William’, ’Elizabeth’) }.
Er würde bereits nach der ersten Iteration keine neuen Fakten mehr ableiten.
Prof. Dr. Dietmar Seipel
87
Logik für Informatiker
1.4
Wintersemester 2013/14
Minimale Modelle für Klauselmengen
Eine Klausel ist eine Disjunktion von Literalen.
Aus der Definition der Implikation F → G ≡ ¬F ∨ G und den Regeln von
De Morgan ergibt sich eine Implikationsschreibweise für Klauseln:
¬A1 ∨ . . . ∨ ¬An ∨ B1 ∨ . . . ∨ Bk ≡
¬ (A1 ∧ . . . ∧ An ) ∨ (B1 ∨ . . . ∨ Bk ) ≡
A1 ∧ . . . ∧ An → B1 ∨ . . . ∨ Bk
Unter der Annahme, daß auch die Disjunktion stärker bindet als die
Implikation, können wir auch die Klammern um den Regelkopf
B1 ∨ . . . ∨ Bk weglassen. Dann gilt außerdem:
¬A1 ∨ . . . ∨ ¬An ≡ ¬ (A1 ∧ . . . ∧ An ) ≡ A1 ∧ . . . ∧ An → 0
B1 ∨ . . . ∨ Bk ≡ 1 → B1 ∨ . . . ∨ Bk
Prof. Dr. Dietmar Seipel
88
Logik für Informatiker
Wintersemester 2013/14
Eine KNF–Formel β1 ∧ . . . ∧ βn kann somit als endliche Klauselmenge
M = { β1 , . . . , βn } in Implikationsschreibweise aufgefaßt werden.
1. Man nennt Implikationen der Art
A1 ∧ . . . ∧ An → B1 ∨ . . . ∨ Bk
auch Regeln.
2. Regeln mit n = 0 Rumpfatomen nennen wir Fakten:
1 → B1 ∨ . . . ∨ Bk
Falls M keine Fakten enthält, ist M immer erfüllbar, und M hat ein
kleinstes Modell I ′ , in dem alle Atome falsch sind.
3. Regeln mit k = 0 Kopfatomen nennen wir Integritätsbedingungen:
A1 ∧ . . . ∧ An → 0
M ist erfüllbar, falls es keine Integritätsbedingungen enthält.
1 ist die leere Konjunktion, und 0 ist die leere Disjunktion.
Prof. Dr. Dietmar Seipel
89
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Modelle)
1. M = { c → a ∨ b } enthält keine Fakten.
Somit hat M ein kleinstes Modell, in dem alle Atome falsch sind.
2. M = { 1 → a ∨ b } hat bekanntermaßen zwei minimale Modelle,
nämlich zu den Mengen I1 = { a } und I2 = { b } von Atomen,
sowie ein nicht–minimales Modell zu I3 = { a, b }.
3. M = { 1 → a, a → 0 } ist unerfüllbar.
Wegen des Fakts 1 → a müßte eine Modell a wahr machen, was
wegen der Integritätsbedingung a → 0 aber unmöglich ist.
Für viele praktische Anwendungen ist man nur an den minimalen Modellen
einer Klauselmenge interessiert.
Prof. Dr. Dietmar Seipel
90
Logik für Informatiker
Wintersemester 2013/14
Man kann den Erfüllbarkeitstest zu einem Algorithmus zur Bestimmung der
minimalen Modelle einer endlichen Klauselmenge M erweitern.
Der erweiterte Algorithmus arbeitet nicht mit einer einzigen Menge I von
Atomen, sondern mit einer Menge I solcher Mengen von Atomen.
Die Mengen I ∈ I werden nach folgender Schlußregel erweitert:
{ A1 , . . . , An } ⊆ I, (A1 ∧ . . . ∧ An → B1 ∨ . . . ∨ Bk ) ∈ M
I ∪ { B1 }, . . . , I ∪ { Bk }
Aus einer Menge I werden also k Mengen I ∪ { Bi }.
A1
Die Menge I kann man als Baum veranschaulichen.
..?
.
An
1. Jeder Ast entspricht einer Menge I ∈ I.
2. Falls man alle Atome Ai auf dem Ast finden kann,
so wird der Ast um eine Verzweigung erweitert.
Prof. Dr. Dietmar Seipel
B1
...
^
Bk
91
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Berechnung der minimalen Modelle)
Für die Klauselmenge
M = { b1 → a, b2 → a, 1 → b1 ∨ b2 }
erhalten wir die folgende Mengenfolge:
I0 = { ∅ },
I1 = { { b1 }, { b2 } },
b1
?
a
R
b2
?
a
In = { { a, b1 }, { a, b2 } }, für alle n ≥ 2.
Zur Erweiterung von I = ∅ können nur Fakten verwendet werden.
Zuerst wird I = ∅ wegen des Fakts 1 → b1 ∨ b2 um b1 bzw. b2 erweitert.
Beide Erweiterungen können dann wegen der Regel bi → a jeweils um a
erweitert werden.
Prof. Dr. Dietmar Seipel
92
Logik für Informatiker
Wintersemester 2013/14
Der gezeigte Baum T1 entspricht genau der Berechnung.
T2 :
T1 :
b1
?
a
R
?
a
b2
?
a
b1
R
b2
Der kompaktere Baum T2 repräsentiert ebenfalls die Resultatsmenge
I2 = { { a, b1 }, { a, b2 } },
er spiegelt aber nicht die Berechnungsreihenfolge wider.
Prof. Dr. Dietmar Seipel
93
Logik für Informatiker
Wintersemester 2013/14
Definition (Regel: feuert, verletzt)
Sei I eine Menge von Atomen.
1. Eine Regel
A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k
feuert unter I falls { A1 , . . . , An } ⊆ I.
2. I verletzt eine Regel
A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k ,
falls { A1 , . . . , An } ⊆ I und { B1 , . . . , Bk } ∩ I = ∅.
Falls I eine Regel verletzt, so ist die zugehörige Interpretation noch kein
Modell dieser Regel, da sie den Rumpf erfüllt, nicht aber den Kopf.
Wenn man I um eines der Kopfatome Bi erweitert, so verletzt I ∪ { Bi }
die Regel nicht mehr.
Prof. Dr. Dietmar Seipel
94
Logik für Informatiker
Wintersemester 2013/14
Die Berechnung der minimalen Modelle einer Klauselmenge behandelt
Fakten 1 → B1 ∨ . . . ∨ Bk nicht separat, sondern als Regeln
A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k
mit n = 0 Rumpfatomen.
• Ein Fakt feuert unabhängig von I, da { A1 , . . . , An } = ∅ ⊆ I.
• I verletzt ein Fakt, falls { B1 , . . . , Bk } ∩ I = ∅.
Während wir beim Erfüllbarkeitstest mit den Kopfatomen der Fakten
starten, kann die Berechnung nun mit I = { ∅ } starten.
Am Anfang werden dann offensichtlich von I = ∅ genau die Fakten
verletzt; diese feuern im ersten Erweiterungsschritt und erweitern I.
Später müssen die Fakten – genau wie alle anderen Regeln, die schon
gefeuert haben – nicht mehr berücksichtigt werden.
Prof. Dr. Dietmar Seipel
95
Logik für Informatiker
Wintersemester 2013/14
Die Berechnung startet mit I = { ∅ }, d.h. mit einer leeren Menge I in I.
I wird schrittweise verändert durch Erweiterung bzw. Eliminierung seiner
Elemente I ∈ I.
Zur Erweiterung von I werden alle von I verletzten Regeln
r1 , . . . , rm ∈ M herangezogen.
Wenn wir aus jeder Regel ri ein Kopfatom Bi auswählen, dann repräsentiert
die Erweiterung J = I ∪ { B1 , . . . , Bm } ein Modell dieser Regeln.
Sei I M die Menge all dieser Erweiterungen J:
I M = { I ∪ { B1 , . . . , Bm } |
für alle 1 ≤ i ≤ m : Bi ist ein Atom aus dem Kopf von ri }.
Falls I keine Regeln verletzt, so ist I M = { I }.
Dann ersetzen wir I in I durch die Erweiterungen aus I M .
Prof. Dr. Dietmar Seipel
96
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Berechnung der minimalen Modelle)
Für die Klauselmenge
M = { 1 → b, b → a1 ∨ a2 , b → c1 ∨ c2 }
erhalten wir
∅M
= { { b } },
{ b }M = { { b, a1 , c1 }, { b, a1 , c2 }, { b, a2 , c1 }, { b, a2 , c2 } },
denn
• I = ∅ verletzt nur das Fakt 1 → b, und
• I = { b } verletzt die beiden Regeln b → a1 ∨ a2 und b → c1 ∨ c2 ,
so daß man 4 Erweiterungen J bilden kann.
Prof. Dr. Dietmar Seipel
97
Logik für Informatiker
Wintersemester 2013/14
Damit erhalten wir die folgende Mengenfolge:
I0 = { ∅ },
?
b
I1 = { { b } },
In = { { b, a1 , c1 },
a1
{ b, a1 , c2 },
{ b, a2 , c1 },
{ b, a2 , c2 } }, für alle n ≥ 2.
c1
^
c2
R
c1
a2
^
c2
Zuerst wird I = ∅ wegen des Fakts 1 → b um b erweitert.
Dann wird I = { b } aufgrund der verletzten Regeln b → a1 ∨ a2 und
b → c1 ∨ c2 in einem Schritt zu 4 Mengen erweitert.
Die Mengen I ∈ I2 verletzen keine Regeln mehr.
Prof. Dr. Dietmar Seipel
98
Logik für Informatiker
Wintersemester 2013/14
Für die Klauselmenge
M = { 1 → a1 ∨ a2 , 1 → c 1 ∨ c 2 }
erhalten wir
∅M = { { a1 , c1 }, { a1 , c2 }, { a2 , c1 }, { a2 , c2 } }.
Da Fakten 1 → B1 ∨ . . . ∨ Bk spezielle Regeln
A1 ∧ . . . ∧ An → B 1 ∨ . . . ∨ B k
mit n = 0 Rumpfatomen sind,
• verletzt I = ∅ beide Fakten in M ,
• so daß man 4 Erweiterungen J bilden kann.
1 steht für die leere Konjunktion, die in jeder Interpretation erfüllt ist.
Prof. Dr. Dietmar Seipel
99
Logik für Informatiker
Wintersemester 2013/14
Ein Berechnungsast zu I kann in zwei Fällen auch wieder absterben:
1. Falls eine Integritätsbedingung r ∈ M unter I verletzt ist,
so stirbt der Ast ab.
Da r dann eine Regel mit k = 0 Kopfatomen ist, kann man kein
Kopfatom wählen, um r zu erfüllen. Also gilt I M = ∅.
Wenn wir wieder I durch die Mengen aus I M ersetzen, dann wird I
faktisch eliminiert. Dies entspricht der Setzung I = ▽ aus dem
bekannten Erfüllbarkeitstest.
2. Wir wollen nur die minimalen Modelle berechnen.
Deswegen kann man zusätzlich noch einen Ast absterben lassen,
falls es einen anderen Ast zu einer kleineren Menge J ( I gibt.
Wir sagen dann J subsumiert I.
In beiden Fällen wird I aus I eliminiert.
Prof. Dr. Dietmar Seipel
100
Logik für Informatiker
Wintersemester 2013/14
Definition (min(I))
Sei I eine Menge von Mengen von Atomen.
Dann enthält min(I) alle I ∈ I, für die es keine Menge J ∈ I, mit J ( I,
gibt.
Beispiel (Minimale Interpretationen)
Für die Menge
I = { { a, b }, { a, b, a2 }, { a, b, c2 }, { a2 , b, c2 } }
gilt min(I) = { { a, b }, { a2 , b, c2 } }.
Die beiden nicht–minimalen Mengen { a, b, a2 } und { a, b, c2 } werden von
{ a, b } subsumiert und somit eliminiert.
Prof. Dr. Dietmar Seipel
101
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Berechnung der minimalen Modelle)
1. Für die Klauselmenge
M = { a → c, 1 → a ∨ b, a ∧ c → 0 }
erhalten wir die folgende Mengenfolge:
I0 = { ∅ },
I1 = { { a }, { b } },
a
^
b
I2 = { { a, c }, { b } },
In = { { b } }, für alle n ≥ 3.
?
⋆
c
Der Ast zu { a, c } stirbt im dritten Schritt wegen der verletzten
Integritätsbedingung a ∧ c → 0 ab.
Prof. Dr. Dietmar Seipel
102
Logik für Informatiker
Wintersemester 2013/14
2. Für die Klauselmenge
?
b
M = { 1 → b, b → a ∨ a2 , b → a ∨ c2 }
erhalten wir die folgende Mengenfolge:
a
R
a2
I0 = { ∅ },
I1 = { { b } },
a
^
⋆ c2
a⋆
^
c2
In = { { b, a }, { b, a2 , c2 } }, für alle n ≥ 2.
Zuerst wird I = ∅ wegen des Fakts 1 → b um b erweitert.
Dann wird I = { b } aufgrund der Regeln b → a1 ∨ a2 und
b → c1 ∨ c2 in einem Schritt zu 4 Mengen erweitert.
Das doppelte Atom a im linkesten Ast wird auf ein Atom reduziert.
Die beiden nicht–minimalen Mengen { b, a, a2 } und { b, a, c2 } werden
von { b, a } subsumiert und somit eliminiert.
Prof. Dr. Dietmar Seipel
103
Logik für Informatiker
Wintersemester 2013/14
3. Für die Klauselmenge
M = { b → a, 1 → a ∨ b }
erhalten wir die folgende Mengenfolge:
I0 = { ∅ },
I1 = { { a }, { b } },
a
^
b
?
a
⋆
In = { { a } }, für alle n ≥ 2.
Die Erweiterung { a, b } wird von { a } subsumiert;
sie ist deswegen nicht–minimal, und der entsprechende Ast stirbt ab.
Prof. Dr. Dietmar Seipel
104
Logik für Informatiker
Wintersemester 2013/14
Algorithmus zur Berechnung der minimalen Modelle
Sei M eine Klauselmenge.
1. Sei I = { ∅ }.
2. Solange sich I verändert:
• Ersetze zuerst alle I ∈ I durch ihre Erweiterungen aus I M :
S
I 7→ I∈I I M .
Falls I eine Integritätsbedingung aus M verletzt,
so wird I ersatzlos eliminiert, denn I M = ∅.
• Eliminiere dann nicht–minimale Mengen aus I:
I 7→ min(I).
Am Ende repräsentiert I die Menge der minimalen Modelle von M .
Prof. Dr. Dietmar Seipel
105
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Berechnung der minimalen Modelle)
Für die Klauselmenge
M = { a → c, 1 → a ∨ b, a → c1 ∨ c2 , b → d }
erhalten wir die folgenden Mengen und Modellbäume:
I0 = { ∅ },
I1 = { { a }, { b } },
In = { { a, c, c1 }, { a, c, c2 }, { b, d } }, für alle n ≥ 2.
·
·
·
a
^
a
b
?
c
c1
Prof. Dr. Dietmar Seipel
^
b
?
d
^
c2
106
Logik für Informatiker
Wintersemester 2013/14
Wir wollen uns den Fall I 7→
ansehen.
S
M
I
für I = I1 nochmals genauer
I∈I
Für die Klauselmenge M = { a → c, 1 → a ∨ b, a → c1 ∨ c2 , b → d }
und die Menge I = { { a }, { b } } von Interpretationen gilt
|{z} |{z}
I1
I2
I1M = { a }M = { { a, c, c1 }, { a, c, c2 } },
I2M = { b }M = { { b, d } }.
I1 verletzt die Regeln a → c und a → c1 ∨ c2 . I2 verletzt die Regel b → d.
Also erhalten wir
S
I 7→ I∈I I M = I1M ∪ I2M = { { a, c, c1 }, { a, c, c2 }, { b, d } }.
Es gilt in diesem Fall min(I) = I.
Prof. Dr. Dietmar Seipel
107
Logik für Informatiker
Wintersemester 2013/14
Der Algorithmus terminiert, da eine verletzte Regel in jedem
Berechnungsast nur einmal zur Erweiterung herangezogen werden kann.
Satz (Minimale Modelle einer Klauselmenge)
Sei M eine endliche Klauselmenge.
1. Die berechnete Menge I repräsentiert die minimalen Modelle von M .
2. Falls der Algorithmus mit I = ∅ terminiert, so gibt es kein Modell
für M , und M ist somit unerfüllbar.
Für erfüllbare Hornformeln wird das kleinste Modell berechnet.
Auch dieser Algorithmus terminiert nach höchstens nM Iterationen, wenn
nM die Anzahl der atomaren Formeln in M ist, denn es muß in jeder außer
der letzten Iteration mindestens ein Atom zu einem Ast hinzukommen.
Prof. Dr. Dietmar Seipel
108
Logik für Informatiker
Wintersemester 2013/14
1.5
Der Endlichkeitssatz (Kompaktheitssatz)
Satz (Endlichkeit, Kompaktheit)
Eine Formelmenge M ist genau dann erfüllbar,
wenn jede endliche Teilmenge von M erfüllbar ist.
Beweis:
1. Ein Modell für M ist offensichtlich auch ein Modell für jede Teilmenge
von M .
2. Nehmen wir also an, daß jede endliche Teilmenge von M erfüllbar ist,
also ein Modell besitzt.
Wir betrachten nun die speziellen Teilmengen Mn von M ,
welche genau die Formeln F ∈ M enthalten, die nur die atomaren
Formeln A1 , . . . , An enthalten.
Prof. Dr. Dietmar Seipel
109
Logik für Informatiker
Wintersemester 2013/14
Dann gilt offenbar:
M1 ⊆ M2 ⊆ . . . ⊆ Mn ⊆ M.
M0
M1
...
Mn
M
Die Mengen Mn können i.a. unendlich groß sein.
Falls M unendlich viele Atome enthält, dann gibt es kein n mit
Mn = M .
Prof. Dr. Dietmar Seipel
110
Logik für Informatiker
Wintersemester 2013/14
Für die endliche Formelmenge
M = { a ∨ b, ¬a ∨ c, ¬b ∨ d, ¬a ∨ c1 ∨ c2 }
und die Reihenfolge
(A1 , . . . , A6 ) = (a, b, c, d, c1 , c2 )
erhalten wir
M1 = ∅,
M2 = { a ∨ b },
M3 = { a ∨ b, ¬a ∨ c },
M4 = { a ∨ b, ¬a ∨ c, ¬b ∨ d },
M5 = M4 ,
M6 = { a ∨ b, ¬a ∨ c, ¬b ∨ d, ¬a ∨ c1 ∨ c2 } = M.
Prof. Dr. Dietmar Seipel
111
Logik für Informatiker
Wintersemester 2013/14
Da alle Formeln F ∈ Mn aber nur n Atome enthalten können,
n
gibt es nur maximal 22 grundsätzlich verschiedene Formeln
F1 , . . . , Fk ∈ Mn .
2n
Denn es gibt genau k = 2
verschiedene Wahrheitswertetafeln:
• jede Tafel hat 2n Zeilen, und
• jede Auswahl einer Teilmenge von Zeilen mit der Belegung 1
(alle anderen Zeilen haben dann die Belegung 0)
ergibt eine andere Tafel.
Jede Formel F ∈ Mn ist also äquivalent zu einer der Formeln Fi :
F ≡ Fi .
Prof. Dr. Dietmar Seipel
112
Logik für Informatiker
Wintersemester 2013/14
Deshalb ist jedes Modell für
Mn′ = {F1 , . . . , Fk }
auch ein Modell für Mn .
Da Mn′ endlich ist, besitzt Mn nach Voraussetzung ein Modell In .
Beispiel:
A1
A2
A3
I1
0
...
...
I2
0
1
...
I3
..
.
1
..
.
0
..
.
1
..
.
Wegen Mi ⊆ Mn , für alle 1 ≤ i ≤ n, ist In auch ein Modell für Mi :
In |= Mi , für alle 1 ≤ i ≤ n.
Prof. Dr. Dietmar Seipel
113
Logik für Informatiker
Wintersemester 2013/14
Für die endliche Formelmenge
M = { a ∨ b, ¬a ∨ c, ¬b ∨ d, ¬a ∨ c1 ∨ c2 }
könnte man folgendes erhalten:
a
b
c
d
c1
I1
0
I2
0
1
I3
1
0
1
I4
1
0
1
0
I5
1
0
1
0
0
I6
1
0
1
0
1
c2
0
Die fehlenden Einträge der Tabelle können beliebig sein.
Prof. Dr. Dietmar Seipel
114
Logik für Informatiker
Wintersemester 2013/14
Für die endliche Formelmenge
N = { a ∨ b, a ∨ c, a ∨ ¬c }
könnte man folgendes erhalten:
a
b
I1
0
I2
0
1
I3
1
0
c
1
Die fehlenden Einträge der Tabelle können beliebig sein.
Das Modell I2 von N2 = { a ∨ b } ist kein Modell von N3 = N .
Aus a ∨ c und a ∨ ¬c folgt I3 (a) = 1. Also muß man beim Übergang
von I2 zu I3 den Wahrheitswert von a von 0 auf 1 ändern.
Aber I3 ist ein Modell von N2 .
Prof. Dr. Dietmar Seipel
115
Logik für Informatiker
Wintersemester 2013/14
Wir wollen nun aus den Modellen In der Mn ein Modell I für M
konstruieren. Dazu definieren wir stufenweise die Wahrheitswerte
I(An ) der Atome An .
Dazu benötigen wir folgende Indexmengen:
n = 0: J0 = IN+ = {1, 2, . . . },
n − 1 → n: Sei
1
= { j ∈ Jn−1 | Ij (An ) = 1 },
Jn−1
0
Jn−1
= { j ∈ Jn−1 | Ij (An ) = 0 }.
Dann setzen wir

J 1 ,
n−1
Jn =
J 0 ,
n−1
Prof. Dr. Dietmar Seipel
1
falls Jn−1
unendlich
sonst
116
Logik für Informatiker
Wintersemester 2013/14
Wenn wir z.B. die fehlenden Tabelleneinträge auf 0 und In = I6 , für
n ≥ 6, setzen, dann erhalten wir folgende Mengen Jn :
a
b
c
d
c1
c2
I1
0
0
0
0
0
0
I2
0
1
0
0
0
0
I3
1
0
1
0
0
0
I4
1
0
1
0
0
0
I5
1
0
1
0
0
0
I6
1
0
1
0
1
0
Jn = { 3, . . . }, für 1 ≤ n ≤ 4,
Jn = { 6, . . . }, für 5 ≤ n.
Auf den ersten 4 Atomen sind alle Interpretationen In ab n = 3 gleich,
auf den weiteren Atomen erst ab n = 6.
Prof. Dr. Dietmar Seipel
117
Logik für Informatiker
Wintersemester 2013/14
Offenbar gilt
J0 ⊇ J1 ⊇ . . . ⊇ Jn .
Per Induktion nach n zeigt man, daß alle Indexmengen Jn unendlich
sind, denn
• J0 ist unendlich, und
1
0
• es muß immer mindestens eine der beiden Mengen Jn−1
oder Jn−1
unendlich sein.
Für alle Ij mit j ∈ Jn hat An denselben Wahrheitswert:
Ij (An ) = V ∈ {0, 1}, für alle j ∈ Jn ,
und wir setzen
I(An ) = V.
Prof. Dr. Dietmar Seipel
118
Logik für Informatiker
Wintersemester 2013/14
Wir wollen nun zeigen, daß I ein Modell von M ist.
Sei also F ∈ M eine beliebige Formel.
Dann gilt F ∈ Mn , für ein n ∈ IN+ , denn in F können nur endlich viele
Atome Ai1 , . . . , Ail , mit 1 ≤ i1 < i2 < . . . < il ≤ n, vorkommen.
Aus Mn ⊆ Mi , für alle i ≥ n, folgt nun F ∈ Mi .
Deshalb ist jede Interpretation Ii , mit i ≥ n, auch ein Modell für F .
Da Jn unendlich ist, gibt es einen Index i ∈ Jn , mit i ≥ n.
Für diesen Index i gilt:
Ii (A1 ) = I(A1 ), . . . , Ii (An ) = I(An ).
Denn der Index i liegt in Jn , und damit auch in allen Jm , mit
0 ≤ m ≤ n, und es gilt i ∈ Jm ⇒ Ii (Am ) = I(Am ).
Deshalb ist I natürlich auch ein Modell für F , da I auf allen relevanten
Atomen A1 , . . . , An mit Ii übereinstimmt.
Prof. Dr. Dietmar Seipel
119
Logik für Informatiker
Wintersemester 2013/14
Der Endlichkeitssatz gilt nur für Formelmengen M , in denen alle Formeln
F ∈ M endlich sind.
Sei zum Beispiel
F0 = A1 ∨ A2 ∨ . . . =
W∞
n=1
An
die unendliche Disjunktion der Atome Ai , und
Fn = ¬An , für n ∈ IN+ .
Dann hat die Formelmenge
M = { Fn | n ∈ IN0 }
kein Modell, obwohl jede endliche Teilmenge M ′ ⊆ M ein Modell besitzt.
Prof. Dr. Dietmar Seipel
120
Logik für Informatiker
Wintersemester 2013/14
Die komplette Menge M hat kein Modell I, da
• wegen F0 mindestens ein Atom An in I wahr sein müsste und
• wegen der Formeln Fn , mit n ∈ IN+ , aber alle Atome An in I falsch
sein müssten.
Es müßte also gelten: (∃n ∈ IN+ I(An ) = 1) ∧ (∀n ∈ IN+ I(An ) = 0).
Für eine endliche Teilmenge M ′ ⊆ M kann man aber ein Modell I
angeben. Es gibt es einen Index n ∈ IN+ , mit Fm 6∈ M ′ , für alle m > n.
• Wir setzen I(Am ) = 0, für m ≤ n, und erfüllen damit die Formeln
Fm , mit 1 ≤ m ≤ n, und
• wir setzen I(Am ) = 1, für m > n, und erfüllen damit die Formel F0 .
Damit ist I ein Modell für M ′ .
Prof. Dr. Dietmar Seipel
121
Logik für Informatiker
Wintersemester 2013/14
Hier hat sogar jede echte Teilmenge M ′ ( M ein Modell. Wir setzen
• I(An ) = 0, für alle n ∈ IN+ , mit Fn ∈ M ′ , und
• I(An ) = 1, für alle n ∈ IN+ , mit Fn 6∈ M ′ .
Dann erfüllt I alle Formeln Fn , mit n ∈ IN+ und Fn ∈ M ′ .
• Falls F0 6∈ M ′ , so erfüllt I auch M ′ .
• Falls F0 ∈ M ′ , so muß es wegen M ′ ( M eine Formel Fn geben, mit
n ∈ IN+ und Fn 6∈ M ′ . Dann ist I(An ) = 1, und somit erfüllt I auch
F0 . Also erfüllt I auch wieder M ′ .
Prof. Dr. Dietmar Seipel
122
Logik für Informatiker
Wintersemester 2013/14
Eine alternative Beweisidee für den Endlichkeitssatz baut auf dem
Erfüllbarkeits–Algorithmus auf.
Wir starten mit einem leeren Berechnungsbaum, und wir verwenden
sukzessive die endlichen Klauselmengen Mn′ zur Erweiterung.
• Falls irgendwann alle Äste abgestorben sind, so ist Mn′ unerfüllbar.
• Andernfalls bleibt immer mindestens ein Ast am Leben.
Wir können dann wie folgt einen Ast finden, der nicht abstirbt:
• Wir starten in der Wurzel des Berechnungsbaums.
• Wir folgen einem Ast, dessen Teilbaum nicht komplett abstirbt.
Auf diese Weise finden wir eine Menge I von Atomen, so daß die
zugehörige Interpretation I ′ ein Modell für M ist.
Prof. Dr. Dietmar Seipel
123
Logik für Informatiker
Wintersemester 2013/14
1.6
Resolution
Ein Klausel K ist eine Disjunktion von Literalen:
K = L1 ∨ . . . ∨ Ln .
Die Reihenfolge der Literale in K ist unerheblich; wir können K auch als
Menge { L1 , . . . , Ln } von Literalen ansehen.
Deswegen schreiben wir Li ∈ K, für 1 ≤ i ≤ n, und wir bezeichnen mit
K\Li = L1 ∨ . . . ∨ Li−1 ∨ Li+1 ∨ . . . ∨ Ln
die Klausel, welche man aus K durch Weglassen von Li erhält.
Eine endliche Klauselmenge M entspricht einer Formel F in KNF:
F = (L1,1 ∨ . . . ∨ L1,n1 ) ∧ . . . ∧ (Lm,1 ∨ . . . ∨ Lm,nm ).
Prof. Dr. Dietmar Seipel
124
Logik für Informatiker
Wintersemester 2013/14
Definition (Resolvente)
Seien K1 und K2 Klauseln mit A ∈ K1 und ¬A ∈ K2 , für ein Atom A.
Dann heißt
K = (K1 \A) ∨ (K2 \¬A)
eine Resolvente von K1 und K2 nach A.
K1
K2
U K
Spezialfall
Für K1 = A ∨ K und K2 = ¬A ∨ K erhalten wir die Resolvente
(K1 \A) ∨ (K2 \¬A) = K ∨ K = K.
Prof. Dr. Dietmar Seipel
125
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Resolvente)
Für die beiden Klauseln
K1 = A ∨ B ∨ C,
K2 = ¬A ∨ B ∨ ¬D
A∨B∨C
¬A ∨ B ∨ ¬D
gilt
K1 \ A
= B∨C
R B ∨ C ∨ ¬D
K2 \ ¬A = B ∨ ¬D,
und wir erhalten die Resolvente K = B ∨ C ∨ ¬D.
Nur wenn eine Klausel K ein Atom A und dessen Negation ¬A enthält
(z.B. K = A ∨ B ∨ ¬A), dann kann man sie mit sich selbst resolvieren:
K1 = K2 = K. Dann ist K eine Tautologie, und die Resolvente ist wieder K.
Prof. Dr. Dietmar Seipel
126
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Resolvente)
Die beiden möglichen Resolventen aus K1 = A ∨ ¬B ∨ C und
K2 = B ∨ ¬C sind Tautologien:
A ∨ ¬B ∨ C
B ∨ ¬C
R A ∨ C ∨ ¬C
A ∨ ¬B ∨ C
B ∨ ¬C
R A ∨ ¬B ∨ B
¬A
A
R 2
Wir bezeichnen hier die leere Disjunktion 2D kurz mit 2.
Prof. Dr. Dietmar Seipel
127
Logik für Informatiker
Wintersemester 2013/14
Resolutionslemma
Sei M ein Klauselmenge und K1 , K2 ∈ M .
Ist K eine Resolvente von K1 und K2 (nach einem Atom A), so sind M
und M ∪ {K} äquivalent: M ≡ M ∪ {K}.
Beweis:
Sei I eine zu M – und damit auch zu M ∪ {K} – passende Interpretation.
Falls I |= M ∪ {K}, dann gilt natürlich auch I |= M .
Also nehmen wir nun I |= M an.
Sei K1 = A ∨ K1′ und K2 = ¬A ∨ K2′ . Dann gilt K = K1′ ∨ K2′ .
• Falls I |= A, so folgt aus I |= K2 auch I |= K2′ .
• Falls I |= ¬A, so folgt aus I |= K1 auch I |= K1′ .
Also gilt in beiden Fällen I |= K1′ ∨ K2′ = K.
Deshalb gilt I |= M ∪ {K}.
Prof. Dr. Dietmar Seipel
128
Logik für Informatiker
Wintersemester 2013/14
Definition (Resolutionsmengen)
Sei M eine Klauselmenge.
Res(M ) = M ∪ { K | K ist eine Resolvente
zweier Klauseln K1 , K2 ∈ M }.
Ferner definieren wir:
Res 0 (M )
= M,
Res n+1 (M ) = Res(Res n (M )), für n ≥ 0,
S
∗
Res (M )
= n≥0 Res n (M ).
Offensichtlich gilt die sogenannte Monotonie–Eigenschaft:
M ⊆ M ′ ⇒ Res(M ) ⊆ Res(M ′ ).
Prof. Dr. Dietmar Seipel
129
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Resolutionsmengen)
Für die Klauselmenge
M = { c ∨ ¬a, a ∨ b, c1 ∨ c2 ∨ ¬a, d ∨ ¬b }
erhalten wir die folgenden Resolutionsmengen:
Res 0 (M ) = M,
Res 1 (M ) = M ∪ { b ∨ c, b ∨ c1 ∨ c2 , a ∨ d },
Res 2 (M ) = Res 1 (M ) ∪ { c ∨ d, c1 ∨ c2 ∨ d },
Res 3 (M ) = Res 2 (M ).
1. Iteration:
• Aus c ∨ ¬a und a ∨ b erhalten wir b ∨ c.
• Aus a ∨ b und c1 ∨ c2 ∨ ¬a erhalten wir b ∨ c1 ∨ c2 .
• Aus a ∨ b und d ∨ ¬b erhalten wir a ∨ d.
Prof. Dr. Dietmar Seipel
130
Logik für Informatiker
Wintersemester 2013/14
c ∨ d kann redundant auf zwei unterschiedlichen Wegen abgeleitet werden:
c ∨ ¬a
U b∨c
a∨b
d ∨ ¬b
U c∨d
a∨b
c ∨ ¬a
d ∨ ¬b
U a∨d
U c∨d
In diesem Fall sind die verwendeten Klauseln aus M (an den Blättern des
Baumes) jeweils dieselben. Nur die inneren Knoten der Bäume sind anders.
Prof. Dr. Dietmar Seipel
131
Logik für Informatiker
Wintersemester 2013/14
2. Iteration:
• Aus c ∨ ¬a und a ∨ d erhalten wir c ∨ d.
• Aus c1 ∨ c2 ∨ ¬a und a ∨ d erhalten wir c1 ∨ c2 ∨ d.
• Aus d ∨ ¬b und b ∨ c erhalten wir ebenfalls c ∨ d.
• Aus d ∨ ¬b und b ∨ c1 ∨ c2 erhalten wir ebenfalls c1 ∨ c2 ∨ d.
Sowohl c ∨ d als auch c1 ∨ c2 ∨ d werden also redundant auf zwei
unterschiedlichen Wegen abgeleitet.
In der Praxis versucht man redundante Ableitungen möglichst zu
vermeiden.
Prof. Dr. Dietmar Seipel
132
Logik für Informatiker
Wintersemester 2013/14
Für die Klauselmenge
M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q }
erhalten wir die folgenden Resolutionsmengen:
Res 0 (M ) = M,
Res 1 (M ) = M ∪ { p, q, ¬p, ¬q, p ∨ ¬p, q ∨ ¬q },
Res 2 (M ) = Res 1 (M ) ∪ { 2 },
Res 3 (M ) = Res 2 (M ).
Aus ¬p ∨ ¬q und p ∨ ¬q erhalten wir z.B. die Resolvente ¬q.
In Iteration 2 kann die leere Klausel 2 kann auf zwei unterschiedlichen
Wegen abgeleitet werden:
• aus p und ¬p und
• aus q und ¬q.
Prof. Dr. Dietmar Seipel
133
Logik für Informatiker
Wintersemester 2013/14
Man kann zeigen:
M = Res 0 (M ) ⊆ Res 1 (M ) ⊆ . . . ⊆ Res n (M ) ⊆ Res ∗ (M ).
Außerdem gilt:
M ≡ Res n (M ) ≡ Res ∗ (M ), für alle n ∈ IN0 ,
und wegen Res 0 (M ) ⊆ Res 1 (M ) auch
S
S
Res ∗ (Res(M )) = n≥1 Res n (M ) = n≥0 Res n (M ) = Res ∗ (M ).
Resolutionssatz der Aussagenlogik (Widerlegungsvollständigkeit)
Eine Klauselmenge M ist genau dann unerfüllbar, wenn 2 ∈ Res ∗ (M ).
Beweis:
Korrektheit: Angenommen 2 ∈ Res ∗ (M ). Dann ist Res ∗ (M ) unerfüllbar,
und wegen M ≡ Res ∗ (M ) ist auch M unerfüllbar.
Prof. Dr. Dietmar Seipel
134
Logik für Informatiker
Wintersemester 2013/14
Vollständigkeit: Angenommen M ist unerfüllbar.
Aufgrund des Endlichkeitstatzes gibt es bereits eine endliche Teilmenge
M ′ ⊆ M , welche unerfüllbar ist. Wir können zusätzlich voraussetzen, daß
M ′ keine Tautologien der Form A ∨ ¬A ∨ C enthält.
Seien A1 , . . . , An alle in M ′ vorkommenden Atome. Wir zeigen nun per
Induktion nach n, daß 2 ∈ Res ∗ (M ).
n = 0: Da M ′ = ∅ erfüllbar ist, gilt M ′ = {2} und somit
2 ∈ M ′ ⊆ Res ∗ (M ′ ) ⊆ Res ∗ (M ).
n → n + 1: Wir resolvieren Klauselpaare K1 ∨ An+1 und K2 ∨ ¬An+1
aus M ′ nach An+1 und setzen:
M1 = { K1 | K1 ∨ An+1 ∈ M ′ },
M2 = { K2 | K2 ∨ ¬An+1 ∈ M ′ }.
Prof. Dr. Dietmar Seipel
135
Logik für Informatiker
Wintersemester 2013/14
Sei ferner
M3 = { K3 ∈ M ′ | An+1 kommt nicht in K3 vor }
die Menge aller Klauseln aus M ′ , in denen An+1 werder positiv als
An+1 noch negativ als ¬An+1 vorkommt. Dann gilt
M ′′ = (M1 ∨ M2 ) ∪ M3 ⊆ Res(M ′ ),
wobei M1 ∨ M2 = { K1 ∨ K2 | K1 ∈ M1 , K2 ∈ M2 }.
Die Menge M ′′ enthält nur Formeln über A1 , . . . , An .
Angenommen M ′′ ist erfüllbar mit einem Modell I.
• Angenommen I 6|= M1 und I 6|= M2 .
Dann gibt es K1 ∈ M1 und K2 ∈ M2 mit I 6|= K1 und I 6|= K2 ,
und somit I 6|= K1 ∨ K2 ∈ M1 ∨ M2 ⊆ M ′′ , ein Widerspruch.
• Also gilt I |= M1 oder I |= M2 (oder beides).
Prof. Dr. Dietmar Seipel
136
Logik für Informatiker
Wintersemester 2013/14
Wir zeigen: wenn M ′ unerfüllbar ist, dann ist auch M ′′ unerfüllbar.
M′ ≡ M
M1
? R
M2
M3
N
?
M = (M1 ∨ M2 ) ∪ M3 ⊆ Res(M ′ )
′′
M ′ = ({An+1 } ∨ M1 ) ∪ ({¬An+1 } ∨ M2 ) ∪ M3
Wenn M ′ die Atome A1 , . . . , An+1 enthält, dann kann M ′′ nur noch
die Atome A1 , . . . , An enthalten.
Prof. Dr. Dietmar Seipel
137
Logik für Informatiker
Wintersemester 2013/14
Wir konstruieren nun ein Modell I ′ für M ′ :
M ′ = ({An+1 } ∨ M1 ) ∪ ({¬An+1 } ∨ M2 ) ∪ M3 .
1. Falls I |= M1 , so setzen wir:

I(B), falls B ∈ {A , . . . A }
1
n
I ′ (B) =
0,
falls B = An+1
• Wegen I |= M1 gilt I ′ |= {An+1 } ∨ M1 .
• Wegen I ′ |= ¬An+1 gilt auch I ′ |= {¬An+1 } ∨ M2 .
2. Falls I |= M2 , so setzen wir:

I(B), falls B ∈ {A , . . . , A }
1
n
I ′ (B) =
1,
falls B = An+1
• Wegen I |= An+1 gilt I ′ |= {An+1 } ∨ M1 .
• Wegen I ′ |= M2 gilt auch I ′ |= {¬An+1 } ∨ M2 .
In beiden Fällen gilt wegen I |= M3 auch I ′ |= M3 .
Prof. Dr. Dietmar Seipel
138
Logik für Informatiker
Wintersemester 2013/14
Also gilt in beiden Fällen I ′ |= M ′ ,
im Widerspruch zu der Annahme, daß M ′ unerfüllbar ist.
Also haben wir gezeigt, daß M ′′ unerfüllbar ist.
Da M ′′ nur noch die n Atome A1 , . . . , An enthalten kann, gilt somit
nach Induktionsannahme
2 ∈ Res ∗ (M ′′ ).
Wegen
Res ∗ (M ′′ ) ⊆ Res ∗ (Res(M ′ )) = Res ∗ (M ′ ) ⊆ Res ∗ (M ),
gilt nun also 2 ∈ Res ∗ (M ).
Prof. Dr. Dietmar Seipel
139
Logik für Informatiker
Wintersemester 2013/14
Die Konstruktion aus dem Beweis zum Resolutionssatz funktioniert für
beliebige Klauselmengen M und Atome A:
M1 = { K1 | K1 ∨ A ∈ M },
M2 = { K2 | K2 ∨ ¬A ∈ M },
M3 = { K3 ∈ M | A kommt nicht in K3 vor }.
Die Transformation
M 7→ M ′′ = (M1 ∨ M2 ) ∪ M3
erhält die Widerlegungseingenschaften:
M ist unerfüllbar ⇔ 2 ∈ Res ∗ (M ) ⇔
M ′′ ist unerfüllbar ⇔ 2 ∈ Res ∗ (M ′′ )
M ′′ enthält das Atom A nicht mehr.
Prof. Dr. Dietmar Seipel
140
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Transformation)
Aus der Klauselmenge
M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q }
erhalten wir für das Atom A = p:
M1 = { q, ¬q } = M2 , M3 = ∅,
M ′′ = M1 ∨ M2 = { q ∨ ¬q, q, ¬q } ≡ { q, ¬q }.
Tautologien – wie q ∨ ¬q – kann man frühzeitig aus der weiteren
Betrachtung ausschließen.
Die nochmalige Transformation für das Atom A = q erzeugt aus M ′′ nun
M ′′′′ = { 2 }.
Also ist M unerfüllbar.
Prof. Dr. Dietmar Seipel
141
Logik für Informatiker
Wintersemester 2013/14
Definition (Deduktion)
Eine Deduktion (Herleitung, Beweis) einer Klausel K aus einer
Klauselmenge M ist eine Folge
K1 , K2 , . . . , Km
von Klauseln, mit Km = K, und
∀ 1 ≤ i ≤ m:
• Ki ∈ M oder
• Ki ist die Resolvente aus zwei Klauseln Ki1 und Ki2 ,
mit 1 ≤ i1 ≤ i2 ≤ i − 1.
Eine Klauselmenge M ist genau dann unerfüllbar, wenn eine Deduktion der
leeren Klausel K = 2 aus M existiert.
Prof. Dr. Dietmar Seipel
142
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Deduktion)
Für die Klauselmenge
M = { c ∨ ¬a, a ∨ b, c1 ∨ c2 ∨ ¬a, d ∨ ¬b }
erhalten wir z.B. die folgende Deduktion K1 , . . . , K5 von K = c ∨ d:
K1 = c ∨ ¬a
K2 = a ∨ b
U K3 = b ∨ c
K4 = d ∨ ¬b
U K5 = c ∨ d
Prof. Dr. Dietmar Seipel
143
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Deduktion)
M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q }.
Deduktion:
K1 = p ∨ q,
Resolutionsgraph:
K1
K2
K4
K5
K2 = p ∨ ¬q,
K3 = p,
K4 = ¬p ∨ ¬q,
N K3
N K6
K5 = ¬p ∨ q,
K6 = ¬p,
K7 = 2.
Prof. Dr. Dietmar Seipel
R K7 = 2
144
Logik für Informatiker
Wintersemester 2013/14
Definition (Lineare Deduktion)
Eine lineare Deduktion (Herleitung, Beweis) einer Klausel K aus einer
Klauselmenge M ist eine Folge
K1 , K2 , . . . , K2·m+1
ungerader Länge von Klauseln, mit K2·m+1 = K und
• K1 ∈ M und
• ∀ 1 ≤ i ≤ m:
K2·i+1 ist eine Resolvente aus K2·i−1 und einer Klausel K2·i ∈ M .
K1 und die Klauseln K2·i mit geradem Index sind also alle in M ,
die anderen Klauseln K2·i+1 mit ungeradem Index sind Resolventen.
Prof. Dr. Dietmar Seipel
145
Logik für Informatiker
Wintersemester 2013/14
K1 ∈ M
K2 ∈ M
?
K3
?
K2·i−1
K2·i ∈ M
?
K2·i+1
?
K2·m−1 K2·m ∈ M
?
K2·m+1
Prof. Dr. Dietmar Seipel
146
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Lineare Deduktion)
1. Für die Horn–Klauselmenge
M = { c ∨ ¬a, a ∨ b, c1 ∨ c2 ∨ ¬a, d ∨ ¬b }
haben wir bereits eine lineare Deduktion K1 , . . . , K5 von K = c ∨ d
gesehen.
2. Man kann zeigen, daß es für die Nicht–Horn–Klauselmenge
M = { p ∨ q, ¬p ∨ ¬q, p ∨ ¬q, ¬p ∨ q }
keine lineare Deduktion der leeren Klausel K = 2 gibt.
Die oben angegebene Deduktion von K = 2 war nicht linear.
Prof. Dr. Dietmar Seipel
147
Logik für Informatiker
Wintersemester 2013/14
Aus dem Erfüllbarkeitstest für Horn–Klauselmengen folgt:
Für alle unerfüllbaren Horn–Klauselmengen M gibt es eine lineare
Deduktion
K1 , K2 , . . . , K2·m+1
der leeren Klausel K = 2, die mit einer Integritätsbedingung K1 ∈ M
beginnt. Für diese Deduktion gilt dann:
• Auch alle anderen Klauseln K2·i+1 mit ungeradem Index sind
Integritätsbedingungen.
• Alle Klauseln K2·i mit geradem Index sind Regeln (einschließlich der
Fakten) aus M mit einem positiven Atom, dem Kopfatom.
Auch die leere Klausel K = 2 kann man als Integritätsbedingung ansehen,
da sie keine positiven Atome enthält.
Prof. Dr. Dietmar Seipel
148
Logik für Informatiker
Wintersemester 2013/14
Beispiel (Lineare Deduktion)
Für die unerfüllbare Horn–Klauselmenge
M = { a, b, ¬a ∨ ¬b }
gibt es z.B. die folgende lineare Deduktion von K = 2:
K1 = ¬a ∨ ¬b
K2 = a
?
K3 = ¬b
K4 = b
?
K5 = 2
Prof. Dr. Dietmar Seipel
149
Herunterladen