Logik für Informatiker Kurzgefasst

Werbung
Logik für Informatiker
E-UNIVERSI
T
MAGDEBU
R
O-V
TT
K
IC
ÄT
ON-GU
ER
Kurzgefasst
G
O
Christopher Rohkohl
[email protected]
Stand: 10. Februar 2006
Zusammenfassung
Dieser Text soll als Zusammenfassung der wichtigsten
Themen aus der Vorlesung Logik für Informatiker von Prof.
Dassow dienen. Die Zusammenfassung orientiert sich in
vielerlei hinsicht an seinem gleichnamigen Buch. Es werden
ausführlich die Aussagenlogik und die Prädikatenlogik
vorgestellt. Weitere Logiken wie z.B. Fuzzy-Logik oder die
Temporale Logik werden nur überblicksartig vorgestellt.
In dieser Zusammenfassung habe ich aus Gründen der
Verständlichkeit :-) auf Beweise komplett verzichtet.
Dieser Text wurde nach bestem Wissen erstellt, ich kann
jedoch nicht für die Richtigkeit bzw. Vollständigkeit aller
Aussagen und Algorithmen garantieren. Über gefundene
Fehler und Verbesserungsvorschläge würde ich mich in einer
kurzen E-Mail natürlich freuen.
Die aktuellste Version dieser Zusammenfassung steht unter
http://www.oneder.de zum Download.
1
Inhaltsverzeichnis
1 Aussagenlogik
1.1 Aussagenlogische Ausdrücke . . .
1.2 Semantische Äquivalenz . . . . .
1.3 Substitutionsarten . . . . . . . .
1.3.1 Parallele Substitution . .
1.3.2 Sequentielle Substitution
1.4 Normalformen . . . . . . . . . . .
1.4.1 Konjunktive Normalform
1.4.2 Disjunktive Normalform .
1.5 Entscheidbarkeitsfragen . . . . .
1.5.1 Einfacher Algorithmus . .
1.5.2 Resolutionsmethode . . .
1.5.3 Hornausdrücke . . . . . .
1.5.4 Mengen von Ausdrücken .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
4
4
5
5
5
6
6
6
7
8
2 Prädikatenlogik
2.1 Prädikatenlogische Ausdrücke . . . . . . . . . .
2.1.1 Sprachen und Definitionen . . . . . . . .
2.1.2 Wertbestimmung . . . . . . . . . . . . .
2.1.3 Tautologie, Kontradiktion, Modell . . .
2.2 Semantische Äquivalenz . . . . . . . . . . . . .
2.3 Substitutionen . . . . . . . . . . . . . . . . . .
2.3.1 Einfache Substitutionen . . . . . . . . .
2.3.2 Unifikation . . . . . . . . . . . . . . . .
2.4 Normalformen . . . . . . . . . . . . . . . . . . .
2.4.1 Pränexe Normalform . . . . . . . . . . .
2.4.2 Skolemform . . . . . . . . . . . . . . . .
2.4.3 Bereinigte Skolemform . . . . . . . . . .
2.5 Entscheidbarkeitsfragen . . . . . . . . . . . . .
2.5.1 Unentscheidbarkeiten . . . . . . . . . .
2.5.2 Herbrand-Universum . . . . . . . . . . .
2.5.3 Semi-Algorithmus von Gilmore . . . . .
2.5.4 Semi-Algorithmus mit Grundresolution
2.5.5 Resolutionsmethode . . . . . . . . . . .
2.5.6 Hornausdrücke . . . . . . . . . . . . . .
2.6 Bemerkungen zur Logischen Programmierung .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
10
11
11
11
11
12
13
13
13
14
14
14
14
16
16
16
17
17
.
.
.
.
.
.
19
19
19
19
20
20
22
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Weitere Logiken
3.1 Logiken mit anderen Wertigkeiten .
3.1.1 Dreiwertige Aussagenlogik . .
3.1.2 Fuzzy-Logik . . . . . . . . . .
3.2 Logiken mit zusätzlichen Operatoren
3.2.1 Temporale Logik . . . . . . .
3.2.2 Dynamische Logik . . . . . .
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Aussagenlogik
Die Aussagenlogik basiert auf zwei wesentlichen Prinzipien.
1. Prinzip der Zweiwertigkeit: Eine Aussage ist entweder wahr oder falsch.
2. Prinzip vom ausgeschlossenen Widerspruch: Eine Aussage kann nicht
gleichzeitig wahr und falsch sein.
Ziel ist es den Wahrheitsgehalt von zusammengesetzten Aussagen zu bestimmen;
also ob eine komplexe (zusammengesetzte) Aussage wahr (1) oder falsch (0) ist.
1.1
Aussagenlogische Ausdrücke
Die Menge ausd der aussagenlogischen Ausdrücke wird induktiv definiert:
1. Jede Variable p ∈ var ist ein Ausdruck, (var = {p1 , p2 , ..., pn , ...})
2. Sind A und B Ausdrücke sind auch folgende Wörter Ausdrücke:
•
•
•
•
•
Negation: ¬A
Konjunktion: (A ∧ B)
Alternative: (A ∨ B)
Implikation: (A → B)
Äquivalenz: (A ↔ B)
3. Andere Ausdrücke gibt es nicht (Ausdrücke entstehen nur durch endlich oftmalige Anwendung der obigen Regeln).
Merke: Ein Ausdruck heißt Literal wenn er eine (negierte) Variable (p oder ¬p) ist.
Wertberechnung
Der Wert eines Ausdrucks wird mit Hilfe einer Funktion bestimmt. Diese Funktion heißt Belegung und ordnet jeder Variablen den Wert
0 oder 1 zu (Formal: α : var → {0, 1}.
Mit Hilfe dieser Funktion wird der Wert
Belegung α wieder induktiv definiert:

wenn C = p
,




wenn
C
=
¬A
,



wenn C = (A ∧ B) ,
wα (C) =
wenn C = (A ∨ B) ,





wenn C = (A → B) ,


wenn C = (A ↔ B) ,
wα (C) eines Ausdrucks unter der
wα (C) = wα (p) = α(p)
0 ⇔ wα (A) = 1
1 ⇔ .wα (A) = wα (B) = 1
0 ⇔ wα (A) = wα (B) = 0
wα ((¬A ∨ B))
wα (((A → B) ∧ (B → A)))
Merke: Ein Ausdruck A heißt Tautologie (Kontradiktion) wenn für jede Belegung α gilt: wα (A) = 1 (wα (A) = 0)
Merke: Für n Variablen gibt 2n verschiedene Belegungen.
Merke: Alle möglichen Belegungen eines Ausdrucks A mit n-Variablen entsprechen
einer n-stelligen Booleschen Funktion fA : {0, 1}n → {0, 1}.
n
Merke: Für n Variablen gibt es 22 verschiedene Boolesche Funktionen.
3
1.2
Semantische Äquivalenz
Semantische Äquvalenz ist die Gleichwertigkeit von Ausdrücken.
Merke: Ein Ausdruck A heißt äquivalent zu Ausdruck B (A ≡ B), wenn für alle
möglichen Belegungen α gilt: wα (A) = wα (B)
Merke: Die semantische Äquivalenz ist eine Äquivalenzrelation auf der Menge der
aussagenlogische Ausdrücke.
Merke: A ≡ B genau dann wenn (A ↔ B) eine Tautologie ist.
Wichtige semantisch äquivalente Ausdrücke sind:
1. (¬¬A) ≡ A (doppelte Verneinung)
2. (A ∧ A) ≡ A
3. (A ∨ A) ≡ A
4. (A ∧ (B ∨ C)) ≡ ((A ∧ B) ∨ (A ∧ C))
5. (A ∨ (B ∧ C)) ≡ ((A ∨ B) ∧ (A ∨ C))
6. (A ∧ B) ≡ ¬(¬A ∨ ¬B) (de Morgan-Regel)
7. (A ∨ B) ≡ ¬(¬A ∧ ¬B) (de Morgan-Regel)
8. (A → B) ≡ (¬A ∨ B)
1.3
Substitutionsarten
1.3.1
Parallele Substitution
Gegeben sind zwei Ausdrücke A und B, sowie eine Variable p.
Bei der parallelen Substitution psub(A, p, B) wird jedes Vorkommen von p in A
durch B ersetzt.
Es lässt sich für diesen Sachverhalt eine Belegung β konstruieren:
α(q)
f alls q 6= p
β(q) =
wα (B) f alls q = p
für die gilt: wα (psub(A, p, B)) = wβ (A).
Merke: Folgende Aussagen gelten:
1. Ist A eine Tautologie, so ist auch psub(A, p, B) eine Tautologie.
2. Ist A ≡ A0 , so gilt: psub(A, p, B) = psub(A0 , p, B)
1.3.2
Sequentielle Substitution
Gegeben sind die Ausdrücke A und B, sowie ein Teilausdruck C von A.
Bei der sequentiellen Substitution ssub(A, C, B) wird ein Vorkommen von C in A
durch B ersetzt. Will man z.B. alle Vorkommen von C in A ersetzen, muss man die
Substitution entsprechend oft anwenden.
Merke: Folgende Aussagen gelten:
1. Ist C ≡ B, so gilt: ssub(A, C, B) ≡ A
2. Ist A eine Tautologie und C ≡ B, so ist auch ssub(A, C, B) eine Tautologie.
4
1.4
Normalformen
Jeder aussagenlogische Ausdruck lässt sich in einen semantisch äquivalenten Ausdruck in Normalform überführen. In der Aussagenlogik sind zwei Normalformen
gebräuchlich, die konjunktive- bzw. disjunktive Normalform.
1.4.1
Konjunktive Normalform
Ein Ausdruck A in konjunktiver Normalform (KNF) besteht aus Konjunktionen von
Disjunktionen:
A = (A1 ∧ A2 ∧ . . . ∧ Am )
mit
Ai = (Ai,1 ∨ Ai,2 ∨ . . . ∨ Ai,ni )
wobei Ai,j ein Literal ist.
Merke: Eine Ausdruck in konjunktiver Normalform ist nie eindeutig; es existieren
verschiedene semantische äquivalente Ausdrücke in verschiedenen Normalformen.
Merke: Ein Ausdruck in konjunktiver Normalform kann über Umstellen oder über
eine Wertetabelle erhalten werden.
Merke: Herleitung der konjunktiven Normalform über Wertetabelle:
1. Suchen der Belegungen (Zeilen) für die der Ausdruck unwahr (0) wird. Aus jeder dieser Zeilen entsteht ein Konjunktionsglied bestehend aus Disjunktionen.
2. Durchgehen aller Variablen jeder in (1) gewählten Zeilen. Steht in der Spalte
eine 0, wird der Disjunktion die Variable hinzugefügt, andernfalls die negierte
Variable.
3. Verbinden der einzelnen Disjunktionen als Konjunktion.
Beispiel:
p1
0
0
1
1
1.4.2
p2
0
1
0
1
(p1 ↔ p2 )
1
0
0
1
Vorgehen:
1. Zeile 2 und Zeile 3
2. Zeile 2: (p1 ∨ ¬p2 ), Zeile 3: (¬p1 ∨ p2 )
3. Aknf = ((p1 ∨ ¬p2 ) ∧ (¬p1 ∨ p2 ))
Disjunktive Normalform
Ein Ausdruck A in disjunktiver Normalform besteht aus Disjunktionen von Konjunktionen:
A = (A1 ∨ A2 ∨ . . . ∨ Am )
mit
Ai = (Ai,1 ∧ Ai,2 ∧ . . . ∧ Ai,ni )
wobei Ai,j ein Literal ist.
Merke: Eine Ausdruck in disjunktiver Normalform ist nie eindeutig; es existieren
verschiedene semantische äquivalente Ausdrücke in verschiedenen Normalformen.
Merke: Ein Ausdruck in disjunktiver Normalform kann über Umstellen oder über
eine Wertetabelle erhalten werden.
Merke: Herleitung der disjunktiver Normalform über Wertetabelle:
5
1. Suchen der Belegungen (Zeilen) für die der Ausdruck wahr wird. Aus jeder
dieser Zeilen entsteht ein Disjunktionsglied bestehend aus Konjunktionen.
2. Durchgehen aller Variablen jeder in (1) gewählten Zeilen. Steht in der Spalte
eine 1, wird der Konjunktion die Variable hinzugefügt, andernfalls die negierte
Variable.
3. Verbinden der einzelnen Konjunktionen als Disjunktion.
Beispiel:
p1
0
0
1
1
p2
0
1
0
1
1.5
(p1 ↔ p2 )
1
0
0
1
Vorgehen:
1. Zeile 1 und Zeile 4
2. Zeile 1: (¬p1 ∧ ¬p2 ), Zeile 4: (p1 ∧ p2 )
3. Adnf = (¬p1 ∧ ¬p2 ) ∨ (p1 ∧ p2 ))
Entscheidbarkeitsfragen
Gegenstand dieses Abschnitts sind Algorithmen zu folgenden Problemstellungen:
1. Erfüllbarkeitsproblem: Ist ein Ausdruck erfüllbar?
2. Gültigkeitsproblem: Ist ein Ausdruck eine Tautologie?
3. Unerfüllbarkeitsproblem: Ist ein Ausdruck eine Kontradiktion?
Merke: Es reicht die Untersuchung des Erfüllbarkeitsproblems aufgrund folgender Zusammenhänge:
• Ein Ausdruck A ist eine Kontradiktion ⇔ A nicht erfüllbar.
• Ein Ausdruck A ist eine Tautologie ⇔ ¬A nicht erfüllbar.
Im folgenden wird sich auf die Untersuchung von Ausdrücken in KNF bezogen.
1.5.1
Einfacher Algorithmus
Ein einfacher Algorithmus für das Erfüllbarkeitsproblem besteht darin, alle möglichen
Belegungen (z.B. durch Wertetabelle) durchzutesten. Ist mindestens eine Belegung
wahr, ist der Ausdruck erfüllbar, ansonsten unerfüllbar.
Der Aufwand des Algorithmus ist O(2n ).
1.5.2
Resolutionsmethode
Ausgehend von einem Ausdruck in KNF bietet die Resolutionsmethode einen Algorithmus zur Überprüfung der Erfüllbarkeit. Zuerst die wichtigsten Begriffe:
Klausel Eine Klausel K = {A1 , A2 , . . . , An } ist die Menge der Literale Ai einer
Disjunktion (A1 ∨ A2 ∨ . . . ∨ An ). Die Elemente der Klausel sind geordnet;
zuerst normale Variablen, gefolgt von den negierten Variablen.
Klauselmenge Konjunktionen von Disjunktionen (KNF) lassen sich in einer Klauselmenge KA = {K1 , K2 , . . . , Kn } zusammenfassen. Wobei Ki die Klausel eines
Konjunktionsgliedes, bestehend aus Disjunktionen von Literalen der KNF, ist.
Beispiel:
B = ((p1 ∨ p2 ) ∧ (¬p1 ∨ p3 ))
K1 = {p1 , p2 },
K2 = {p3 , ¬p1 }
KB = {{p1 , p2 }, {p3 , ¬p1 }}
6
Resolvente Wenn K1 , K2 und R Klauseln sind, dann heißt R Resolvente von K1
und K2 falls eine Variable p existiert für die gilt:
1. p ∈ K1 und ¬p ∈ K2
2. R = (K1 \{p}) ∪ (K2 \{¬p})
Eine Resolvente kann demnach aus zwei Klauseln gebildet werden, wobei in
der einen Klausel die Variable in positiver und in der anderen in negierter
Form enthalten ist.
res(K) Für eine Menge K von Klauseln wird definiert:
res(K) = K ∪ { R — R ist Resolvente zweier Klauseln von K}
resn+1 (K) = res(resn (K))
wenn resk (K) = resk+1 = ...:res∗ (K) = resk (K)
res∗ (K) ist demnach die Bildung von Resolventen der Klauselmenge solange,
bis keine Änderung der Resolventenmenge mehr auftritt.
Merke: Der zu der Menge resn (K) gehörende Ausdruck ist semantische äquivalent
zu dem Ausdruck der Klauselmenge K.
Merke: Der zu einer Klauselmenge gehörende Ausdruck ist genau dann unerfüllbar,
wenn ∅ ∈ res∗ (K), also die Leere Menge, bei der Resolventenbildung entsteht.
Daraus entsteht der Resolutionsalgorithmus zur Bestimmung der Erfüllbarkeit
eines Ausdrucks A in KNF:
Bilde solange resn (KA ) bis res∗ (KA ) erreicht wurde. Ist ∅ ∈ resn (KA ),
ist der Ausdruck unerfüllbar. Ansonsten ist er erfüllbar.
Der Aufwand des Algorithmus ist wiederum O(2n ).
1.5.3
Hornausdrücke
Für eine bestimmte Klasse von Ausdrücken existiert ein Algorithmus mit polynomialer Komplexität zur Entscheidung der Erfüllbarkeit. Diese speziellen Ausdrücke
heißen Hornausdrücke.
Merke: Ein Hornausdruck ist ein aussagenlogischer Ausdruck in konjunktiver Normalform, bei dem jede Alternative höchstens eine nichtnegierte Variable enthält.
Merke: Es gibt 3 Arten von Alternativen (Disjunktionen) bei Hornausdrücken:
1. A = p
(Aussage)
2. A = (p∨¬q1 ∨¬q2 ∨. . .∨¬qk )
A ≡ ((q1 ∧q2 ∧. . .∧qn ) → p)
(Behauptung)
3. A = (¬q1 ∨ ¬q2 ∨ . . . ∨ ¬qk )
Der Algorithmus zur Erfüllbarkeit von Hornausdrücken
1. Menge M = ∅
2. Durchgehen aller Alternativen; WENN die Alternative eine Variable
p (Aussage) ist, setze M = M ∪ {p}
7
3. Falls |M | =
6 0
(a) Durchgehen aller Alternativen; WENN eine Alternative eine Behauptung
(p ∨ ¬q1 ∨ ¬q2 ∨ . . . ∨ ¬qk ) ist UND p ∈
/ M UND alle qj ∈ M ; DANN
setze M = M ∪ {p}
(b) Falls |M | sich nicht geändert hat breche ab; ansonsten wiederhole
den oberen Schritt.
4. Durchgehen aller Alternativen; WENN eine Alternative die Form (¬q1 ∨
¬q2 ∨. . .∨¬qk ) hat UND alle qj ∈ M DANN ist der Ausdruck unerfüllbar
SONST erfüllbar.
Merke: Ist der Ausdruck Erfüllbar ergibt sich eine den Ausdruck erfüllende Belegung α wie folgt:
1 f alls p ∈ M
α(p) =
0 f alls p ∈
/M
1.5.4
Mengen von Ausdrücken
Merke: Eine Menge M von aussagenlogischen Ausdrücken ist erfüllbar, wenn eine
Belegung α existiert, sodass wα (A) = 1 für alle A ∈ M .
Merke: Eine unendliche Menge M von Ausdrücken ist genau dann erfüllbar, wenn
jede endliche Teilmenge von M erfüllbar ist.
Merke: Eine unendliche Menge M von Ausdrücken ist genau dann unerfüllbar,
wenn es eine endliche Teilmenge von M gibt, die unerfüllbar ist.
Semi-Algorithmus für die Unerfüllbarkeit einer (unendlichen) Menge M =
{A1 , A2 , . . .} von Ausdrücken
1. F = A1 , n = 1
2. SOLANGE F erfüllbar ist: n = n + 1; F = (F ∧ An )
3. M ist unerfüllbar
Der Semi-Algorithmus gibt nach endlicher Zeit die Antwort, ob es sich um einen
unerfüllbaren Ausdruck handelt. Ansonsten läuft der Algorithmus unendlich lange.
8
2
Prädikatenlogik
Die Prädikatenlogik ist eine Erweiterung der Aussagenlogik. Nunmehr werden nicht
nur Aussagen untersucht, sondern es ist auch möglich Eigenschaften von Objekten
und ihre Geltungsbereiche zu betrachten.
Es lassen sich z.B. Aussagen folgender Form untersuchen:
• Es gibt ein Objekt mit der Eigenschaft XXX
• Für alle Objekte XXX gilt ...
2.1
Prädikatenlogische Ausdrücke
2.1.1
Sprachen und Definitionen
Eine prädikatenlogische Sprache (erster Stufe) besteht aus mehreren Elementen:
Signatur Die Signatur einer Sprache besteht aus mehreren Mengen:
1. (abzählbare) Menge K von Konstantensymbolen
2. für jedes n ≥ 1 eine (abzählbare) Menge Rn bestehend aus n-stelligen
Relationssymbolen (kann auch leer sein)
3. für jedes n ≥ 1 einer (abzählbaren) Menge Fn bestehend aus n-stelligen
Funktionssymbolen (kann auch leer sein)
Verschiedene prädikatenlogische Sprachen unterscheiden sich in ihren Signaturen.
Terme Die Menge T (S) von Termen über einer Signatur S wird induktiv definiert:
1.
2.
3.
4.
Variablen sind Terme
Konstantensymbole sind Terme
n-stellige Funktionssymbole f (t1 , . . . , tn ) sind Terme (ti ∈ T (S))
Andere Terme gibt es nicht (Terme entstehen nur aus endlich oftmaliger
Anwendung der obigen Regeln).
Merke: Eine Variable x kommt im Wort w vollfrei vor, wenn x in w vorkommt, aber weder ∀x noch ∃x Teilwörter von w sind.
Ausdrücke Die Menge A(S) von prädikatenlogischen Ausdrücken über einer Signatur S wird induktiv definiert:
1. n-stellige Relationssymbole r(t1 , . . . , tn ) sind Ausdrücke (ti ∈ T (S))
2. Sind A und B Ausdrücke, dann sind auch folgendes Ausdrücke:
¬A, (A ∨ B), (A ∧ B), (A → B), (A ↔ B)
3. Ist A ein Ausdruck und x eine Variable, die in A vollfrei vorkommt, dann
sind auch ∀xA und ∃xA Ausdrücke
4. Andere Ausdrücke gibt es nicht (Ausdrücke entstehen nur aus endlich
oftmaliger Anwendung der obigen Regeln).
Merke: Ein Ausdruck der Form r(t1 , . . . , tn ) heißt Basisausdruck. Die Basisausdrücke spielen in der Prädikatenlogik die Rolle der Variablen in der Aussagenlogik.
Merke: Die Menge B(A) ist die Menge aller im Ausdruck A vorkommenden
Basisausdrücke.
Merke: Ein Ausdruck heißt Literal, wenn er ein Basisausdruck oder ein negierter Basisausdruck ist.
9
2.1.2
Wertbestimmung
Wie bereits bei aussagenlogischen Ausdrücken, soll jedem prädikatenlogischen Ausdruck ein Wert ∈ {0, 1} zugeordnet werden.
In der Prädikatenlogik wird ein Wert immer unter einer bestimmten Interpretation über einer Signatur S betrachtet.
Merke: Eine Interpretation I von S ist ein Paar I = (U, τ ), wobei U eine nichtleere
Menge und τ eine Abbildung ist, die
• jedem Konstantensymbol c ∈ K ein Element τ (c) ∈ U zuordnet,
• jedem n-stelligen Funktionssymbol f ∈ Fn eine n-stellige Funktion τ (f ) :
U n → U zuordnet, und
• jedem n-stelligen Relationssymbol r ∈ Rn eine n-stellige Relation τ (r) ⊆ U n
zuordnet.
Ähnlich zu der Aussagenlogik wird nun eine Belegung α bezüglich einer Interpretation I definiert.
Merke: Eine Belegung α bezüglich einer Interpretation I ist eine Funktion, die
jeder Variablen x ein Element α(x) ∈ U zuordnet.
Merke: Für eine Belegung α, eine Variable x und ein d ∈ U , ist die Belegung αx,d
definiert durch:
d
f alls y = x
αx,d (y) =
α(y) f alls y 6= x
Die Belegungen α und αx,d unterscheiden sich nur darin, welcher Wert der Variablen
x zugeordnet wird. Bei α ist dies α(x), bei αx,d ist es d.
Die Wertberechnung von Ausdrücken unter einer Interpretation bezüglich einer
Belegung teilt sich nun in zwei Schritte mit induktiven Definitonen:
Wert eines Terms
• wαI (x) = α(x) für jede Variable x.
• wαI (c) = τ (c) für jedes Konstantensymbol c.
• wαI (f (t1 , . . . , tn )) = τ (f )(wαI (t1 ), . . . , wαI (tn )) für jedes n-stellige Funktionssymbol f.
Merke: Der Wert eines Terms ist ∈ U
Wert eines Ausdrucks
• wαI (r(t1 , . . . , tn )) = 1 ⇔ (wαI (t1 ), . . . , wαI (tn )) ∈ τ (r) für n-stellige Relationssymbole r.
• Sind A und B Ausdrücke so gilt:

