Logik Gabriele Kern-Isberner LS 1 – Information Engineering TU Dortmund Wintersemester 2014/15 WS 2014/15 G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 1 / 263 PL – Prädikatenlogische Resolution Übersicht Prädikatenlogik 8. Strukturen & Syntax 9. Modellierung und Normalformen 10. Erfüllbarkeit: Grundresolution 11. Prädikatenlogische Resolution 12. Logische Programmierung und Prolog 13. Weitere Ergebnisse G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 130 / 263 PL – Prädikatenlogische Resolution Teil C C – Prädikatenlogik (PL) Kapitel 11: Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 131 / 263 PL – Prädikatenlogische Resolution Übersicht Kapitel 11 11.1 Einleitung 11.2 Substitutionen 11.3 Vorüberlegungen 11.4 Unifikation 11.5 Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 132 / 263 PL – Prädikatenlogische Resolution Einleitung Übersicht Kapitel 11 11.1 Einleitung 11.2 Substitutionen 11.3 Vorüberlegungen 11.4 Unifikation 11.5 Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 133 / 263 PL – Prädikatenlogische Resolution Einleitung Prädikatenlogische Resolution: Einleitung (1/2) Beispiel: Wiederholung • Test der Erfüllbarkeit von ϕ2 = ∀x [P (x) ∧ ¬P (f (x))] mit Grundresolution • Ansatz: – H(ϕ2 ) = {a, f (a), f (f (a)), f (f (f (a))), . . .} – E(ϕ2 ) = {P (a) ∧ ¬P (f (a)), P (f (a)) ∧ ¬P (f (f (a))), . . .} {P (f (a))} {¬P (f (a))} Grundresolution ist ein Brute-Force-Ansatz: • Sie erzeugt zuerst „wahllos“ Literale der Herbrand-Expansion und versucht dann, passende Literale für Resolutionsschritte zu finden Können wir zielgerichteter vorgehen? G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 134 / 263 PL – Prädikatenlogische Resolution Einleitung Prädikatenlogische Resolution: Einleitung (2/2) Beispiel • „Direkterer“ Resolutionsbeweis für die Unerfüllbarkeit von ϕ2 : – Matrixklauselform von ϕ2 : {P (x)}, {¬P (f (x))} {P (x)} {¬P (f (x))} x 7→ a x 7→ f (a) {P (f (a))} {¬P (f (a))} Die prädikatenlogische Resolution sucht in der Matrixklauselform gezielt nach Paaren von Literalen, die nach Anwendung geeigneter Substitutionen für einen Resolutionsschritt genutzt werden können. G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 135 / 263 PL – Prädikatenlogische Resolution Substitutionen Übersicht Kapitel 11 11.1 Einleitung 11.2 Substitutionen 11.3 Vorüberlegungen 11.4 Unifikation 11.5 Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 136 / 263 PL – Prädikatenlogische Resolution Substitutionen Substitutionen: Definition (1/3) Wie bereits erwähnt, spielen Variablen in der Aussagenlogik und der Prädikatenlogik völlig unterschiedliche Rollen: • Aussagenlogische Variablen stehen für Wahrheitswerte • Prädikatenlogische Variablen stehen für Elemente der Grundmenge Dem entsprechend sind Substitutionen in Aussagenlogik und Prädikatenlogik sehr verschieden: • Aussagenlogische Substitutionen ordnen aussagenlogischen Variablen jeweils aussagenlogische Formeln zu • Prädikatenlogische Substitutionen ordnen prädikatenlogischen Variablen jeweils Terme zu G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 137 / 263 PL – Prädikatenlogische Resolution Substitutionen Substitutionen: Definition (2/3) Wir notieren Substitutionen häufig in der Form σ = {x1 7→ t1 , . . . , xk 7→ tk } Beispiel • Sei L = ¬R(x, y, x) • Für σ = {y 7→ g(b)} ist σ(L) = ¬R(x, g(b), x) • Für σ = {x 7→ f (y)} ist σ(L) = ¬R(f (y), y, f (y)) • Für σ = {x 7→ f (y), y 7→ g(b)} ist σ(L) = ¬R(f (y), g(b), f (y)) G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 138 / 263 PL – Prädikatenlogische Resolution Substitutionen Substitutionen: Definition (3/3) Definition 11.14 (prädikatenlogische Substitution, σ(L)) • Eine prädikatenlogische Substitution ist eine partielle Funktion σ : PV * PT • Ist σ eine Substitution und L ein Literal, so bezeichnet σ(L) das Literal, das aus L durch simultane Ersetzung aller Variablen x durch σ(x) entsteht – Dabei bleiben Variablen x, für die σ(x) undefiniert ist, unverändert Zu beachten: • Die Ersetzungen finden nicht nacheinander sondern simultan statt: – Sowohl {x 7→ y, y 7→ a} als auch {y 7→ a, x 7→ y} bilden x auf y (und nicht etwa auf a) ab Substitutionen können auch auf beliebige Formeln angewendet werden – Wir benötigen sie aber nur für Literale G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 139 / 263 PL – Prädikatenlogische Resolution Substitutionen Komposition von Substitutionen Definition 11.15 (Komposition von Substitutionen) Sind σ, τ Substitutionen, so bezeichnet τ ◦ σ die Substitution, die durch Hintereinanderausführung von (zuerst) σ und (dann) τ entsteht. Beispiel • {x 7→ a, y 7→ f (b), z 7→ y} ◦ {u 7→ f (x), v 7→ g(y), y 7→ b} = { u 7→ f (a), v 7→ g(f (b)), y 7→ b, x 7→ a, z 7→ y} • {x 7→ y} ◦ {y 7→ a} = 6 {y 7→ a} ◦ {x 7→ y} G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 140 / 263 PL – Prädikatenlogische Resolution Substitutionen Komposition: Substitutionen und Belegungen Definition 11.16 (Komposition von Substitutionen und Belegungen) Ist I = (A, β) eine Interpretation mit Belegung β : P V → A, und ist σ : P V → P T eine Substitution, so bezeichnet β ◦ σ die Belegung, die durch Hintereinanderausführung von (zuerst) σ und (dann) β (bzw. I für Konstanten) entsteht. Beispiel • Ist A eine Struktur mit – aA = 1, bA = 4, f A (3) = 5, – β = {x 7→ 2, u 7→ 3}, und – σ = {x 7→ a, y 7→ f (u), z 7→ x} so gilt: – [[x]](A,β◦σ) = 1 – [[y]](A,β◦σ) = 5 G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 141 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen Übersicht Kapitel 11 11.1 Einleitung 11.2 Substitutionen 11.3 Vorüberlegungen 11.4 Unifikation 11.5 Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 142 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (1/8) 2. Beispiel zur Grundresolution (Wdh.) • ∀x ∀y (R(x) ∧ (P (x) ∨ ¬R(y) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y)))) • Matrixklauselform: {{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}} • Grundresolution: {P (b), ¬R(f (a))} {R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))} {P (b)} {¬P (b)} Wie gesagt: Die Grundresolution bildet zuerst die Herbrand-Expansion und sucht dann nach resolvierbaren Paaren von Klauseln. Bei der prädikatenlogischen Resolution starten wir mit den Klauseln der Matrixklauselform und wenden Substitutionen an, die zu resolvierbaren Paaren von Klauseln führen. G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 143 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (2/8) 2. Beispiel zur Grundresolution (Wdh.) • ∀x ∀y (R(x) ∧ (P (x) ∨ ¬R(y) ∨ ¬R(f (a))) ∧ (¬P (b) ∨ ¬R(g(b, y)))) • Matrixklauselform: {{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}} {P (x), ¬R(y), ¬R(f (a))} x 7→ b y 7→ f (a) x 7→ f (a) {P (b), ¬R(f (a))} {¬P (b), ¬R(g(b, y))} x 7→ g(b, a) y 7→ a {R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))} {P (b)} G. Kern-Isberner (TU Dortmund) {R(x)} Logik {¬P (b)} WS 2014/15 144 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (3/8) Bei der prädikatenlogischen Resolution sollen also Substitutionen gezielt angewendet werden, um Paare resolvierbarer Klauseln zu erzeugen. Genauer: Auf eine Klausel K mit einem Atom A und eine Klausel K 0 mit einem Atom ¬A0 werden Substitutionen σ und σ 0 so angewendet, dass σ(A) = σ 0 (A0 ) gilt. Wir müssen also gezielt nach Substitutionen suchen, die zwei (oder mehrere) Atome in dasselbe Atom überführen. • Das nennen wir Unifikation und die Kombination von σ und σ 0 Unifikator G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 145 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (4/8) Ein weiteres Beispiel • {¬R(x)}, {R(f (y)), P (y)}, {¬P (x), ¬P (f (b))} {¬R(x)} x 7→ f (a) {¬R(f (a))} {R(f (y)), P (y)} y 7→ a {R(f (a)), P (a)} {¬P (x), ¬P (f (b))} x 7→ f (b) {¬P (f (b))} {P (a)} ??? • In diesem Fall „scheitert“ die Resolution • Aber: Die Festlegung auf a im ersten Schritt war eigentlich unnötig • Besser wäre es, den Resolutionsschritt mit R(f (y)) statt mit R(f (a)) durchzuführen – Dann entstünde die Resolvente {P (y)} und y könnte später durch f (b) substituiert werden, um zu resolvieren Die Grundresolution verwendet nur Grund-Substitutionen, die prädikatenlogische Resolution erlaubt beliebige Substitutionen G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 146 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (5/8) Ein weiteres Beispiel (Forts.) • {¬R(x)}, {R(f (y)), P (y)}, {¬P (x), ¬P (f (b))} {¬R(x)} {R(f (y)), P (y)} {¬P (x), ¬P (f (b))} x 7→ f (y) {¬R(f (y))} x 7→ f (b) {P (y)} y 7→ f (b) {P (f (b))} G. Kern-Isberner (TU Dortmund) Logik {¬P (f (b))} WS 2014/15 147 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (6/8) Beobachtung: Hier werden voreilige Festlegungen vermieden, und die Resolution führt zum Erfolg. Also: Bei der Unifikation sollte möglichst zurückhaltend vorgegangen werden, d.h., ⇒ es sollten nicht mehr und stärkere Ersetzungen vorgenommen werden als für den Resolutionsschritt unbedingt nötig. Nebenbei bemerkt: Wenn bei der Unifikation innerhalb einer der beiden Klauseln mehrere Literale zusammen fallen, ist dies ein angenehmer Nebeneffekt. G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 148 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (7/8) 2. Beispiel zur Grundresolution (Wdh.) • {{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}} {P (x), ¬R(y), ¬R(f (a))} x 7→ b y 7→ f (a) {R(x)} x 7→ f (a) {P (b), ¬R(f (a))} {¬P (b), R(g(b, y))} x 7→ g(b, a) y 7→ a {R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))} {P (b)} {¬P (b)} Weitere Beobachtungen: (1) Klauseln können in Grundresolutionsbeweisen mehrfach verwendet werden ({R(x)}) G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 149 / 263 PL – Prädikatenlogische Resolution Vorüberlegungen PL-Resolution: Vorüberlegungen (8/8) 2. Beispiel zur Grundresolution (Wdh.) • {{R(x)}, {P (x), ¬R(y), ¬R(f (a))}, {¬P (b), ¬R(g(b, y))}} {P (x), ¬R(y), ¬R(f (a))} x 7→ b y 7→ f (a) {R(x)} x 7→ f (a) {P (b), ¬R(f (a))} {¬P (b), R(g(b, y))} x 7→ g(b, a) y 7→ a {R(f (a))} {R(g(b, a))} {¬P (b), ¬R(g(b, a))} {P (b)} {¬P (b)} Weitere Beobachtungen: (2) In einem Resolutionsschritt können Klauseln verwendet werden, die durch unterschiedliche Substitutionen entstehen: Der Resolutionsschritt auf der linken Seite verwendet die PL-Klauseln (a) {P (x), ¬R(y), ¬R(f (a))} mit Substitution x 7→ b, y 7→ f (a), (b) {R(x)} mit Substitution x 7→ f (a) – Beides ist erlaubt, da alle vorkommenden Variablen universell quantifiziert sind G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 150 / 263 PL – Prädikatenlogische Resolution Unifikation Übersicht Kapitel 11 11.1 Einleitung 11.2 Substitutionen 11.3 Vorüberlegungen 11.4 Unifikation 11.5 Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 151 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikatoren (1/4) Als Hilfsmittel für die prädikatenlogische Resolution müssen wir das folgende algorithmische Problem (möglichst effizient) lösen: Unifikationsproblem Gegeben: PL-Atome A1 , . . . , Am Gesucht: Substitution σ mit σ(A1 ) = · · · = σ(Am ) Beispiel • A1 = R(x, a, y), A2 = R(f (z), u, b), A3 = R(v, u, w) σ0: • Die Substitution x 7→ f (a) u 7→ a y 7→ b v 7→ f (a) z 7→ a w 7→ b bildet alle Atome auf R(f (a), a, b) ab G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 152 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikatoren (2/4) Definition 11.17 (Unifikator) Eine Substitution σ heißt Unifikator der Atome A1 , . . . , Am , falls σ(A1 ) = · · · = σ(Am ) gilt. Um uns im Rahmen eines Resolutionsbeweises möglichst viele Möglichkeiten für spätere Resolutionsschritte zu erhalten, interessieren wir uns für Unifikatoren, die möglichst wenige Festlegungen treffen: Definition 11.18 (allgemeinster Unifikator, MGU) Ein Unifikator σ heißt allgemeinster Unifikator (MGU) für A1 , . . . , Am , falls für jeden Unifikator σ1 von A1 , . . . , Am eine Substitution σ2 existiert mit σ1 = σ2 ◦ σ. Die Abkürzung MGU steht für „most general unifier“ G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 153 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikatoren (3/4) Beispiel • Die Substitution σ: • Die Substitution σ 0 (vorherige Folie): u 7→ a v 7→ f (z) w 7→ b x 7→ f (z) y 7→ b u 7→ a v 7→ f (a) w 7→ b x 7→ f (a) y 7→ b z 7→ a ist ein MGU für – A1 = R(x, a, y), – A2 = R(f (z), u, b), lässt sich schreiben als: σ 0 = {z 7→ a} ◦ σ – A3 = R(v, u, w) und bildet alle Atome auf R(f (z), a, b) ab G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 154 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikatoren (4/4) Natürlich gibt es nicht für jede Menge von Atomen einen Unifikator: Beispiel Beispiele von Atompaaren ohne Unifikator: • Verschiedene Relationsnamen: – P (a), R(y) • Verschiedene Funktionssymbole: – P (a, f (x)), P (y, g(b)) • Variablen-Rekursion: – P (a, f (x)), P (y, x) Der Algorithmus auf der nächsten Folie entscheidet, ob die gegebene Atommenge einen Unifikator hat; er • berechnet einen allgemeinsten Unifikator oder • gibt „nicht unifizierbar“ aus G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 155 / 263 PL – Prädikatenlogische Resolution Unifikation Der Unifikationsalgorithmus Unifikationsalgorithmus Eingabe: Menge L 6= ∅ von PL-Atomen Ausgabe: Allgemeinster Unifikator σ für L oder „nicht unifizierbar“ 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: if es kommen verschiedene Relationssymbole in L vor then return „nicht unifizierbar“ L0 := L, σ := ∅ while |L0 | > 1 do Wähle zwei Atome A1 , A2 in L0 Seien z1 (in A1 ) und z2 (in A2 ) die ersten Zeichen, an denen A1 und A2 verschieden sind if weder z1 noch z2 ist Variable then return „nicht unifizierbar“ if z1 ist Variable then Sei t der in A2 mit z2 beginnende Term if z1 kommt in t vor then return „nicht unifizierbar“ else σ := {z1 7→ t} ◦ σ Wende z1 7→ t auf alle Atome in L0 an else Falls z2 ist Variable: analog return σ G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 156 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikationsalgorithmus: Beispiele (1/5) Beispiel 1 • L = {P (f (x), g(y, h(a, z))), P (f (g(a, b)), g(g(u, v), w))} • 1. Iteration: |L0 | = 2 • A1 = P (f (x), g(y, h(a, z))) A2 = P (f (g(a, b)), g(g(u, v), w)) • z1 = x, z2 = g • Also: t = g(a, b) und x kommt nicht in t vor → σ := {x 7→ g(a, b)} • L0 = {P (f (g(a, b)), g(y, h(a, z))), P (f (g(a, b)), g(g(u, v), w))} • 2. Iteration: |L0 | = 2 • A1 = P (f (g(a, b)), g(y, h(a, z))) A2 = P (f (g(a, b)), g(g(u, v), w)) • z1 = y, z2 = g G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 157 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikationsalgorithmus: Beispiele (2/5) Beispiel 1 (Forts.) • t = g(u, v) und y kommt in t nicht vor → σ := {y 7→ g(u, v)} ◦ σ • L0 = {P (f (g(a, b)), g(g(u, v), h(a, z))), P (f (g(a, b)), g(g(u, v), w))} • 3. Iteration: |L0 | = 2 • A1 = P (f (g(a, b)), g(g(u, v), h(a, z))) A2 = P (f (g(a, b)), g(g(u, v), w)) • z1 = h, z2 = w • Also: t = h(a, z) und w kommt nicht in t vor → σ := {w 7→ h(a, z)} ◦ σ • L0 = {P (f (g(a, b)), g(g(u, v)), h(a, z))} • 4. Iteration: |L0 | = 1 • Ausgabe: {x 7→ g(a, b), y 7→ g(u, v), w 7→ h(a, z)} G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 158 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikationsalgorithmus: Beispiele (3/5) Beispiel 2 • L = {P (a, f (x)), P (y, g(b))} • L0 = {P (a, f (x)), P (a, g(b))} • Sei • Sei • 1. Iteration: |L0 | = 2 • 2. Iteration: |L0 | = 2 – A1 = P (a, f (x)) – A1 = P (a, f (x)) – A2 = P (y, g(b)) – A2 = P (a, g(b)) • z1 = a, z2 = y • z1 = f, z2 = g • Also: t = a und y kommt nicht in t vor → σ := {y 7→ a} G. Kern-Isberner (TU Dortmund) • Weder z1 noch z2 ist Variable ⇒ Ausgabe: nicht unifizierbar Logik WS 2014/15 159 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikationsalgorithmus: Beispiele (4/5) Beispiel 3 • L = {P (a, f (x)), P (y, x)} • 1. Iteration: |L0 | = 2 • L0 = {P (a, f (x)), P (a, x))} – A1 = P (a, f (x)) – A1 = P (a, f (x)) • 2. Iteration: |L0 | = 2 • Sei • Sei – A2 = P (y, x) – A2 = P (a, x) • z1 = a, z2 = y • z1 = f, z2 = x • Also: t = a und y kommt in t vor → σ := {y 7→ a} G. Kern-Isberner (TU Dortmund) • Also: t = f (x) und z2 = x kommt in t vor ⇒ Ausgabe: nicht unifizierbar Logik WS 2014/15 160 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikationsalgorithmus: Beispiele (5/5) Beispiel 4 • Sei die folgende Atommenge gegeben – R(x1 , x2 , x3 , . . . , xn−1 , xn ) – R(f (x2 , x2 ), f (x3 , x3 ), f (x4 , x4 ), . . . , f (xn , xn ), a) • Im ersten Schritt erhalten wir: (x1 7→ f (x2 , x2 )) • Im zweiten Schritt erhalten wir: (x2 7→ f (x3 , x3 )) • Im dritten Schritt erhalten wir: (x3 7→ f (x4 , x4 )) – R(f (x2 , x2 ), x2 , x3 , . . . , xn−1 , xn ) – R(f (x2 , x2 ), f (x3 , x3 ), f (x4 , x4 ), . . . , f (xn , xn ), a) – R(f (f (x3 , x3 ), f (x3 , x3 )), f (x3 , x3 ), x3 , . . . , xn−1 , xn ) – R(f (f (x3 , x3 ), f (x3 , x3 )), f (x3 , x3 ), f (x4 , x4 ), . . . , f (xn , xn ), a) – R(f (f (f (x4 , x4 ), f (x4 , x4 )), f (f (x4 , x4 ), f (x4 , x4 ))), f (f (x4 , x4 ), f (x4 , x4 )), f (x4 , x4 ), x4 , . . . , xn−1 , xn ) – R(f (f (f (x4 , x4 ), f (x4 , x4 )), f (f (x4 , x4 ), f (x4 , x4 ))), f (f (x4 , x4 ), f (x4 , x4 )), f (x4 , x4 ), f (x5 , x5 ), . . . , f (xn , xn ), a) • Die Länge des ersten Terms des ersten Atoms wird in jedem Schritt ungefähr verdoppelt G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 161 / 263 PL – Prädikatenlogische Resolution Unifikation Unifikationsalgorithmus: Eigenschaften MGUs zu einer Atommenge können exponentiell groß sein (im Verhältnis zur Gesamtlänge der vorkommenden Atome). Proposition 11.12 Der Unifikationsalgorithmus hat folgende Eigenschaften: • Wenn eine Menge von Atomen unifizierbar ist, berechnet er einen MGU für die Menge • Andernfalls gibt er „unerfüllbar“ aus • Er terminiert nach höchstens exponentiell vielen Schritten Korollar 11.13 Jede unifizierbare Menge von Atomen hat einen allgemeinsten Unifikator. Es gibt im Allgemeinen viele MGUs, die sich aber nur durch die Benennung von Variablen unterscheiden G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 162 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Übersicht Kapitel 11 11.1 Einleitung 11.2 Substitutionen 11.3 Vorüberlegungen 11.4 Unifikation 11.5 Prädikatenlogische Resolution G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 163 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolution: Beispiel Beispiel {¬R(x)} {R(f (y)), P (z)} x 7→ f (y) {¬R(f (y))} {P (z)} Ein prädikatenlogischer Resolutionsschritt lässt sich auf zwei Klauseln K1 und K2 anwenden, wenn • • • • in K1 ein Atom A1 vorkommt, in K2 ein negiertes Atom ¬A2 vorkommt, und A1 und A2 unifizierbar sind (oder umgekehrt) G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 164 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Variablenumbenennungen (1/2) Lassen sich die beiden Klauseln – K1 = {R(x, u)} – K2 = {P (x, y), ¬R(g(x), z)} resolvieren? Zunächst nicht, da R(x, u) und R(g(x), z) nicht unifizierbar sind. Die Unifikation scheitert daran, dass beide Klauseln x verwenden. Diese Variablengleichheit bedeutet aber nicht, dass x in K1 und K2 immer denselben Wert annehmen muss, denn: • x und die anderen Variablen sind ∀-quantifiziert ⇒ alle Klauseln müssen für alle Variablenbelegungen wahr werden • In der Herbrand-Expansion würden beispielsweise R(g(a), a) und ¬R(g(a), a) entstehen, die resolvierbar sind G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 165 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Variablenumbenennungen (2/2) An der Bedeutung der Klauseln ändert sich also nichts, wenn wir in K1 die Variable x in v umbenennen. ⇒ Durch diese Umbenennung werden K1 und K2 dann resolvierbar. Zu beachten: • Wenn eine Variable in einer Klausel für einen Resolutionsschritt umbenannt wird, dann müssen alle Vorkommen der Variablen in der Klausel umbenannt werden Eine Variablenumbenennung ist eine Substitution PV * PV – Variablen werden also durch Variablen ersetzt (und nicht durch beliebige Terme) G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 166 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolventen (1/3) Ein prädikatenlogischer Resolutionsschritt besteht also im Allgemeinen aus: • Variablenumbenennungen und • einer Unifikation Beispiel K = {P (x), S(f (x), a)} K 0 = {¬P (f (x)), ¬P (y), ¬Q(z)} τ 0 = {x 7→ u} τ =∅ H = {P (x), S(f (x), a)} H 0 = {¬P (f (u)), ¬P (y), ¬Q(z)} {x 7→ f (u)} {y 7→ f (u)} R = {S(f (f (u)), a), ¬Q(z)} Wir teilen hier in der Notation die Substitution σ = {x 7→ f (u), y 7→ f (u)} in ihre Bestandteile auf. G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 167 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolventen (2/3) Definition 11.19 (prädikatenlogische Resolvente) • Seien K, K 0 prädikatenlogische Klauseln • Seien τ, τ 0 Variablenumbenennungen, so dass H =def τ (K) und H 0 =def τ 0 (K 0 ) keine Variablen gemeinsam haben • Seien A1 , . . . , Ak Atome in H und ¬A01 , . . . , ¬A0m Literale in H 0 , so dass {A1 , . . . , Ak , A01 , . . . , A0m } unifizierbar ist mit MGU σ • Dann heißt R =def σ((H − {A1 , . . . , Ak }) ∪ (H 0 − {¬A01 , . . . , ¬A0m })) prädikatenlogische Resolvente von K und K 0 K0 τ0 0 H K τ H σ σ R G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 168 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolventen (3/3) Beispiel (Whlg.) K = {P (x), S(f (x), a)} K 0 = {¬P (f (x)), ¬P (y), ¬Q(z)} τ 0 = {x 7→ u} τ =∅ H = {P (x), S(f (x), a)} H 0 = {¬P (f (u)), ¬P (y), ¬Q(z)} {x 7→ f (u)} {y 7→ f (u)} R = {S(f (f (u)), a), ¬Q(z)} A1 = P (x), A01 = P (f (u)), A02 = P (y) {P (x), P (f (u)), P (y)} unifizierbar mit MGU σ = {x 7→ f (u), y 7→ f (u)} ⇒ R = σ((H − {A1 }) ∪ (H 0 − {¬A01 , ¬A02 })) = σ({S(f (x), a)} ∪ {¬Q(z)}) = {S(f (f (u)), a), ¬Q(z)} G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 169 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolution: Beispiel Beispiel • Sei ϕ = ∃x ∀y ∀z [(P (y, f (z)) ∨ P (f (z), y)) ∧ ¬P (f (x), z)] • Matrixklauselform: {{P (y, f (z)), P (f (z), y)}, {¬P (f (c), z)}} {P (y, f (z)), P (f (z), y)} {¬P (f (c), z)} τ = {z 7→ x} τ =∅ {P (y, f (z)), P (f (z), y)} {¬P (f (c), x)} {z 7→ c, y 7→ x} {P (x, f (c))} {x 7→ f (c)} {¬P (f (c), z)} {z 7→ f (c)} • ϕ ist unerfüllbar, da wir mit PL-Resolution die leere Klausel herleiten konnten G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 170 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolution Für PL-Klauselmengen K definieren wir: • Res(K) =def K ∪ {K | K ist PL-Resolvente zweier Klauseln aus K} • Res0 (K) =def K • Resk (K) =def Res(Resk−1 (K)), für alle k ≥ 1 S • Res∞ (K) =def k≥0 Resk (K) Satz 11.14 (PL-Resolutionssatz) Eine prädikatenlogische Formel ϕ ist genau dann unerfüllbar, wenn für ihre Matrixklauselform K gilt: ∈ Res∞ (K). Der Beweis des Resolutionssatzes wird in Kapitel 13 gegeben. G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 171 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Notation von Resolutionsbeweisen Ab jetzt: kompaktere Darstellung in Resolutionsbeweisen: • Variablenumbenennungen, Substitutionen und Übergang zur Resolventen werden da in einem Schritt kombiniert • Mengenklammern bei Substitutionen lassen wir weg Beispiel Statt {¬A(y, a)} {¬P (x, z), ¬A(z, y), A(x, y)} τ 0 = {y 7→ u} {¬A(y, a)} {¬P (x, z), ¬A(z, u), A(x, u)} {y 7→ x} {u 7→ a} {¬P (x, z), ¬A(z, a)} schreiben wir also {¬A(y, a)} y 7→ x G. Kern-Isberner (TU Dortmund) {¬P (x, z), ¬A(z, y), A(x, y)} y 7→ a {¬P (x, z), ¬A(z, a)} Logik WS 2014/15 172 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Prädikatenlogische Resolution: Beispiel In der kompakten Notation ergibt sich für das vorherige Beispiel dann: Beispiel (Whlg.) • Sei ϕ = ∃x ∀y ∀z [(P (y, f (z)) ∨ P (f (z), y)) ∧ ¬P (f (x), z)] • Matrixklauselform: {{P (y, f (z)), P (f (z), y)}, {¬P (f (c), z)}} {P (y, f (z)), P (f (z), y)} {¬P (f (c), z)} z 7→ c, y 7→ x z 7→ x {P (x, f (c))} {¬P (f (c), z)} x 7→ f (c) z 7→ f (c) G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 173 / 263 PL – Prädikatenlogische Resolution Prädikatenlogische Resolution Zusammenfassung Sie sollten die folgenden Themen und Techniken kennen und beherrschen: • Es ist nicht leicht, die Erfüllbarkeit prädikatenlogischer Formeln zu testen • Wir haben zwei Semi-Entscheidungsverfahren für die Unerfüllbarkeit kennen gelernt: – Der Grundresolutionsalgorithmus führt das Problem auf einen Unentscheidbarkeitstest für eine unendliche Menge aussagenlogischer Klauseln zurück – Die prädikatenlogische Resolution versucht, „direkt“ einen Unerfüllbarkeitsbeweis zu finden G. Kern-Isberner (TU Dortmund) Logik WS 2014/15 174 / 263