Theoretische Informatik 1 www.logic.at/lvas/thinf1 Theoretische Informatik für Lehramt I www.logic.at/lvas/tila1 Christian Fermüller, [email protected] 1 Gernot Salzer, [email protected] Beurteilung Übung N . . . Anzahl aller Übungsbeispiele (≥ 50) k ti ) n . . . Anzahl der angekreuzten Übungsbeispiele k . . . Anzahl der Tafelergebnisse (≥ 2) = min(1, n · N −5 t . . . Ergebnis an der Tafel (t ∈ {0.0, 0.5, 1.0, 1.2}) i i P u 3 Do, 13:15–14:45, AudiMax Vorlesungtermine: Di, 16:15–17:45, AudiMax Übungsteil: • in Kleingruppen, betreut von TutorInnen • Anmeldung ab Mittwoch, 8.3.2006, 10:00 unter https://ugm.logic.at (Ja zum Zertifikat! https!) • Erste Übungseinheit: 20.3.-24.3. 2 • Übungsbeispiele in der Vorwoche auf Homepage Vorlesungprüfung • Haupttermin: Freitag, 30.6.2006, 18:00-20:00, Anmeldung! • 3 Ersatztermine im Herbst • Voraussetzung: u ≥ 0.3 60 ≥ g ≥ 51 70 ≥ g ≥ 61 85 ≥ g ≥ 71 100 ≥ g ≥ 86 g := round(30u + 70v) 5 4 3 2 1 Note • v = Pp (p . . . erreichte Punkte, P . . . erreichbare Punkte) Gesamtnote 50 ≥ g ≥ 0 4 Unterlagen • Skriptum: Donnerstag, 16.3.2006, 12:45 vor AudiMax • Vorlesungsfolien • Bücher für ersten Teil: – P.Linz: An Introduction to Formal Languages and Automata. Jones and Bartlett Publishers Inc., 2001. – J.Hopcroft, R.Motwani, J.Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Pearson Studium, 2002. Weitere Literatur: siehe Homepage der Lehrveranstaltung. 5 Handbook of Theoretical Computer Science Formale Sprachen und Automaten Algebraische Spezifikation Modelle verteilter Berechnungen Theorie relationaler Datenbanken Handbook of Theoretical Computer Science 7 Kapitel Komplexität: Maschinenunabhängige Komplexität Komplexität von Problemen, Algorithmen Komplexität von Schaltkreisen und VLSI-Schaltungen Algorithmen: Suchen von Mustern in Zeichenketten Computergraphik Planen von Roboterbewegungen Algorithmen auf Graphen Algorithmen der Zahlentheorie Kryptographie Parallele Algorithmen 6 Typische Aussagen der theoretischen Informatik • Ein optimaler Sortieralgorithmus benötigt zum Sortieren von n Datensätzen etwa n log(n) Rechenschritte. • Java ist berechnungsuniversell: jeder vorstellbare Algorithmus kann als Java-Programm formuliert werden. • Das Halteproblem für Visual Basic Programme ist unentscheidbar. Syntax und Semantik von imperativen, funktionalen, logikorientierten Sprachen von Rewrite-Systemen • Reguläre Sprachen sind abgeschlossen unter Durchschnitt und Komplementbildung. 8 • Die Prädikatenlogik erster Stufe ist vollständig axiomatisierbar, die Arithmetik hingegen nicht. Aussagen über Programme (z.B. Verifikation): Hoare Logik Dynamische Logik Temporal- und Modallogik 7 Lehrziel und Inhalt Ziel: Vermittlung der Grundbegriffe der theoretischen Informatik, Einführung in ihre mathematisch-formale Methodik. Inhalt: • Formale Sprachen und Automaten • Grundbegriffe der Komplexitätstheorie • Aussagenlogik • Prädikatenlogik • Grundbegriffe der formalen Verifikation 9 Formale Sprachen und Automaten Inhalt • Grundlagen • Reguläre Sprachen: reguläre Mengen, reguläre Ausdrücke (Algebra, EBNF, grep), Syntaxdiagramme • Endliche Automaten (EA): reguläre Menge → NEA → DEA → reguläre Menge • Grammatiken: regulär, kontextfrei, monoton/kontextsensitiv • Kellerautomaten, beschränkte Maschinen, Turing-Maschinen • Chomsky-Hierarchie 11 Za wos brauch’ i des? • Weil es im Studienplan steht. • Weil Sie es in der Praxis brauchen: reguläre Ausdrücke, EBNF, Aussagenlogik, . . . • Weil es Basiswissen einer akademischen InformatikerIn ist: Halteproblem, P vs. NP, Church-Turing-These, . . . 10 • Weil es Ihr Abstraktionsvermögen und Ihr formales Verständnis schult. Was sind formale Sprachen? Formale Sprache: (un)endliche Menge von endlichen Zeichenketten Beispiele: Programmiersprachen (C, Java, . . . ) Markup-Sprachen (Html, . . . ) Kommunikationsprotokolle natürliche Sprachen Warum formale Spezifikation? Referenz für Anwender, Implementierer, Auftragnehmer/geber Automatische Programmgenerierung: Compilergeneratoren Formale Verifikation (Korrektheit, Deadlockfreiheit, . . . ) Kriterium für Spezifikationsmethode: Endlichkeit Jede Methode induziert eine Sprachklasse. 12 Beispiele für Spezifikationsmethoden Reguläre Ausdrücke: DOS: dir a*.exe Unix: ^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$ Syntaxdiagramme: digit - . - ScaleFactor - digit Automaten: digit ? q0j digit- q1j Grammatik: q4j @ digit@ digit @ R? @ h q5j Hw Art ZwP HwP Satz ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ fressen wird Katze | Dosenfutter die | das Hzw HwP Zw Art Hw HwP ZwP digit Hzw ⇒ +, − digit . - q? h E - q3j j 2 Zw 14 Grundlagen: Sprachen 13 Grundlagen: Wörter Formale Sprache über Σ: beliebige Teilmenge von Σ∗ = {s1 · · · sn | si ∈ Σ, 1 ≤ i ≤ n} Potenzbildung: L0 = {ε} Stern-Operator: L∗ = Ln Ln n≥0 [ n≥1 hP(Σ∗ ), ·, {ε}i bildet Monoid. Plus-Operator: L+ = 16 Kleene-Stern“ ” und Ln+1 = L · Ln für n ≥ 0. [ L1 · L2 = {w1 · w2 | w1 ∈ L1 , w2 ∈ L2 } Verkettung: Sei L1 , L2 ∈ P(Σ∗ ). P(Σ∗ ): Menge aller Sprachen Alphabet: endliche, nicht-leere Menge atomarer Symbole (Σ, T ). Wort über Σ: endliche Folge von Symbolen aus Σ. Leerwort: ε Σ+ = Σ+ ∪ {ε} Σ+ : Menge aller nicht-leeren Wörter über Σ. Σ∗ Verkettung: Sei w, w1 , w2 ∈ Σ∗ . w1 · w2 = w1 w2 w·ε=ε·w =w w0 = ε, wn+1 = w · wn hΣ∗ , ·, εi bildet Monoid. 15 Rechenregeln A · (B ∪ C) A · (B · C) A ∪ (B ∪ C) = B·A∪C ·A = A·B∪A·C = (A · B) · C = (A ∪ B) ∪ C = B∪A A · A∗ (A∗ )∗ (A ∪ {ε})∗ = A+ = A∗ = A∗ A · {ε} = A {ε} · A = A A∪B (B ∪ C) · A A∗ · A = A+ = {E, E+, E−} · digit + {0, . . . , 9} A+ ∪ {ε} = A∗ digit = digit + · {.} · digit ∗ · ({ε} ∪ scale) Beispiel. Real-Zahlen scale = Bildungsregel f : B n → B real 17 Grundmenge A0 ⊆ B, Induktive Definition Gegeben: [ i≥0 für i nach unendlich: = Ai Ai+1 = Ai ∪ {f (e1 , . . . , em ) | e1 , . . . , em ∈ Ai } Stufenweise Konstruktion von Mengen: Limes von Ai A f (x1 , . . . , xn ) ∈ A Definition. A heißt abgeschlossen unter f , wenn gilt: x1 , . . . , xn ∈ A ⇒ 19 Reguläre Sprachen • Gebildet durch Vereinigung, Verkettung und Kleene-Stern • Äquivalent: endliche Automaten, reguläre Grammatiken Anwendungen in der Informatik: • Compilerbau: Tokens bilden reguläre Sprache, verarbeitet durch Scanner (Lexer). Reguläre Ausdrücke dienen als Eingabe für Scannergeneratoren (lex, flex). • Texteditoren: erweiterte Suche 18 • DOS, Unix-Shells, grep, awk, Perl, Xml, . . . Satz. (a) A ist abgegeschlossen unter f . (b) Ist A0 abgeschlossen unter f und gilt A0 ⊆ A0 ⊆ B, dann gilt A ⊆ A0 . D.h.: A ist die kleinste Menge, die A0 enthält und abgeschlossen ist unter f . Schema der induktiven Definition A ist die kleinste Menge, für die gilt: (a) A0 ⊆ A (b) x1 , . . . , xn ∈ A ⇒ f (x1 , . . . , xn ) ∈ A (A ist abgeschlossen unter f ) 20 Definition. Die Menge der regulären Sprachen über Σ, Lreg (Σ), ist die kleinste Menge, sodass (a) {}, {ε}, {s} ∈ Lreg (Σ) für alle s ∈ Σ (b) A, B ∈ Lreg (Σ) ⇒ A ∪ B, A · B, A∗ ∈ Lreg (Σ) Satz. Lreg (Σ) ist abgeschlossen gegenüber Vereinigung, Durchschnitt, Verkettung, Komplement, Differenz, Stern- und Plus-Operator, Homomorphismen und Quotientenbildung. Satz. Seien L1 und L2 reguläre Sprachen spezifiziert durch Verkettung, Vereinigung und Stern-Operator. Die Probleme (a) Gehört ein Wort w der Sprache L1 an? (b) Ist L1 leer, endlich, unendlich? (c) Gilt L1 = L2 ? sind entscheidbar. 21 { A} [ A] A| B AB EBNF (A) A∗ {ε} ∪ A A∪B A·B reg. Menge s∈Σ Gruppierung Wiederholung Option Alternativen Aufeinanderfolge EBNF-Notation ( A) {s} Kommentar "s " Beispiel. Real-Zahlen (EBNF) real = digit {digit} "." {digit} [scale] scale = "E" ["+"|"-"] digit {digit} digit = "0"|"1"|"2"| · · · |"9" 23 s statt statt {} {ε} {s} für s ∈ Σ L∗ L1 L2 L1 + L2 bleibt statt statt L∗ L1 · L2 L1 ∪ L2 Algebraische Notation ε statt hat die höchste Priorität, + die niedrigste. ∅ ∗ digit = E (ε + + + −) digit digit ∗ = 0+ ···+ 9 Beispiel. Real-Zahlen (algebraisch) scale = digit digit ∗ . digit ∗ (ε + scale) A∪B A·B A∗ A+ {s} A reg. Menge [ A] A| B AB { A} A{ A} "s" A EBNF 22 real Syntaxdiagramm A s A ∪ {ε} Syntaxdiagramme -A A -A -B -A -B -A 24 Beispiel. Real-Zahlen (Syntaxdiagramm) real - digit digit - . s Zeichen s Zeichen s (kein Spezialsymbol) \s alle Zeichen außer Zeilenende 25 scale - + - E - digit - egrep unter Unix . Zeilenanfang selektiert ^ Zeilenende Ausdruck $ alle Zeichen in {s1 , . . ., sn } null Mal oder öfter r [s1 · · · sn ] r* ein Mal oder öfter r alle Zeichen außer {s1 , . . ., sn } r+ null oder ein Mal r [^s1 · · · sn ] r? 27 scale digit - 0 - 1 . . . .. .. .. - 9 Reguläre Definitionen Verwendung von Abkürzungen für reguläre Teilausdrücke. Erhöht nicht die Ausdruckskraft. Bessere Strukturierung, bessere Lesbarkeit. selektiert 26 ist nicht zulässig! Keine direkte oder indirekte Rekursivität: Ausdruck i Mal r digits = digit · digits ∪ {ε} r{i} i Mal oder öfter r r1 gefolgt von r2 r{i,} r1 r2 r1 oder r2 i bis j Mal r r1 |r2 r r{i,j} (r) Beispiel. Real-Zahlen (egrep) ^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$ 28 Endliche Automaten % NEA Modell für Systeme mit Ein/Ausgaben aus endlichem Wertebereich und mit endlichem Speicher. Reguläre $ 'Menge ? 6 minimaler DEA 6 & DEA DEA . . . deterministischer endlicher Automat NEA . . . nichtdeterministischer endlicher Automat 29 Deterministischer endlicher Automat A = hQ, Σ, δ, q0 , F i, wobei Q . . . endliche Menge von Zuständen Σ . . . Eingabealphabet ∈ Q . . . Anfangszustand δ: Q × Σ → Q . . . Übergangsfunktion (total) q0 F ⊆ Q . . . Menge von Endzuständen δ ∗ (q, aw) = δ ∗ (δ(q, a), w) Erweiterte Übergangsfunktion: δ ∗ : Q × Σ∗ → Q δ ∗ (q, ε) = q, für alle q ∈ Q, w ∈ Σ∗ , a ∈ Σ. Akzeptierte Sprache: L(A) = {w ∈ Σ∗ | δ ∗ (q0 , w) ∈ F } 31 Beispiel. . h j - q? 2 E - q3j Deterministischer endlicher Automat (DEA) +,digit digit ? q0j digit- q1j . - q? h j 2 E ε - 5 digit- q? h j digit q4j @ digit@ digit @ Rq? @ h j 5 digit ? - q4j 6 Nichtdeterministischer endlicher Automat (NEA) digit digit + ? q0j digit- q1j - q3j 30 Nichtdeterministischer endlicher Automat Übergangsfunktion: δ: Q × (Σ ∪ {ε}) → P(Q) δ ∗ (q, w) = {q 0 ∈ Q | q ; q 0 } w Erweiterte Übergangsfunktion: δ ∗ : Q × Σ∗ → P(Q) w q ; q 0 . . . es gibt einen mit w beschrifteten Pfad von q nach q 0 Akzeptierte Sprache: L(A) = {w ∈ Σ∗ | δ ∗ (q0 , w) ∩ F 6= {}} Definition. Automaten A und A0 sind äquivalent, falls L(A) = L(A0 ). 32 s ∈ (Σ ∪ {ε}) Reguläre Menge → NEA j s - h j Satz. Zu jeder regulären Sprache L gibt es einen endlichen Automaten A, sodass L = L(A). j h j L = {}: L = {s}: L = L1 ∪ L2 : j j q0,1A1qf,1 H * H ε ε H j H j j h HH * ε ε H j j H j A 2 q q 0,2 f,2 33 Determinisierung (NEA → DEA) Satz. Zu jedem NEA gibt es einen äquivalenten DEA. NEA: A = hQ, Σ, δ, q0 , F i für alle q̂ ∈ Q̂, a ∈ Σ DEA:  = hQ̂, Σ, δ̂, q̂0 , F̂ i, wobei δ ∗ (q, a) Q̂ = P(Q) [ q∈q̂ {q̂ ∈ Q̂ | q̂ ∩ F = 6 {}} ∪ {q̂ } falls ε ∈ L(A) 0 {q̂ ∈ Q̂ | q̂ ∩ F = 6 {}} sonst = {q0 } = δ̂(q̂, a) = q̂0 F̂ Tipp: Berechne die Übergangsfunktion ausgehend von q̂0 nur für tatsächlich erreichbare Zustände. 35 L = L1 · L2 : L = (L1 )∗ : j A1 j ε - j A2 j h q q q q 0,1 f,1 0,2 f,2 34 ε ? j ε - j j ε - j A1 h q q 0,1 f,1 6 ε Minimierung Satz. Zu jeder regulären Sprache gibt es einen bis auf Umbenennung der Zustände eindeutigen, minimalen DEA. oder δ ∗ (q, w) ∈ F δ ∗ (p, w) ∈ /F Definition. Zwei Zustände p, q heißen unterscheidbar durch ein Wort w ∈ Σ∗ , wenn man von p aus mit w in einen Endzustand gelangen kann, aber nicht von q aus, bzw. umgekehrt: δ ∗ (p, w) ∈ F δ ∗ (q, w) ∈ /F p und q sind ununterscheidbar, wenn sie durch kein Wort unterschieden werden können. Minimierung: Entfernen aller nicht-erreichbaren Zustände, Zusammenfassen aller ununterscheidbaren Zustände. 36 Algorithmus zur Minimierung 1. Entferne alle Zustände, die nicht vom Anfangszustand aus erreichbar sind. 2. Markiere alle Zustandspaare (p, q) als unterscheidbar, für die p ∈ F und q ∈ / F gilt oder umgekehrt. 3. Wiederhole den folgenden Schritt, bis keine Zustandspaare mehr als unterscheidbar markiert werden können. Berechne für alle Zustandspaare (p, q) und alle a ∈ Σ das Nachfolgerpaar (δ(p, a), δ(q, a)); ist letzteres bereits als unterscheidbar markiert, markiere auch (p, q) als unterscheidbar. 4. Fasse alle voneinander ununterscheidbaren Zustände zu einem einzigen zusammen. 37 DEA → reguläre Menge Satz. Jede von einem DEA akzeptierte Sprache ist regulär. A = h{q1 , . . ., qn }, Σ, δ, q1 , F i = = qj } {s ∈ Σ | δ(qi , s) = qj } {s ∈ Σ | = ∪ {ε} [ n R1j k−1 k−1 k−1 ∗ k−1 = Rij ∪ Rik · (Rkk ) · Rkj δ(qi , s) k>0 i 6= j i=j k Rij . . . Menge aller Wörter, mit denen man von qi nach qj gelangt, ohne einen Zustand mit einem Index größer als k zu berühren. 0 Rij k Rij L(A) qj ∈F 39 Beispiel. i j 6 0 0 0 0 38 1 h - j q2 @ I @ @ @ 1 0, 1 ? j - h q3 ? 0 1 0 - bj - cj h aj dj @ @ 6@ I 1 @ 1 @1 @0 @ @ @ @ @ @ @ @ @ @ 1 @ @ 0 0 @ @ @ Rj @ R? @ @j 1 1 0 gj ej f h YH H 6 H H H H HH 1 Beispiel. q1 40 k R31 k R23 k R22 k R21 k R13 k R12 k R11 {0, 1} {} {1} {ε} {0} {1} {0} {ε} k=0 {ε} {0, 1} {} {1, 01} {ε, 0 0} {0} {1} {0} {ε} k=1 {ε} ∪ {0, 1} · {0} · {1} {0, 1} · {0 0} {0, 1} · {00} · {0} {0}∗ · {1} {0 0}∗ {0} · {00}∗ {0}∗ · {1} {0} · {00}∗ {0 0}∗ k=2 ∗ k R32 {ε} ∗ ∗ k R33 41 Folgende Probleme sind für reguläre Sprachen L, L0 entscheidbar. • Gehört ein Wort w der Sprache L an? Konstruiere einen DEA für L und prüfe δ ∗ (q0 , w) ∈ F . • Ist L leer? Konstruiere einen DEA für L und prüfe, ob von q0 aus ein Endzustand erreichbar ist. • Ist L endlich oder unendlich? L ist unendlich gdw. der minimale DEA für L einen Zyklus enthält. • Gilt L = L0 ? Überprüfe, ob L − L0 und L0 − L leer sind. 43 Eigenschaften regulärer Sprachen Lreg (Σ) ist abgeschlossen gegenüber • Vereinigung, Verkettung, Stern-Operator: per Definition. • Plus-Operator: A+ = A∗ · A. • Komplement bzgl. Σ∗ : konstruiere DEA und vertausche Endund Nichtendzustände. • Durchschnitt: A ∩ B = A ∪ B. • Differenz: A − B = A ∩ B. • Homomorphismen: Sei h: Σ → Σ0∗ eine Abbildung von Symbolen aus Σ auf Worte über Σ0 . Ist L eine reguläre Sprache, dann auch h(L) = {h(w) | w ∈ L}. Beweis: repräsentiere L durch regulären Ausdruck und ersetze alle Vorkommnisse von a durch Ausdruck für h(a). 42 Grenzen regulärer Sprachen Beispiel. Modulo-Arithmetik L . . . Menge aller binären Numerale ohne führende Nullen, die kongruent 0 modulo 5 sind wert(11 01) = 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 = (((0 · 2 + 1) · 2 + 1) · 2 + 0) · 2 + 1 wert(11 01) mod 5 = (((0 · 2 + 1) · 2 + 1) · 2 + 0) · 2 + 1 mod 5 (((0 · 2 + 1) mod 5 · 2 + 1) mod 5 · 2 + 0) mod 5 · 2 + 1 mod 5 = 44 1 Zustand i . . . bisherige Zahl ist kongruent i mod 5“ ” δ(i, 0) = (i · 2 + 0) mod 5 δ(i, 1) = (i · 2 + 1) mod 5 i j 0 3j I @ @ 1 1 @0 @ @j 4 6 1 ? ? - 1j 0 - 2j 0 I @ @ 1 @1 @ ? @ j 0h 0 45 Pumping Lemma für reguläre Sprachen Sei L eine unendliche reguläre Sprache. Beispiel. Geschachtelte Strukturen L = {an bn | n ≥ 0} regulär? Angenommen, es gibt DEA A = hQ, Σ, δ, q0 , F i für L. Wir betrachten δ ∗ (q0 , ai ) für i = 1, 2, 3, . . . . Schubfachprinzip: es gibt m, n sodass m 6= n aber δ ∗ (q0 , am ) = q = δ ∗ (q0 , an ) . = δ ∗ (δ ∗ (q0 , am ), bn ) an bn ∈ L(A), daher gilt δ ∗ (q, bn ) = qf ∈ F . Wir erhalten: δ ∗ (q0 , am bn ) = δ ∗ (q, bn ) = qf 46 d.h., am bn ∈ L(A) obwohl m 6= n! Folgerung: L ist nicht regulär. Beispiel. L = {an bn | n ≥ 0} • Lemma gilt für alle w mit |w| ≥ m, m unbekannt. Wäre L regulär, müsste Pumping Lemma gelten. Für alle hinreichend großen Worte w ∈ L existiert eine Zerlegung w = xyz mit y 6= ε, sodass xy i z ∈ L für alle i = 0, 1, 2, . . . • Wähle w = am bm . 48 • Betrachte w0 = am−k bm . Da w0 ∈ / L, ist L nicht regulär. Formal: Es gibt m > 0, sodass für alle w ∈ L mit |w| ≥ m gilt: für alle i ≥ 0. mit |xy| ≤ m und y 6= ε • y besteht aus lauter a’s, also y = ak für k > 0. w = xyz w kann geschrieben werden als sodass wi = xy i z ∈ L 47 Pumping Spiel Gegeben: unendliche Sprache L Proponent: versucht Widerspruch zum Pumping Lemma zu finden Opponent: versucht dies zu verhindern 1. Opponent wählt Schranke m. 2. Proponent wählt w ∈ L mit |w| ≥ m. 3. Opponent zerlegt w als xyz, sodass |xy| ≤ m und y 6= ε. 4. Proponent sucht ein i, sodass wi ∈ / L. Gelingt ihm das, gewinnt er, anderfalls der Opponent. 49 L ist nicht regulär, wenn Proponent eine Gewinnstrategie besitzt. Formale Definitionen . . . Variable (Nonterminale) . . . Terminalsymbole (V ∩ T = {}) ⊆ (V ∪ T )+ × (V ∪ T )∗ . . . Produktionen ∈ V . . . Startsymbol Grammatik G = hV, T, P, Si, wobei V T P S α ⇒ β statt (α, β) ∈ P α ⇒ β1 | · · · | βn statt α ⇒ β1 , . . . , α ⇒ βn 51 Grammatiken Satz ⇒ HwP ZwP Hw ⇒ Katze | Dosenfutter Art ⇒ die | das Beispiel. HwP ⇒ Art Hw Hzw ⇒ wird HwP ZwP Art Hw fressen fressen ZwP ⇒ Hzw HwP Zw Art Hw wird das Zw ⇒ fressen ` Katze wird Satz `P die Katze Hzw HwP Zw `P die 50 Dosenfutter `P Direkte Ableitbarkeit: xαy ` xβy falls α ⇒ β ∈ P und x, y ∈ (V ∪ T )∗ Ableitbarkeit von w aus v in n Schritten: Es gibt Wörter w0 , w1 , . . . , wn , sodass v = w0 , w = wn und wi−1 ` wi für 1 ≤ i ≤ n. Schreibweise: v ` w1 ` · · · ` wn−1 ` w Ableitbarkeit in mehreren Schritten: ∗ v` w . . . reflexiver und transitiver Abschluss von ` Durch G erzeugte Sprache L(G): ∗ L(G) = {w ∈ T ∗ | S ` w} Grammatiken G1 und G2 heißen äquivalent, wenn L(G1 ) = L(G2 ) gilt. 52 Reguläre Grammatiken oder A⇒ε Definition. Eine Grammatik heißt regulär, wenn alle Produktionen von der Form A ⇒ aB sind (A, B ∈ V , a ∈ T ). Satz. Eine Sprache ist genau dann regulär, wenn sie von einer regulären Grammatik generiert wird. 53 Kontextfreie Grammatiken Definition. Eine Grammatik heißt kontextfrei, wenn alle Produktionen von der Form A ⇒ β sind, wobei A ∈ V und β ∈ (V ∪ T )∗ . Eine Sprache L heißt kontextfrei, wenn es eine kontextfreie Grammatik G gibt, sodass L = L(G). Linksableitbarkeit: xAy `L xβy falls A ⇒ β ∈ P und x ∈ T ∗ Rechtsableitbarkeit: xAy `R xβy falls A ⇒ β ∈ P und y ∈ T ∗ Parallelableitbarkeit: x0 A1 x1 · · · An xn `P x0 β1 x1 · · · βn xn falls A1 ⇒ β1 , . . . , An ⇒ βn ∈ P und x0 , . . . , xn ∈ T ∗ 55 T V = Real = {0, . . ., 9, ., E, +, −} = {Real , A, B , C , D, E } Beispiel. Real-Zahlen; G = hV, T, P, Si S ⇒ 0 A | ··· | 9 A = { E D C B ⇒ ε | 0 E | ··· | 9 E ⇒ 0 E | ··· | 9 E ⇒ 0 E | ··· | 9 E | + D | − D ⇒ ε | 0 B | ··· | 9B | EC A ⇒ 0 A | ··· | 9 A | . B Real P } 54 ∗ = {w ∈ T ∗ | S ` w} Satz. Ist G eine kontextfreie Grammatik, dann gilt: L(G) ∗ = {w ∈ T ∗ | S ` L w} ∗ = {w ∈ T ∗ | S ` R w} ∗ = {w ∈ T ∗ | S ` P w} Eine Grammatik heißt mehrdeutig, wenn es ein Wort mit mehreren Linksableitungen gibt. Eine Sprache heißt (inhärent) mehrdeutig, wenn alle kontextfreien Grammatiken für sie mehrdeutig sind. 56 V = {0, . . ., 9, ., E, +, −} = {Real , ScaleFactor , Sign, Digits, Digit} Beispiel. Wohlgeformte Klammerausdrücke Beispiel. Real-Zahlen; G = hV, T, P, Si T WKA ist die kleinste Menge, sodass WKA i Beispiel. If-then-else Anweisung ⇒ if expr then Anw | if expr then Anw else Anw | others zwei Linksableitungen besitzt. 60 if expr then if expr then others else others G1 ist mehrdeutig, da das Wort Anw wobei P1 folgende Produktionen sind: P1 , Anw i G1 = h {Anw }, {if, then, else, expr, others}, 58 {WKA ⇒ ε | ( WKA ) | WKA WKA}, G = h {WKA}, {(, )}, • w1 , w2 ∈ WKA ⇒ w1 w2 ∈ WKA • w ∈ WKA ⇒ (w) ∈ WKA • ε ∈ WKA = Real ⇒ Digit Digits . Digits ScaleFactor S Real ⇒ ε | E Sign Digit Digits ⇒ ε | Digit Digits ⇒ ε|+|− Digits ⇒ 0 | ··· | 9 57 Digit Sign ScaleFactor Produktionen: Beispiel. G = h {S }, {a, b}, {S ⇒ ε | a S b}, S i L(G) = {an bn | n ≥ 0} = {ε, a b, aa bb, . . .} Beispiel. Palindrome über {a, b} G = h {S }, {a, b}, {S ⇒ ε | a | b | a S a | b S b}, S i L(G) = {ε, a, b, aa, b b, aa a, ab a, ba b, b bb, . . .} 59 Eindeutige Grammatik: G2 = h {Anw , AnwT , AnwTE }, {if, then, else, expr, others}, P2 , Anw i ⇒ if expr then Anw | AnwTE ⇒ AnwT wobei P2 folgende Produktionen sind: Anw AnwT | if expr then AnwTE else AnwT AnwTE ⇒ if expr then AnwTE else AnwTE | others 61 Backus-Naur-Form (BNF) Synonym für kontextfreie Produktionen. Notation: Nonterminale in spitzen Klammern hReali ⇒ hDigiti hDigitsi . hDigitsi hSFi Erweiterte Backus-Naur-Form (EBNF) Auch: Regular Right Part Grammar (RRPG) Reguläre Ausdrücke auf rechter Seite der Produktionen Zweck: Abkürzung häufiger Situationen A ⇒ w1 {w2 }w3 ermöglicht A ` w1 w2n w3 für beliebiges n. 63 Beispiel. Inhärent mehrdeutige Sprachen L1 = {am bm cn | m, n ≥ 0} L2 = {am bn cn | m, n ≥ 0} L = L1 ∪ L2 S1 S ⇒ aAb|ε ⇒ S1 c | A ⇒ S1 | S2 B S2 ⇒ bBc|ε ⇒ a S2 | B L ist kontextfrei: A Grammatik ist mehrdeutig, da an bn cn zwei verschiedene Ableitungen besitzt. Man kann zeigen, dass alle Grammatiken für L mehrdeutig sind, d.h., L ist inhärent mehrdeutig. 62 entspricht A ⇒ w1 B w3 B ⇒ ε | w2 B entspricht A ⇒ w1 B w3 B ⇒ w2 entspricht A ⇒ w1 B w3 Elimination der EBNF-Notationen: A ⇒ w1 (w2 ) w3 A ⇒ w1 {w2 } w3 A ⇒ w1 [w2 ] w3 B ⇒ ε | w2 64 identlist ⇒ ident { , ident } Beispiel. Listen von Bezeichnern EBNF: ⇒ ε | , ident B Ohne EBNF: identlist ⇒ ident B B SF ⇒ E [+ | −] Digit {Digit} Beispiel. Skalierungsfaktor Real-Zahlen EBNF: 65 Ohne EBNF: SF ⇒ E B1 Digit B2 B1 ⇒ ε | + | − B2 ⇒ ε | Digit B2 Beispiel. Identifier (Bezeichner) L = (GB ∪ KB ) · (GB ∪ KB ∪ Ziff )∗ A ⇒ a B | ··· | zB | A B | ··· | Z B | 0 B | ··· | 9 B | ε ⇒ a B | ··· | zB | A B | ··· | Z B Reguläre Grammatik: G = h{A, B}, {a, . . ., z, A, . . ., Z, 0, . . ., 9}, P, Ai, wobei P : B Kontextfreie Grammatik in EBNF: G0 = h{A, B, Z}, {a, . . ., z, A, . . ., Z, 0, . . ., 9}, P 0 , Ai, wobei P 0 : B ⇒ 0 | ··· | 9 ⇒ A | ··· | Z | a | ··· | z A ⇒ B {B | Z } Z 67 Syntaxdiagramme Erlaubt man rekursive Diagramme, können beliebige kontextfreie Grammatiken in EBNF dargestellt werden. Beispiel. Wohlgeklammerte Ausdrücke 66 - WKA WKA - ( - WKA - ) - WKA ⇒ E + E | E ∗ E | ( E ) | id Beispiel. G = h{E}, {+, ∗, (, ), id}, P, Ei wobei P : E E + E `L E + E E + ` id + E + E `L id + id + E id + E L `L id + id + id G ist mehrdeutig: E `L T ⇒T ∗F |F F ⇒ ( E ) | id L(G) ist aber nicht mehrdeutig, da es eindeutige Grammatik gibt: G0 = h{E, T, F }, {+, ∗, (, ), id}, P 0 , Ei wobei P 0 : E ⇒E+T |T Ohne Klammern wäre L(G) regulär: id { ( + | ∗ ) id } (EBNF) 68 Beispiel. L = {am +bn =cm+n | m, n ≥ 0} aSc ` T S aa +b b T c c cc aa S c c ⇒ bT c|= ⇒ aSc|+T ` a a+ bb =c cc c ` a a+ T c c Kontextfreie Grammatik G = h{S, T }, {a, b, c, +, =}, P, Si wobei P : ` aa +b T cc c ` a a+b b =cc c c ∈ L(G): S ` ∗ Beispiel. L = {w ∈ {a, b} | anza (w) = 2 · anzb (w)} ⇒ aSaSbS |aSbSaS |bSaSaS |ε G = h{S}, Σ, P, Si, wobei P : S 69 Normalformen kontextfreier Grammatiken A, B, C . . . Nonterminale (A, B, C ∈ V ) a . . . Terminalsymbol (a ∈ T ) α . . . Folge von Nonterminalen (α ∈ V ∗ ) Chomsky Normalform: Alle Produktionen besitzen die Form A⇒BC oder A⇒a (a ∈ T , A, B, C ∈ V ) . Greibach Normalform: Alle Produktionen besitzen die Form A ⇒ ax (a ∈ T , A ∈ V , x ∈ V ∗ ) . Satz. Zu jeder kontextfreien Sprache ohne Leerwort gibt es eine Grammatik in Chomsky NF und eine in Greibach NF. 71 Transformation von Produktionen Substitution (Ersetzung) Eine Produktion A ⇒ uBw darf durch A ⇒ uv1 w | · · · | uvn w ersetzt werden, falls B ⇒ v1 | · · · | vn alle B-Produktion sind. Nutzlose Produktionen Entfernen aller Produktionen, die von der Startvariablen aus nicht erreichbar sind oder aus denen kein w ∈ T ∗ ableitbar ist. ε-Produktionen Entfernen aller Produktionen A ⇒ ε Einheitsproduktionen Entfernen aller Produktionen A ⇒ B 70 Satz. Zu jeder kontextfreien Sprache ohne Leerwort gibt es eine kontextfreie Grammatik ohne nutzlose, ohne ε- und ohne Einheitsproduktionen. Kellerautomaten Kellerautomat = endlicher Automat + Stack K = hQ, Σ, Γ, δ, q0 , z, F i, wobei Q . . . endliche Menge von Zuständen Σ . . . Eingabealphabet Γ . . . Kelleralphabet δ: Q × (Σ ∪ {ε}) × Γ → P(Q × Γ∗ ) . . . Übergangsfunktion q0 ∈ Q . . . Anfangszustand z ∈ Γ . . . Anfangskellersymbol F ⊆ Q . . . Menge von Endzuständen 72 (q, w, u) . . . Konfiguration, beschreibt den momentanen Zustand des Kellerautomaten, wobei q . . . momentaner Zustand des endlichen Automaten w . . . noch nicht verarbeiteter Teil der Eingabe u . . . momentaner Inhalt des Stacks Rechenschrittrelation `: (q1 , aw, bx) ` (q2 , w, yx) genau dann, wenn (q2 , y) ∈ δ(q1 , a, b) ∗ ` . . . reflexiver und transitiver Abschluss von ` Akzeptierte Sprache: ∗ L(K) = {w ∈ Σ∗ | (q0 , w, z) ` (qf , ε, u), qf ∈ F, u ∈ Γ∗ } Satz. Eine Sprache ist kontextfrei genau dann, wenn sie von einem Kellerautomaten akzeptiert wird. 73 und Schnitt mit regulären Sprachen; Eigenschaften kontextfreier Sprachen ∗ Kontextfreie Sprachen sind . . . • abgeschlossen bzgl. ∪, ·, • nicht abgeschlossen bzgl. Durchschnitt und Komplement. b/a/ε Beispiel. Kellerautomat für L = {an bn | n ≥ 0}. a/a/a a ? ? a/z/a b/a/ε ε/z/z z 0 3 1 2 x/y/z: Eingabe x gelesen, y weg vom Stack, z auf den Stack Formale Beschreibung: L = L(K), wobei δ(2, b, a) = {(2, ε)} und δ(1, a, a) = {(1, aa)} δ(2, ε, z) = {(3, z)} K = h{0, 1, 2, 3}, {a, b}, {a, z}, δ, 0, z, {0, 3}i δ(0, a, z) = {(1, a z)} δ(1, b, a) = {(2, ε)} Es gilt: a a bb ∈ L(K), da (0, a a b b, z) ` (1, a b b, a z) ` (1, b b, a a z) ` (2, b, a z) ` (2, ε, z) ` (3, ε, z) 74 Pumping Lemma für kontextfreie Sprachen Sei L eine unendliche kontextfreie Sprache. Für alle hinreichend großen Worte w ∈ L existiert eine Zerlegung w = uvxyz mit |vxy| ≤ m und vy 6= ε, sodass uv i xy i z ∈ L für alle i = 0, 1, 2, . . . Formal: Es gibt m > 0, sodass für alle w ∈ L mit |w| ≥ m gilt: Entscheidbare Probleme: • Ist die k.f. Sprache L leer/endlich/unendlich? für alle i ≥ 0. mit |vxy| ≤ m und |vy| ≥ 1 76 wi = uv i xy i z ∈ L w = uvxyz w kann geschrieben werden als sodass • Liegt Wort w in der k.f. Sprache L? (Parsing-Problem) Unentscheidbare Probleme: • Gilt L = Σ∗ , L1 = L2 (Äquivalenzproblem), L1 ⊆ L2 , L1 ∩ L2 = {}? • Ist L regulär? Ist L1 ∩ L2 bzw. Σ∗ − L kontextfrei? 75 Pumping Spiel Nr. 2 Gegeben: unendliche Sprache L Proponent: versucht Widerspruch zum Pumping Lemma zu finden Opponent: versucht dies zu verhindern 1. Opponent wählt Schranke m. 2. Proponent wählt w ∈ L mit |w| ≥ m. 3. Opponent zerlegt w als uvxyz, sodass |vxy| ≤ m und |vy| ≥ 1. 4. Proponent sucht ein i, sodass wi = uv i xy i z ∈ / L. Gelingt ihm das, gewinnt er, anderfalls der Opponent. L ist nicht kontextfrei, wenn Proponent eine Gewinnstrategie besitzt. 77 Jenseits der Kontextfreiheit Beispiel. Formale Sprachen {an bn cn | n ≥ 0} ist nicht kontextfrei. Beispiel. Programmiersprachen Typen- und Deklarationsbedinungen nicht oder nur schwer kontextfrei darstellbar. Beispiel. Natürliche Sprachen Schweizer Dialekt: Mer d’chind em Hans es huus haend wele laa hälfe aastriiche. Hochdeutsch: Wir wollten die Kinder dem Hans helfen lassen, das Haus anzustreichen. 79 Beispiel. Zu zeigen: L = {an bn cn | n ≥ 0} ist nicht kontextfrei. 1. Gegner wählt m. 2. Wir wählen w = am bm cm . Da |vxy| ≤ m, kann vxy nicht gleichzeitig a’s und c’s enthalten. 3a. vxy enthält keine c’s. Wegen |vy| ≥ 1 enthält vy mindestens ein a oder b. 4a. Wir wählen i = 0. w0 = uxz enthält mindestens ein a oder b weniger als c’s. Also w0 ∈ / L. 3b. vxy enthält keine a’s. Wegen |vy| ≥ 1 enthält vy mindestens ein b oder c. 4b. Wir wählen i = 0. w0 = uxz enthält mindestens ein b oder c weniger als a’s. Also w0 ∈ / L. 78 Monotone Grammatiken Definition. Grammatik heißt monoton, wenn für alle Produktionen α ⇒ β die Länge von α kleiner gleich der Länge von β ist (α 6= ε). Kommt Startvariable S auf keiner rechten Seite vor, ist auch S ⇒ ε zugelassen. Beispiel. L = {an bn cn | n ≥ 0} G = h {S , T , C }, {a, b, c}, P, S i S ⇒ a T b C | ab C ⇒ ε | ab c | a T b c Cc ⇒ Cb ⇒ cc bC wobei P folgende Produktionen sind: T Es gilt: L(G) = L. 80 Kontextsensitive Grammatiken Definition. Eine Grammatik heißt kontextsensitiv, wenn alle Produktionen die Form uAv ⇒ uβv besitzen, wobei u, v ∈ (V ∪ T )∗ , A ∈ V und β ∈ (V ∪ T )+ . Kommt Startvariable S auf keiner rechten Seite vor, ist auch S ⇒ ε zugelassen. Satz. Für jede Sprache, die von einer monotonen Grammatik erzeugt wird, gibt es auch eine kontextsensitive Grammatik, und umgekehrt. Typ 0 (rekursiv aufzählb.) Sprachfamilie kontextsensitiv monoton uneingeschränkt Grammatiktyp Kellerautomat (= EA + Stack) Linear beschränkter Aut. (= EA + beschr.RAM) Turing-Maschine (= EA + RAM) Maschinenmodell 81 Typ 1 (kontextsensitiv) kontextfrei endlicher Automat (EA) Chomsky-Hierarchie Typ 2 (kontextfrei) regulär Typ 3 (regulär) Satz. Typ 3 & Typ 2 & Typ 1 & Typ 0 83 Beispiel. L = {an bn cn | n ≥ 0} G = h {S , T , B , C , X , Y }, {a, b, c}, P, S i T S ⇒ ⇒ ⇒ b a T B C | ab C ε | ab c | a T B c XY CY CB ⇒ ⇒ ⇒ XC XY CY wobei P folgende Produktionen sind: B cc XC ⇒ BC Es gilt: L(G) = L. Cc ⇒ 82 Deterministische Turing-Maschine Turing-Maschine = endlicher Automat + unendliches Band (RAM) T = hQ, Σ, Γ, δ, q0 , 2, F i, wobei Q . . . endliche Menge von Zuständen Σ . . . Eingabealphabet (Σ ⊆ Γ − {2}) Γ . . . Bandalphabet δ: Q × Γ → Q × Γ × {L, R} . . . Übergangsfunktion q0 ∈ Q . . . Anfangszustand 2 ∈ Γ . . . Leersymbol F ⊆ Q . . . Menge von Endzuständen L = links“, R = rechts“ ” ” 84 uqav . . . Konfiguration (u, v ∈ Γ∗ , a ∈ Γ, q ∈ Q) beschreibt den momentanen Zustand der Turing-Maschine, wobei 2−∞ uav2∞ . . . Inhalt des Bandes q . . . momentaner Zustand a . . . Symbol unter dem Schreib-/Lesekopf Rechenschrittrelation `: uqav ` ubq 0 v genau dann, wenn δ(q, a) = (q 0 , b, R) ucqav ` uq 0 cbv genau dann, wenn δ(q, a) = (q 0 , b, L) (u, v ∈ Γ∗ , a, b, c ∈ Γ, q, q 0 ∈ Q) ∗ ` . . . reflexiver und transitiver Abschluss von ` Akzeptierte Sprache: 85 ∗ L(T ) = {w ∈ Σ∗ | q0 w ` uqf v, qf ∈ F , u, v ∈ Γ∗ } Formale Beschreibung von T : y (2, z, R) z (5, 2, R) 2 h{0, 1, 2, 3, 4, 5}, {a, b, c}, {a, b, c, x, y, z, 2}, δ, 0, 2, {5}i wobei δ definiert ist durch: x a (4, y, R) c δ (1, x, R) (1, y, R) b 0 (1, a, R) (2, y, R) (2, b, R) (3, z, L) (3, a, L) (3, b, L) (4, y, R) (4, z, R) (5, 2, R) (0, x, R) (3, y, L) (3, z, L) 1 2 3 4 5 87 a/x ? Rj y,z 4 y ? i Rj 0 a,y - Rj 61 b/y b,z - Rj 62 c/z a,b,y,z - Lj 63 Beispiel. Turing-Maschine T , sodass L(T ) = {an bn cn | n ≥ 0}. x 2 2 ? h - Rj 5 s s/s0 - m ∆ q0 - m ∆ q0 wenn δ(q, s) = (q 0 , s0 , ∆) wenn δ(q, s) = (q 0 , s, ∆) Graphische Notation für richtungsgebundene Turing-Maschinen: m q m q 86 ∗ q0 d ` qf f (d) (qf ∈ F ) Turing-berechenbare Funktionen Eine Funktion f : D → R heißt Turing-berechenbar oder einfach nur berechenbar, wenn es eine Turing-Maschine hQ, Σ, Γ, δ, q0 , 2, F i gibt, sodass gilt für alle d ∈ D. Mehrstellige Funktionen: Trennsymbol zwischen Argumenten Beispiel. f (x, y) = x + y für x, y ∈ ω ist Turing-berechenbar. 1 ? j -R +/1 2 - Lj 1/2 - 1 ? Lj 2 h - Rj Unärkodierung für x, y und f (x, y), Trennsymbol +. 1 ? i Rj 88 (Church-)Turing-These Jede mechanische Berechnung kann auch von einer ” Turing-Maschine ausgeführt werden.“ Problem versus Algorithmus Problem: parametrisierte Frage spezifiziert durch die Beschreibung • aller Parameter • der zulässigen Lösungen (Antworten) und ihrer Eigenschaften. Instanz eines Problems: Satz konkreter Werte für die Parameter Argumente für diese These: • Alle Computerberechnungen auch von Turing-Maschinen ausführbar. Algorithmus: Verfahren zur Lösung eines Problems n−1 X i=1 d(sπ(i) , sπ(i+1) ) + d(sπ(n) , sπ(1) ) 92 semientscheidbar: unentscheidbar, aber es gibt Algorithmus, der ersten Punkt erfüllt, aber im zweiten Fall manchmal nicht terminiert. Andernfalls heißt Π unentscheidbar. 2. A liefert auf Eingabe x1 , . . . , xn das Ergebnis 0 wenn die Anwort auf Π für die Werte x1 , . . . , xn “Nein” lautet. 1. A liefert auf Eingabe x1 , . . . , xn das Ergebnis 1 wenn die Anwort auf Π für die Werte x1 , . . . , xn “Ja” lautet. Ein Entscheidungsproblem Π mit Parametern x1 , . . . , xn heißt entscheidbar, wenn ein Algorithmus A existiert, sodass gilt: Unentscheidbare Probleme 90 Instanzen des Problems Primzahl: 5, 18, . . . • Lösung: “Ja”, falls n Primzahl; “Nein” sonst. • Parameter: natürliche Zahl n Beispiel. Entscheidungsproblem Primzahl: Entscheidungsproblem: Ja/Nein-Problem • Kein Problem mit Lösungsalgorithmus bekannt, für das keine Turing-Maschine konstruierbar wäre. 89 • Kein Alternativvorschlag zur Formalisierung des Begriffs mechanische Berechnung“ ist mächtiger. ” Definition. Algorithmus zur Berechnung einer Funktion f : D → R: Turing-Maschine T , die für jeden Input d ∈ D mit der Antwort ∗ f (d) ∈ R auf dem Band hält, d.h., q0 d ` qf f (d) für alle d ∈ D. L = Beispiel. Traveling Salesman Parameter: Städte {s1 , . . ., sn }, Entfernungen d(si , sj ) Lösung: Permutation π, sodass die Länge der Rundreise minimal ist. Beispiel einer Instanz: s1 JJ 5 J Lösung: π = h1, 2, 4, 3i 9 10 J Länge der Rundreise: L = 27 J s 3 6 HH 3 J H J H s2 s4 9 91 Primzahl: entscheidbar entscheidbar Beispiele Traveling Salesman: Halteproblem: Hält das Programm P bei Eingabe von x?“ ” semientscheidbar unentscheidbar nicht semientscheidbar Äquivalenzproblem: Berechnen die Programme P1 und P2 dieselbe Funktion?“ ” 93 Lösungsaufwand ist i.A. proportional zur Größe der Eingabe. Kodierungsschema: bildet Eingabe auf Zeichenkette ab. Länge der Zeichenkette = Größe der Instanz Beispiel. s[1]s[2]s[3]s[4]//10/5/9//6/9//3 Größe der Instanz: 32 Zeitkomplexitätsfunktion: ordnet jeder Größe den maximalen Zeitaufwand zu, den der Algorithmus für eine Instanz dieser Größe benötigt. Ordnung einer Funktion: f (n) ist O(g(n)) – f (n) ist von der Ordnung g(n) – wenn gilt: es gibt Konstante c, sodass |f (n)| ≤ c · |g(n)| für fast alle n ≥ 0. Ein Algorithmus ist polynomiell, wenn seine Zeitkomplexitätsfunktion O(p(n)) ist, wobei p ein Polynom in n ist. Anderfalls heißt der Algorithmus exponentiell. 95 Komplexitätstheorie Analyse von Algorithmen und Problemen hinsichtlich Rechenzeit, Speicherplatz, . . . Komplexität eines Problems: Komplexität des effizientesten Algorithmus Zeit-/Speicherkomplexität: Funktion der Eingabegröße Worst-case Komplexität: Maximum über alle Eingaben gleicher Größe Erwartete Komplexität: gewichtetes Mittel über alle Eingaben gleicher Größe 94 3n 2n n5 n3 n2 n 9.8 s .059 s .001 s .1 s .001 s .0001 s .00001 s 10 3a 58 m 1.0 s 3.2 s .008 s .0004 s .00002 s 20 2.6×107 a 6.5 a 17.9 m 24.3 s .027 s .0009 s .00003 s 30 3.0×1014 a 3.9×105 a 12.7 d 1.7 m .064 s .0016 s .00004 s 40 2.8×1021 a 2.3×1010 a 35.7 a 5.2 m .125 s .0025 s .00005 s 50 Instanzengröße n 5n 96 Problem polynomiell unlösbar: es gibt keinen polynomiellen Alg. n3 n2 n N4 N3 N2 N1 heute. N5 + 6.6 2.5 · N4 4.6 · N3 10 · N2 100 · N1 der 100mal schneller ist. N6 + 6.3 N5 + 10 4 · N4 10 · N3 31.6 · N2 1000 · N1 der 1000mal schneller ist. (deterministisch) polynomiell lösbar indeterministisch polynomiell lösbar indeterministisch polynomiell unlösbar unentscheidbar Polynomielle Lösbarkeit unabhängig von Kodierungsschema und Maschinenmodell. n5 N5 N6 + 4.2 N7 + 4.3 Größe der größten, in einer bestimmten Zeit lösbaren Instanz mit einem Computer 2n N6 N7 + 2.9 • Lösung ist von exponentieller Länge Grobe Problemklassifizierung: 100 leichte Probleme Beispiel. SAT ist polynomiell auf das Entscheidungsproblem zu Traveling Salesman (TS) reduzierbar ⇒ TS ist NP-hart. TS liegt außerdem in NP ⇒ TS ist NP-vollständig. Stephen Cook, 1971: Das Erfüllbarkeitsproblem für propositionale Formeln (SAT) ist NP-vollständig. Π ist NP-vollständig, wenn Π in NP liegt und NP-hart ist. Folgerung: Ist Π polynomiell lösbar, dann alle Probleme in NP. Ist irgendein Problem in NP polynomiell unlösbar, dann auch Π. Problem Π ist NP-hart, wenn jedes Problem in NP polynomiell auf Π reduzierbar ist. NP (Nichtdeterministisch Polynomiell): Klasse aller Entscheidungsprobleme, die von einem indeterministischen Computer (=beliebige Parallelität ohne Kooperation) in polynomieller Zeit gelöst werden können. 98 schwere Probleme • Finden der Lösung erfordert exponentiellen Aufwand Ursachen für polynomielle Unlösbarkeit: 3n N7 Zeitkomplexitätsfunktion 5n 97 NP-vollständige Probleme Untersuchung der relativen Komplexität von Problemen zueinander mittels Problemreduktion. Π1 . Problem Π1 auf Problem Π2 reduzierbar: jede Instanz von Π1 kann in eine Instanz von Π2 transformiert werden. Ein Algorithmus für löst damit auch Π2 Polynomielle Reduktion: Transformation in polynomieller Zeit. Polynomieller Alg. für Π2 liefert auch polynomiellen Alg. für Π1 . P: Klasse aller Entscheidungsprobleme, die von einem deterministischen (realen) Computer in polynomieller Zeit gelöst werden können. 99 Entscheidungsprobleme d(si , sj ), Schranke D Gegeben durch: Beschreibung der Parameter + Ja/Nein Frage Entfernungen Beispiel. Traveling Salesman Parameter: Städte s 1 , . . . , sn , Frage: Gibt es Rundreise mit Länge ≤ D, d.h., gibt es Permutation Pn−1 π, sodass i=1 d(sπ(i) , sπ(i+1) ) + d(sπ(n) , sπ(1) ) ≤ D? Entscheidungsproblem – formal: Menge aller Instanzen (INSTΠ ) + Menge der Ja-Instanzen (JAΠ ) Sprache zu Problem Π unter Kodierungsschema K: L(Π, K) = {x ∈ Σ∗ | x kodiert Ja“-Instanz} ” 101 Von Kodierungsschema unabhängige Eingabelänge: length: INSTΠ → ω+ Muss polynomiell verwandt sein mit allen vernünftigen Kodierungsschemata. length heisst polynomiell verwandt mit Kodierungsschema K, wenn Polynome p, p0 existieren, sodass für alle Instanzen I gilt: length(I) ≤ p(|K(I)|) und |K(I)| ≤ p0 (length(I)) Beispiel. Primzahl Parameter: natürliche Zahl n Ja/Nein Frage: Ist n eine Primzahl? Kodierungsschema K: Binärdarstellung L(Primzahl, K) = {10, 11, 10 1, 11 1, 1 01 1, . . .} Eigenschaften wie polynomiell/exponentiell sind unabhängig vom Kodierungsschema, soferne dieses vernünftig gewählt wird: 1. kein exponentielles Aufblähen durch Füllsymbole; 2. keine unäre Darstellung von Zahlen. 102 Turing-Maschinen und Entscheidungsprob. Turing-Maschine T löst Problem Π unter Schema K, wenn T auf allen Eingaben hält und L(T ) = L(Π, K). Zeitkomplexität: timeT (n) = max{m | es gibt x mit |x| = n und T heisst polynomiell, wenn timeT (n) von der Ordnung O(p(n)) für ein Polynom p ist. T macht m Schritte auf x} length(I) = n + dlog(max {D, d(s1 , s2 ), d(s1 , s3 ), . . .})e 104 Beispiel. Traveling Salesman 103 = {L | L = L(T ) für polynomielle deterministische TM T } Klasse der polynomiell erkennbaren Sprachen: P Alle vernünftigen Kodierungsschemata sind in polynomiellen Grenzen zueinander äquivalent. Alle realistischen Berechnungsmodelle sind in polynomiellen Grenzen zu deterministischen TMs äquivalent. Daher ist P die Klasse der in polynomieller Zeit lösbaren Entscheidungsprobleme. 105 Indeterministische Turing-Maschine (IDTM) Indeterminismus Modelliert Verifizierbarkeit in polynomieller Zeit Indeterministischer Algorithmus = Rateteil + Prüfteil 106 Löst Problem Π, wenn für alle I ∈ INSTΠ gilt: I ∈ JAΠ genau dann, wenn es eine (geratene) Struktur S gibt, sodass der Prüfteil auf S und I die Antwort Ja“ liefert. ” Ist polynomiell, wenn ein Polynom p und für jedes I ∈ JAΠ eine Struktur S existiert, sodass der Prüfteil innerhalb der Zeit p(length(I)) die Antwort Ja“ liefert. ” P versus N P = Ratemodul + deterministische Turing-Maschine (DTM) Ratemodul: schreibt willkürliche Zeichenkette S neben Eingabe x auf Band, dann startet erst die DTM. Trivial: P ⊆ N P 108 Satz. Für jedes Π ∈ N P gibt es ein Polynom p, sodass Π von einem deterministischen Algorithmus in der Zeit O(2p(n) ) gelöst werden kann. Offene Vermutung P 6= N P . Eine IDTM T akzeptiert x, wenn es ein S gibt, sodass die DTM die Eingabe x + S akzeptiert. Rechenzeit: minimale Zahl der Rechenschritte der DTM (über alle akzeptierenden Berechnungen) = {L | L = LM für polynomielle IDTM M } Klasse der indeterministisch-polynomiell erkennbaren Sprachen: NP Auch N P kann als Klasse von Entscheidungsproblemen aufgefasst werden. 107 Polynomielle Reduktion Eine Sprache L heißt NP-vollständig, wenn NP-Vollständigkeit Die Begriffe Problemreduktionen“ und NP-Vollständigkeit“ ” ” können auf Entscheidungsprobleme erweitert werden. L gehört zu den härtesten“ Sprachen in N P . ” Satz. Seien L1 , L2 ∈ N P und L1 ≥ L2 . Ist L1 NP-vollständig, dann ist auch L2 NP-vollständig. (b) L0 ≥ L für alle Sprachen L0 ∈ N P . (a) L ∈ N P , f : Σ1∗ → Σ2∗ ist polynomielle Reduktion von L1 ⊆ Σ1∗ auf L2 ⊆ Σ2∗ , wenn gilt: (a) f ist durch polynomielle DTM berechenbar; (b) x ∈ L1 genau dann, wenn f (x) ∈ L2 . Schreibweise: L1 ≥ L2 , wenn eine polynomielle Reduktion von L1 auf L2 existiert. Satz. Sei L1 ≥ L2 . Verfahren zum Beweis der NP-Vollständigkeit eines Problems Π: ≥ ist transitiv: L1 ≥ L2 , L2 ≥ L3 ⇒ L1 ≥ L3 (a) Aus L2 ∈ P folgt L1 ∈ P . (a) Zeige Π ∈ N P . 112 M(I, ( t1 + t2 )) = M(I, t1 ) + M(I, t2 ) für t1 , t2 ∈ T M(I, v) = I(v) für v ∈ {x, y, z, . . .} M(I, 0) = 0, . . . , M(I, 9) = 9 ENV . . . Menge aller Speicherbelegungen ( Environments“) ” Erweiterung der Semantikfunktion: M: ENV × T → ω Speicherbelegung I: {x, y, z, . . .} → ω Semantik: M(x) = 1 oder M(x) = 2 ? Syntax: T ⇒ x | y | z | · · · Behandlung von Variablen 110 (b) Zeige Π0 ≥ Π für ein bekanntes NP-vollständiges Problem Π0 . (b) Aus L1 ∈ / P folgt L2 ∈ / P. 109 L1 , L2 polynomiell äquivalent, wenn L1 ≥ L2 und L2 ≥ L1 . Syntax vs. Semantik Ein einfaches Beispiel: additive Terme = {T ⇒ 0 | ··· | 9 | ( T + T )} Sei T = L(G) mit G = h{T }, {(, ), +, 0, . . . , 9}, P, T i mit P M: T → ω . . . Meaning“, interpretiert T als additive Ausdrücke ” M(0) = 0, . . . , M(9) = 9 M(( t1 + t2 )) = M(t1 ) + M(t2 ) für t1 , t2 ∈ T = M((1+2 )) + M(3) Beispiel. Auswertung von ((1 +2 )+3): M(((1 +2) +3)) = M(1) + M(2) + M(3) = 1+2+3=6 111 Beispiel. Auswertung von ((x +2 )+y) . . . für I(x) = 1, I(v) = 3 für alle v 6= x: = M(I, x) + M(I, 2) + M(I, y) T ⇒ 0 | ··· | 9 T = L(G) Grammatik {x, y, z} ⊆ T {0, . . . 9} ⊆ T T ist kl. Menge mit: Induktive Definition M(I, x) = I(x), . . . M(I, 0) = 0, . . . M: ENV × T → ω Rekursion Grammatik vs. Induktive Definition = I(x) + 2 + I(y) T ⇒x|y|z M(I, ( t1 + t2 )) M(I, ((x +2 )+y )) = M(I, (x+2 )) + M(I, y) = 1+2+3=6 t1 , t2 ∈ T Grammatik ∃ ist kl. Menge mit: Induktive Definition M(0) = 0, . . . M: ∃ → ω Rekursion t1 , t2 ∈ T → ( t1 + t2 ) ∈ T : 114 F ⇒+E |∗E | Problem: Ableitungen entsprechen nicht der intendierten Semantik. Die übliche Prioritätsregel ‘∗ vor +’ soll berücksichtigt werden. E ⇒ 0F | ··· | 9F Im Gegensatz zur Grammatik ist die Sprache ∃ eindeutig; es gibt eine eindeutige (reguläre) Grammatik für ∃: Auflösung der Mehrdeutigkeit statt t∈T →(t+t)∈T T ist nicht mehr kontextfrei! → ( t1 + t2 ) ∈ T = M(I, t1 ) + M(I, t2 ) Beachte: Die verschiedenen Vorkommen von T in ( T + T ) entsprechen den verschiedenen (metasprachlichen) Variablen t1 und t2 ! T ⇒(T +T ) . . . für J(x) = 5, J(y) = 2, J(v) = 0 sonst: M(J, (( x+2 )+y )) = M(J, ( x+2 )) + M(J, y) = M(J, x) + M(J, 2) + M(J, y) = J(x) + 2 + J(y) = 5+2+2=9 ∃ = L(G) {0, . . . 9} ⊆ ∃ 113 E ⇒ 0 | ··· | 9 M(e1 + e2 ) = M(e1 ) · M(e2 ) M(e1 ∗ e2 ) = M(e1 ) + M(e2 ) e1 , e2 ∈ ∃ e1 , e2 ∈ ∃ → e1 + e2 ∈ ∃ E ⇒E+E E ⇒E∗E → e1 ∗ e2 ∈ ∃ 1. Prioritätsregel (nur) in die Definition von M einbauen Zwei Möglichkeiten: M(3+3 ∗3) = M(3) + M(3∗ 3) = M(3) + M(3) · M(3) = 12 Problem: M ist keine Funktion mehr! M(3+3 ∗3) = M(3 +3) · M(3) = (M(3) + M(3)) · M(3) = 18 116 2. Prioritätsregel gleich in die Definition von ∃ einbauen: Definition von ∃ hierarchisch gestalten Grund: Grammatik für ∃ ist mehrdeutig; verschiedene Ableitungen führen zu verschiedenen Werten. 115 H⊆∃ ∃ ist kleinste Menge mit: e1 , e2 ∈ H → e1 ∗ e2 ∈ H {0, 1, . . ., 9} ⊆ H H ist kleinste Menge mit: Hierarchische Definition von ∃ e1 , e2 ∈ ∃ → e1 + e2 ∈ ∃ Modellstrukturen F ... D ... endliche Menge totaler Prädikate endliche Menge totaler Funktionen D k → {t, f } Dk → D nicht-leere Menge (Gegenstandsbereich/Domäne) Quadruppel hD, F, P, Ki, wobei: MH (0) = 0, . . . , MH (9) = 9 P ... Davon lassen sich Definitionen M∃ und MH ableiten: M∃ (e) = MH (e) MH (e1 ∗ e2 ) = MH (e1 ) · MH (e2 ) falls e ∈ H M∃ (e1 + e2 ) = M∃ (e1 ) + M∃ (e2 ) K⊆D = 0s Binäre Stacks: S = hS, {push0, push1, pop}, {ist0?, ist1?, istleer?}, {ε}i ∗ wobei die Stacks durch Worte aus S = {0, 1} dargestellt werden. 118 Modellstrukturen können als abstrakte Datentypen aufgefasst werden Menge von Konstanten + M∃ (4) K ... = M∃ (2∗ 3) Als einzigen Wert von 2∗3 +4 erhält man: M∃ (2 ∗3 +4) = MH (2∗ 3) + MH (4) = 2 · 3 + 4 = 10 117 Ganze Zahlen: Z = hZ, {+, −, ∗}, {<, =}, Zi wobei Z = {. . ., −2, −1, 0, 1, 2, . . .} push0(s) = 1s ε s0 +, −, ∗ . . . übliche artihmetische Funtktionen push1(s) = es gibt ein s0 sodass s = 0s0 . . . kleiner“-, bzw. ist-gleich“-Relation ” ” pop(s) ⇐⇒ es gibt ein s0 sodass s = 1s0 <, = ist0?(s) ⇐⇒ 120 für s = ε für s = 0s0 oder s = 1s0 Natürliche Zahlen: [ACHTUNG: kleine Abweichung von Skriptum!] . ∗}, {<, =}, {0, 1}i N = hω, {+, −, wobei ω = {0, 1, 2, . . .} und ist1?(s) s=ε ⇐⇒ x−y 0 istleer?(s) . y= x− für x ≥ y für x < y (Ansonst wie für Z) 119 Familie X: FamX = hDX , FX , PX , KX i wobei CX = PersonenX (Menge der Mitglieder der Familie X) FX = {Vater, Mutter } PX = {Geschwister, Onkel, weiblich, männlich, = } KX = {Abdul, Berta, Chris, Dorlan, Ege, . . .} Funktionen Vater und Mutter müssen total sein. =⇒ PersonenX unendlich; oder mit Element ‘Unbekannt’, wobei Vater(Unbekannt) = Mutter(Unbekannt) = Unbekannt 121 Natürliche Zahlen: . ∗}, FS (N) = {} für n 6= 2 FS 2 (N) = {+, −, n PS 2 (N) = {<, =}, PS n (N) = {} für n 6= 2 KS (N) = {0, 1} Binäre Stacks: FS 1 (S) = {push0, push1, pop}, FS n (S) = {} für n > 1 PS 1 (S) = {ist0?, ist1?, istleer?}, PS n (S) = {} für n > 1 KS (S) = {leer} 123 Signaturen Die Signatur zur Modellstruktur D legt das Alphabet einer Sprache fest, die sich entsprechend auf die Gegenstände in D bezieht. FS (D), PS (D), KS (D) . . . Funktions-, Prädikaten-, Konst.symbole FS n (D), PS n (D) . . . n-stellige Symbole 122 Ganze Zahlen: FS 2 (Z) = {+, −, ∗}, FS n (Z) = {} für n 6= 2 PS 2 (Z) = {<, =}, PS n (Z) = {} für n 6= 2 KS (Z) = {. . . , −2, −1, 0, 1, 2, . . .} Signatur zur Familie X: FS 1 (FamX) = {Vater, Mutter}, FS n (FamX) = {} für n > 1, PS 1 (FamX) = {weiblich, männlich}, PS 2 (FamX) = {Geschwister, Onkel, =}, PS n (FamX) = {} für n > 2. KS (FamX) = {Abdul, Berta, Chris, Dorlan, Ege, . . .} 124 Terme über Modellstrukturen Syntax: Alphabet: neben FS (D) und KS (D) auch Individuenvariablensymbole IVS : {x, y, z, x1 , . . .} Hilfssymbole: ( und ) und , T (D) ist die kleinste Menge, für die gilt: (T1) IVS ⊆ T (D) (T2) KS (D) ⊆ T (D) (T3) f 0 ( t1 , . . . , tn ) ∈ T (D) wenn f 0 ∈ FS n (D) und t1 , . . . , tn ∈ T (D) 125 Boolesche Ausdrücke über Modellstrukturen Syntax: BA(D) ist die kleinste Menge, für die gilt: ... ,tn ) (BA1) p0 (t1 , . . . ,tn ) ∈ BA(D), wenn p0 ∈ PS n (D) und t1 , . . . , tn ∈ T (D); heißt Atomformel; p0 (t1 , (BA2) ¬ F ∈ BA(D), wenn F ∈ BA(D); (BA3) ( F ∧ G ) ∈ BA(D), wenn F, G ∈ BA(D); (BA4) ( F ∨ G ) ∈ BA(D), wenn F, G ∈ BA(D). 127 Semantik ENV (D) . . . Menge aller Abbildungen IVS → D (Variablenbelegungen, Environments, auch: Interpretationen) MT : ENV (D) × T (D) → D ist rekursiv definiert durch (M1) MT (I, v) = I(v) für v ∈ IVS ; (M2) MT (I, c0 ) = c für c0 ∈ KS (D) (c . . . Konstante zu Konstantensymbol c0 ) (M3) MT (I, f 0 ( t1 , . . . , tn )) = f (MT (I, t1 ), . . . , MT (I, tn )) (f . . . Funktion zum Funktionssymbol f 0 ) 126 Boolesche Ausdrücke über Modellstrukturen Semantik: Definition. Die Semantik von BA(D) wird durch die Funktion MBA : ENV × BA(D) → {t, f } festgelegt: (MBA1) (MBA2) (MBA3) (MBA4) MBA (I, p0 (t1 , . . . ,tn )) = p(MT (I, t1 ), . . . , MT (I, tn )), wobei p das Prädikat zum Symbol p0 ∈ PS n (D) ist. t falls MBA (I, F ) = f MBA (I, ¬ F ) = f falls MBA (I, F ) = t M (I, ( F ∧ G )) = BA t falls MBA (I, F ) = t und MBA (I, G) = t f sonst M (I, ( F ∨ G )) = BA t falls MBA (I, F ) = t oder MBA (I, G) = t f sonst 128 Notationsvereinbarungen / ¬ (t1 <t2 ) • Infixnotation für Terme über Z und N: ( 1 +x) steht für + ( 1 ,x) etc. steht für ¬ (t1 =t2 ) • Infixnotation auch für Atomformeln: (t1 =t2 ) steht für = (t1 ,t2 ) etc. / t1 ≥t2 • t1 >t2 steht für t2 <t1 • t1 6= t2 • Klammereinsparungen, sofern keine Gefahr der Mehrdeutigkeit besteht 129 Eine einfache Programmiersprache ALI . . . Assignment Language für Integers (Statements/Programme über Z) Syntax: ALI ist die kleinste Menge, für die gilt: etc. (AL1) Ist v ∈ IVS und t ∈ T (Z), dann ist v ← t ∈ ALI. (AL2) Sind α, β ∈ ALI, dann ist begin α; β end ∈ ALI. (AL3) Ist B ∈ BA(Z) und sind α, β ∈ ALI, dann ist if B then α else β ∈ ALI. (AL4) Ist B ∈ BA(Z) und α ∈ ALI, dann ist while B do α ∈ ALI. 131 Beispiel Wert von B = y+x6= 0 ∨ x<y über Z in einer Variablenbelegung I mit I(x) = 4 und I(y) = −2. = M BA4 t falls MBA (I, y+x6= 0) = t oder MBA (I, x<y) = t Erinnerung: B ist ‘offiziell’ ( ¬ = ( + (y,x) , 0 ) ∨ < (x,y) ) MBA (I, B) = = M T 3,M T 2 M BA1 = M BA2 (−2 + 4 = 0) = (2 = 0) = f (M (I, y+x) = M (I, 0)) T T (MT (I, y) + MT (I, x) = 0) t falls MBA (I, y+x= 0) = f Wir bestimmen zunächst MBA (I, y+x6= 0): MBA (I, y+x6= 0) MBA (I, y+x= 0) = MT 1 Daher erhalten wir MBA (I, B) = t. 130 Beispiel: Ein ALI-Programm zur Multiplikation zweier positiver Zahlen: begin z ← 0; while (0<y) do begin z ← (z + x) ; y ← (y − 1) end end Beachte: Die intendierte Semantik muss erst gerechtfertigt werden! 132 Syntaktische Analyse AL1 • z ∈ IVS , 0 ∈ T (Z) =⇒ α1 = z ← 0 ∈ ALI AL1 • z ∈ IVS , (z + x) ∈ T (Z) =⇒ α2 = z ← (z + x) ∈ ALI AL1 AL4 ∈ AL =⇒ β = begin α2 ; α3 end ∈ ALI AL2 • y ∈ IVS , (y − 1) ∈ T (Z) =⇒ α3 = y ← (y − 1) ∈ ALI • α2 , α3 • (0<y) ∈ BA(Z), β ∈ ALI =⇒ γ = while (0<y) do β ∈ ALI AL2 133 • α1 , γ ∈ ALI =⇒ begin α1 ; γ end ∈ ALI Semantik von ALI Die Funktion MAL : ENV × ALI → ENV ist definiert durch: (MAL1) MAL (I, v ← t) = I 0 , wobei I 0 (v) = MT (I, t) und v I 0 (w) = I(w) für alle w ∈ IVS mit w 6= v, d.h. I 0 ∼ I. (MAL2) MAL (I, begin α; β end) = MAL (MAL (I, α), β) (MAL3) MAL (I, if B then α else β) = MAL (I, α) falls MBA (I, B) = t MAL (I, β) falls MBA (I, B) = f (MAL4) MAL (I, while B do α) = M (M (I, α), while B do α) für MBA (I, B) = t AL AL I für MBA (I, B) = f 135 Notationsvereinbarung: α ; α2 ; . . . ; αn 1 steht für α1 ; begin α2 ; begin . . . ; αn end end Beachte: Die offizielle Syntax von ALI bleibt unverändert. (Das erleichtert die syntaktische und semantische Analyse) Eine Hilfsdefinition: v Für I, I 0 ∈ ENV und v ∈ IVS schreibt man I ∼ I 0 wenn I(w) = I 0 (w) für alle w ∈ IVS für die w 6= v. 134 Beispiel: Multiplikationsprogramm Abkürzungen: β = begin z ← (z + x); y ← (y − 1) end γ = while (0<y) do β Auswertung für I(x) = 3, I(y) = 1, (I(z) beliebig) M AL2 M AL1 wobei I 0 (z) = MT (I, 0) = 0 und I 0 (v) = I(v) für v 6= z = (0<I(y)) = (0<1) = t MBA (I 0 , (0<y) = (MT (I 0 , 0)<MT (I 0 , y)) = (0<I 0 (y)) M (I 0 , while (0<y) do β) AL MAL (MAL (I 0 , β), while (0<y) do β) MAL (I, begin z ← 0; γ end) = MAL (MAL (I, z ← 0), γ) = MAL (I 0 , γ) = = M AL4 136 0 , β), while (0<y) do β) MAL (MAL (MAL (I 0 , z ← z+x), y ← y−1), while (0<y) do β) MAL (MAL (I = M AL2 M AL1 I 00 (v) = I 0 (v) für v 6= z = I 0 (z) + I 0 (x) = 0 + I(x) = 0 + 3 = 3 I 00 (z) = MT (I 0 , z+x) = MT (I 0 , z) + MT (I 0 , x) MAL (MAL (I 00 , y ← y−1), while (0<y) do β) I 000 (y) = MT (I 00 , y−1) = MT (I 00 , y) − MT (I 00 , 1) = I 00 (y) − 1 = I 0 (y) − 1 = I(y) − 1 = 1 − 1 = 0 I 000 (v) = I 00 (v) für v 6= y = (0<I 000 (y)) = (0<0) = f MBA (I 000 , (0<y)) = (MT (I 000 , 0)<MT (I 000 , y)) I 000 wobei MAL (I 000 , while (0<y) do β) wobei = M AL1 = = M AL4 Was ist mathematische Logik? • Logik untersucht allgemeine Prinzipien korrekten Schließens • Mathematische Logik stellt zu diesem Zweck formale Kalküle bereit und analysiert die Beziehung zwischen Syntax und Semantik von Aussagen. • Die Logik hat viele Anwendungen in der Informatik. • Vor allem aber bietet die (formale) Logik den geeigneten methodischen Rahmen zur Lösung zahlreicher Probleme der Informatik. Motto: The applied math of computer science is formal logic.“ ” 138 Anwendungen der Logik in der Informatik 2 137 Anwendungen der Logik in der Informatik 1 C. Korrektheit von Programmen – Kalküle für Korrektheitsbeweise (z.B. Hoare-Kalkül) A. Programmierung – Logik-nahe Programmiersprachen (PROLOG etc.) – Lösbarkeits- und Komplexitätsfragen – Design von (Logik-nahen) Datenformaten D. Datenbanken – (partielle) Automatisierung von Korrektheitsbeweisen – boolean expressions“ ” – Zusicherungen – Extraktion von Programmen aus Spezifikationen – Automatische Programmierung – Datenconstraints – Aspekte wie: Inkonsistenz, Unvollständigkeit, etc. – Extraktion von Information aus Datenmengen (WWW) – Design und Analyse von Abfragesprachen – dynamisches Verhalten (Temporallogiken, . . . ) B. Spezifikation: Sprachen, Schließen über Spezifikationen – Soll/Muss-Verhalten (deontische Logik) 140 – Update-Problem“ ” – Datenbanktheorie – Konsistenz von Spezifikationen 139 Anwendungen der Logik in der Informatik 3 G. Computermathematik: Anwendungen der Logik in der Informatik 4 – logische Aspekte von Geometrie-Systemen – Repräsentation matematischer Beweise und Theoreme – Symbolic Computation, Computeralgebra – automatisches Beweisen E. Wissensrepräsentation: – Design von geeignete Repräsentationssprachen – Web-Ontologien, Description-Logics – Schließen mit unsicherer/vager/unvollständiger Information I. (Deskriptive) Komplexitätstheorie – Formale Modellierung natürlicher Sprache – Repräsentation von Modalitäten“ (z.B. Wissen/Glauben) ” – “revisable reasoning“ (nicht-montone Logiken, . . . ) J. Berechenbarkeitstheorie (Rekursionstheorie) H. Semantik von Programmiersprachen – räumliches Schließen K. Unifikationstheorie L. Konstruktive Mathematik F. Hardware – Spezifkation von Schaltkreisen, Chips etc. M. Komplexität logischer Probleme und Algorithmen usw. usw. . . . 144 (b < c) ∨ (d < a) ⇒ Negation äquivalent zu: (b ≥ c) ∧ (d ≥ a) Viel Redundanz! Kompakte Formulierung der negierten Bedingung: • Ende des ersten Intervalls liegt im zweiten: c ≤ b und b ≤ d • Ende des zweiten Intervalls liegt im ersten: a ≤ d und d ≤ b • Anfang des ersten Intervalls liegt im zweiten: c ≤ a und a ≤ d • Anfang des zweiten Intervalls liegt im ersten: a ≤ c und c ≤ b • Zweites Intervall enthält das erste: c ≤ a und b ≤ d • Erstes Intervall enthält das zweite: a ≤ c und d ≤ b if hBedingungi then write Kollision!“ ” Auflistung aller Überlappungsmöglichkeiten: [a, b], [c, d] . . . Zeitintervalle: von a bis b“, von c bis d“ ” ” Aufgabe: Warnung ausgegeben wenn eine Terminkollision vorliegt: 142 – (Automatische) Verfikation von Hardware – Schaltkreistheorie 141 if-, case-, while-Bedingungen: if (x = 0) ∧ (y > 1) then P1 else P2 Vertauschen von then- und else-Zweig de-Morgan-Regel: ¬(A ∧ B) = ¬A ∨ ¬B if (x 6= 0) ∨ (y ≤ 1) then P2 else P1 ⇐ Zusicherung ⇐ Nachbedingung ⇐ Vorbedingung Spezifikation von Programmeigenschaften Assertions: Diagnoseanweisungen in Programmen Pre- und Postconditions in der Programmverifikation hx = a ∧ y = b ∧ y ≥ 0i while y > 0 do [ x ← x − 1; y ← y − 1; assert(y ≥ 0);] hx = a − bi 143 natürliche Sprache“ ” Sokrates ist ein Mensch. ⇒ Sokrates ist sterblich. Alle Menschen sind sterblich. (∀x)M (x) ⊃ S(x) sp M (s) ⊃ S(s) mp S(s) Formalisierung: Festlegung der Syntax und Semantik der Logik M (s) (∀x)M (x) ⊃ S(x) S(s) (Modus ponens) M (s) Beweistheorie: Untersuchung der Schlussregeln und Beweisformen (∀x)F[x] A A ⊃ B mp sp F[t] B (Spezialisierung) Semantische Fragestellungen: Ist eine Aussage unter jeder / mancher / keiner Interpretation der nicht-logischen Symbole wahr? Welche Form haben Beispiele (Modelle) bzw. Gegenbeispiele? Folgt eine Aussage aus anderen? (2) (1) ∀x i(x) ◦ x = e ∀x e ◦ x = x ∀x∀y∀z x ◦ (y ◦ z) = (x ◦ y) ◦ z Gruppentheorie: (3) (5) ∀x x ◦ i(x) = e (6) ∀x i(i(x)) = x Immer wenn (1), (2) und (3) erfüllt sind, dann gelten auch auch (4) ∀x x ◦ e = x Diese logische Konsequenz -Behauptung ist äquivalent zu: [(1) ∧ (2) ∧ (3)] ⊃ [(4) ∧ (5) ∧ (6)] ist gültig. Analysis: f : R → R konvergiert gegen a: Für jedes positive bleibt für alle ” hinreichend großen n die Distanz zwischen f (n) und a unter .“ Formalisiert: ∀∃x0 ∀x ( > 0 ∧ x ≥ x0 ) ⊃ |f (x) − a| < B0 0 S0 0 0 C0 0 1 0 Ai 1 1 0 0 Bi 0 0 0 0 Ci−1 0 1 1 0 Si 1 0 0 0 Ci Ci Si C0 S0 = (Ai ∧ Bi ) ∨ (Ai ∧ Ci−1 ) ∨ (Bi ∧ Ci−1 ) (¬Ai ∧ Bi ∧ Ci−1 ) ∨ (Ai ∧ Bi ∧ Ci−1 ) = (Ai ∧ Bi ∧ ¬Ci−1 ) ∨ (Ai ∧ ¬Bi ∧ Ci−1 )∨ = (Ai 6≡ Bi ) 6≡ Ci−1 = A0 ∧ B0 = (¬A0 ∧ B0 ) ∨ (A0 ∧ ¬B0 ) = A0 6≡ B0 146 A0 0 1 0 1 145 0 0 1 1 Halb-/Volladdierer: S = A + B 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 • Verifikation von Eigenschaften • Umformung, Vereinfachung, Optimierung A = An · · · A0 , B = Bn · · · B0 , S = Sn · · · S0 Ci . . . Überträge 0 1 1 1 1 Problemstellungen: 1 0 1 148 • Spezifikation von Schaltkreisen, von boole-schen Funktionen 1 147 Formen und Typen der Logik • Neben der klassischen Logik sind auch verschiedenste Typen nicht-klassischer Logiken von Bedeutung: – intuitionistische Logik (konstruktive Logik) – mehrwertige Logiken, Fuzzy-Logik – Modallogiken: Temporallogiken, dynamische Logik, . . . – ... t t f t t t OR, Disjunktion f t t f t t f t t t t f NAND t f f f f f t f f t f f NOR t t f f t f t t f 6⊂ ≡ 6≡ XOR, exkl. Oder • Logik wird auf unterschiedlichen Stufen ( Ordnungen“) ” analysiert: t f f f Implikation 151 NEXOR, gdw. – Aussagenlogik (Logik 0-ter Stufe) – (Prädikaten)logik 1-ter Stufe 149 – Logiken höherer Ordnung Aussagenlogik f t ∧ ∨ ⊃ ⊂ ↑ ↓ 6⊃ t t ¬ Logische Konnektive (Junktoren, Operatoren) sind Funktionen über den Wahrheitwerten: t f f f AND, Konjunktion f Negation Logische Kalküle, Beweisprozeduren Werkzeug zum Beweis (bzw. zur Widerlegung) logischer Aussagen Keine Bezugnahme auf Bedeutung (Semantik) Nur syntaktische Manipulation von Formeln (Zeichenketten) Eigenschaften logischer Kalküle: Korrektheit: Kalkül beweist nur wahre Aussagen (widerlegt nur falsche Aussagen). Vollständigkeit: Jede wahre Aussage ist im Kalkül beweisbar (jede falsche Aussage ist widerlegbar). In dieser Vorlesung: Sequentialkalkül, Tableaux und Resolution für Aussagenlogik Tableaux und Resolution für Prädikatenlogik 150 Syntax: AV = {A, B, C, . . .} . . . aussagenlogische Variable t, f . . . aussagenlogische Konstanten Definition. Die Menge der aussagenlogischen Formeln AF ist die kleinste Menge, für die gilt (AF1) AV ⊆ AF (AF2) {t, f } ⊆ AF (AF3) ¬F ∈ AF , wenn F ∈ AF (AF4) (F ◦0 G) ∈ AF , wenn F, G ∈ AF und ◦0 ∈ {∧, ∨, ⊃, ⊂, ↑, ↓, 6⊃ , 6⊂ , 6≡ , 6≡ }. AV ∪ {t, f } . . . Atomare Formeln (Atome) 152 Semantik: INT . . . Variablenbelegungen/Interpretationen: AV → {t, f } Definition. Die Semantik aussagenlogischer Formeln ist durch die Funktion MAF : INT × AF → {t, f } festgelegt: t) = t und MAF (I, f) = f (MAF1) MAF (I, A) = I(A), wenn A ∈ AV (MAF2) MAF (I, (MAF3) MAF (I, ¬F ) = ¬MAF (I, F ) 153 (MAF4) MBA (I, (F ◦0 G)) = MBA (I, F ) ◦ MBA (I, G), wobei ◦ die zum Symbol ◦0 gehörende Funktion ist. Notationsvereinbarungen: • keine Unterstreichungen mehr F1 ∧ . . . ∧ Fn steht für steht für (F1 ∨ (. . . ∨ Fn )) (F1 ∧ (. . . ∧ Fn )) • überflüssige Klammern können weggelassen werden: F1 ∨ . . . ∨ Fn Beachte: Klammereinsparungen sind durch die Semantik gerechtfertigt: Die Funktionen ∧ und ∨ sind assoziativ. 155 Alternative Sichtweise von aussagenlogischen Formeln: [Siehe Vorlesungsskriptum] Syntax: Terme über Datentyp B = h{t, f }, {¬, ∧, ∨, ⊃, . . .}, {}, {t, f }i Dazu die Notationsvereinbarung: • Infix- statt Prefix-Notation =⇒ Semantik: MAL entspricht MT über B 154 Definition. Eine Formel F ∈ AF heißt gültig oder Tautologie, wenn MAF (I, F ) = t für alle I ∈ INT. erfüllbar, wenn MAF (I, F ) = t für ein I ∈ INT. (I heißt Modell von F .) widerlegbar, wenn MAF (I, F ) = f für ein I ∈ INT. (I heißt Gegenbeispiel für F .) unerfüllbar, wenn MAF (I, F ) = f für alle I ∈ INT. Definition. Zwei Formel F, G ∈ AF heißen äquivalent, wenn MAF (I, F ) = MAF (I, G) für alle I ∈ INT. Wir schreiben dafür auch: F = G. Satz. F und G sind äquivalent genau dann, wenn F ≡ G gültig ist. 156 Beispiel. A ⊃ (B ⊃ A) ist gültig und daher auch erfüllbar: A f B t t t t t f f f f A B t f C f f (B ∧ C) f f t f f f F f f G A B t ¬B t f t t f t t t t f f t t f f t t t f t f t f t f f f t f t t t t t t t t t t t f t t t t t f t t t t t f (A ∨ B) (A ∨ C) f t f t G f f f t F t t t Beispiel. (Distributivgesetz ) A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C). | {z } | {z } f t (B ⊃ A) A ⊃ (B ⊃ A) t f f f f (A ∧ ¬B) ∨ B ist erfüllbar, aber nicht gültig, also auch widerlegbar: t t f (A ∧ ¬B) (A ∧ ¬B) ∨ B f t A∧B = (A ↑ A) ↑ (B ↑ B) = (A ↑ B) ↑ (A ↑ B) = ¬(¬A ∨ ¬B) A↓B A↑B = ¬(A ∨ B) = ¬A ∨ ¬B h F · · · Fn 1 A1 · · · An h i . . . Substitution, die alle Ai durch Fi ersetzt. F h X∨¬Y ¬X∧Y A B i 160 Beispiel. F = (A ∧ (A ⊃ B)) ⊃ B ist gültig, daher auch = (X∨¬Y ) ∧ (X∨¬Y ) ⊃ (¬X∧Y ) ⊃ (¬X∧Y ) Das heißt: Formeln können als Schemata aufgefasst werden, wobei Variablen als Platzhalter für Formeln dienen. Satz. Gilt F ≡ G, dann auch F σ ≡ Gσ. Satz. Ist F eine Tautologie, dann auch F σ. i F1 · · · Fn . . . Formel, die aus F entsteht, indem alle A Fσ = F A i 1 · · · An durch Fi ersetzt werden. σ= Formeln und Formelschemata 158 t 157 Eine Menge von Operatoren heißt funktional vollständig, wenn alle Funktionen durch sie ausgedrückt werden können. A∨B Beispiel. {↑} ist funktional vollständig. Etwa: = A ↑ (B ↑ B) ¬A = A ↑ A A⊃B A∧B = ¬A ∨ B Beispiel. {¬, ∨} ist funktional vollständig. Etwa: A⊃B 159 h A⊃B B B C Bσ2 i und σ2 = F σ2 h ¬A∨B B B C Satz. Seien σ1 , σ2 Substitutionen, sodass Aσ1 ≡ Aσ2 für alle Variablen A gilt. Dann gilt F σ1 ≡ F σ2 für alle Formeln F . Bσ1 (A ⊃ B) ≡ (¬A ∨ B) | {z } | {z } Beispiel. Sei F = (A ∧ B) ⊃ C, σ1 = Da gilt, erhalten wir F σ1 (A ∧ (A⊃B)) ⊃ B ≡ (A ∧ (¬A∨B)) ⊃ B {z } | {z } | 161 i . Logische Konsequenz und Implikation Definition. Formel G ist eine logische Konsequenz der Formeln F1 , . . . , Fn , geschrieben F1 , . . . , Fn |= G, wenn für alle I gilt: Wenn MAF (I, Fi ) = t für 1 ≤ i ≤ n, dann gilt MAF (I, G) = t. Für n = 0 ist |= G gleichbedeutend mit G ist gültig“. ” Satz. (Deduktionstheorem) F1 , . . . , Fn |= G gdw. F1 , . . . , Fn−1 |= (Fn ⊃ G). Folgerung. F1 , . . . , Fn |= G gilt gdw. F1 ⊃ (F2 ⊃ · · · (Fn ⊃ G) · · ·) gültig ist gdw. (F1 ∧ · · · ∧ Fn ) ⊃ G gültig ist. Beispiel. B ist eine logische Konsequenz aus A und A ⊃ B, d.h., es gilt A, A ⊃ B |= B. Die Formel A ∧ (A⊃B) ⊃ B ist daher eine Tautologie. 162 A 6⊃ B = A ∧ ¬B Satz. Zu jeder aussagenlogischen Formel gibt es eine äquivalente in DNF bzw. in KNF. A ⊃ B = ¬A ∨ B A 6⊂ B = ¬A ∧ B Normalformen A ⊂ B = A ∨ ¬B ¬(A ∨ B) = ¬A ∧ ¬B Schritt 2: Schiebe Negationen vor die Variablen. ¬(A ∧ B) = ¬A ∨ ¬B A∨t=t A ∨ f = A ¬t = f Schritt 3: Eliminiere die Konstanten t und f . A∧f =f 164 ¬f = t Schritt 4: Forme um in DNF/KNF mittels Distributivgesetz. A∧t=A ¬¬A = A (A ≡ B) = (A ∧ B) ∨ (¬A ∧ ¬B) (A 6≡ B) = (¬A ∧ B) ∨ (A ∧ ¬B) A ↓ B = ¬A ∧ ¬B Syntaktische (algebraische) Methode: Schritt 1: Ersetze alle Operatoren durch ∧, ∨ und ¬. ∨ ··· ∨ A ↑ B = ¬A ∨ ¬B A, ¬A . . . Literal“ falls A ∈ IVS ” Seien Li,j Literale. Disjunktive Normalform (DNF): ∧ ··· ∧ (Lm,1 Lm,nm ) (L1,1 ∧ · · · ∧ L1,n1 ) ∨ · · · ∨ (Lm,1 ∧ · · · ∧ Lm,nm ) ∨ ···∨ L1,n1 ) Konjunktive Normalform (KNF, CNF): (L1,1 implizite Berücksichtigung von Assoz., Kommut., Idempotenz ⇒ Mengenschreibweise: {{L1,1 , . . ., L1,n1 }, . . ., {Lm,1 , . . ., Lm,nm }} (Li,1 ∨ · · · ∨ Li,ni ) heißt auch Klausel (engl. clause), eine KNF heißt auch Klauselnormalform (clause normal form). 163 Beispiel. (A ↑ (B ∨ C)) ⊃ ¬D Schritt 1: ¬(¬A ∨ ¬(B ∨ C)) ∨ ¬D Schritt 2: (A ∧ (B ∨ C)) ∨ ¬D Schritt 3: (A ∧ (B ∨ C)) ∨ ¬D (A ∧ B) ∨ (A ∧ C) ∨ ¬D Schritt 4: Ausdistribuieren DNF: (A ∨ ¬D) ∧ (B ∨ C ∨ ¬D) {{A, ¬D}, {B, C, ¬D}} I∈INT,MAF (I,F )=f 165 KNF: KNF(F ) = _ A in F LA LA = A falls I(A) = f ¬A falls I(A) = t enthält ein Literal LA für jede Variable A in Formel F : KNF: enthält Disjunktion DI für jedes I mit MAF (I, F ) = f : ^ DI DI DI = Es gilt: DI ist falsch nur in I, und wahr sonst, d.h.: MAF (I, DI ) = f und MAF (I 0 , DI ) = t für I 0 6= I . KNF(F ) ist falsch in I gdw. KI in KNF(F ) vorkommt. Daher: MAF (I, KNF(F )) = f gdw. MAF (I, F ) = f . KNF(F ) ist die eindeutig bestimmte vollständige KNF von F : jede Disjunktion DI enthält alle Variablen. 167 Semantische Methode F ∈ AF . . . aussagenlogische Formel DNF(F ) = ^ A in F LA LA = A falls I(A) = t ¬A falls I(A) = f enthält ein Literal LA für jede Variable A in Formel F : I∈INT,MAF (I,F )=t DNF: enthält Konjunktion KI für jedes I mit MAF (I, F ) = t: _ KI KI KI = Es gilt: KI ist wahr nur in I, und falsch sonst, d.h.: MAF (I, KI ) = t und MAF (I 0 , KI ) = f für I 0 6= I . DNF(F ) ist wahr in I gdw. KI in DNF(F ) vorkommt. Daher: MAF (I, DNF(F )) = t gdw. MAF (I, F ) = t . f f t t t A↑(B∨C) t t t t t f f f f f f t t t ¬D t t t t t t f f t f t t t t F A ∨ ¬B ∨ ¬C ∨ ¬D ¬A ∧ B ∧ ¬C ∧ ¬D KI bzw. DI DNF(F ) ist die eindeutig bestimmte vollständige DNF von F : jede Konjunktion KI enthält alle Variablen. 166 f f f f t f f f t f t f t f t t t f t f t f Beispiel. F = (A ↑ (B ∨ C)) ⊃ ¬D f tf f t t t t t f f t t t t f f A B C D B∨C f f f f f t t t t t t f t (12 Konjunktionen) f t t t t f f f f t t t f t f t f t f t f t t t DNF(F ) = · · · ∨ (¬A ∧ B ∧ ¬C ∧ ¬D) ∨ · · · (4 Disjunktionen) t f f t t f f t t f f t t t t f t t t KNF(F ) = · · · ∧ (A ∨ ¬B ∨ ¬C ∨ ¬D) ∧ · · · 168 Eigenschaften von DNFs und KNFs Der Sequentialkalkül Vater“ aller modernen Logik-Kalküle ” G. Gentzen, 1935: Untersuchungen über das logische Schließen korrekt und vollständig für Aussagen- und Prädikatenlogik F, G . . . endliche Teilmengen von AF • Eine DNF ist unerfüllbar wenn jede Konjunktion eine Variable A enthält, die sowohl als A als auch als ¬A vorkommt. • Eine KNF ist gültig wenn jede Disjunktion eine Variable A enthält, die sowohl als A als auch als ¬A vorkommt. Definition. (Verallgemeinerte Konsequenzrelation) Wir schreiben F |= G, wenn für alle Interpretationen I gilt: Fi = V W {F1 , . . . , Fn } {F1 , . . . , Fn } X ` G1 F2 ` G2 F3 ` G3 F `G F 0 ` G0 Schreibweise: F1 X 172 dann (F3 , G3 ) ∈ `. (X) Wenn (F1 , G1 ) ∈ ` und (F2 , G2 ) ∈ `, dann (F 0 , G 0 ) ∈ `. (X) Wenn (F, G) ∈ `, F ` G . . . Sequent“ ” Motivation: syntaktische Ableitung von F ` G statt semantischem Beweis von F |= G Basisfälle der induktiven Definition: Axiome“ ” 2 Abschlussbedingungen pro Operator Sequentialkalkül: induktive Definition einer binären Relation ` mit der Eigenschaft ` = |= 170 MAF (I, F ) = f für mindestens ein F ∈ F oder MAF (I, G) = t für mindestens ein G ∈ G. Gleichbedeutend mit: Wenn MAF (I, F ) = t für alle F ∈ F, dann gilt MAF (I, G) = t für mindestens ein G ∈ G. • Die Länge einer DNF/KNF kann exponentiell größer sein als die ursprüngliche Formel. Ursache bei algebraischer Methode: Elimination von ≡ und 6≡, Anwenden der Distributivität Ursache bei semantischer Methode: Anzahl der möglichen Interpretationen (vgl. Wahrheitstafel) 169 {F } |= {} . . . F ist unerfüllbar. {} |= {G} . . . G ist gültig (Tautologie). V W Satz. F |= G gilt gdw. ( F) ⊃ ( G) gültig ist. {} = f , V . V V V {} = t, ({F } ∪ F) = F ∧ F . W W ({F } ∪ F) = F ∨ F W F1 ∧ . . . ∧ Fn = W i∈{1,...,n} Fi = i∈{1,...,n} F1 ∨ . . . ∨ Fn = 171 ⊃-l ∨-l F ` G, A, B ∨-r ⊃-r F ` G, B F ` G, A ∨ B F ` G, A F ` G, A ∧ B F, A ` G, B ∧-r [d.h.: F 0 ` G 0 ist Axiom, falls F 0 ∩ G 0 6= {}] Sequentialkalkül für die Aussagenlogik ∧-l F, B ` G Axiome: F, A ` G, A F, A ` G F, A ∨ B ` G F, A, B ` G F, B ` G F, A ∧ B ` G F ` G, A F ` G, A ⊃ B ¬-r F, A ⊃ B ` G ¬-l F ` G, ¬A F, A ` G F, ¬A ` G F ` G, A 173 Beobachtung: Jede Ableitung ist ein Baum von Sequenten, dessen Blätter Axiome sind. Die anderen Knoten (d.h. Sequente) des Baums erfüllen folgende Bedingung: Die (ein oder zwei) Kindknoten zu jedem Elternknoten sind die Prämissen einer Regelanwendung, die zum Elternknoten als Konklusion führt. 175 Axiom A, B ` B Axiom Axiom ⊃-l Axiom B ` A, B Axiom ∨-l ∧-l ¬-l (A ∨ B) ∧ ¬A ` B A ∨ B, ¬A ` B A ∨ B ` A, B A ` A, B ⊃-r ∧-l ` ((A ⊃ B) ∧ A) ⊃ B (A ⊃ B) ∧ A ` B A ⊃ B, A ` B A ` A, B Beispiel. Ableitung von ` ((A ⊃ B) ∧ A) ⊃ B ¬-l B, ¬A ` B ∧-l ∨-l Beispiel. Ableitung von (A ∨ B) ∧ ¬A ` B Axiom A ` A, B A, ¬A ` B A ∨ B, ¬A ` B (A ∨ B) ∧ ¬A ` B 174 ∨-r ¬-r Beispiel. Ableitung von ` (A ⊃ (B ⊃ C)) ∨ ¬(A ⊃ (B ⊃ C)) Axiom A ⊃ (B ⊃ C) ` A ⊃ (B ⊃ C) ` (A ⊃ (B ⊃ C)), ¬(A ⊃ (B ⊃ C)) ` (A ⊃ (B ⊃ C)) ∨ ¬(A ⊃ (B ⊃ C)) Axiom kein Axiom! ∧-r ¬-r A, C, B ` A A, C, B ` A ⊃ B, A, C, B ` A ⊃ B, A, C ` ¬B ⊃-l Beispiel. Ableitungsversuch für A ⊃ B, A, C ` C ∧ ¬B Axiom A ⊃ B, A, C ` C A ⊃ B, A, C ` C ∧ ¬B 176 Satz. Der Sequentialkalkül ist korrekt: aus F ` G folgt F |= G. Beweis. Wir zeigen: 1. Basisfall: Aus F ∩ G = 6 {} folgt F |= G. F 0 `G 0 F `G : aus F 0 |=G 0 folgt F |=G. Sei H ∈ F ∩ G. Wenn MAF (I, F ) = t für alle F ∈ F, dann MAF (I, H) = t. Da H ∈ G, gilt MAF (I, G) = t für mindestens ein G ∈ G. D.h.: es gilt F |= G. 2. Für jede Regel F `G, A, B ∨-r : F `G, A∨B MAF (I, F ) = t für alle F ∈ F ⇒ MAF (I, G) = t für ein G ∈ G ∪ {A, B} (da F |=G, A, B) ⇒ MAF (I, G) = t für ein G ∈ G ∪ {A∨B} (Def. von ∨) D.h.: aus F |= G, A, B folgt F |= G, A∨B. Die Korrektheit der Regeln ∧-l, ⊃-r, ¬-l und ¬-r folgt analog. 177 Beobachtung: F ` G ist sicher nicht ableitbar, wenn F und G nur atomare Formeln enthalten und F ∩ G = {} ( Anti-Axiom“). ” Definition: Ein Ableitungsversuch von F ` G ist ein Baum von Sequenten mit Wurzel F ` G. Die Blätter sind Axiome oder Anti-Axiome. Die anderen Sequente des Baums sind jeweils Prämissen zu einer Regelanwendung, deren Konklusion der entsprechende Elternknoten ist. M.a.W.: Ein Ableitungsversuch ist wie eine Ableitung Definition: Endet ein Zweig eines Ableitungsversuchs von F ` G mit einem Anti-Axiom, dann sagen wir: Der Ableitungsversuch scheitert. 179 3. Für jede Regel F 0 `G 0 F 00 `G 00 F `G : aus F 0 |=G 0 , F 00 |=G 00 folgt F |=G. F, A|=G und F, B|=G legt folgende Fallunterscheidung nahe: F , A`G F , B`G ∨-l : F , A∨B`G Fall 1: MAF (I, F ) = f für ein F ∈ F F, A∨B |= G folgt unmittelbar. Fall 2: MAF (I, G) = t für ein G ∈ G F, A∨B |= G folgt unmittelbar. Fall 3: MAF (I, A) = f und MAF (I, B) = f . Aus der Definition von ∨ folgt MAF (I, A ∨ B) = f . Daher auch in diesem Fall: F, A∨B |= G. Die Korrektheit der Regeln ∧-r und ⊃-l folgt analog. Aus dem Fundamentalsatz der Induktion folgt damit ` ⊆ |=. 178 Satz. Scheitert ein Ableitungsversuch von F ` G, dann gilt F 6|= G. Beweis. F 6|= G bedeutet: Es gibt eine Interpretation I, sodass MAF (I, F ) = t für alle F ∈ F und MAF (I, G) = f für alle G ∈ G. F 0 `G 0 F `G : Aus F 0 6|=G 0 folgt F 6|=G. 1. Basisfall: Sei F ` G Anti-Axiom. Wir können I definieren als: I(F ) = t für alle F ∈ F und I(G) = f für alle G ∈ G. 2. Für jede Regel F `G, A, B ∨-r : F `G, A∨B F 6|= G, A, B ⇒ es gibt I, sodass MAF (I, F ) = t für alle F ∈ F und MAF (I, G) = f für alle G ∈ G ∪ {A, B} ⇒ es gibt I, sodass MAF (I, F ) = t für alle F ∈ F und MAF (I, G) = f für alle G ∈ G ∪ {A∨B} ⇒ F 6|= G, A∨B Analoges gilt für die Regeln ∧-l, ⊃-r, ¬-l und ¬-r. 180 3. Für jede Regel F 0 `G 0 F 00 `G 00 F `G : Wenn F 0 6|=G 0 oder F 00 6|=G 00 dann auch F 6|=G. F , A`G F , B`G ∨-l : F , A∨B`G O.B.d.A.: F, A6|=G (Fall F, B6|=G analog). ⇒ es gibt I, sodass MAF (I, F ) = t für alle F ∈ F ∪ {A} und MAF (I, G) = f für alle G ∈ G ⇒ es gibt I, sodass MAF (I, F ) = t für alle F ∈ F ∪ {A∨B} und MAF (I, G) = f für alle G ∈ G ⇒ F, A∨B 6|= G Analoges gilt für die Regeln ∧-r und ⊃-l. 181 Eigenschaften des Sequentialkalküls: • ‘Schlussweisenkalkül’: Konsequenzbehauptungen als Objekte. Folgerung. Der (aussagenlogische) Sequentialkalkül ist vollständig: Aus F |= G folgt F ` G. Beweis. Aus dem Satz folgt, dass es mindestens einen Ableitungsversuch von F ` G gibt, der nicht scheitert, falls F |= G. Da jeder Ableitungsversuch, der nicht scheitert, zu einer Ableitung führt, folgt F ` G. Folgerung. Endet ein Ableitungszweig eines Ableitungsversuches von F ` G mit einem Anti-Axiom, dann gilt F 6` G. Beweis. Endet ein Ableitungszweig von F ` G mit einem Anti-Axiom, gilt F 6|= G. Wegen der Korrektheit des Sequentialkalküls folgt daraus F 6` G. Folgerung. ` = |= Beweis. Aus Korrektheit (` ⊆ |=) und Vollständigkeit (` ⊇ |=) folgt ` = |=. 182 Folgerung. {} ` F gilt genau dann, wenn F Tautologie ist. Hilbert-Typ Kalkül Axiome: 1. (A ⊃ (B ⊃ A)) 2. ((A ⊃ (B ⊃ C)) ⊃ ((A ⊃ B) ⊃ (A ⊃ C))) • Einfache Axiome, viele Regeln (den Wahrheitstafeln folgend). • Korrektheit: Aus F ` G folgt F |= G. B A A⊃B 184 (Modus ponens) 9. ((¬A ⊃ ¬B) ⊃ ((¬A ⊃ B) ⊃ A)) 8. ((A ∧ B) ⊃ B) 7. ((A ∧ B) ⊃ A) 6. (A ⊃ (B ⊃ (A ∧ B))) 5. ((A ⊃ C) ⊃ ((B ⊃ C) ⊃ ((A ∨ B) ⊃ C))) 4. (B ⊃ (A ∨ B)) 3. (A ⊃ (A ∨ B)) Regel: • Vollständigkeit: Aus F |= G folgt F ` G. • Don’t-care-Indeterminismus: Wenn F ` G gilt, führt jede Zerlegung zu Axiomen. • Analytizität: Die Prämissen bestehen aus Bestandteilen der Konklusion. analytisch: nicht analytisch (wegen X): F, A, B ` G F ` G, X X, F ` G Schnitt F, A ∧ B ` G F `G Analytizität ist wichtig für automatische Beweissuche. • Einfache Formeln besitzen einfache Beweise. 183 A⊃((A⊃A)⊃A) Ax. 1: B7→(A⊃A) (A⊃((A⊃A)⊃A))⊃((A⊃(A⊃A))⊃(A⊃A)) (A⊃(A⊃A))⊃(A⊃A) Axiom 2: B7→(A⊃A), C7→A Beispiel. Ableitung von A ⊃ A A⊃(A⊃A) Ax. 1: B7→A A⊃A Eigenschaften des Hilbert-Typ Kalküls: • viele Axiome, eine einzige Regel • Korrektheit: jede ableitbare Formel ist gültig. • Vollständigkeit: jede gültige Formel ist ableitbar. • Nicht analytisch wegen Formel A in Modus ponens, schwer automatisierbar. • Komplizierte Beweise auch von einfachen Formeln. 185 Tableau: Baum mit Wahrheitswert-Formel-Paaren als Knoten @ @ @ @ =⇒ @ @ @ @ =⇒ @ @ w:F σ @ @ w:F σ w:F σ @ @ @ @ @ @ @ @ w1 :F1 σ w2 :F2 σ @ @ w:F σ Tableau-Expansionsregel: legt fest, wie ein Baum erweitert werden kann. Zwei Typen: Und-Regeln, Oder-Regeln. Und-Regeln: w:F w1 : F1 w2 : F2 Oder-Regeln: w2 : F2 w:F w1 : F1 @ @ @ @ w1 :F1 σ w2 :F2 σ w, w1 , w2 . . . Wahrheitswerte, F, F1 , F2 . . . Formeln, σ. . . Substitution 187 Semantische Tableaux Indirekter Beweis von F : die Annahme, dass F widerlegbar ist (MAF (I, F ) = f für ein I), wird auf einen Widerspruch geführt. Annahme Zerlegung Zerlegung Zerlegung Zerlegung (1) (1) (2) (2) t:A∧B t:A t : ¬A f :B f : ¬A f :A t:B t:A f :A f :A∧B Zerlegung von (4) Widerspruch zu (5) bzw. (3) von von von von Untereinander: Direkte Folgefälle (semantisches Und). Nebeneinander: Fallunterscheidung (semantisches Oder). (7) t : B × t:B t:B 186 f : ((A ⊃ B) ∧ A) ⊃ B t : (A ⊃ B) ∧ A f :B t:A⊃B t:A Beispiel. Tableau für ((A ⊃ B) ∧ A) ⊃ B (1) (2) (3) (4) (5) (6) f : A × f :A t:A⊃B t:A t:A∨B Tableau-Expansionsregeln f :A∨B f :A f :B f :A⊃B t:A f :B Für jeden binären Operator eine Und-Regel und eine Oder-Regel (plus zwei simple Regeln für den unären Negations-Operator) Die Regeln entsprechen den Regeln des Sequentialkalküls bzw. den Wahrheitstafeln 188 (2) (1) f :B t : (A ∨ B) ∧ ¬A f : ((A ∨ B) ∧ ¬A) ⊃ B Zerlegung von 2 Zerlegung von 1 Zerlegung von 1 Beispiel. Geschlossenes Tableau für ((A ∨ B) ∧ ¬A) ⊃ B Ein Tableau-Ast heißt geschlossen, wenn auf ihm sowohl t:G als auch f :G für irgendeine Formel G vorkommt. (3) t:A∨B f : ((A ∨ B) ∧ A) ⊃ B Zerlegung von 1 t:A Zerl. v. 5 Zerl. v. 4 × (Widerspruch: 7/3) Zerlegung von 4 Zerlegung von 2 (6) f :A t : ¬A (8) × (Widerspruch: 6/8) 192 • Einfache Formeln besitzen einfache Beweise. • Analytizität: die Expansionsregeln fügen nur Bestandteile der ursprünglichen Formel hinzu. • Don’t-care-Indeterminismus: Ist eine Formel gültig, liefert jede Folge von Expansionsschritten irgendwann ein geschlossenes Tableaux, wobei keine Formel mehr als einmal pro Ast expandiert werden muss. • Vollständigkeit: Ist eine Formel gültig, so besitzt sie ein geschlossenes Tableau. • Korrektheit: Besitzt eine Formel ein geschlossenes Tableau, ist sie gültig. Eigenschaften des Tableau-Kalküls: 190 (5) Annahme Ein Tableau heißt geschlossen, wenn alle Äste geschlossen sind. (4) (1) t : (A ∨ B) ∧ A Zerlegung von 1 (7) t : B Ein Tableau-Beweis einer Formel F ist ein geschlossenes Tableau mit f :F an der Wurzel. Satz. Eine Formel F ist gültig genau dann, wenn es einen Tableau-Beweis für sie gibt. Ein Tableau-Ast der nicht geschlossen werden kann spezifiziert ein Gegenbeispiel für die Formel an der Wurzel. 189 Beispiel. Tableau für ((A ∨ B) ∧ A) ⊃ B (2) f :B Zerlegung von 2 Annahme (3) t:A∨B Zerlegung von 4 (4) (7) t : B Zerlegung von 2 Zerl. v. 4 t:A t:A × (5) (6) Ast bleibt offen! ⇒ I mit I(A) = t und I(B) = f ist ein Gegenbeispiel zu ((A ∨ B) ∧ A) ⊃ B Bzw.: für die angegebene Interpretation I gilt: MAF (I, ((A ∨ B) ∧ A) ⊃ B) = f 191 Resolution Indirekter Beweis der Gültigkeit einer Formel (wie bei Tableaux): Gültigkeit von F wird gezeigt durch Widerlegung von ¬F , d.h. dem Nachweis der Unerfüllbarkeit von ¬F . Resolutionsableitungen beziehen sich auf Klauselmengen (KNF). Daher: 2 Stufen 1. Transformiere ¬F in eine äquivalente Klauselmenge cl(F ), d.h. berechne eine konjunktive Normalform (Klauselform) von ¬F . 2. Wende die Resolutionsregel an um schrittweise neue Klauseln abzuleiten. Wenn die leere Klausel ableitbar ist, so haben wir einen Widerspruch gefunden. Hinweis zur Klauselformberechnung Meist interessiert man sich für den Nachweis von Behauptungen der Form F1 , . . . , Fn |= G cl(Fi ) Wegen des Deduktionstheorems ist dies gleichbedeutend mit der Gültigkeit der Formel (F1 ∧ . . . ∧ Fn ) ⊃ G bzw. der Unerfüllbarkeit der Formel ¬((F1 ∧ . . . ∧ Fn ) ⊃ G) = ¬(¬(F1 ∧ . . . ∧ Fn ) ∨ G) S i∈{1,...,n} = ¬¬(F1 ∧ . . . ∧ Fn ) ∧ ¬G = F1 ∧ . . . ∧ Fn ∧ ¬G Daher ist die relevante Klauselmenge cl(¬G) ∪ Resolutionsableitung 194 Die Resolutionsregel 193 Es seien C und D Klauseln, die duale Literale enthalten; . . d.h. C = C 0 ∪ {A} und D = {¬A} ∪ D 0 K1 , . . . , Km 196 • K` ist eine Resolvent von Ki und Kj mit i, j < `. • entweder K` ∈ Π, sodass für alle 1 ≤ ` ≤ m: Sei Π eine Klauselmenge. Eine (Resolutions-)Ableitung von Km aus Π ist eine Folge von Klauseln . Die Resolutionsregel zur Ableitung von neuen Klauseln lautet: . C 0 ∪ {A} {¬A} ∪ D 0 C 0 ∪ D0 C 0 ∪ D 0 heißt Resolvente der (Eltern-)Klauseln C und D. A nennt man auch das resolvierte Atom. 195 Beispiel Die Folge 1 2 3 4 5 6 7 }| { z }| { z }| { z }| { z }| { z }| { z}|{ z {A, B, ¬C}, {¬B, ¬C}, {A, ¬C}, {¬A}, {¬C}, {C, A}, {C} ist eine Ableitung von {C} aus Π = {A, B, ¬C}, {¬B, ¬C}, {¬A}, {A, C}, {A, D} Begründung: • 1, 2, 4, 6 ∈ Π 197 • 3 ist Resolvente von 1 und 2 5 ist Resolvente von 3 und 4 7 ist Resolvente von 4 und 6 Beweis von (a): . . Es genügt zu zeigen, dass die Resolutionsregel korrekt ist: D.h., jedes Modell der Klauseln C und D ist auch ein Modell ihrer Resolventen. Es seien C = C 0 ∪ {A} und D = D 0 ∪ {¬A} in I wahr. Zu zeigen ist: C 0 ∪ D 0 ist ebenfalls in I wahr. . 1. I(A) = t: Laut Voraussetzung MAF (I, D) = MAF (I, D 0 ∪ {¬A}) = MAF (I, D 0 ) ∨ MAF (I, ¬A) = t. Somit wegen MAF (I, ¬A) = f : MAF (I, D 0 ) = t. Daher: MAF (I, C 0 ∪ D 0 ) = MAF (I, C 0 ) ∨ MAF (I, D 0 ) = MAF (I, C 0 ) ∨ t = t, d.h., die Resolvente ist wahr in I. . 2. I(A) = f : Laut Voraussetzung MAF (I, C) = MAF (I, C 0 ∪ {A}) = (MAF (I, C 0 ) ∨ MAF (I, A)) = t. Somit wegen MAF (I, A) = f : MAF (I, C 0 ) = t. Daher: MAF (I, C 0 ∪ D 0 ) = MAF (I, C 0 ) ∨ MAF (I, D 0 ) = t ∨ MAF (I, D 0 ) = t. 199 Satz (a) Resolution ist korrekt: Ist eine Klausel D aus Π ableitbar, dann Π |= D. (b) Resolution ist vollständig: Wenn Π |= D, dann ist D entweder eine Tautologie oder es ist ein D 0 aus Π ableitbar, mit D 0 ⊆ D. 198 (c) Es ist in endlich vielen Schritten entscheidbar, ob eine Klausel D aus Π ableitbar ist oder nicht. Beweis von (c): Es gibt nur endliche viele verschiedene Variablensymbole in Π. Es gibt nur endlich viele verschiedene Klauseln, die man aus diesen Variablensymbolen bilden kann. Resolution führt keine neuen Variablensymbole ein. Daher sind aus Π nur endlich viele verschiedene Klauseln ableitbar. Diese endliche Menge R∗ (Π) ableitbarer Klauseln ist effektiv herstellbar, da es auch nur endlich viele Ableitungen ohne Wiederholung von Klauseln geben kann. Es bleibt nur nachzuprüfen, ob D Element von R∗ (Π) ist. 200 Widerlegungsvollständigkeit Eine Ableitung der leeren Klausel {} aus Π heißt Resolutionswiderlegung von Π. Folgerung aus dem Satz: Π ist unerfüllbar genau dann, wenn es eine Resolutionswiderlegung von Π gibt. Beweis: 1. Die leere Klausel ist unerfüllbar. Daher folgt aus der Korrektheit: Π hat ebenfalls kein Modell. 2. Wenn Π unerfüllbar ist, so ist jede Klausel eine Konsequenz von Π, insbesonders auch {}. Da {} keine Tautologie ist und auch keine Teilmengen besitzt, folgt aus der Vollständigkeit, dass {} aus Π ableitbar ist. 201 Wir bezeichnen die Klauseln in Π: {1.{A, B, D}, 2.{¬B, C}, 3.{¬A, B}, 4.{¬C}, 5.{¬D}} und erhalten folgende Resolutionswiderlegung: 3. {¬A, B} ∈ Π 2. {¬B, C} ∈ Π 1. {A, B, D} ∈ Π 9. {} aus 8, 5 8. {D} aus 6, 7 7. {¬B} aus 2, 4 6. {B, D} aus 1, 3 5. {¬D} ∈ Π 4. {¬C} ∈ Π 203 Einfaches Beispiel zum Resolutionskalkül Zeigen Sie, dass A ∨ B ∨ D, B ⊃ C, A ⊃ B |= C ∨ D. = cl(A ∨ B ∨ D) ∪ cl(B ⊃ C) ∪ cl(A ⊃ B) ∪ cl(¬(C ∨ D)) Es ist die Unerfüllbarkeit folgender Klauselmenge zu zeigen: K {¬D} = {{A, B, D}, {¬B, C}, {¬A, B}, {¬C}, {¬D}} {} {¬B, C} {¬C} {¬B} Resolutionswiderlegung in Baumform: {A, B, D} {¬A, B} {B, D} {D} 202 The Winds and the Windows Puzzle 1. There is always sunshine when the wind is in the East. 2. When it is cold and foggy, my neighbor practices the flute. 3. When my fire smokes, I set the door open. 4. When it is cold and I feel rheumatic, I light my fire. 5. When the wind is in the East and comes in gusts, my fire smokes. 6. When I keep the door open, I am free from headache. 7. Even when the sun is shining and it is not cold, I keep my window shut if it is foggy. 8. When the wind does not come in gusts, and when I have a fire and keep the door shut, I do not feel rheumatic. 9. Sunshine always brings on fog. 10. When my neighbor practices the flute, I shut the door, even if I have no headache. 11. When there is a fog and the wind is in the East, I feel rheumatic. Show that when the wind is in the East, I keep my windows shut. 204 Wir formalisieren die Aussagen unter Verwendung folgender Abkürzungen: R . . . Rauch . . . Feuer F Rh . . . Rheuma . . . Sonnenschein Fl . . . Flötenspiel S . . . Kälte W . . . Windstöße K . . . Nebel Z . . . Fenster zu . . . Tür offen N . . . Ostwind T O Kw . . . Kopfweh 205 19. {¬K, ¬T } 18. {¬K, ¬R} 17. {¬K, Fl } 16. {¬Fl , ¬R} 15. {N } 14. {S} 5, 12 10, 17 16, 17 2, 15 3, 10 9, 14 1, 12 33. {W } 32. {T, W } 31. {¬F, T, W } 30. {¬T } 29. {¬W } 28. {F } 27. {K} 26. {K, Z} 29, 33 30, 32 28, 31 8, 23 19, 27 21, 27 24, 27 13, 26 15, 25 25. {¬N, K, Z} 7, 14 aus Klauseln 21. {¬K, ¬W } 18, 20 20. {¬W, R} 11, 12 34. {} Resolvente 22. {¬N, Rh} 15, 22 aus Klauseln 23. {Rh} 4, 23 Resolvente 24. {¬K, F } 207 Aussage 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Behauptung Behauptung negiert 12. 13. 206 Klausel {¬O, S} {¬K, ¬N, Fl} {¬R, T } {¬K, ¬Rh, F } {¬O, ¬W, R} {¬T, ¬Kw } {¬S, K, ¬N, Z} {W, ¬F, T, ¬Rh} {¬S, N } {¬Fl, ¬T } {¬N, ¬O, Rh} {O} {¬Z} Redundanzelimination aus Formel O⊃S (K ∧ N ) ⊃ Fl R⊃T (K ∧ Rh) ⊃ F (O ∧ W ) ⊃ R T ⊃ ¬Kw (S ∧ ¬K ∧ N ⊃ Z (¬W ∧ F ∧ ¬T ) ⊃ ¬Rh S⊃N Fl ⊃ ¬T (N ∧ O) ⊃ Rh O⊃Z ¬(O ⊃ Z) Subsumtion: Wenn C ⊆ D sagt man: C subsumiert D. Es gilt dann offensichtlich C |= D. Jede Klausel einer vollständigen Generation von Resolventen die von einer Klausel dieser Generation subsumiert wird, kann eliminiert werden. . . . C 0 ∪ {A} {¬A, B, ¬B} ∪ D 0 C 0 ∪ {B, ¬B} ∪D 0 . Tautologieelimination: C ist eine Tautologie gdw. {A, ¬A} ⊆ C für irgendein A. Tautologien können immer eliminiert werden, da aus Tautologien nur wieder Tautologien bzw. von Elternklauseln subsumierte Klauseln ableitbar sind: C 0 ∪ {A} {¬A, A} ∪ D 0 C 0 ∪ {A} ∪ D 0 208 Heuristiken und Strategien {A} {¬A} ∪ D 0 D0 . Klauseln mit nur einem Literal nennt man Einerklauseln oder Unit-Klauseln. . C 0 ∪ {A} {¬A} C0 Resolution mit einer Einerklausel (Unit-Resolution) garantiert also eine kleinere Klausel als Resolvente. Ausserdem subsumiert jede Unit-Resolvente eine Elternklausel: Diese Elternklausel wird redundant. Generell ist ‘Bevorzugung von kürzeren Klauseln’ eine gute Heuristik. 209 (prädikatenlogische Formeln) Prädikatenlogik (klassische Logik erster Stufe) Syntax Gegeben: Signatur Σ = hFS , PS , KS i PF Σ ist die kleinste Menge, für die gilt: (PF1) p0 (t1 , . . . , tn ) ∈ PF Σ (Atomformel) wenn p0 ∈ PS n und t1 , . . . , tn ∈ TΣ (PF2) ¬F ∈ PF Σ wenn F ∈ PF Σ (PF3) (F ∧ G) ∈ PF Σ wenn F, G ∈ PF Σ (PF4) (F ∨ G) ∈ PF Σ wenn F, G ∈ PF Σ (PF5) (F ⊃ G) ∈ PF Σ wenn F, G ∈ PF Σ (PF6) (∀v)F ∈ PF Σ wenn v ∈ IVS und F ∈ PF Σ (PF7) (∃v)F ∈ PF Σ wenn v ∈ IVS und F ∈ PF Σ 211 Eigenschaften des Resolutions-Kalküls: • Basisobjekte: Klauseln • Zweistufiges Verfahren: KNF-Transformation + Resolution • Indirektes Verfahren: Suche nach Widerlegung • Korrektheit: Jede aus Π abgeleite Klausel ist Konsequenz von Π • Vollständigkeit: Relevant ist nur Widerlegungsvollständigkeit: Aus unerfüllbaren Klauselmengen ist die leere Klausel ableitbar • Keine Axiome, eine einfache Regel; daher gut automatisierbar 210 • In der Praxis sind diverse (Beweis-)Strategien und Redundanzeliminationen von großer Bedeutung Anmerkungen: • Die Definition bezieht sich nur auf Signaturen und nicht direkt auf entsprechende Modellstrukturen. (=⇒ Saubere Trennung von Syntax und Semantik!) • TΣ = T (D) für jede Modellstruktur D mit Signatur Σ. • Bis auf (PF5)–(PF7) ist PF Σ genau wie BA(D) definiert. • ∀ heißt All-Quantor, ∃ heißt Existenz-Quantor. • Die Zeichensequenz (∀x) stellt ein Quantoren-Vorkommen da. • Wir machen von den selben Klammereinsparungen wie für aussagenlogische Formeln Gebrauch. Z.B.: F1 ∧ F2 ∧ F3 . • Erweiterung auf andere Konnektive, wie für AF , möglich. 212 Variablenvorkommen V (t), V (F ) . . . Variablen, die in Term t bzw. Formel F vorkommen Die Menge FV (F ) der Variablen, die frei (ungebunden) in F vorkommen, ist wie folgt definiert: • für Atomformeln: FV (p(t1 , . . . , tn )) = V (p(t1 , . . . , tn )) • FV (¬F ) = FV (F ) • FV (F ◦ G) = FV (F ) ∪ FV (G) für ◦ ∈ {∧, ∨, ⊃} • FV ((Qx)F ) = FV (F ) − {x} für Q ∈ {∀, ∃} ‘(Qx) bindet die freien Vorkommen von x in F ’ ‘F ist der Bindungsbereich von (Qx) in (Qx)F ’ Achtung: x kann gleichzeitig frei und gebunden vorkommen! 213 F bzw. t ist geschlossen bedeutet: F V (F ) = {}, bzw. F V (t) = V (t) = {}. Variablensubstitution Notation: F (x/t) bezeichnet die Formel die aus F entsteht, indem alle freien Vorkommen von x in F durch den Term t ersetzt werden. Beispiele: Sei F = (∀x)[P (x, y) ⊃ Q(x, y)] ∧ R(x) und t = f (a) • F (x/t) = (∀x)[P (x, y) ⊃ Q(x, y)] ∧ R(f (a)) • F (y/t) = (∀x)[P (x, f (a)) ⊃ Q(x, f (a))] ∧ R(x) 215 ... ... ... ... Konstantensymbole Funktionssymbole Prädikatensymbole Variable (Variablensymbole) Schreibkonventionen: (Neben den Signaturen zu N, Z, etc.) a, b, c, d, e f, g, h P, Q, R x, y, z, u, v, w Um die Lesbarkeit zu erhöhen: auch ‘[’, ‘]’ für ‘(’ und ‘)’ 214 Beispiele Folgende Formeln sind wohlgeformt: • F = [¬P (f (x), a) ∧ P (g(a, y), b)] FV (F ) = {x, y} • F = (∀x)[¬P (f (x), a) ∧ P (g(a, x), b)] FV (F ) = {} • F = [(∀x)¬P (f (x), a) ∧ P (g(a, x), b)] FV (F ) = {x} • F = (∀x)(∃y)[¬P (f (y), a) ∧ P (g(a, x), b)] FV (F ) = {} • F = (∀x)P (y, z) FV (F ) = {y, z} • F = (∀x)(∃x)P (x, x) FV (F ) = {} Semantik Prädikatenlogik ist sehr ausdrucksstark! Beispiele: ‘R ist eine Äquivalenzrelation’ kann man — in der Signatur h{}, {R}, {}i — als F1 ∧ F2 ∧ F3 ausdrücken, wobei: F1 = (∀x)R(x, x) F2 = (∀x)(∀y)[R(x, y) ⊃ R(y, x)] F3 = (∀x)(∀y)(∀z)[(R(x, y) ∧ R(y, z)) ⊃ R(x, z)] Spezifikation von Eigenschaften der Modellstruktur Z: • (∀x)x + 0 = x • (∀x)(∃y)x + y = 0 • (∀x)(∀y)(x < y ⊃ 0 − y < 0 − x) ‘x ist Primzahl’ als Formel über der Signatur von N: • (∀y)(∀z)[x = y ∗ z ⊃ (y = 1 ∨ z = 1)] ∧ 1 < x 216 PL-Interpretation Eine (prädikatenlogische) Interpretation J über der Signatur Σ = hFS Σ , PS Σ , KS Σ i ist ein Tupel hD, Φ, Ii, wobei • D = hD, FD , PD , KD i ist eine Modellstruktur Zur Erinnerung: D ist eine nicht-leere Menge • Φ ist eine Signaturinterpretation, die jedem f 0 ∈ FS Σ , jedem p0 ∈ PS Σ , jedem c0 ∈ KS Σ eindeutig ein (der Stelligkeit entsprechendes) f ∈ FD , p ∈ PD , bzw. c ∈ KD zuweist • I : IVS → D ist eine Variablenbelegung PINT Σ . . . Menge aller (PL-)Interpretation über der Signatur Σ 217 Anmerkung: Im Kapitel 2 haben wir Standard-Signaturinterpretationen Φ durch die ‘Unterstreichungskonvention’ festgelegt. Wir machen uns von dieser (oft zu engen) Konvention nun frei! Semantik (Beispiel) x Modellstruktur: D = h{3, 4}, {id}, {=}, {}i, id . . . Identitätsfunktion (id(n) = n) Signatur: Σ = h{f }, {P }, {}i, f unär, P binär Interpretation über Σ: J = hD, Φ, Ii, wobei Φ(f ) = id, Φ(P ) == und I(x) = 3, I(y) = 3 Auswertung von F = (∀x)(∃y)¬P (x, f (y)): MPF6 MPF7 y MPF (J , F ) = t ⇐⇒ MPF (J 0 , (∃y)¬P (x, f (y)) = t für alle J 0 ∼ J ⇐⇒ MPF (J 00 , ¬P (x, f (y)) = t für ein J 00 ∼ J 0 MPF2 MPF1 ⇐⇒ MPF (J 00 , P (x, f (y)) = f y (I 00 , y)) ⇐⇒ I 00 (x) 6= I 00 (y) ⇐⇒ MT (I 00 , x) 6= MT (I 00 , f (y)) für J 00 = hD, Φ, I 00 i ⇐⇒ I 00 (x) 6= MT1,MT3 id(MT x MPF (J , F ) = t, da zu jedem J 0 ∼ J ein J 00 ∼ J 0 mit J 00 (x) 6= J 00 (y) existiert 219 Semantik (Auswertungsfunktion) MPF : PINT Σ × PF Σ → {t, f } ist rekursiv definiert durch (MPF1) MPF (J , p0 (t1 , . . . , tn )) = p(MT (I, t1 ), . . . , MT (I, tn )) wobei p = Φ(p0 ) (Prädikat zum Prädikatensymbol p0 ) I ist die Variablenbelegung in J = hD, Φ, Ii (MPF2) MPF (J , ¬F ) = ¬MPF (J , F ) (MPF3) MPF (J , (F ∧ G)) = MPF (J , F ) ∧ MPF (J , G) (MPF4) MPF (J , (F ∨ G)) = MPF (J , F ) ∨ MPF (J , G) (MPF5) MPF (J , (F ⊃ G)) = MPF (J , F ) ⊃ MPF (J , G) v v (MPF6) MPF (J , (∀v)F ) = t gdw MPF (J 0 , F ) = t für alle J 0 ∼ J v (MPF7) MPF (J , (∃v)F ) = t gdw MPF (J 0 , F ) = t für ein J 0 ∼ J v J ∼ J 0 . . . J = hD, Φ, Ii und J 0 = hD, Φ, I 0 i, wobei I ∼ I 0 v Erinnerung: I ∼ I 0 . . . I(w) = I 0 (w) für alle w ∈ IVS mit w 6= v 218 Semantische Grundbegriffe (PL) Eine Formel F ∈ PF Σ heißt • erfüllbar, wenn MPF (J , F ) = t für ein J ∈ PINT Σ J heißt Modell von F • widerlegbar, wenn MPF (J , F ) = f für ein J ∈ PINT Σ J heißt Gegenbeispiel oder Gegenmodell zu F • unerfüllbar, wenn MPF (J , F ) = f für alle J ∈ PINT Σ (also: alle Interpretationen sind Gegenbeispiele) • (allgemein) gültig, wenn MPF (J , F ) = t für alle J ∈ PINT Σ (also: alle Interpretationen sind Modelle) 220 Bezogen auf eine gegebene Modellstruktur D und eine entsprechende Signaturinterpretation Φ heißt F ∈ PF Σ : • erfüllbar in D (bzgl. Φ), wenn MPF (J , F ) = t für ein J ∈ PINT Σ der Form J = hD, Φ, Ii • widerlegbar in D (bzgl. Φ), wenn MPF (J , F ) = f für ein J ∈ PINT Σ der Form J = hD, Φ, Ii • unerfüllbar in D (bzgl. Φ), wenn MPF (J , F ) = f für alle J ∈ PINT Σ der Form J = hD, Φ, Ii 221 • gültig in D (bzgl. Φ), wenn MPF (J , F ) = t für alle J ∈ PINT Σ der Form J = hD, Φ, Ii Beispiel Wir können in Z (über der Standardsignatur) folgende Prädikate bzw. Sätze ausdrücken. [Prädikate . . . freie Variable / Sätze . . . geschlossene Formeln] • x ist ein echter Teiler von y: [binäres Prädikat] (∃z)(x ∗ z = y ∧ z 6= 1 ∧ z 6= y) • y ist die (ganzzahlige) Lösung einer quadratischen Gleichung (mit ganzzahligen Koeffizienten): [unäres Prädikat] (∃u)(∃v)(∃w) u ∗ (y ∗ y) + v ∗ y = w • Nicht alle Kubikzahlen sind positiv: [Satz] ¬(∀x)((∃y) x = y ∗ y ∗ y ⊃ 0 < x) 223 Beispiel Sei F = F1 ∧ F1 = (∀x)(∀y)[P (x, y) ⊃ P (x, f (y, a))] = (∀x)¬P (x, x) ∧ F3 wobei F2 = (∀x)P (x, f (x, a)) F2 F3 F ist erfüllbar in N bzgl. Φ: Φ(P ) =<, Φ(f ) = +, Φ(a) = 1. M.a.W.: J = hN, Φ, Ii ist ein Modell von F , für alle I. Ein anderes Modell von F : J 0 = hD, Φ, Ii, wobei D = h{0, 1}∗ , {concat}, {≺}, {0}i mit concat(s, r) = sr und s ≺ r = ‘s ist ein echter Teilstring von r’. Φ(P ) =≺, Φ(f ) = concat, Φ(a) = 0, I beliebig. 222 Satz: F hat keine endlichen Modelle. Für alle Interpretationen J = hhD, F, P, Ki, Φ, Ii folgt aus MPF (J , F ) = t dass der Gegenstandsbereich D unendlich ist. Folgende Formeln sind gültig: • (∀x)[P (x) ∨ ¬P (x)] bzw. auch P (x) ∨ ¬P (x) • [(∀x)P (x) ∨ ¬(∀y)P (y)] und [(∀x)P (x) ⊃ (∃y)P (y)] • ¬(∀x)P (x) ⊃ (∃x)¬P (x) und ¬(∃x)P (x) ⊃ (∀x)¬P (x) • (∀x)(∀y)Q(x, y) ⊃ (∀y)(∀x)Q(x, y) Folgende Formeln sind unerfüllbar: • (∀x)[P (x) ∧ ¬P (x)] bzw. auch P (x) ∧ ¬P (x) • ¬[(∀x)P (x) ∨ ¬(∀y)P (y)] und (∃x)P (x) ∧ (∀x)¬P (x) Folgende Formeln sind erfüllbar und widerlegbar: • (∃x)P (x) ⊃ (∀x)P (x) und P (x) ⊃ P (y) • (∀x)P (x) ∨ (∀x)¬P (x) und (∃x)P (x) ⊃ (∀x)¬P (x) • (∀x)(∀y)[Q(x, y) ⊃ Q(y, x)], (∀x)[(∀y)Q(x, y) ⊃ (∀y)Q(y, x)] 224 Logische Konsequenz und Implikation (PL) Definition. Formel G ist eine logische Konsequenz der Formeln F1 , . . . , Fn , geschrieben F1 , . . . , Fn |= G, wenn für alle J gilt: Wenn MPF (J , Fi ) = t für 1 ≤ i ≤ n, dann gilt MPF (J , G) = t. Für n = 0 ist |= G gleichbedeutend mit G ist gültig“. ” Satz. (Deduktionstheorem) F1 , . . . , Fn |= G gdw. F1 , . . . , Fn−1 |= (Fn ⊃ G) gdw. |= (F1 ∧ . . . ∧ Fn ) ⊃ G Beobachtung: Keine Änderung gegenüber der Aussagenlogik! 225 Logische Äquivalenz und Erfüllungsäquivalenz Definition. Zwei Formel F, G ∈ PF Σ heißen (logisch) äquivalent, wenn MPF (J , F ) = MPF (J , G) für alle I ∈ PINT Σ . Wir schreiben dafür auch: F =PL G. Es gilt: F =PL G gdw. F |= G und G |= F . Definition. Zwei Formel F, G ∈ PF Σ heißen erfüllungsäquivalent, wenn F und G beide erfüllbar oder beide unerfüllbar sind. Wir schreiben dafür auch: F ∼e G. Beobachtung: Keine Änderung gegenüber der Aussagenlogik! (Wir hätten auch Erfüllungsäquivalenz schon für Formeln ∈ AF definieren können). 227 Beispiele zur logischen Konsequenz: • (∀x)P (x) |= (∃y)P (y), aber (∃x)P (x) 6|= (∀y)P (y) • P (x) |= [P (x) ∨ Q(y, y)], aber P (x) 6|= [P (y) ∨ Q(y, y)] • (∃y)(∀x)Q(x, y) |= (∀x)(∃y)Q(x, y), aber (∀x)(∃y)Q(x, y) 6|= (∃y)(∀x)Q(x, y) Gegenbeispiel: J = hN, Φ, Ii, Φ(Q) =< • (∃x)(∀y)Q(x, y) 6|= (∃y)(∀x)Q(x, y) Gegenbeispiel: ähnlich wie J 0 , aber Φ(Q) =≤ • (∀x)F (x) |= F (x/t), für beliebige Terme t aber im Allgemeinen: F (x) 6|= F (x/t) 226 Beispiele zu den Äquivalenzbegriffen: • (∀x)P (x) =PL (∀y)P (y), daher auch (∀x)P (x) ∼e (∀y)P (y), aber P (x) 6=PL P (y) und trotzdem: P (x) ∼e P (y)! • (∀x)(∀y)Q(x, y) =PL (∀y)(∀x)Q(x, y) und (∀x)(∀y)Q(x, y) =PL (∀x)(∀y)Q(y, x), aber Q(x, y) 6=PL Q(y, x) • (∀x)(∃y)Q(x, y) 6=PL (∃y)(∀x)Q(x, y), aber (∀x)(∃y)Q(x, y) ∼e (∃y)(∀x)Q(x, y) • P (x) ∼e ¬P (x) ∼e Q(x, y) ∼e Q(y, x) ∼e (∃x)P (x) ∼e (∀x)P (x) ∼e (∀y)P (x) ∼e P (x) ∨ Q(x, y) ∼e P (x) ∧ Q(x, y) etc. aber natürlich sind diese Formeln nicht logisch äquivalent! Beobachtung: Die Relation ∼e hat nur zwei Äquivalenzklassen 228 Wichtige Eigenschaften der Prädikatenlogik • Es gibt keinen Algorithmus mit dem man die Gültigkeit (oder die Erfüllbarkeit) von Formeln in PF entscheiden kann. (‘Unentscheidbarkeit der PL’ — Turing, Church, 1936.) • Es gibt (nicht terminierende) Algorithmen, die genau alle gültigen Formeln aufzählen. (‘Vollständigkeit der PL’ — Gödel, 1929) • Es gibt keinen Algorithmus, der genau die in N gültigen Formeln aufzählt. (folgt aus ‘Unvollständigkeitssatz’ — Gödel, 1931) 229 • Jede erfüllbare Formel hat ein Modell mit Gegenstandsbereich ω. (‘Satz von Löwenheim-Skolem’, 1915, 1919) Tableaux für PL Aufgabe: Erweiterung von Tableaux von AL auf PL. Wir benötigen geeignete Regeln zur Analyse von Quantoren: Zur Erinnerung: t : (∀x)F , also MPF (J , (∀x)F ) = t, bedeutet: x F ist wahr in allen Interpretation J 0 ∼ J , daher auch MPF (J , F (x/t)) = t für alle Terme t. Ähnlich: f : (∃x)F =⇒ F (x/t) ist für alle t falsch. t : (∀x)F f : F (x/t) f : (∃x)F Entsprechend können wir folgende Regeln formulieren: t : F (x/t) für beliebige geschlossene Terme t Problem: Wir können nicht garantieren, dass alle Elemente des Gegenstandsbereichs durch einen Term repräsentiert werden. 231 Hilbert-Typ-Kalkül für PL (Z.B.) Erweiterung des Hilbert-Typ-Kalkül für AL um die Axiome 11. (∀x)A(x) ⊃ A(x/t) für alle Terme t 12. (∀x)A ⊃ ¬(∃x)¬A 13. ¬(∃x)¬A ⊃ (∀x)A A⊃B gen A ⊃ (∀x)B und die Generalisierungs-Regel wobei x 6∈ FV (A). Wie für AL: Dieser Kalkül ist korrekt und vollständig, aber äußerst ungünstig für automatische Beweissuche. 230 Analyse der existentiellen Quantifizierung: MPF (J , (∃x)F ) = t bedeutet, dass F in mindestens einer x Interpretationen J 0 ∼ J wahr wird. (Ähnlich für f : (∀x)F ) Problem: Wir wissen nicht, welchen Term t wir für x substituieren können. Noch schlimmer: wir können nicht garantieren, dass es überhaupt einen geschlossenen Term (in der Sprache zu F ) gibt, der einen entsprechenden ‘Zeugen’ für (∃x)F repräsentiert. Lösung: (vgl. Satz von Löwenheim-Skolem) 1. Erweiterung der Sprache um (abzählbar) unendlich viele zusätzliche Konstanten, genannt: Parameter. 2. Bei der Zerlegung von t : (∃x)F und f : (∀x)F verlangt man, dass der jeweilige ‘Zeuge’ für F neu ist (d.h., im Tableau noch nicht vorkommt). 232 Beispiel f : (∀x)P (x) ⊃ [P (a) ∧ P (f (a))] von 1 Zeige die Gültigkeit von (∀x)P (x) ⊃ [P (a) ∧ P (f (a))]. (1) t : (∀x)P (x) von 1 f : (∃x)F (2) f : P (a) ∧ P (f (a)) t : (∀x)F ΣP ar . . . Signatur Σ erweitert um Parameter c, d, e, . . . t : (∀x)F und f : (∃x)F heißen γ-Formeln f : (∀x)F und t : (∃x)F heißen δ-Formeln γ-Regeln: δ-Regeln: (1) t : (∀x)[P (x) ∨ Q(x)] f : (∀x)[P (x) ∨ Q(x)] ⊃ [(∃x)P (x) ∨ (∀x)Q(x)] von 1 von 1 t : P (a) f : P (a) von 2 von 3 (7) (5) t : P (f (a)) f : P (f (a)) von 2 von 3 f : (∃x)(∀y)R(x, y) ⊃ (∀y)(∃x)R(x, y) von 1 Wid.: 5/7 (1) t : (∃x)(∀y)R(x, y) von 1 × (2) f : (∀y)(∃x)R(x, y) von 2 Wid.: 4/6 (3) t : (∀y)R(c, y) von 3 × (4) f : (∃x)R(x, d) von 4 234 (5) t : R(c, d) von 5 Wid.: 6/7 Annahme (6) f : R(c, d) 236 Beachte: In Zeile 5 musste ein neuer Parameter gewählt werden! × (7) Beispiel (5) Annahme (3) f : F (x/t) t : (∃x)F (4) t : F (x/t) f : (∀x)F t : F (x/c) für beliebige geschlossene Terme t über ΣP ar f : F (x/c) für einen neuen Parameter c in ΣP ar Alle anderen Regeln (auch Abschluss) sind wie für AL! Achtung: γ-Regeln müssen i.A. auf die selbe γ-Formel öfters, mit verschiedenen t angewendet werden. (Im Gegensatz zur δ-Regel.) =⇒ Größe eines Tableau ist nicht beschränkbar! (2) f : (∃x)P (x) ∨ (∀x)Q(x) von 3 233 (3) f : (∃x)P (x) von 3 Beispiel (4) f : (∀x)Q(x) Annahme (5) von 5 Wid.: 6/9 von 7 f : Q(c) × t : Q(c) (6) (9) von 2 von 7 t : P (c) ∨ Q(c) t : P (c) von 4 (7) (8) f : P (c) Wid.: 8/10 (10) × Gute Heuristik: ‘δ vor γ’ (damit die Wahl geeigneter ‘Zeugen-Terme’ für γ-Formeln leichter fällt!) 235 Beispiel Die Formel (∀x)(∃y)R(x, y) ⊃ (∃y)(∀x)R(x, y) ist widerlegbar. Entsprechend kann folgendes Tableau auch nicht geschlossen werden: (6) (5) (4) (3) (2) (1) t : R(a, b) f : (∀x)R(a, x) t : (∃y)R(a, y) f : (∃y)(∀x)R(x, y) t : (∀x)(∃y)R(x, y) f : (∀x)(∃y)R(x, y) ⊃ (∃y)(∀x)R(x, y) von 5 von 4 von 3 von 2 von 1 von 1 Annahme (7) f : R(a, c) . .. Beachte: In Zeile 6 und 7 musste jeweils ein neuer Parameter gewählt werden! 237 Nachweis von Konsequenzbehauptungen (vgl. Beweise mittels Resolution) (n) (1) . .. f :G t : Fn t : F1 . .. Annahme Annahme Annahme . .. Eine Konsequenzbehauptungen F1 , . . . , Fn |= G gilt — wegen Vollständigkeit und Korrektheit — genau dann, wenn es ein geschlossenes Tableau gibt, das wie folgt beginnt: (n + 1) 239 Eigenschaften des Tableau-Kalküls (PL): • Korrektheit: Besitzt eine geschlossene Formel ein geschlossenes Tableau, so ist sie gültig. • Vollständigkeit: Ist eine geschlossene Formel gültig, so besitzt sie ein geschlossenes Tableau. • Analytizität: die Expansionsregeln fügen nur Instanzen von bereits vorhandenen Teilformeln hinzu. • Eingeschränkter Indeterminismus: Ist eine geschlossene Formel gültig, liefert jede Folge von Expansionsschritten ein geschlossenes Tableaux unter folgender Bedingung: – γ-Formeln werden so oft wie nötig expandiert, alle Terme über ΣP ar werden dabei berücksichtigt • Beweissuche kann optimiert werden durch Übergang zu Free Variable Tableaux (mit ‘Skolemisierung’) 238 (2) (1) f : (∃x)Q(x) t : ¬(∃x)P (x) t : (∀x)[P (x) ∨ Q(f (x))] Ann. Ann. Ann. Beispiel. Geschlossenes Tableau für (∀x)[P (x) ∨ Q(f (x))], ¬(∃x)P (x) |= (∃x)Q(x) (3) von 2 von 5 f : (∃x)P (x) t : Q(f (c)) (4) (7) von 1 von 5 von 3 t : P (c) ∨ Q(f (c)) t : P (c) f : Q(f (c)) (5) (6) (9) Wid.: 7/9 von 4 × f : P (c) Wid.: 6/8 (8) × Beobachtungen: Es gibt keine δ-Formel im Tableau. Für die γ-Formel (1) muss in (5) ein geschlossener Term gewählt werden =⇒ Parameter c 240 Beispiel (2) (1) t : (∀x)(∀y)[R(x, y) ⊃ R(y, x)] t : (∀x)(∀y)(∀z)[(R(x, y) ∧ R(y, z)) ⊃ R(x, z)] Ann. Ann. von 4 Ann. von 3 Ann. f : R(c, c) von 6 f : (∀x)R(x, x) (5) t : R(c, d) t : (∃y)R(c, y) t : (∀x)(∃y)R(x, y) (6) (3) (7) von 8 von 2 (4) trans, sym, nontriv |= refl , t : R(c, d) ⊃ R(d, c) von 1 t : (∀y)[R(c, y) ⊃ R(y, c)] t : (∀y)(∀z)[(R(c, y) ∧ R(y, z)) ⊃ R(c, z)] von 11 von 10 (8) (10) t : (R(c, d) ∧ R(d, c)) ⊃ R(c, c) (18) f : R(d, c) × (5/16) (16) t : R(c, c) v. 12 von 9 t : (∀z)[(R(c, d) ∧ R(d, z)) ⊃ R(c, z)] t : R(d, c) (17) f : R(c, d) × (14/18) 242 × (7/17) (15) f : R(c, d) ∧ R(d, c) v. 12 (14) (11) 1 : {P (c)} 244 20 : {¬P (c), Q(f (c))} {Q(f (c)} {} 30 : {¬Q(f (c))} AL-Resolution auf 1 und 2 anwendbar, wenn wir 2 durch die Instanz 20 = {¬P (c), P (f (c))} ersetzen. (Ähnlich für Klausel 3): • cl(¬(∃x)Q(x)) = cl((∀x)¬Q(x)) = {¬Q(x)} =⇒ Resolution auf {P (c)}, {¬P (y), Q(f (y)}, {¬Q(x)} {z } | {z } | {z } | anwenden: 1 2 3 • cl((∀y)(∃z)[P (y) ⊃ Q(z)]) = cl((∀y)(∃z)[¬P (y) ∨ Q(z)]) = {¬P (y), Q(f (y)}, für ein neues Funktionssymbol f • cl((∃x)P (x)) = {P (c)}, für eine neue Konstante c Quantorenelimination ähnlich wie in Tableaux: Beispiel: Zeige (∃x)P (x), (∀y)(∃z)[P (y) ⊃ Q(z)] |= (∃x)Q(x) × (7/13) (13) f : R(c, d) v. 9 (12) (9) Zeigen Sie mit dem Tableau-Kalkül, dass jede nicht-triviale, symmetrische und transitive Relation auch reflexiv ist. Also: wobei trans = (∀x)(∀y)(∀z)[(R(x, y) ∧ R(y, z)) ⊃ R(x, z)] sym = (∀x)(∀y)[R(x, y) ⊃ R(y, x)] 241 nontriv = (∀x)(∃y)R(x, y) refl = (∀x)R(x, x) Resolution für PL Zur Erinnerung: Resolution ist eine zweistufige, indirekte Beweismethode: 1. Transformation von ¬F in Klauselform (KNF) cl(¬F ) 2. Wiederholte Anwendung der Resolutionsregel Wenn {} (leere Klausel) aus cl(¬F ) ableitbar ist, dann ist F gültig (= Korrektheit der Methode). Verallgemeinerung von AL auf PL: • Wie sehen Klauselformen von Formeln in PF Σ aus? • Wie erzeugt man diese? • Wie muss die Resolutionsregel erweitert werden? 243 Transformation in Klauselform Schritt A: Eliminiere ‘⊃’ und ziehe alle ‘¬’ nach innen (d.h., vor die Atome) [≈ Schritt 1-2 bei AL] Schritt B: Eliminiere ‘∃’ durch Einführung neuer Konstantenund Funktionssymbole (‘Skolemisierung’ – nach Thoralf Skolem) Schritt C: Eliminiere ‘∀’ (einfach weglassen) 245 Schritt D: Transformiere in KNF durch wiederholte Anwendung der Distributivgesetze [≈ Schritt 4 bei AL] Schritt A — Beispiel Bringe die Formel A = ¬(∀x)(∃y)[(P (x, y) ∧ Q(y)) ⊃ R(y)] in NNF. ⇒ ⇒ A ⇒ (∃x)(∀y)[¬¬(P (x, y) ∧ Q(y)) ∧ ¬R(y)] (∃x)(∀y)¬[¬((P (x, y) ∧ Q(y)) ∨ R(y)] (∃x)(∀y)¬[(P (x, y) ∧ Q(y)) ⊃ R(y)] (∃x)¬(∃y)[(P (x, y) ∧ Q(y)) ⊃ R(y)] T5 ⇒ (∃x)(∀y)[(P (x, y) ∧ Q(y)) ∧ ¬R(y)] T4 T3 T1 T6 ⇒ 247 Schritt A: (T1) (A ⊃ B) ⇒ (¬A ∨ B) (T2) ¬(A ∧ B) ⇒ (¬A ∨ ¬B), (T3) ¬(A ∨ B) ⇒ (¬A ∧ ¬B), ¬(∀u)A ⇒ (∃u)¬A, ¬¬A ⇒ A, (T5) ¬(∃u)A ⇒ (∀u)¬A. (T4) (T6) Wenn keine der Ersetzungsregeln (T1)–(T6) mehr anwendbar ist, ist die Formel in Negationsnormalform (NNF). Die NNF einer Formel ist eindeutig. 246 Regeln (T1)–(T6) erhalten logische Äquivalenz. Genauer: Wenn F 0 die NNF von F ist so gilt F 0 =PL F . Schritt B — Vorbereitung Es ist günstig zunächst folgende ‘Syntax-Bereinigung’ vorzunehmen: (Q1) verschiedene Vorkommen von Quantoren sollen verschiedene Variablen binden (Q2) keine Variable soll gleichzeitig gebunden und frei vorkommen ⇒ ⇒ (∃y)(∀x)P (x, x) A(x) ∧ (∀y)A(y) (∀x)A(x) ∧ (∃y)B(y) Q1 Q2 ⇒ Q1 =⇒ entsprechende Umbenennung von Variablen: Z.B. (∀x)A(x) ∧ (∃x)B(x) A(x) ∧ (∀x)A(x) (∃x)(∀x)P (x, x) 248 Schritt B — Notation Notation: Wir schreiben (Q1 v) @ (Q2 w) wenn (Q2 w) im Bindungsbereich von (Q1 v) vorkommt. D.h., es gibt Teilformeln G und H, sodass G = (Q1 v)H und in H kommt (Q2 w) vor. Beispiel: A = (∀y)[(∃x)P (x, y) ∧ (∀u)(∃v)(¬R(u, y) ∨ Q(v))] • (∀y) @ (∃x), (∀y) @ (∀u), (∀y) @ (∃v), (∀u) @ (∃v) 249 • (∃x) 6@ (∀u), (∃x) 6@ (∃v), etc. Schritt B — Beispiel Vollständige Skolemisierung von A = (∃x)Q(x) ∧ (∀y)[(∃x)R(x, x) ∧ (∀u)(∃v)(¬P (u, y, v) ∨ (∃x)R(x, v))] Syntax-Bereinigung: (∃z)Q(z) ∧ (∀y)[(∃x)R(x, x) ∧ (∀u)(∃v)(¬P (u, y, v) ∨ (∃w)R(w, v))] ⇒ Q(a) ∧ (∀y)[(∃x)R(x, x) ∧ (∀u)(∃v)(¬P (u, y, v) ∨ (∃w)R(w, v))] Sko ⇒ Q(a) ∧ (∀y)[R(f (y), f (y)) ∧ (∀u)(∃v)(¬P (u, y, v) ∨ (∃w)R(w, v))] Sko ⇒ Q(a) ∧ (∀y)[R(f (y), f (y)) ∧ (∀u)(¬P (u, y, g(y, u)) ∨ (∃w)R(w, g(y, u)))] Sko ⇒ Q(a) ∧ (∀y)[R(f (y), f (y)) ∧ (∀u)(¬P (u, y, g(y, u)) ∨ R(h(y, u), g(y, u))] Sko 251 Schritt B: Zu jedem Vorkommen (∃u) eines Existenzquantors in A definieren wir einen Skolemterm tu wie folgt: • tu = c, neue Konstante, falls (∀x) 6@ (∃u) für alle (∀x) in A. • tu = f (x1 , . . . , xn ), für ein neues n-stelliges Funktionssymbol f falls (∀x1 ), . . . , (∀xn ) alle Vorkommen von All-Quantoren in A sind, für die (∀xi ) @ (∃u) gilt. ⇒ Sko A−(∃u) (u/tu ) Transformationsregel (‘Skolemisierung’): A 250 wobei A−(∃u) = A nach Entfernung von (∃u) aus A Schritt B — Eigenschaften: Terminologie: Eine Formel A in NNF ist in Skolem-Normalform falls sich die Regel ‘Sko’ nicht mehr auf A anwenden lässt. Die Skolem-Normalform ist bis auf die Symbolnamen eindeutig. Beobachtung: Da Skolemisierung die Signatur ändert (= neue Symbole einführt) kann dieser Transformationsschritt die logische Äquivalenz nicht erhalten! Aber es gilt: A ∼e B falls B eine Skolem-Normalform von A ist. Das reicht für unsere Zwecke (indirekter Beweis): Wir wollen ¬F als unerfüllbar nachweisen. Offensichtlich gilt: Falls G unerfüllbar ist und ¬F ∼e G, dann ist auch ¬F unerfüllbar. 252 Schritt C: Beobachtung: Da nach Schritt A und B alle Variablen (eindeutig) all-quantifiziert sind tragen diese Quantoren-Vorkommen keine Information mehr. =⇒ alle Vorkommen der Form (∀v) einfach weglassen! Rechtfertigung: Schritt D: KNF-Bildung durch wiederholte Anwendung der Distributivgesetze (‘Verteilung’ von ∨ über ∧). Genau so wie für AL! ⇒ (A ∨ B) ∧ (B ∨ C) Zur Erinnerung: A ∨ (B ∧ C) ⇒ D1 ⇒ 254 [(¬P (x, f (x)) ∧ Q(x, y)) ∨ R(u)] ∧ [(¬P (x, f (x)) ∧ Q(x, y)) ∨ Q(v, v)] [¬P (x, f (x)) ∧ Q(x, y)] ∨ R(u) ⇒ ⇒ [¬P (x, f (x)) ∨ Q(v, v)] ∧ [Q(x, y) ∨ Q(v, v)] [¬P (x, f (x)) ∨ R(u)] ∧ [Q(x, y) ∨ R(u)] 256 [¬P (x, f (x)) ∨ Q(v, v)] ∧ [Q(x, y) ∨ Q(v, v)] KNF(A) = [¬P (x, f (x)) ∨ R(u)] ∧ [Q(x, y) ∨ R(u)] ∧ Die rechten Seiten der letzten beiden Zeilen sind bereits in KNF. Daher: D2 [¬P (x, f (x)) ∧ Q(x, y)] ∨ Q(v, v) D2 Die äußeren Teilformeln können separat transformiert werden: A A = [¬P (x, f (x)) ∧ Q(x, y)] ∨ [R(u) ∧ Q(v, v)] ist in Skolem-Normalform. Schritt D — Beispiel Dieser Transformationsschritt erhält logische Äquivalenz. D2 D1 • (∀v)F ◦ G =PL (∀v)(F ◦ G) und F ◦ (∀v)G =PL (∀v)(F ◦ G), für ◦ ∈ {∧, ∨}, falls v in G nicht vorkommt (A ∧ B) ∨ C _ (A ∨ C) ∧ (B ∨ C) • D.h.: alle All-Quantoren können nach außen gebracht werden 253 • (∀x1 ) . . . (∀xn )F =PL ∀xπ(1) . . . (∀xπ(n) )F für jede Permutation π über {1, . . . , n} Schritt D — Klauselmengen ^ Li,j , (L1,1 ∨ · · · ∨ L1,n1 ) ∧ · · · ∧ (Lm,1 ∨ · · · ∨ Lm,nm ) Zur Erinnerung: Die KNF der Ausgangsformel ist von der Form bzw. 1≤i≤m 1≤j≤ni wobei die Li,j Literale, also negierte oder unnegierte Atome sind. Wir bevorzugen die Mengennotation {{L1,1 , . . ., L1,n1 }, . . ., {Lm,1 , . . ., Lm,nm }} In einer solchen Klauselmenge ist die Assoziativität, Kommutativität und Idempotenz von ∨ und ∧ implizit berücksichtigt. 255 Gesamtbeispiel: G = [(∀x)(∃y)P (x, y) ∧ (∀u)(∀v)(P (u, v) ⊃ R(u))] ⊃ (∀z)R(z) AF = (∀x)(∃y)P (x, y)∧(∀u)(∀v)[¬P (u, v)∨R(u)]∧(∃z)¬R(z) G ist gültig. Daher ist F = ¬G unerfüllbar. Wir bilden cl(F ). Schritt A: T1−T6 ⇒ AF ist die NNF von F , daher AF =PL F . Schritt B: (Skolemisierung) ⇒ BF = (∀x)P (x, f (x)) ∧ (∀u)(∀v)[¬P (u, v) ∨ R(u)] ∧ ¬R(a) Sko Schritt C: ⇒ CF = P (x, f (x)) ∧ [¬P (u, v) ∨ R(u)] ∧ ¬R(a) 257 CF ist bereits in KNF. Daher ist Schritt D leer. Die Klauselform von F lautet also: cl(F ) = {P (x, f (x))}, {¬P (u, v), R(u)}, {¬R(a)} Substitution, Unifikation Eine Substitution ist eine Abbildung ρ : IVS → TΣ wobei ρ(v) 6= v nur für endlich viele Variablen v. Wir schreiben: ρ = {x1 ← t1 , . . . , xn ← tn }, wenn ρ(x1 ) = t1 , . . . , ρ(xn ) = tn und ρ(v) = v für alle v 6∈ {x1 , . . . xn }. Anstatt E(x1 /t1 ) · · · (xn /tn ) schreiben wir ρ(E). Aufgabe zur Anwendung der Resolutionsregel: Wir suchen Substitutionen, die die Atome A und B zweier dualer Literale A und ¬B bzw. ¬A und B gleich machen. Wenn ρ(A1 ) = . . . = ρ(An ) dann nennt man ρ einen Unifikator von {A1 , . . . , An }. Zur Erinnerung: x, y, z, u, v, w . . . Variablensymbole a, b, c, d . . . Konstantensymbole 259 Die Resolutionsregel für PL-Klauseln Zur Erinnerung: Der Schluss 1 : {P (c)} 2 : {¬P (y), Q(f (y)} 20 : {¬P (c), Q(f (c))} {Q(f (c)} kombiniert AL-Resolution mit Instanzierung (Substitution). Tatsächlich ist diese Kombination von AL-Resolution und Substitution nicht nur korrekt sondern auch (widerlegungs-)vollständig! 258 Problem: Welche Instanzen muss man in Betracht ziehen? Wenn für jeden Resolutionsschritt der gesamte (unendliche) Suchraum aller Substitutionen relevant ist, dann ist die Methode kaum brauchbar! Unifikatoren – Beispiele • Q(a) und Q(b) nicht unifizierbar • P (x, x) und P (y, f (y)) sind ebenfalls nicht unifizierbar • A = P (z, x, f (y)) und B = P (u, g(u, a), u) haben unendlich viele Unifikatoren. Z.B. ρ1 = {z ← f (a), x ← g(f (a), a), y ← a, u ← f (a)}, ρ2 = {z ← f (g(a, a)), x ← g(f (g(a, a)), a), y ← g(a, a), u ← f (g(a, a))}, ρ3 = {z ← f (y), x ← g(f (y), a), u ← f (y)}, . . . Aber ρ = {z ← u, x ← g(u, a), u ← f (y)} ist kein Unifikator: ρ(A) = P (u, g(u, a), f (y)) und ρ(B) = P (f (y), g(f (y), a), f (y)) Beobachtung: Alle Unifikatoren von A und B kann man aus ρ3 durch weitere Instanzierung der Terme ρ3 (v) (v ∈ IVS ) gewinnen! 260 Allgemeinster Unifikator Definition: Es seien E und F Terme, Atome oder Literale. E heißt allgemeiner als F — geschrieben: E ≤s F — falls F eine Instanz von E ist, also falls ρ(E) = F für eine Substitution ρ. Analog für Substitutionen σ, τ : σ heißt allgemeiner als τ — geschrieben: σ ≤s τ — falls σ(A) ≤s τ (A) für alle Atome A. Achtung: ‘allgemeiner’ wird hier als ‘echt allgemeiner oder genauso allgemein wie’ verstanden. 261 Definition: ρ ist ein allgemeinster Unifikator (MGU) von {A1 , . . . , An } falls ρ(A1 ) = . . . = ρ(An ) und ρ ≤s τ für alle Unifikatoren τ von {A1 , . . . , An }. Man schreibt: ρ = mgu{A1 , . . . , An } (mgu steht für most general unifier) Term-Gleichungssysteme Das Finden eines (allgemeinsten) Unifikators (MGUs) ist ähnlich dem Finden einer (allgemeinsten) Lösung eines arithmetischen Gleichungssystems. Beispiel: allgemeinste Unifikation von {A, B}, wobei = P (g(g(u)), v) A = P (g(x), f (x, z)) B Reduktion auf das (Term-)Gleichungssystem . . E1 = {g(x) = g(g(u)), v = f (x, z)} Das bedeutet: Wir suchen eine Substitution (= Lösung) θ mit θ(g(x)) = θ(g(g(u))), θ(v) = θ(f (x, z)), sodass für alle anderen Lösungen η gilt: θ ≤s η. 263 Wichtige Eigenschaften der allgemeinsten Unifikation • Allgemeinste Unifikatoren (MGUs) sind eindeutig, bis auf Variablenumbenennungen. Genauer: ρ = mgu{A1 , . . . , An } und ρ0 = mgu{A1 , . . . , An } impliziert: ρ ≤s ρ0 und ρ0 ≤s ρ und daher ρ0 (A) = ν(ρ(A)) für eine Substitution ν die nur Variablennamen permutiert. • Es gibt Unifikationsalgorithmen, die für jede Atommenge {A1 , . . . , An } feststellen, ob diese Atome unifizierbar sind und — im positiven Fall — eine entsprechende Substitution ρ = mgu{A1 , . . . , An } ausgeben. 262 . . E1 = {g(x) = g(g(u)), v = f (x, z)} {g(s), g(t)} ist unifizierbar gdw. {s, t} unifizierbar ist: =⇒ E1 ist äquivalent zu . . = {x = g(u), v = f (x, z)}. E2 E2 kann als Substitution θ = {x ← g(u), v ← f (x, z)} interpretiert werden; aber θ ist (noch) kein Unifikator: θ(A1 ) 6= θ(A2 )! . . Wir müssen x = g(u) auf das System E2 − {x = g(u)} anwenden: . . E3 = {x = g(u), v = f (g(u), z)} . In E3 ist jede Gleichung von der Form v = t, wobei die Variablen auf den linken Seiten der Gleichungen nur einmal im ganzen System vorkommen. =⇒ E3 ist in gelöster Form und entspricht der Substitution: σ = mgu{A, B} = {x ← g(u), v ← f (g(u), z)} 264 Unifikation als Term-Gleichungslösen Ziel: Suche MGU als allgemeinste Lösung eines Term-Gleichungssystems E Weg: Schrittweise Transformation von E in gelöste Form Terminologie Ein Term-Gleichungssystem ist eine endliche Menge . . E = {s1 = t1 , . . . , sn = tn } wobei si , ti , für i = 1, . . . , n, Terme (∈ TΣ ) sind. Eine Substitution θ heißt Lösung von E, wenn θ(si ) = θ(ti ) für alle i = 1, . . . , n. σ heißt allgemeinste Lösung von E, wenn für alle Lösungen θ von E gilt: σ ≤s θ. E ist in gelöster Form wenn: 1. {s1 , . . . , sn } ⊆ IVS Nötig sind noch: • Kriterien für Unlösbarkeit 268 Beispiel: Die Terme x und f (x) sind nicht unifizierbar. . Entsprechend gilt: {x = f (x)} ⇒ ⊥ E ⇒ ⊥ . (occurs check) Wenn v = t ∈ E, wobei v ∈ IVS , v 6= t und v ∈ V (t), dann Beispiel: Die Terme a und f (x) sind nicht unifizierbar. . Entsprechend gilt: {a = f (x)} ⇒ ⊥ E ⇒ ⊥ Regeln zur Feststellung von Unlösbarkeit: . (clash) Wenn s = t ∈ E, wobei s und t mit verschiedenen Funktions- oder Konstantensymbolen beginnen, dann 266 Zwei Systeme E1 und E2 heißen äquivalent, wenn sie die selbe Menge von Lösungen besitzen. 2. jede Variable si kommt nur einmal in E vor 265 • garantierte Termination Regeln zur Gleichungslösung Ziel: Reduktion von E auf gelöste Form oder ⊥ (falls unlösbar) Regel zur Elimination von Redundanz: . (delete) Wenn s = s ∈ E dann . E ⇒ E − {s = s} Regel zur Orientierung von Gleichungen: . (orient) Wenn t = v ∈ E, wobei v ∈ IVS und t 6∈ IVS dann . . E ⇒ (E − {t = v}) ∪ {v = t} 267 s t Regel zur Entfernung gleicher Funktionssymbole: }| { . z }| { z (decompose) Wenn f (s1 , . . . , sn ) = f (t1 , . . . , tn ) ∈ E, dann Regel zur Substitution bereits bestimmter Variablen: . (eliminate) Wenn v = t ∈ E, wobei v ∈ IVS , v 6∈ V (t) und . v kommt auch in E − {v = t} vor, dann . . E ⇒ ρ(E − {v = t}) ∪ {v = t}, wobei ρ = {v ← t}. . . . E ⇒ (E − {s = t}) ∪ {s1 = t1 , . . . , sn = tn } Folgendes Beispiel macht klar, dass noch eine weitere Regel fehlt: Beispiel (Fortsetzung) . . E = {x = y, x = g(y)} Anwendung von (eliminate): 270 v ∈ IVS , v ∈ V (E), v 6∈ V (t) v ∈ IVS , t 6∈ IVS • Wenn keine Regeln aus U R mehr auf System E anwendbar sind, dann ist E entweder in gelöster Form oder ⊥. f, g ∈ F S ∪ KS verschieden v ∈ IVS , v 6= t, v ∈ V (t) 272 • Wenn E zu ⊥ transformierbar ist, dann ist E unlösbar. . . • Wenn E zu einer gelösten Form {x1 = t1 , . . . , xn = tn } transformierbar ist, dann ist {x1 ← t1 , . . . , xn ← tn } eine allgemeinste Lösung von E und repräsentiert einen MGU. • U R terminiert immer – die Regeln sind auf jedes Term-Gleichungssystem nur endlich oft anwendbar. Es gilt: Unifikationstheorem Eine anschließende Anwendung von (occurs check) liefert ⊥. . . E ⇒ {y = g(y)} ∪ {x = y} Beispiel . . E = {x = y, x = g(y)} ist unlösbar: Es existiert kein θ mit θ(x) = θ(y) und θ(x) = θ(g(y)), da ja sonst θ(y) = θ(g(y)) gelten müsste. Es ist aber keine der bisherigen Regeln auf E anwendbar! . Erst auf y = g(y) ist (occurs check) anwendbar. 269 Inferenzregelsystem U R für Unifikation . . {s = s} ∪ E (delete) E . . {f (s1 , . . . , sn ) = f (t1 , . . . , tn )} ∪ E (decomp.) . . {s1 = t1 , . . . , sn = tn } ∪ E . . {t = v} ∪ E (orient) . {v = t} ∪ E . . {v = t} ∪ E (eliminate) . {v = t} ∪ ({v ← t}(E)) . . {f (s1 , . . . , sm ) = g(t1 , . . . , tn } ∪ E (clash) ⊥ . . {v = t} ∪ E (occurs check) ⊥ 271 Beispiel Wir verwenden U R um die Atome A = P (g(a), x, g(x)) und B = P (u, f (u, v), w) zu unifizieren. Das entsprechende Term-Gleichungssystem lautet: . . . E = {g(a) = u, x = f (u, v), g(x) = w} Wir erhalten schrittweise: orient . . . E ⇒ {u = g(a), x = f (u, v), g(x) = w} elim. . . . ⇒ {u = g(a), x = f (g(a), v), g(x) = w} elim. . . . ⇒ {u = g(a), x = f (g(a), v), g(f (g(a), v)) = w} . . . {u = g(a), x = f (g(a), v), w = g(f (g(a), v))} ⇒ orient Das letzte System ist in gelöster Form. Wir erhalten daraus 273 θ = mgu{A, B} = {u ← g(a), x ← f (g(a), v), w ← g(f (g(a), v))} (Fortsetzung des Beispiels) Es gibt zu . . . . E = {g(b, x) = g(y, z), x = f (b), g(y, z) = u, f (b) = f (z)} ⇒ orient . . . . {g(b, x) = g(y, z), x = f (b), u = g(y, z), f (b) = f (z)} . . . . {x = f (b), g(b, f (b)) = g(y, z), u = g(y, z), f (b) = f (z)} . . . . {x = f (b), g(b, f (b)) = g(y, z), u = g(y, z), b = z} . . . . {x = f (b), g(b, f (b)) = g(y, z), u = g(y, z), z = b} . . . . {z = b, x = f (b), g(b, f (b)) = g(y, b), u = g(y, b)} . . . . . {z = b, x = f (b), b = y, f (b) = b, u = g(y, b)} ⇒ elim. clash decoomp ⇒ orient ⇒ decomp. ⇒ elim. ⇒ ⊥ auch andere Transformationsketten: E ⇒ Das Ergebnis ist immer das selbe (Unifikationstheorem!) 275 Beispiel. Wir verwenden U R um zu testen ob {Q(g(b, x), x), Q(g(y, z), f (b)), Q(u, f (z))} unifizierbar ist. Ein entsprechendes Term-Gleichungssystem lautet: . . . . E = {g(b, x) = g(y, z), x = f (b), g(y, z) = u, f (b) = f (z)} ⇒ decomp. . . . . . {b = y, x = z, x = f (b), g(y, z) = u, f (b) = f (z)} . . . . . {b = y, x = z, x = f (b), g(y, z) = u, b = z} . . . . . {x = z, b = y, z = f (b), g(y, z) = u, b = z} . . . . . {z = f (b), x = f (b), b = y, g(y, f (b)) = u, b = f (b)} Beachte: Wir haben jeweils das erste bzw. zweite Argument des ersten und zweiten, sowie des zweiten und dritten Atoms gleichgesetzt. Das erste Atom wird damit auch dem dritten Atom implizit gleichgesetzt. E ⇒ ⊥ elim. ⇒ elim. ⇒ decomp. ⇒ clash 274 Die Atome sind (paarweise, aber) nicht gemeinsam unifizierbar! Der Resolutionskalkül für allgemeine Klauselmengen Zur Erinnerung: Ziel ist die Ableitung der leeren Klausel als Nachweis der Unerfüllbarkeit der Ausgangs-Klauselmenge. PL-Resolution = AL-Resolution + Unifikation Zusätzlich zu beachten: • Variablenumbenennung (vor jeder Anwendung der Resolutionsregel) • Faktorisierung (= Unifikation innerhalb von Klauseln) 276 = {Q(x), P (x)} C2 = {¬P (f (x)), Q(x)} ? Beispiel (Notwendigkeit der Umbenennung) C1 – {P (x), P (f (x))} ist nicht unifizierbar: . – {x = f (x)} ist nicht lösbar (siehe ‘occurs check’) Aber C2 repräsentiert (∀x)[¬P (f (x)) ∨ Q(x)] =PL (∀y)[¬P (f (y)) ∨ Q(y)] Wir müssen das Paar C1 , C20 = {¬P (f (y)), Q(y)} testen: – {P (x), P (f (y))} ist unifizierbar: . – Die Lösung {x = f (y)} repräsentiert den MGU σ = {x ← f (y)} Entsprechend ergibt sich folgende Inferenz (Resolutionsschritt): 277 C2 = {¬P (u), ¬P (v)} Variante C20 C1 σ σ {Q(f (y)), P (f (y))} {¬P (f (y)), Q(y)} {Q(f (y)), Q(y)} Motivation der Faktorisierung: C1 = {P (x), P (y)} Beachte: {C1 , C2 } ist unerfüllbar. C1 , C2 sind variablenfremd, aber {} ist nicht durch ‘binäre’ Resolution ableitbar! C3 = {P (x), ¬P (v)} = {P (y), ¬P (v)} C6 C4 = = {P (x), ¬P (u)} {P (y), ¬P (u)} Es gibt nur folgende Resolventen: C5 Beobachtung: C3 – C6 sind Varianten von einander. =⇒ Es gibt bis auf Umbenennung nur einen Resolventen C3 . In der nächsten Generation: C7 = {P (y), P (z)} von C10 = {P (x), P (z)} und C3 Auch alle weiteren Resolventen sind ebenfalls nur Varianten bereits vorhandener Klauseln! 279 Beispiel (Umbenennung immer notwendig) ohne Umbenennung (hier: korrekt, aber unzureichend!): {¬P (f (y)), R(z, y)} {R(x, y), P (x)} σ σ {R(f (y), y), P (f (y))} {¬P (f (y)), R(z, y)} {R(f (y), y), R(z, y)} wobei σ = mgu{P (x), P (f (y))} = {x ← f (y)} mit Umbenennung (korrekt und hinreichend allgemein): {¬P (f (y)), R(z, y)} {R(x, u), P (x)} σ σ {R(f (y), u), P (f (y))} {¬P (f (y)), R(z, y)} {R(f (y), u), R(z, y)} {R(f (y), u), R(z, y)} ist allgemeiner als {R(f (y), y), R(z, y)} =⇒ es sind immer variablenfremde Varianten zu resolvieren! 278 C2 = {¬P (u), ¬P (v)} Lösung des Problems: Unifikation auch innerhalb von Klauseln C1 = {P (x), P (y)} Beachte: Aus C1 folgt bereits {P (x)}, aus C2 folgt bereits {¬P (u)}: =⇒ Wende σ = mgu{P (x), P (y)} = {x ← y} auf C1 an. Wende ρ = mgu{P (u), P (v)} = {u ← v} auf C2 an. Die resultierenden Klauseln heißen Faktoren. {} {¬P (u), ¬P (v)} ρ {¬P (v)} θ {¬P (v)} Leere Klausel durch Faktorisierung + AL-Resolution ableitbar: {P (x), P (y)} σ {P (y)} θ {P (v)} wobei θ = mgu{P (y), P (v)} = {y ← v} Beachte: Auch {{P (x), P (a)}, {¬P (u), ¬P (a)}} benötigt Faktorisierung. 280 Faktor, binärer Resolvent Definition: Die Klausel σ(C) heißt Faktor von Klausel C falls σ = mgu(D) für eine Teil-Klausel D ⊆ C. Beachte: Jede Klausel ist auch ein Faktor von sich selbst! (= Randfall: Unifikation einer Singleton-Teil-Klausel) . Es seien C und D Klauseln die modulo Unifikation duale Literale . . enthalten; d.h. C = C 0 ∪ {A} und D = D 0 ∪ {¬A0 }, wobei A und A0 unifizierbar sind. Die binäre (PL-)Resolutionsregel lautet: . C 0 ∪ {A} {¬A0 } ∪ D 0 θ(C 0 ∪ D 0 ) wobei θ = mgu{A, A0 }. θ(C 0 ∪ D 0 ) heißt binärer Resolvent der Elternklauseln C und D. Beispiel: Die Klauseln {P (x, g(y)), ¬P (f (y), x)} und {¬P (f (u), v), P (u, u)} haben zwei binäre Resolventen: {P (x, g(y)), ¬P (f (y), x)} {¬P (f (u), v), P (u, u)} σ {¬P (f (y), f (u)), P (u, u)} mit σ = mgu{P (x, g(y)), P (f (u), v)} = {x ← f (u), v ← g(y)}, und {P (x, g(y)), ¬P (f (y), x)} {¬P (f (u), v), P (u, u)} ρ {P (f (y), g(y)), ¬P (f (f (y)), v)} mit ρ = mgu{P (f (y), x), P (u, u)} = {u ← f (y), x ← f (y)} 282 Resolutionsableitung 281 Robinson-Resolvent . Sei Π eine Klauselmenge. Eine (Robinson-)Resolutionsableitung von Km aus Π ist eine Folge von Klauseln . 284 Wir schreiben Resolutionsableitungen auch in Baumform. Eine Resolutionsableitung von {} aus Π heißt Resolutionswiderlegung von Π. • K` ist ein Robinson-Resolvent von variablenfremden Varianten der (Eltern-)Klauseln Ki und Kj mit i, j < `. • entweder K` ist eine Variante einer Klausel ∈ Π (Kurzschreibweise: K` ∈0 Π), sodass für alle 1 ≤ ` ≤ m gilt: K1 , . . . , Km Binäre Resolution und Faktorisierung lassen sich zu einer Regel kombinieren: C 0 ∪ {A , . . . , A } {¬A10 , . . . , ¬An0 } ∪ D 0 1 m θ(C 0 ∪ D 0 ) wobei θ = mgu{A1 , . . . , Am , A10 , . . . , An0 }. θ(A1 ) = θ(A10 ) = θ(A2 ) = . . . = θ(An0 ) heißt resolviertes Atom. θ(C 0 ∪ D 0 ) heißt Robinson-Resolvent von C und D. (Nach John Alan Robinson, Erfinder des Resolutionsverfahrens.) • Jeder binäre Resolvent ist auch ein Robinson-Resolvent. • Robinson-Resolution ist zielgerichteter als binäre Resolution + Faktorisierung: Nicht alle Faktoren führen zu (binären) Resolventen. 283 Beispiel Eine alternative Resolutionswiderlegung von Π: Beispiel (Fortsetzung) mit MGU σ = {x ← f (u), y ← f (u)}, resolviertes Atom: P (f (u)) 288 • In der Praxis sind diverse (Beweis-)Strategien und Redundanzeliminationen von großer Bedeutung • Keine Axiome, eine Regel mit Unifikation als Sub-Routine; gut automatisierbar • Vollständigkeit: Relevant ist nur Widerlegungsvollständigkeit: Aus unerfüllbaren Klauselmengen ist die leere Klausel ableitbar • Korrektheit: aus Π abgeleitete Klauseln folgen logisch aus Π • Indirektes Verfahren: Suche nach Widerlegung • Zweistufiges Verfahren: KNF-Transformation (mit Skolemisierung) + Resolution (= AL-Resolution mit Unifikation) • Basisobjekte: PL-Klauseln Eigenschaften des Resolutionskalküls (PL) 286 resolviertes Atom: P (f (f (c))) 7. {} Robinson-Resolvent von 5, 6; mit MGU θ = {z ← c} 6. {¬P (f (f (z))} ∈0 Π MGU ρ = {u ← c, v ← c}, resolviertes Atom: P (c) 5. {P (f (f (c)))} Robinson-Resolvent von 3, 4; 4. {P (c)} ∈0 Π 3. {¬P (u), ¬P (v), P (f (f (u)))} Robinson-Resolvent von 1, 2; 2. {¬P (u), ¬P (v), P (f (u))} ∈0 Π 1. {¬P (x), ¬P (y), P (f (x))} ∈0 Π Π = {{P (c)}, {¬P (x), ¬P (y), P (f (x))}, {¬P (f (f (x))}} ist unerfüllbar. Resolutionswiderlegung: 1. {P (c)} ∈0 Π 2. {¬P (x), ¬P (y), P (f (x))} ∈0 Π 3. {P (f (c))} Robinson-Resolvent von 1, 2; MGU σ = {x ← c, y ← c} resolviertes Atom: P (c) 4. {P (f (f (c)))} Robinson-Resolvent von 2, 3; θ MGU ρ = {x ← f (c), y ← f (c)}, resolviertes Atom: P (f (c)) 5. {¬P (f (f (z))} ∈0 Π 6. {} Robinson-Resolvent von 4, 5; MGU θ = {z ← c} 285 resolviertes Atom: P (f (f (c))) Beispiel (Fortsetzung) {¬P (f (f (z)))} Die erste Resolutionswiderlegung von Π in Baumform: {P (c)} {} {¬P (x), ¬P (y), P (f (x))} σ {P (f (c))} ρ {P (f (f (c)))} Die verwendeten MGUs: σ = {x ← c, y ← c} ρ = {x ← f (c), y ← f (c)} θ = {z ← c} 287 Gesamtbeispiel zum Resolutionsverfahren (Forts.) • cl(trans) = cl((∀x)(∀y)(∀z)[¬(R(x, y) ∧ R(y, z)) ∨ R(x, z)]) = {{¬R(x, y), ¬R(y, z), R(x, z)}} Transformation in Klauselform: Zeigen Sie mit dem Resolutionskalkül, dass jede nicht-triviale, symmetrische und transitive Relation auch reflexiv ist. Gesamtbeispiel zum Resolutionsverfahren Also: trans, sym, nontriv |= refl , 292 θ = {z ← c} σ = {v ← z, u ← z} γ = {x ← z, y ← f (z)} ρ = {x ← z, y ← f (z)} wobei Ctrans = {¬R(x, y), ¬R(y, u), R(x, u)} und {} {R(z, f (z))} Ctrans γ {¬R(x, y), R(y, x)} {R(z, f (z))} {¬R(f (z), u), R(z, u)} ρ Variante {R(f (z), z)} {¬R(f (v), u), R(v, u)} σ {R(z, z)} {¬R(c, c)} Gesamtbeispiel zum Resolutionsverfahren (Baumform) 290 Wir erhalten die Klauselmenge Π = {C1 , C2 , C3 , C4 }, mit C1 = {¬R(x, y), ¬R(y, z)), R(x, z)} C2 = {¬R(x, y), R(y, x)} C3 = {R(x, f (x))} C4 = {¬R(c, c)} • cl(¬refl) = cl(¬(∀x)R(x, x)) = cl((∃x)¬R(x, x)) = {{¬R(c, c)}} • cl(nontriv) = cl((∀x)R(x, f (x))) = {{R(x, f (x))}} • cl(sym) = cl((∀x)(∀y)[¬R(x, y) ∨ R(y, x)]) = {{¬R(x, y), R(y, x)}} wobei trans = (∀x)(∀y)(∀z)[(R(x, y) ∧ R(y, z)) ⊃ R(x, z)] sym = (∀x)(∀y)[R(x, y) ⊃ R(y, x)] nontriv = (∀x)(∃y)R(x, y) refl = (∀x)R(x, x) 289 Gesamtbeispiel zum Resolutionsverfahren (Forts.) Resolutionswiderlegung von Π: 1. {¬R(x, y), R(y, x)} ∈0 Π 2. {R(z, f (z))} ∈0 Π 3. {R(f (z), z)} von 1,2; MGU: {x ← z, y ← f (z)} 4. {¬R(x, y), ¬R(y, u), R(x, u)} ∈0 Π 5. {¬R(f (z), u), R(z, u)} von 2,4; MGU: {x ← z, y ← f (z)} 50 . {¬R(f (v), u), R(v, u)} Variante von 5 6. {R(z, z)} von 3,5’; MGU: {v ← z, u ← z} 7. {¬R(c, c)} ∈0 Π 8. {} von 6,7; MGU: {z ← c} 291 θ