, 0 ⇔ wαI (A) = 1

 wenn C = ¬A


 wenn C = (A ∧ B) , 1 ⇔ wαI (A) = wαI (B) = 1
I
wenn C = (A ∨ B) , 0 ⇔ wαI (A) = wαI (B) = 0
wα (C) =


 wenn C = (A → B) , wαI ((¬A ∨ B))


wenn C = (A ↔ B) , wαI (((A → B) ∧ (B → A)))
• Ist A ein Ausdruck und kommt x in A vollfrei vor, so ist:
– wαI (∀xA) = 1 ⇔ für jedes d ∈ U gilt: wαI x,d (A) = 1.
– wαI (∃xA) = 1 ⇔ ein d ∈ U existiert mit: wαI x,d (A) = 1.
10
2.1.3
Tautologie, Kontradiktion, Modell
Wie bei der Aussagenlogik werden auch in der Prädikatenlogik Tautologien und
Kontradiktionen definiert; diesmal jedoch werden verschiedene Arten unterschieden:
bezüglich einer Interpretation Ein Ausdruck A über der Signatur S heißt Tautologie (bzw. Kontradiktion) bezüglich einer Interpretation I von S, falls für
jede Belegung α bezüglich I gilt: wαI (A) = 1 (bzw. wαI (A) = 0). Ein Ausdruck
heißt erfüllbar bezüglich I , falls eine Belegung α bezüglich I existiert mit:
wαI (A) = 1.
Allgemein Ein Ausdruck A über der Signatur S heißt Tautologie (bzw. Kontradiktion), falls A Tautologie (bzw. Kontradiktion) bezüglich jeder Interpretation
von S ist. Ein Ausdruck heißt erfüllbar falls es eine Interpretation I von S und
eine Belegung α bezüglich I existiert mit: wαI (A) = 1
Merke: M ist eine Menge von Ausdrücken über S. Eine Interpretation I von S heißt
Modell für M, wenn jeder Ausdruck von M eine Tautologie bezüglich I ist.
2.2
Semantische Äquivalenz
Zwei prädikatenlogische Ausdrücke A und B über der Signatur S heißen semantisch
äquivalent (A ≡ B), wenn für jede Interpretation I von S und jede Belegung α
bezüglich I gilt: wαI (A) = wαI (B).
Merke: Zwei Ausdrücke A und B über der Signatur S sind genau dann semantisch
äquivalent, wenn (A ↔ B) eine Tautologie ist.
Merke: Neben den aus der Aussagenlogik bekannten semantische Äquivalenzen
existieren noch folgende wichtige Äquivalenzen:
• ¬∀xA ≡ ∃x¬A
• ¬∃xA ≡ ∀x¬A
• (∀xA ∧ ∀xB) ≡ ∀(A ∧ B)
• (∃xA ∨ ∃xB) ≡ ∃(A ∨ B)
Kommt x in B nicht vor, so gelten noch:
• (∀xA ∧ B) ≡ ∀(A ∧ B)
• (∀xA ∨ B) ≡ ∀(A ∨ B)
• (∃xA ∧ B) ≡ ∃(A ∧ B)
• (∃xA ∨ B) ≡ ∃(A ∨ B)
2.3
2.3.1
Substitutionen
Einfache Substitutionen
Gegeben sind der Term s, der Ausdruck A, die Variable x und der Term t, der x
nicht enthält.
Die Substitutionen sub(s, x, t) und sub(A, x, t) wird durchgeführt, indem jedes freie
Vorkommen von x in s bzw. A durch t ersetzt wird.
11
Es lässt sich für diesen Sachverhalt eine Belegung αx,t konstruieren:
α(y) f alls y =
6 x
αx,t (y) =
I
wα (t) f alls y = x
für die gilt: wαI (sub(s, x, t)) = wαI x,t (s) und wαI (sub(A, x, t)) = wαI x,t (A) .
Merke: Eie Substitution, bei denen Variable nur durch Terme ohne Variable ersetzt
werden, heißt Grundsubstitution.
Merke: Eine Substitution, bei der x durch t ersetzt wird kann auch als [x/t] geschrieben werden.
Merke: Eine parallele Substitution s mehrerer Terme eines Ausdrucks A kann
als Verkettung wie folgt geschrieben werden:
s(A) = ([x1 /t1 ] ◦ . . . ◦ [xk /tk ])(A)
Merke: Soll eine Substitution s auf eine Menge M von Ausdrücken angewandt
werden schreibt man:
s(M ) = {s(M1 ), . . . , s(Mn )}
2.3.2
Unifikation
Das Ziel eine Unifikation ist durch Substitution die Gleichheit einer Menge von Literalen zu erreichen.
Als Unifikator bezeichnet man eine Substitution über einer Menge L = {L1 , L2 , . . . , Ln }
von Literalen für die gilt:
s(L1 ) = s(L2 ) = · · · = s(Lr )
Als allgemeinsten Unifikator ist die Substitution, bei der am wenigsten Ersetzungen vorzunehmen sind um die Gleichheit der Bilder von L zu erreichen. Formal
ausgedrückt bedeutet dies: für jeden Unifikator s0 von L existiert eine Substitution
s00 mit s0 = s ◦ s00 für den allgemeinsten Unifikator s.
Algorithmus zur Bestimmung des allgemeinsten Unifikators
für eine nichtleere Menge L = {L1 , L2 , . . . , Ln } von Literalen.
1. Substitution s = [xi /xi ] (identische Substitution)
2. SOLANGE s kein Unifikator ist TUE
(a) Suche in den Literalen von s(L), die erste
zwei Literale unterscheiden.
(b) WENN keines der Zeichen eine Variable DANN
L nicht unifizierbar SONST setze x als die
den im anderen Literal beginnenden Term.
(c) WENN die Variable x im entsprechenden Term
L nicht unifizierbar.
(d) ANSONSTEN s = s ◦ [x/t]
Position an der sich
ist
Variable und t als
t vorkommt DANN ist
3. s ist die Substitution für den allgemeinsten Unifikator von L.
12
2.4
Normalformen
In diesem Abschnitt werden prädikatenlogische Ausdrücke einer speziellen Form angegeben, sodass zu jedem prädikatenlogischen Ausdruck ein semantisch äquivalenter
Ausdruck dieser Form existiert.
2.4.1
Pränexe Normalform
Ein Ausdruck A ist in pränexer Normalform, wenn folgende Bedingungen erfüllt
sind:
1. A = Q1 x1 Q2 x2 . . . Qn xn A0
2. Qi ∈ {∀, ∃}
3. xi ist eine Variable
4. in A0 kommen ∀ und ∃ nicht vor
Merke: Bei einem Ausdruck in pränexer Normalform stehen alle Quantoren (mit
den entsprechenden Variablen) am Anfang des Ausdrucks.
Merke: A0 gleicht einem aussagenlogischen Ausdruck und kann demnach in die
KNF oder DNF gebracht werden.
Merke: Zu jedem Ausdruck existiert ein semantisch äquivalenter Ausdruck in pränexer
Normalform.
Merke: Die pränexe Normalform ist nicht eindeutig bestimmt.
Merke: Die pränexe Normalform wird durch Umformungen des Ausgangsausdrucks
hergestellt. Nützlich dabei sind die semantischen Äquivalenzen, sowie die Substitutionen. Durch die Substitutionen können Variablen umbenannt werden ohne den
Ausdruck zu verändern.
2.4.2
Skolemform
Die Skolemform ist eine Normalform, bei der die entstehenden Ausdrücke nicht
semantisch äquivalent sind, bei denen jedoch die Erfüllbarkeit erhalten bleibt.
Um Ausdrücke in die Skolemform überführen zu können, wird zunächst für einen
Ausdruck A = ∀x1 . . . ∀xn ∃yG mit pränexer Normalform G definiert:
sk(A, f ) = ∀x1 . . . ∀xn sub(G, y, f (x1 , . . . , xn ))
Dabei entsteht der Ausdruck sk(A, f ) aus A durch Ersetzen alle Vorkommen der
ersten durch ∃ quantifizierten Variablen y durch einen Term f (x1 , . . . , xn ) und Streichen der zu y gehörenden Quantifizierung.
Merke: Die Skolemform sk(A) wird auf Grundlage einer pränexen Normalform
A mit folgendem Algorithmus definiert und gewonnen:
SOLANGE A einen Existenzquantor enthält, setze A = sk(A, f ) für ein noch
nicht in A vorkommendes Funktionssymbol f.
13
Jede Skolemform sk(A) eines Ausdrucks A ist von der Form ∀x1 . . . ∀xk A0 mit dem
quantorenfreien Ausdruck A0 .
Merke: Eine pränexe Normalform A ist genau dann erfüllbar , wenn ihre Skolemform sk(A) erfüllbar ist.
2.4.3
Bereinigte Skolemform
Ein prädikatenlogischer Ausdruck A hat bereinigte Skolemform, wenn folgende Bedingungen erfüllt sind:
1. A = ∀x1 . . . ∀xn A0
2. A0 enthält keine Existenz- und Allquantoren
3. in A0 kommen nur die Variablen x1 , . . . , xn vor.
Es gelten die gleichen Bedingungen wie für die normale Skolemform, da ein Ausdruck A genau dann erfüllbar ist, wenn ∃xA erfüllbar ist. Diese Bedingung ist auch
gleichzeitig der letzte Konstruktionsschritt bei der Umwandlung von der Skolemform in die bereinigte Skolemform.
Merke: Zu jedem Ausdruck A gibt es einen Ausdruck in bereinigter Skolemform,
der genau dann erfüllbar ist, wenn A erfüllbar ist.
2.5
2.5.1
Entscheidbarkeitsfragen
Unentscheidbarkeiten
Die Entscheidbarkeitsfragen sind deckungsgleich mit denen der Aussagenlogik; es
geht also um die Frage ob ein prädikatenlogischer Ausdruck A erfüllbar, allgemeingültig bzw. unerfüllbar ist.
Merke: Im Gegensatz zur Aussagenlogik, sind das Gültigkeitsproblem, das Unerfüllbarkeitsproblem und das Erfüllbarkeitsproblem in der Prädikatenlogik unentscheidbar . D.h. Es gibt keinen Algorithmus, der für einen beliebigen prädikatenlogischen
Ausdruck A festellt, ob A allgemeingültig, unerfüllbar oder erfüllbar ist.
Dieser Umstand ist darauf zurückzuführen, dass ein Durchtesten aller (unter Umständen
unendlich vielen) Interpretationen und aller zugehörigen (womöglich unendlich vielen) Belegungen zu keinem Algorithmus führt.
2.5.2
Herbrand-Universum
Für eine feste Interpretation ist es möglich einen Semi-Algorithmus, ähnlich denen
der Aussagenlogik, zu beschreiben. Wenn man von dieser Interpretation auf andere
Interpretationen schließen kann, erhält man einen Semi-Algorithmus für die Unerfüllbarkeit. Für eine bestimmte Klasse von Interpretationen ist dies möglich (aber
halt nicht für alle); es wird eine Einschränkung der Interpretation vorgenommen,
bei der für Terme eine Gleichsetzung von Syntax und Semantik vorgenommen wird.
Herbrand-Universum Vorausetzung: A ist ein Ausdruck in bereinigter Skolemform
Das Herbrand-Universum H(A) ist eine Menge von Termen und wird induktiv
induktiv definiert:
14
1. Wenn in A Konstanten c ∈ K vorkommen: H(A) ∪ {c}
ansonsten hinzufügen von einem in A nicht vorkommenden Symbol a:
H(A) ∪ {a}
2. für ein n-stelliges Funktionssymbol f in A, wird (rekursiv) für alle möglichen
bildbaren Terme t1 , . . . , tn die ∈ H(A), das n-stellige Funktionssymbol f
aufgenommen: H(A) ∪ {f (t1 , . . . , tn )}
Beispiel:
Gegeben ist der Ausdruck A = ∀x∀yP (f (x, y), y).
1. Da A keine Konstanten enthält: a ∈ H(A)
2. Ersetzen der Funktion f durch eine n-stellige Funktion aller möglichen
Terme:
H(A) = {a, f (a, a), f (a, f (a, a)), f (f (a, a), a), f (f (a, a), f (a, a)), . . . ...}
Herbrand-Interpretation Die Einschränkung einer Interpretation auf eine HerbrandInterpretation, setzt Syntax und Semantik der prädikatenlogischen Sprache
gleich.
Eine Interpretation I = (U, τ ) heißt Herbrand-Interpretation bezüglich des
Ausdrucks A (in bereinigter Skolemform), wenn folgende Bedingungen erfüllt
sind:
1. Es Gilt: U = H(A), also U ist ein Herbrand-Universum
2. für in A vorkommende Konstanten c gilt: τ (c) = c
3. für in A vorkommende k-stellige Funtionssymbole f und je k Terme t1 , . . . , tk
gilt: τ (f )(t1 , . . . , tk ) = f (t1 , . . . , tk )
Merke: Eine Herbrand-Interpretation I bezüglich A heißt Herbrand-Modell
für A, falls I Modell für A ist.
Merke: Bei einer Herbrand-Interpretation ist die Interpretation der Relationssymbole nicht festgelegt und daher kann ein Ausdruck bezüglich verschiedener
Herbrand-Interpretation sehr verschiedenes Verhalten zeigen.
Merke: Ein Ausdruck in bereinigter Skolemform ist genau dann erfüllbar,
wenn es ein Herbrand-Modell gibt.
Herbrand-Erweiterung Die Herbrand-Erweiterung E(A) von A ist die Menge die
durch, simultanes Ersetzen aller Vorkommen von xi in A’ durch alle möglichen
Elemente ti ∈ H(A) des Herbrand-Universums entsteht
E(A) = {sub(. . . (sub(A0 , xn , tn ), xn−1 , tn−1 . . .)x1 , t1 |t1 , . . . , tn ∈ H(A))}
Merke: Nur Variablen ersetzen (keine Konstanten oder Funktionen)!
Merke: Zusätzlich definiert man die Menge E 0 (A) als die Menge aller Basisausdrücke von E(A)
Beispiel:
Aus dem Beispiel zum Herbrand-Universum für den Ausdruck A = ∀x∀yP (f (x, y), y)
ergab sich H(A) = {a, f (a, a), f (a, f (a, a)), f (f (a, a), a), f (f (a, a), f (a, a)), . . . ...}.
Für E(A) bzw. E 0 (A) ergeben sich dann:
E(A) = {(P (f (a, a), a)), (P (f (f (a), a), a)), (P (f (a, f (a)), a)), (P (f (a, a), f (a))), . . .}
15
Da es sich bei A0 = P (f (x, y), y) selbst um einen Basisausdruck handelt, gilt:
E 0 (A) = E(A)
Aus diesen Definitionen und Aussagen lassen sich jetzt folgende Aussagen über die
Erfüllbarkeit bzw. Unerfüllbarkeit ableiten:
Merke: für einen Ausdruck A in bereinigter Skolemform gilt:
1. A ist genau dann erfüllbar, wenn die Menge E(A) im aussagenlogischenb Sinn
erfüllbar ist. D.h. es existiert eine Belegung α von E 0 (A) für die gilt: wα (B) = 1
für alle B ∈ E(A)
2. A ist genau dann erfüllbar, wenn jede endliche Teilmenge von E(A) erfüllbar
ist.
3. A ist genau dann unerfüllbar, wenn es eine endliche Teilmenge von E(A) gibt,
die unerfüllbar ist.
2.5.3
Semi-Algorithmus von Gilmore
Aus dem vorherigen Abschnitt ergibt sich ein Semi-Algorithmus für das
Unerfüllbarkeitsproblem für einen Ausdruck A in bereinigter Skolemform, sowie
dessen Herbrand-Erweiterung E(A) = {A1 , . . .}:
1. F = A1 , n = 1
2. SOLANGE F erfüllbar ist: n = n + 1; F = (F ∧ An )
3. A ist unerfüllbar
2.5.4
Semi-Algorithmus mit Grundresolution
Eine weitere Alternative um die Unerfüllbarkeit eines prädikatenlogischen Ausdrucks zu überprüfen ist der Grundresolutionsalgorithmus. Gegeben sind wiederum ein Ausdruck A in bereinigter Skolemform mit KNF, sowie dessen HerbrandErweiterung E(A) = {A1 , . . .} und der Klauselmenge KEA der Klauseln von E(A):
Bilde solange resn (KEA ) bis res∗ (KEA ) erreicht wurde. Ist ∅ ∈ resn (KEA ),
ist der Ausdruck unerfüllbar. Ansonsten ist er erfüllbar.
Da dieser Algorithmus nur auf Grundsubstitutionen bei der Erstellung der Klauseln
basiert, wird er auch Grundresolutionsalgorithmus genannt.
2.5.5
Resolutionsmethode
Entsprechend der Aussagenlogik, existiert eine Resolutionsmethode für Prädikatenlogische
Ausdrücke. Anders als bei der Grundresolution werden hierbei auch Substitutionen
zugelassen, bei denen die Terme auch Variable enthalten können.
Klauseln Klauseln werden Analog zu aussagenlogischen Klauseln (siehe 1.5.2) definiert, wobei die Literale jetzt prädikatenlogischer Art sind.
Merke: Eine Klausel ist negativ, wenn alle Literale negierte Basisausdrücke
sind; definit, falls genau ein Literal ein nichtnegierter Basisausdruck ist.
Klauselmenge Für Klauselmengen gilt das gleiche wie für Klauseln.
16
Resolvente Wenn K1 und K2 Klauseln sind und es gilt:
1. K1 und K2 durch Variablenumbenenungen durch Substitution keine gemeinsamen Variablen mehr enthalten.
2. Ein allgemeinster Unifikator s für zwei Literale L1 und L2 existiert mit
L1 ∈ K1 und ¬L2 ∈ K2
3. s(L1 ) = s(L2 )
Dann heißt R = (s(K1 )\s(L1 )) ∪ (s(K2 )\s(L2 )) Resolvente von K1 und K2 .
Merke: Die Resolvente aus zwei Klauseln entsteht, indem man versucht durch
Unifizierung zwei gleiche Literale zu erhalten. Tritt eines dieser Literale positiv
in K1 und negiert in K2 auf, entsteht die Resolvente durch die Vereinigung
der Unfizierungen von K1 und K2 und dem Streichen der jeweiligen Literale.
Merke: Die prädikatenlogische Resolvente ist eine Verallgemeinerung der aussagenlogischen Resolvente.
res(K) res(K), resn (K) und res∗ (K) werden analog zur Aussagenlogig definiert
(siehe 1.5.2), wobei die Literale jetzt prädikatenlogischer Art sind.
Merke: Ein Ausdruck A = ∀x1 . . . ∀xn A0 in bereinigter Skolemform, bei dem A0 in
konjunktiver Normalform vorliegt ist genau dann unerfüllbar, wenn die leere Menge
in res ∗ (A0 ) liegt.
Darauf aufbauend wird der Resolutionsalgorithmus für das Unerfüllbarkeitsproblem
des Ausdrucks A analog zur Aussagenlogik definiert:
Bilde solange resn (KA ) bis res∗ (KA ) erreicht wurde. Ist ∅ ∈ resn (KA ),
ist der Ausdruck unerfüllbar. Ansonsten ist er erfüllbar.
Merke: Die Reihenfolge der Wahl der Klauseln zur Resolventenbildung kann beliebig erfolgen. Für den Rechner ist es jedoch sinnvoll eine bestimmte Art der Reihenfolge fest zu definieren.
Eine dieser Resolutionsarten heißt Linerare Resolution. Bei einer lineraren Resolution wird stets die Resolvente, die man in einem Schritt erhalten hat, im nächsten
Schritt zur Resolventenbildung benutzt.
2.5.6
Hornausdrücke
Entsprechend der aussagenlogischen Hornausdrücke (siehe 1.5.3), heißt ein quantorenfreier prädikatenlogischer Ausdruck A in konjunktiver Normalform Hornausdruck, falls jede Alternative höchstens einen nichtnegierten Basisausdruck enthält.
Merke: Eine Klausel heißt Hornklausel, falss sie negativ oder definit ist.
2.6
Bemerkungen zur Logischen Programmierung
In der logischen Programmierung sind nur Hornausdrücke bzw. Klauselmengen zu
Hornausdrücken zugelassen, um Mehrdeutigkeiten beim Berechnungsprozess zu vermeiden.
Die verschiedenen Arten von Klauseln werden wie folgt unterschieden:
17
1. Tatsachenklauseln sind einelementige positive Klauseln {p}
2. Prozedurklauseln sind Klauseln der Form {P, ¬Q1 , . . . , ¬Qn }. P heißt der Prozedurkopf und Q1 , . . . , Qn bilden den Prozedurkörper.
3. Eine Zielklausel ist eine Klausel der Form {¬Q1 , . . . , ¬Qn }
Merke: Ein Logik-Programm ist eine endliche Menge von Tatsachen- und Prozedurklauseln. In der logischen Programmierung wird eine modifizierte Notation
verwendet, z.B. wird eine Prozedurklausel {P, ¬Q1 , . . . , ¬Qn } durch
P : -Q1 , . . . , Qn
beschrieben, was an die dahinter stehende Behauptung erinnern soll.
18
3
Weitere Logiken
Die Aussagenlogik und Prädikatenlogik sind die klassischen Logiken. Zu weiteren
Logiken gelangt man, wenn man das Prinzip der Zweiwertigkeit aufgibt oder weitere
Operatoren hinzunimmt.
3.1
3.1.1
Logiken mit anderen Wertigkeiten
Dreiwertige Aussagenlogik
Bei der dreiwertigen Aussagenlogik wird ein dritter Wahrheitswert eingeführt. Neben dem Zustand wahr oder falsch wird zusätzlich der Umstand unbekannt definiert.
Die Definitionen für die Syntax der Ausdrücke ist äquivalent zu denen der Aussagenlogik. Lediglich die Menge der Variablen {0, 1, ×} und die Wertberechnung sind
unterschiedlich.
Wertberechnung Die Wertetabellen für die Grundelemente sind wie folgt:
A ¬A
0
1
× ×
1
0
Negation
∧ 0 × 1
0 0 0 0
× 0 × ×
1 0 × 1
Konjunktion
∨ 0 × 1
0 0 × 1
× × × 1
1 1 1 1
Disjunktion
Semantische Äquivalenz Es lassen sich nicht alle Äquivalenzen, Tautologien,
usw. aus der zweiwertigen Aussagenlogik übertragen. Als Beispiel sei der Ausdrück (A∨¬A) gegeben, der in der zweiwertigen Aussagenlogik eine Tautologie
ist, in der dreiwertigen jedoch folgende Werte annimmt:
A
0
×
1
¬A
1
×
0
(A ∨ ¬A)
1
×
1
Erfüllbarkeit Für einen aussagenlogischen Ausdruck A der dreiwertigen Logik ist
es entscheidbar, ob A eine Tautologie oder erfüllbar oder eine Kontradiktion
ist.
Alternative Interpretation Die oben angegebene Interpretation für × liegt zwischen wahr und falsch. Es ist deshalb gebräuchlich den dritten wahrheitswert
mit 12 zu bezeichnen und darauf Aufbauend folgende Wertberechnungen zu
definieren:
wαd (¬A) = 1 − wαd (A)
wαd ((A ∧ B)) = min{wαd (A), wαd (B)}
wαd ((A ∨ B)) = max{wαd (A), wαd (B)}
3.1.2
Fuzzy-Logik
Bei der dreiwertigen Logik im vorherigen Abschnitt, wurde von einem festen Wert
1
2 für den Wahrheitswert unsicher ausgegangen. Da in der Praxis jedoch oftmals die
Größe der Unsicherheit unterschiedlich oder absehbar ist, wird bei der Fuzzy-Logik
für eine Menge M eine Zugehörigkeitsfunktion eingeführt:
αM : G → [0, 1]
19
Diese Funktion bildet ein Element des Grundbereichs G auf eine reelle Zahl im
Intervall [0, 1] ab. Der Wert αM (x) gibt demzufolge an, wie stark ein Element zu M
gehört.
Syntax Die Ausdrücke der Fuzzy-Logik werden entsprechend der Ausdrücke der
Aussagenlogik gebildet.
Wertberechnung Für einen Ausdruck A und eine Belegung α (Zugehörigkeitsfunktion)
wird der Wert wαf (A) induktiv durch folgende Setzungen definiert:
1. wαf (p) = α(p) für eine Variable p
2. wαf (¬A) = 1 − wαf (A)
3. wαf ((A ∧ B)) = min{wαf (A), wαf (B)}
4. wαf ((A ∨ B)) = max{wαf (A), wαf (B)}
Merke: Die klassische Aussagenlogik ist ein Spezialfall der Fuzzy-Logig für α :
var → {0, 1}.
3.2
Logiken mit zusätzlichen Operatoren
3.2.1
Temporale Logik
Die temporale Logik versucht aussagenlogische Ausdrücke zu untersuchen, bei denen
der zeitliche Aspekt eine bedeutende Rolle spielt.
Syntax
Die Menge der temporalen aussagenlogische Ausdrücke wird induktiv definiert:
1. Jede Variable ist ein Ausdruck
2. Sind v und w Ausdrücke, so sind auch folgende Wörter Ausdrücke:
¬v, (v ∧ v), (v ∨ w), (v → w), (v ↔ w),
F w, Gw, F ∞ w, G∞ w, (w U v), (w B v), Xw
3. Andere Ausdrücke gibt es nicht (ein Ausdruck kann nur durch endlich
oftmalige Anwendung der obigen Regeln entstehen).
Gegenüber der Aussagenlogik wurden also neue Sprachkonstrukte eingeführt,
durch die der zeitliche Aspekt berücksichtig werden soll.
Zeitliche Strukturen
Da zeitliche Momente berücksichtigt werden müssen, genügt es zur Wertberechnung nicht nur eine Belegung α zu definieren. Es wird daher eine Struktur
– die Zeitlinie – definiert:
Merke: Eine Zeitlinie ist ein Paar Z = (M, x), mit:
• einem Paar M bestehend aus (S, L) mit:
– einer Menge S von Zuständen
– einer Funktion L : S → 2var , die für jeden Zustand s ∈ S eine Menge
von Variablen festlegt, die bei Eintreten des Zustands s wahr werden.
• einer Funktion x : N0 → S, die einer (unendlichen) Folge (x(0), x(1), . . . , x(t), . . .)
von Zuständen entspricht, wobei das Argument t dem Zeittakt entspricht.
20
Merke: Eine Belegung αs wird mit L für jeden Zustand s ∈ S wie folgt
definiert:
1 f alls p ∈ L(s)
αs (p) =
0 f alls p ∈
/ L(s)
Merke: Da durch x = (x(0), x(1), . . . , x(t), . . .) eine Folge von Zuständen gegeben ist, ist mit x auch eindeutig eine Folge von Belegungen (αx(0) , αx(1) , . . .)
bestimmt.
Merke: xj bezeichnet die Folge (x(j), x(j +1), . . .). Demnach beginnt die Folge
xj mit dem (j + 1)-ten Element von x und es gilt x = x0 .
Wertberechnung
Einem temporalen aussagenlogischen Ausdruck u bezüglich einer Zeitlinie (M, x)
wird der Wert wxM (u) induktiv wie folgt zu gewiesen:
1. für eine Variable p gilt: wxMj (p) = 1 ⇔ p ∈ L(x(j)) ⇔ p im Zustand x(j)
wahr ist.
2. sind wxM (u) und wxM (v) bereits bekannt, so gilt:

