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