wenn z = ¬z
, 1 ⇔ wxM (u) = 0



 wenn z = (u ∧ v) , 1 ⇔ wxM (u) = wxM (v) = 1




wenn z = (u ∨ v) , 0 ⇔ wxM (u) = wxM (v) = 0



wenn z = (u → v) , wxM ((¬u ∨ v))



 wenn z = (u ↔ v) , wxM (((u → v) ∧ (v → u)))


 wenn z = F u
, 1 ⇔ wxMj (u) = 1 für ein j ≥ 0
M
wx (z) =
wenn z = Gu
, 1 ⇔ wxMj (u) = 1 für alle j ≥ 0


 wenn z = F ∞ u

, 1 ⇔ zu jedem j ex. ein k ≥ j mit wxMk (u) = 1



∞

, 1 ⇔ zu jedem j ex. ein k ≥ j mit wxMk (u) = 1 für alle k
 wenn z = G u



wenn z = (u U v) , 1 ⇔ wxMj (v) = wxMk (u) = 1 für k < j




wenn z = (u B v) , 1 ⇔ ∀j mit wxMj (v) = 1 ex. ein k < j mit wxMk (u) = 1


M
wenn
, 1 ⇔ wx1 (u) = 1
z = Xu
Die neuen Operatoren lassen sich damit wie folgt Interpretieren:
• F drückt aus, dass u irgendwann einmal wahr wird (F entspr.
future)
• G drückt aus, dass u immer wahr ist (G entspr. general)
• F ∞ drückt aus, dass u unendlich oft wahr wird. D.h. zu jedem
Moment existiert ein Moment in der Zukunft an dem der Ausdruck wahr wird.
• G∞ drückt aus, dass u von einem Moment an immer wahr ist.
• U drückt aus, dass u solange wahr ist, bis (entspr. until) v wahr
wird.
• B drückt aus, dass u einmal wahr ist, bevor v wahr wird.
• X drückt aus, dass u im nächsten Moment wahr wird.
Semantische Äquivalenz Zwei Ausdrücke heißen semantisch äquivalent, wenn
wxM (u) = wxM (v) für alle Zeitlinien (M, x).
Erfüllbarkeit Ein Ausdruck heißt erfüllbar, wenn es eine Zeitline (M, x) mit wxM (u) =
1 gibt.
Merke: Das Erfüllbarkeitsproblem der temporalen Aussagenlogik ist entscheidbar.
Tautologie Ein Ausdruck heißt Tautologie wenn wxM (u) = 1 für alle Zeitlinien
(M, x) gilt.
21
3.2.2
Dynamische Logik
Ziel der dynamischen Aussagenlogik ist die Einbeziehung von Programmen. Zweckmäßigerweise
müssen neben Ausdrücken, damit auch Programme definiert werden können. D.h.
neben der üblichen Menge von Variablen, gibt es zusätzlich eine Menge von Grundanweisungen, wie z.B. x++ oder z=x+y.
Ausdrücke
Ausdrücke der dynamischen Logik werden induktiv definiert durch:
1. Jede Variable ist ein Ausdruck.
2. Sind A, B Ausdrücke und p ein Program, so sind auch folgende Wörter
Ausdrücke:
¬A, (A ∨ B), (A ∧ B), (A → B), (A ↔ B), hpiA
3. Andere Ausdrücke gibt es nicht (Ausdrücke entstehen nur durch endlich
oftmalige Anwendung der obigen Regeln).
Grundanweisungen Ein Programm kann nur über eine Menge anw von Grundanweisungen erstellt werden.
Programme
Programme der dynamischen Logik werden induktiv definiert durch:
1. Jede Anweisung ∈ anw ist ein Programm.
2. Sind p, q Programme und A ein Ausdruck, so sind auch folgende Wörter
Programme:
{p; q}, (p ∪ q), p∗ , A?
intuitiv erhalten die neuen Konstrukte folgende Bedeutung:
• {p; q} ist eine Hintereinanderausführung von p und q.
• (p ∪ q) heißt, dass eines der Programme nichtdeterministisch (per Zufall)
gewählt und ausgeführt wird.
• p∗ ist eine n-malige Hintereinanderausführung von p, wobei n ∈ N0
• A? ist der Test, ob A wahr ist.
• hpiA bedeutet, dass der Ausdruck A nach Abarbeitung von p wahr wird.
Beispiel: Ein Programmstück wie z.B.:
while (A) p
mit einer Bedingung A und einem Programm p, kann durch
{{A?; p}∗ ; ¬A?}
beschrieben werden.
Semantik
Eine formale Beschreibung der intuitiven Semantik wird mit einem KripkeModell erhalten.
Merke: Ein Kripke-Modell der dynamischen Logik ist ein Tripel M =
(S, K, R) mit
• S ist eine beliebige Menge (von Zuständen)
• K : var → 2S ist eine Funktion, die jeder Variablen eine Menge von
Zuständen zuordnet. D.h. K(x) gibt die Zustände an, in denen die Variable x wahr wird, also den Wert 1 erhält.
22
• R : anw → 2S×S ist eine Funktion, die jeder Anweisung eine binäre Relation über S zuordnet. D.h. R(a) beschreibt die Zustandsüberführungen,
die durch a bewirkt werden. Wird demnach im Zustand s ∈ S die Anweisung a ausgeführt, sow wird ein Zustand s0 erreicht und es muss gelten:
(s, s0 ) ∈ R(a).
Merke: Wenn K für die Ausdrücke A, B und F für die Programme p und q
definiert sind, dann gilt:
K(¬A) = S\K(A)
K((A ∨ B)) = K(A) ∪ K(B)
K((A ∧ B)) = K(A) ∩ K(B)
K(hpiA) = {s|(s, s0 ) ∈ R(p), s0 ∈ K(A)}
R({p; q}) = R(p) ◦ R(q) = {(s, s0 )|(s, s00 ) ∈ R(p), (s00 , s0 ) ∈ R(q)}
R((p ∪ q)) = R(p) ∪ R(q)
R(p∗ ) = {(s, s)|s ∈ S} ∪ R(p) ∪ (R(p) ∪ R(p)) ∪ . . .
R(A?) = {(s, s)|s ∈ K(A)}
Semantische Äquivalenz
Zwei Ausdrücke A und B heißen semantisch äquivalent in der dynamischen
Aussagenlogik, wenn K(A) = K(B) für alle Kripke-Modelle (S, K, R) gilt.
Erfüllbarkeit
Ein Ausdruck A heißt erfüllbar, wenn es ein Kripke-Modell (S, K, R) mit
K(A) 6= ∅ gibt.
Merke: Das Erfüllbarkeitsproblem der dynamischen Aussagenlogik ist entscheidbar.
23
Herunterladen