Aussagenlogik Einführung David Hilbert und Wilhelm Ackermann Kurt Gödel Terminologie zu aussagenlogischen Formeln Syntax und Semantik Erinnerung: Induktive Mengendefinitionen Erinnerung: Induktive Mengendefinitionen Erinnerung: Definitionen über induktiv definierten Mengen Erinnerung: Definitionen über induktiv definierten Mengen Boolesche Operationen Modellierung Ungerichtete Graphen Ungerichtete Graphen Sudoku Sudoku Sudokuformel Superhirn Formeln in Scheme Formeln in Scheme Variablenbelegungen in Scheme Auswertung von Formeln in Scheme Eindeutige Konstruktion von Formeln Erinnerung: Das Beweisprinzip der vollständigen Induktion Erinnerung: Das Beweisprinzip der vollständigen Induktion Aussagenlogische Gesetze Erinnerung: Beweisprinzip der Induktion Äquivalenz und Normalformen Negationsnormalform Umwandlung in NNF Umwandlung in KNF Erfüllbarkeitstests Naiver Erfüllbarkeitstest Ein Dreieck ist nicht bipartit DPLL-Algorithmus DPLL-Algorithmus mit erfüllender Belegung DP-Algorithmus Semi-Unerfüllbarkeitstest für unendliche Formelmengen Ein Dreieck ist nicht bipartit Erinnerung: Definition durch vollständige Induktion Erinnerung: Definition durch vollständige Induktion Das Dominoproblem Mathematische Modellierung des Dominoproblems Logische Modellierung des Dominoproblems Negativer Semi-Entscheidungsalgorithmus für das Dominoproblem Die Folgerungsbeziehung Ripple-Carry-Addiernetz (8 Bit) Beweissysteme Ein Dreieck ist nicht bipartit (Semi-)Entscheidungsverfahren Schaltelemente Semi-Entscheidungsverfahren für die Folgerungsbeziehung Ein Beweis im Hilbert-System Ein Beweis im Hilbert-System Ein natürlicher Beweis Ein natürlicher Beweis in natürlicher Form Korrektheit- und Vollständigkeit Das Resolutionssystem in Kurzform Das Hilbert-System in Kurzform Der Markierungsalgorithmus für Horn-Formeln Der Markierungsalgorithmus für Horn-Formeln Das natürliche Beweissystem in Kurzform Horn-Formeln Horn-Klauseln Ein Beispiel für den Markierungsalgorithmus Prädikatenlogik Syntax und Semantik Beispiele für Signaturen Strukturen Graphstrukturen, ΣGraph = {E /2} Arithmetische Strukturen, ΣAr = {0̃, 1̃, +//2, ×//2} Ordnungen, ΣOrd = {</2} Boolesche Algebren, ΣBA = {⊥, >, ∼//1, u//2, t//2} Bibliotheken, ΣBib = {Buch/3, Nutzer/3, Entliehen/2} Boolesche Algebren Einsatz von Prädikatenlogik Ordnungen Wechselseitiger Ausschluss Datenbankanfragen Auswertung von Formeln Auswertung von Formeln Äquivalenz und Normalform Umwandlung in PNF Umwandlung in PNF, Teil II Das Gültigkeitsproblem Erfüllbarkeit und Gültigkeit Das Postsche Korrespondenzproblem Gültigkeitstest für existenzielle Formeln Skolemisierung Allgemeiner Gültigkeitstest Die Folgerungsbeziehung und Beweissysteme Folgerungstest Ein Hilbert-System für die Prädikatenlogik Ein Hilbert-System für die Prädikatenlogik Ein Hilbert-System für die Prädikatenlogik Was kommt nach dem Vollständigkeitssatz? Was gibt’s noch in der mathematischen Logik? ZFC Der Satz von Löwenheim-Skolem (einfache Form) Eine interessante Frage aus der Rekursionstheorie Was kommt nach der Prädikatenlogik? Prädikatenlogik zweiter Stufe Informatische Logiken I Informatische Logiken II Hoare-Logik Logikprogrammierung David Hilbert und Wilhelm Ackermann Grundzüge der theoretischen Logik Erste Auflage, 1928, S. 72: Das Entscheidungsproblem ist gelöst, wenn man ein Verfahren kennt, das bei einem vorgelegten logischen Ausdruck durch endlich viele Operationen die Entscheidung über die Allgemeingültigkeit bzw. Erfüllbarkeit erlaubt. [. . . ] das Entscheidungsproblem muss als das Hauptproblem der mathematischen Logik bezeichnet werden. Sechste Auflage, 1972, S. 120: Es konnte nun zuerst von A. Church [5] gezeigt werden, daß die obengenannte, einem allgemeinen Entscheidungsverfahren entsprechende Funktion nicht zu den berechenbaren Funktionen gehört. Kurt Gödel Über formal unentscheidbare Sätze der Principia mathematica und verwandter Systeme I, Monatshefte für Mathematik und Physik 38, 173–198 Seite 173: Die Entwicklung der Mathematik in der Richtung zu größerer Exaktheit hat bekanntlich dazu geführt, daß weite Gebiete von ihr formalisiert wurden, in der Art, daß das Beweisen nach einigen wenigen mechanischen Regeln vollzogen werden kann. [. . . ] Diese beiden Systeme sind so weit, daß alle heute in der Mathematik angewendeten Beweismethoden in ihnen formalisiert, d. h. auf einige wenige Axiome und Schlußregeln zurückgeführt sind. Es liegt daher die Vermutung nahe, daß diese Axiome und Schlußregeln dazu ausreichen, alle mathematischen Fragen, die sich in den betreffenden Systemen überhaupt formal ausdrücken lassen, auch zu entscheiden. Im folgenden wird gezeigt, daß dies nicht der Fall ist [. . . ] David Hilbert, 1862–1943 Kurt Gödel, 1906–1978 Terminologie zu aussagenlogischen Formeln Form Lesart (ϕ ∨ ψ) (ϕ ∧ ψ) (ϕ → ψ) (ϕ ↔ ψ) oder Disjunktion und Konjunktion wenn . . . , so . . . genau dann, wenn Konditional Bikonditional Formeltyp ϕ Disjunktionsglied Konjunktionsglied Antezedenz ψ Disjunktionsglied Konjunktionsglied Sukzedenz Eine aussagenlogische Formel der Form ¬ϕ heißt Negation und wird nicht ϕ gelesen. 0 und 1 heißen Wahrheitswerte und werden falsch und wahr genannt. Erinnerung: Induktive Mengendefinitionen Definition einer Menge M: 1. Induktionsanfang (Basismenge): Es wird eine Menge M0 von Basiselementen, die alle zu M gehören sollen, vorgegeben. 2. Induktionsschritt (durch Induktionsregeln): Es werden Regeln der Form Wenn x0 ∈ M, . . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M. angegeben. M ist die kleinste Menge, die M0 enthält und den Regeln entspricht. Erinnerung: Induktive Mengendefinitionen Definition einer Menge M: 1. Induktionsanfang (Basismenge): Es wird eine Menge M0 von Basiselementen, die alle zu M gehören sollen, vorgegeben. 2. Induktionsschritt (durch Induktionsregeln): Es werden Regeln der Form Wenn x0 ∈ M, . . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M. angegeben. M ist die kleinste Menge, die M0 enthält und den Regeln entspricht. M ist eindeutig definiert: I Zu jedem m ∈ M gibt es höchstens eine Regel und eine Wahl m0 , . . . , mr −1 , so dass m durch Anwendung der Regel auf m0 , . . . , mr −1 entsteht. I Kein m ∈ M0 entsteht durch Anwendung einer Regel. Erinnerung: Definitionen über induktiv definierten Mengen Annahme M ist eine eindeutig induktiv definierte Menge (siehe oben). Definition einer Funktion f auf M: 1. Induktionsanfang (Basiszuordnung): Zu jedem Element m ∈ M0 wird f (m) angegeben. 2. Induktionsschritt (durch Induktionsregeln): Zu jeder Regel der Mengendefinition wird eine korrespondierende Regel der Form Wenn x0 ∈ M, . . . , xr −1 ∈ M, so f (h(x0 , . . . , xr −1 )) = h0 (f (x0 ), . . . , f (xr −1 )). angegeben. Erinnerung: Definitionen über induktiv definierten Mengen Annahme M ist eine eindeutig induktiv definierte Menge (siehe oben). Definition einer Funktion f auf M: 1. Induktionsanfang (Basiszuordnung): Zu jedem Element m ∈ M0 wird f (m) angegeben. 2. Induktionsschritt (durch Induktionsregeln): Zu jeder Regel der Mengendefinition wird eine korrespondierende Regel der Form Wenn x0 ∈ M, . . . , xr −1 ∈ M, so f (h(x0 , . . . , xr −1 )) = h0 (f (x0 ), . . . , f (xr −1 )). angegeben. Variante Man greift bei den Induktionsregeln auch auf die xi zurück: Wenn x0 ∈ M, . . . , xr −1 ∈ M, so f (h(x0 , . . . , xr −1 )) = h0 (x0 , . . . , xr −1 , f (x0 ), . . . , f (xr −1 )). George Boole, 1815–1864 Gottlob Frege, 1848–1925 Boolesche Operationen Negation b ¬b ˙ 0 1 1 0 Zweistellige Operationen ˙ 1 b0 ∧b ˙ 1 b0 →b ˙ 1 b0 ↔b ˙ 1 b0 b1 b0 ∨b 0 0 0 0 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 Ungerichtete Graphen Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus I I einer Menge V von Knoten und einer Menge E ⊆ E2 von Kanten. v4 v3 v2 v0 v1 v6 v5 Eine k-Färbung ist eine Funktion c : V → {0, . . . , k − 1}. Sie heißt gültig, wenn c(v ) 6= c(w ) für alle (v , w ) ∈ E gilt. Ein Graph heißt bipartit, wenn es eine zulässige 2-Färbung gibt. Ungerichtete Graphen Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus I I einer Menge V von Knoten und einer Menge E ⊆ E2 von Kanten. v4 v3 v2 v0 v1 v6 v5 Eine k-Färbung ist eine Funktion c : V → {0, . . . , k − 1}. Sie heißt gültig, wenn c(v ) 6= c(w ) für alle (v , w ) ∈ E gilt. Ein Graph heißt bipartit, wenn es eine zulässige 2-Färbung gibt. Sudoku 5 3 7 6 1 9 5 9 8 6 8 6 4 8 3 7 2 6 2 8 4 1 9 8 7 3 1 6 5 9 Bedingungen Sei N = {1, . . . , 9}. I In jeder Zeile jedes Element aus N genau einmal. I In jeder Spalte jedes Element aus N genau einmal. I In jeder Region jedes Element aus N genau einmal. Dabei ist eine Region eine durch fette Linien eingegrenzte 3 × 3-Matrix. Sudoku 5 6 1 8 4 7 9 2 3 3 7 9 5 2 1 6 8 4 4 2 8 9 6 3 1 7 5 6 1 3 7 8 9 5 4 2 7 9 4 6 5 2 3 1 8 8 5 2 1 3 4 7 9 6 9 3 5 4 7 8 2 6 1 1 4 6 2 9 5 8 3 7 2 8 7 3 1 6 4 5 9 Bedingungen Sei N = {1, . . . , 9}. I In jeder Zeile jedes Element aus N genau einmal. I In jeder Spalte jedes Element aus N genau einmal. I In jeder Region jedes Element aus N genau einmal. Dabei ist eine Region eine durch fette Linien eingegrenzte 3 × 3-Matrix. Sudokuformel ϕS = ϕMatrix ∧ ψS ∧ ϕLösung mit ϕMatrix = ^ _ i,j∈N k∈N ψS = ^ k Xi,j ∧ ^ i,j,k,k 0 ∈N:k6=k 0 k Xi,j , i,j,k∈N:Si,j =k ϕLösung ^ _ k Xi,j i,k∈N j∈N ^ ^ _ k Xi,j = j,k∈N i∈N _ ^ k Xp3+p 0 +1,q3+q 0 +1 p,q∈D,k∈N p 0 ,q 0 ∈D 0 k k ¬Xi,j ∨ ¬Xi,j , Superhirn I scharzer Stecker: an einer Position stimmt Farbe überein I weißer Stecker: Farbe stimmt, Position aber nicht Ziel Finde Formel, die beschreibt, welche Reihen mit der bisherigen Information verträglich sind. Schwieriger . . . Formeln in Scheme ; Structures for constructing formulas. (define-struct variable (index)) (define-struct negation (negated)) (define-struct disjunction (left right)) (define-struct conjunction (left right)) (define-struct conditional (left right)) (define-struct biconditional (left right)) Variablenbelegungen in Scheme ; Structure for a single assignment: variable |-> truth value. (define-struct sass (index value)) ; Structure for an undefined value. (define-struct undefined ()) ; Look-up of a variable value; an assignment is a list of sass. (define (look-up index assignment) (if (null? assignment) (make-undefined) (if (= index (sass-index (first assignment))) (sass-value (first assignment)) (look-up index (rest assignment))))) Auswertung von Formeln in Scheme ; Evaluate formula w.r.t. a variable assignment. (define (evaluate formula assignment) (cond ((eq? formula #t) #t) ((eq? formula #f) #f) ((variable? formula) (look-up (variable-index formula) assignment)) ((negation? formula) (not (evaluate (negation-negated formula) assignment))) ((disjunction? formula) (or (evaluate (disjunction-left formula) assignment) (evaluate (disjunction-right formula) assignment))) ((conjunction? formula) (and (evaluate (conjunction-left formula) assignment) (evaluate (conjunction-right formula) assignment))) ((conditional? formula) (or (not (evaluate (conditional-left formula) assignment)) (evaluate (conditional-right formula) assignment))) ((biconditional? formula) (eq? (evaluate (biconditional-left formula) assignment) (evaluate (biconditional-right formula) assignment))))) Erinnerung: Das Beweisprinzip der vollständigen Induktion Beweis dafür, dass jede natürliche Zahl eine gewisse Eigenschaft besitzt: 1. Induktionsanfang: Man zeigt, dass die Zahl 0 die Eigenschaft besitzt. 2. Induktionsschritt: 2.1 Induktionsannahme: Man nimmt an, dass eine beliebige Zahl n die Eigenschaft besitzt. 2.2 Man zeigt, dass die Induktionsbehauptung gilt. Induktionsbehauptung: Die Zahl n + 1 besitzt die Eigenschaft. Erinnerung: Das Beweisprinzip der vollständigen Induktion Beweis dafür, dass jede natürliche Zahl eine gewisse Eigenschaft besitzt: 1. Induktionsanfang: Man zeigt, dass die Zahl 0 die Eigenschaft besitzt. 2. Induktionsschritt: 2.1 Induktionsannahme: Man nimmt an, dass eine beliebige Zahl n die Eigenschaft besitzt. 2.2 Man zeigt, dass die Induktionsbehauptung gilt. Induktionsbehauptung: Die Zahl n + 1 besitzt die Eigenschaft. Variante Allgemeinere Induktionsannahme: 2.1 Man nimmt an, dass für eine natürliche Zahl n alle Zahlen m ≤ n die Eigenschaft besitzen. Aussagenlogische Gesetze ϕ∨ϕ≡ϕ ϕ∧ϕ≡ϕ ϕ∨ψ ≡ψ∨ϕ ϕ∧ψ ≡ψ∧ϕ (Idempotenz) (Kommutativität) (ϕ ∧ ψ) ∧ χ ≡ ϕ ∧ (ψ ∧ χ) (ϕ ∨ ψ) ∨ χ ≡ ϕ ∨ (ψ ∨ χ) ϕ ∧ (ϕ ∨ ψ) ≡ ϕ ϕ ∨ (ϕ ∧ ψ) ≡ ϕ (ϕ ∧ ψ) ∨ χ ≡ (ϕ ∨ χ) ∧ (ψ ∨ χ) (ϕ ∨ ψ) ∧ χ ≡ (ϕ ∧ χ) ∨ (ψ ∧ χ) (Distributivität) ¬¬ϕ ≡ ϕ ¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ ϕ ∧ ¬ϕ ≡ 0 ϕ∧0≡0 ¬0 ≡ 1 ϕ ↔ ψ ≡ (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ) ϕ → ψ ≡ ¬ψ → ¬ϕ (Assoziativität) (Absorption) (Doppelte Negation) ¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ ϕ ∨ ¬ϕ ≡ 1 (De Morgan) (Tertium non datur) ϕ ∨ 1 ≡ 1 (Maximum und Minimum) ¬1 ≡ 0 (Komplementierung) ϕ → ψ ≡ ¬ϕ ∨ ψ (Elimination von → und ↔) (Kontraposition) Erinnerung: Beweisprinzip der Induktion Beweis dafür, dass jedes Element einer induktiv definierten Menge M eine gewisse Eigenschaft besitzt. 1. Induktionsanfang: Man zeigt, dass jedes Element der Basismenge M0 die Eigenschaft besitzt. 2. Induktionsschritt: Man zeigt, dass für jede Regel gilt: Wenn x0 ∈ M, . . . , xr −1 ∈ M und x0 , . . . , xr −1 die Eigenschaft besitzen, so besitzt auch h(x0 , . . . , xr −1 ) die Eigenschaft. Negationsnormalform Die Menge NNF AL ist induktiv definiert durch: 1. Induktionsanfang (Basismenge): Die Basiselemente sind 0, 1, Xi und ¬Xi für i ∈ N. 2. Induktionsschritt (Induktionsregeln): Sind ϕ, ψ ∈ NNF AL , so sind (ϕ ∨ ψ) ∈ NNF AL und (ϕ ∧ ψ) ∈ NNF AL . Umwandlung in NNF NNF(ϕ) Vorbedingung: ϕ ∈ FAL . if ϕ ∈ {Xi , 0, 1} then return ϕ if ϕ = ¬ψ then return NegNNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return NNF(ϕ0 ) ∨ NNF(ϕ1 ) if ϕ = ϕ0 ∧ ϕ1 then return NNF(ϕ0 ) ∧ NNF(ϕ1 ) if ϕ = ϕ0 → ϕ1 then return NNF(¬ϕ0 ∨ ϕ1 ) if ϕ = ϕ0 ↔ ϕ1 then return NNF(¬ϕ0 ∨ ϕ1 ) ∧ . . . Nachbedingung: return ∈ NNF AL und return ≡ ϕ. NegNNF(ϕ) Vorbedingung: ϕ ∈ FAL . if ϕ = Xi then return ¬Xi if ϕ = 0 then return 1 if ϕ = 1 then return 0 if ϕ = ¬ψ then return NNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return NegNNF(ϕ0 ) ∧ NegNNF(ϕ1 ) ... Nachbedingung: return ∈ NNF AL und return ≡ ¬ϕ. Umwandlung in KNF KNF(ϕ) Vorbedingung: ϕ ∈ NNF AL . if ϕ = 0 then return {∅} if ϕ = 1 then return {} if ϕ = ¬Xi then return {{¬Xi }} if ϕ = Xi then return {{Xi }} if ϕ = ϕ0 ∧ ϕ1 then return KNF(ϕ0 ) ∪ KNF(ϕ1 ) if ϕ = ϕ0 ∨ ϕ1 then return {K0 ∪ KV : K0 ∈ KNF(ϕ0 ) und K1 ∈ KNF(ϕ1 )} 1W Nachbedingung: return ≡ ϕ. Naiver Erfüllbarkeitstest NaiveSAT(ϕ) Vorbedingung: ϕ ∈ FAL . let V = vars(ϕ) forall β : V → {0, 1} if JϕKβ = 1 then return 1 return 0 Nachbedingung: ϕ ist erfüllbar genau dann, wenn return = 1. Ein Dreieck ist nicht bipartit Anwendung des DPLL-Lemmas Zu zeigen: VW unfb( {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }}) Beweis mit Hilfe des Lemmas: ^_ erfb( {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }}) gdw. (Lemma, Teil 1, i = 0) ^_ erfb( {{¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {¬X2 }}) oder ^_ erfb( {{X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 }, }) gdw. (Lemma, Teil 2, L = ¬X1 bzw. L = X1 ) ^_ ^_ erfb( {{X2 }, {¬X2 }}) oder erfb( {{¬X2 }, {X2 }, }) gdw. (Lemma, Teil 2, L = X2 bzw. L = ¬X2 ) ^_ ^_ erfb( {∅}) oder erfb( {∅}) — unmöglich! Martin Davis, 1920 – Hilary Putnam, 31. Juli 1926 – DPLL-Algorithmus DPLL-SAT(M) Vorbedingung: M Klauselmenge — Vereinfachung (Einheitsklauseln eliminieren) while exists unit clause {L} ∈ M do let M = M|L — Abbruchbedingung if M = ∅ then return 1 if ∅ ∈ M then return 0 — rekursiver Aufruf (falls nötig) let Xi ∈ vars(M) if DPLL-SAT(M|Xi ) = 1 then return 1 return DPLL-SAT(M|V¬X Wi) Nachbedingung: erfb( M) genau dann, wenn return = 1. DPLL-Algorithmus mit erfüllender Belegung DPLL-SAT(M, β) Vorbedingung: M Klauselmenge while exists unit clause {L} ∈ M do let M = M|L if L positiv then β(L) = 1 else β(L̄) = 0 if ∅ ∈ M then return unerfüllbar if M = ∅ then return β let Xi ∈ vars(M) let γ = DPLL-SAT(M|Xi , β[1/Xi ]) = 1 if γ 6= unerfüllbar then return γ return DPLL-SAT(M|¬Xi , β[0/Xi ]) Nachbedingung: VW VW Falls erfb( VWM β), dann β ⊆ return und return |= M. Falls unfb( M β), dann return = unerfüllbar. DP-Algorithmus DP-SAT(M) Vorbedingung: M Klauselmenge ohne tautologische Klauseln while M 6= ∅ und ∅ ∈ /M let Xi ∈ vars(M) 6= ∅ let M 0 = M ∪ {K ∪ K 0 : K ∪· {Xi } ∈ M und K 0 ∪· {¬Xi } ∈ M} let M 00 = {K ∈ M 0 : Xi ∈ / vars(K )} 00 let M = {K ∈ M : K nicht tautologisch} if ∅ ∈ M then return 0 else return 1 VW Nachbedingung: erfb( M) genau dann, wenn return = 1. Semi-Unerfüllbarkeitstest für unendliche Formelmengen SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische Formeln. NegSemiSAT(F ) Vorbedingung: F [0..] ist ein unendliches Feld von aussagenlogischen Formeln. let i = 0 let ϕ = 1 repeat let ϕ = ϕ ∧ F [i] let b = SAT(ϕ) let i = i + 1 until b = 0 Nachbedingung: Bei Termination gilt unfb({F [0], F [1], . . . }); bei Divergenz gilt erfb({F [0], F [1], . . . }). Ein Dreieck ist nicht bipartit Anwendung des DP-Lemmas erfb VW gdw. erfb { {X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 } } VW { {X1 , ¬X1 }, {X1 , ¬X2 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , ¬X1 }, {¬X2 , X2 } } gdw. erfb VW { {X1 , ¬X2 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , ¬X1 } } gdw. erfb VW { {¬X2 }, {X2 , ¬X2 }, {X2 , ¬X2 }, {X2 } } gdw. erfb VW { {¬X2 }, {X2 } } gdw. erfb VW {∅} Erinnerung: Definition durch vollständige Induktion Konstruktion einer Funktion f , die auf N definiert ist. 1. Induktionsanfang (Basiszuordnung): Man legt f (0) fest. 2. Induktionsschritt: 2.1 Induktionsannahme: Man nimmt an, dass f (n) für ein beliebiges n ∈ N definiert ist. 2.2 Neue Zuordnung: Man legt f (n + 1) in Abhängigkeit von n und f (n) fest. Erinnerung: Definition durch vollständige Induktion Konstruktion einer Funktion f , die auf N definiert ist. 1. Induktionsanfang (Basiszuordnung): Man legt f (0) fest. 2. Induktionsschritt: 2.1 Induktionsannahme: Man nimmt an, dass f (n) für ein beliebiges n ∈ N definiert ist. 2.2 Neue Zuordnung: Man legt f (n + 1) in Abhängigkeit von n und f (n) fest. Variante Allgemeinere Induktionsannahme: 2.1 Man nimmt an, dass f (m) für alle natürlichen Zahl m mit m ≤ n gilt. 2.2 Man legt f (n + 1) in Abhängigkeit von n und f (0), . . . , f (n) fest. Das Dominoproblem Gegeben Satz von nicht drehbaren Dominosteinen, etwa , und Frage Kann man den ersten Quadranten vollständig parkettieren? .. Hier ja: . . Mathematische Modellierung des Dominoproblems Farbmenge C = {0, . . . , c − 1}. Dominostein Funktion f : {0, 1, 2, 3} → C , wobei 0 für rechts, 1 für oben, 2 für links und 3 für unten steht. Satz von Dominosteinen Endliche Menge S von Funktionen {0, 1, 2, 3} → C . Parkettierung des Quadranten Funktion h : N × N → C und v : N × N → C . Dabei steht h(i, j) für die Farbe der Linie zwischen (i, j) und (i + 1, j), analog für v . Passende Parkettierung Für alle i, j ∈ N gilt: I Die Funktion f mit f (0) = v (i, j + 1), f (1) = h(i, j + 1), f (2) = v (i, j) und f (3) = h(i, j) gehört zu S. Logische Modellierung des Dominoproblems Variablen k : Linie von (i, j) zu (i + 1, j) hat Farbe k Hi,j k : Linie von (i, j) zu (i, j + 1) hat Farbe k Vi,j Formeln für Parkettierung, i, j ∈ N ϕi,j = ( _ k Hi,j ∧ k<c _ k Vi,j ) k<c ∧ 0 ^ 0 k k k k ((¬Hi,j ∨ ¬Hi,j ) ∧ (¬Vi,j ∨ ¬Vi,j )) k<k 0 <c Formeln für passend, i, j ∈ N S ψi,j = _ f (3) (Hi,j f (2) ∧ Vi,j f (1) f (0) ∧ Hi,j+1 ∧ Vi,j+1 ) f ∈S Formelmenge für Gesamtproblem S ΦS = {ϕi,j ∧ ψi,j : i, j ∈ N} Negativer Semi-Entscheidungsalgorithmus für das Dominoproblem SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische Formeln. Domino(S) Vorbedingung: S ist ein Satz von Dominosteinen. let n = 0 repeat ^ S let ϕ = ϕi,j ∧ ψi,j i,j≤n let b = SAT(ϕ) let n = n + 1 until b = 0 Nachbedingung: Bei Termination ist S nicht lösbar; bei Divergenz ist S lösbar. Ripple-Carry-Addiernetz (8 Bit) Formales Modell S0 ← A0 ⊕ B0 Exklusives Oder, ⊕ ϕ ⊕ ψ = (ϕ ↔ ¬ψ) C1 ← A0 ∧ B0 S1 ← A1 ⊕ B1 ⊕ C1 C2 ← maj(A1 , B1 , C1 ) Mehrheitsoperation, Maj maj(ϕ0 , ϕ1 , ϕ2 ) = (ϕ0 ∧ ϕ1 ) ∨ (ϕ0 ∧ ϕ2 ) ∨ (ϕ1 ∧ ϕ2 ) S2 ← A2 ⊕ B2 ⊕ C2 C3 ← maj(A2 , B2 , C2 ) Vor- und Nachteile ... + einfache Struktur S7 ← A7 ⊕ B7 ⊕ C7 + wenige Gatter S8 ← maj(A7 , B7 , C7 ) − langsame Laufzeit (linear) Ein Dreieck ist nicht bipartit Ein Resolutionsbeweis Klauselmenge {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }} Beweis 1. {X0 , X1 } 2. {¬X1 , ¬X2 } 3. {X0 , ¬X2 } 4. {X2 , X0 } 5. {X0 } 6. {¬X0 , ¬X1 } 7. {X1 , X2 } 8. {¬X0 , X2 } 9. {¬X2 , ¬X0 } 10. {¬X0 } 11. ∅ (V) (V) (R) (V) (R) (V) (V) (R) (V) (R) (R) mit X1 aus 1. und 2. mit X2 aus 4. und 3. mit X1 aus 7. und 6. mit X2 aus 8. und 9. mit X0 aus 5. und 10. (Semi-)Entscheidungsverfahren Entscheidungsverfahren ja x ∈P x ∈I x ∈ P? x∈ /P Semi-Entscheidungsverfahren nein Negatives Semi-Entscheidungsverfahren x ∈P x ∈I x ∈ P? x∈ /P x ∈P x ∈I x ∈ P? x∈ /P Schaltelemente X1 X2 ≥1 X1 X2 & X1 X2 =1 X1 X2 ≥1 X1 X2 & X1 1 X3 X3 ← (X1 ∨ X2 ) X3 X3 ← (X1 ∧ X2 ) X3 X3 ← (X1 ⊕ X2 ) X3 X3 ← ¬(X1 ∨ X2 ) X3 X3 ← ¬(X1 ∧ X2 ) X2 X2 ← ¬X1 Semi-Entscheidungsverfahren für die Folgerungsbeziehung SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische Formeln. SemiImpl(F , ϕ) Vorbedingung: F [0..] ist ein unendliches Feld von aussagenlogischen Formeln; ϕ eine einzelne. let i = 0 let ψ = ¬ϕ repeat let ψ = ψ ∧ F [i] let b = SAT(ψ) let i = i + 1 until b = 0 Nachbedingung: Bei Termination gilt {F [0], F [1], . . . } |= ϕ; bei Divergenz gilt {F [0], F [1], . . . } 6|= ϕ. Ein Beweis im Hilbert-System Aus Martin Grohes Vorlesung Behauptung {X0 → X1 , X1 → X2 } `H X0 → X2 . Kommentierter Beweis 1. (V) X1 → X2 2. (Ax1) mit ϕ = X1 → X2 und ψ = X0 (X1 → X2 ) → (X0 → (X1 → X2 )) 3. (MP) auf 1. und 2. X0 → (X1 → X2 ) 4. (Ax2) mit ϕ = X0 , ψ = X1 und χ = X2 (X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 )) 5. (MP) auf 3. und 4. (X0 → X1 ) → (X0 → X2 ) 6. (V) X0 → X1 7. (MP) auf 6. und 5. X0 → X2 Ein Beweis im Hilbert-System Alternative Darstellung: Bruchschreibweise (V) (Ax1) X1 → X2 (X1 → X2 ) → (X0 → (X1 → X2 )) (MP) (Ax2) X0 → (X1 → X2 ) (X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 )) (MP) (V) X0 → X 1 (X0 → X1 ) → (X0 → X2 ) (MP) X0 → X2 Ein natürlicher Beweis Aus [RH] Behauptung (X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 ) Beweis ((X0 ∧ X1 ) → X2 , (X0 , (X1 , X0 ∧ X1 , X2 ), X1 → X2 ), X0 → (X1 → X2 )) Ein natürlicher Beweis in natürlicher Form Behauptung (X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 ) Beweis 1. (V) (X0 ∧ X1 ) → X2 . 2. (A) X0 . 3. (A) X1 . 4. (in-∧) auf 2. und 3.: X0 ∧ X1 . 5. (el-→) auf 4. und 1.: X2 . 6. (in-→) auf 2. und 3.–5.: X1 → X2 . 7. (in-→) auf 1. und 2.–6.: X0 → (X1 → X2 ). Korrektheit- und Vollständigkeit Gegeben 1. Eine (syntaktische) Ableitungsrelation `. 2. Eine semantische Beziehung |=. Korrektheit ` ⊆ |= Vollständigkeit |= ⊆ ` Das Resolutionssystem in Kurzform Axiome Keine! Regeln K ∪· {Xi } K 0 ∪· {¬Xi } K ∪ K0 Das Hilbert-System in Kurzform Axiome (Ax1) (Ax2) (Ax3) ϕ → (ψ → ϕ) (ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ)) (¬ϕ → ¬ψ) → (ψ → ϕ) Regeln (MP) ϕ ϕ→ψ ψ Der Markierungsalgorithmus für Horn-Formeln HornSAT∗ (M) Vorbedingung: M Horn-Klauselmenge. let I = ∅ while exists unit clause {Xi } ∈ M where Xi ∈ / I do let I = I ∪ {Xi } for each K ∈ M do let K = K \ {¬Xi } if ∅ ∈ M then return unerfüllbar else return I VW , so unfb( M). Nachbedingung: Falls return = unerfüllbar VW unerfüllbar, so erfb( Falls return = 6 M) und VW I = {Xi : M |= Xi }. Der Markierungsalgorithmus für Horn-Formeln HornSAT(M) Vorbedingung: M Horn-Klauselmenge mit ausschließlich Tatsachen- und Programmklauseln. let I = ∅ while exists 1 → Xi ∈ M where Xi ∈ / I do let I = I ∪ {Xi } for each ψ = Xi0 ∧ · · · ∧ Xir −1 → Xj ∈ M where r > 0 do if exists k < r such that Xik = Xi then let M = M \ {ψ} ∪ {Xi0 ∧ · · · ∧ Xik−1 ∧ Xik+1 ∧ · · · ∧ Xir −1 → Xj } Insbesondere: Falls r = 1 und k = 0, so M = M \ {ψ} ∪ {1 → Xj }. Nachbedingung: I = folg( V M). Das natürliche Beweissystem in Kurzform (in-∧) ϕ ψ ϕ∧ψ (el-∧-l) ϕ∧ψ ψ (in-∨-l) ψ ϕ∨ψ (in-∨-r) ϕ ϕ∨ψ ϕ∨ψ (el-∨) (el-→) (el-0) ϕ .. . χ χ ϕ 0 ϕ ϕ→ψ ψ ψ .. . χ (el-∧-r) ϕ .. . ψ (in-→) (el-¬) ϕ→ψ ϕ ¬ϕ 0 ϕ∧ψ ϕ ϕ .. . 0 (in-¬) (el-¬¬) ¬ϕ ¬¬ϕ ϕ Horn-Klauseln Tatsachenklausel 1 → Xi Programmklausel Xi0 ∧ · · · ∧ Xir → Xj Zielklausel Xi0 ∧ · · · ∧ Xir → 0 Leere Klausel 1→0 Ein Beispiel für den Markierungsalgorithmus Gegeben M = {1 → X0 , 1 → X2 , (X0 ∧X2 ) → X4 , (X0 ∧X4 ) → X6 , X1 → X0 } Ausführung 0 I M 1 ∅ 1 → X0 , 1 → X2 , (X0 ∧ X2 ) → X4 , (X0 ∧ X4 ) → X6 , X1 → X0 2 X0 1 → X0 , 1 → X2 , X2 → X4 , X4 → X6 , X1 → X0 3 X0 , X2 1 → X0 , 1 → X2 , 1 → X4 , X4 → X6 , X1 → X0 4 X0 , X2 , X4 1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0 5 X0 , X2 , X4 , X6 1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0 Ergebnis Es gilt V M |= X0 , V M |= X2 , V M |= X4 , aber V M 6|= X1 . Beispiele für Signaturen Graphen ΣGraph = {E /2} Arithmetik ΣAr = {0̃, 1̃, +//2, ×//2} Ordnungsstrukturen ΣOrd = {</2} Äquivalenzstrukturen ΣÄq = {≡/2} boolesche Algebren ΣBA = {⊥, >, ∼/1, t//2, u//2} Bibliotheksdatenbanken ΣBib = {Buch/3, Nutzer/3, Entliehen/2} Strukturen Signatur Σ Σ-Struktur S I Eine nicht leere Trägermenge T S , auch mit S bezeichnet. I Für jedes Konstantensymbol c ∈ Σ eine Konstante c S ∈ S. I Für jedes Relationssymbol R/n ∈ Σ eine Relation R S ⊆ S n . I Für jedes Funktionssymbol f //n ∈ Σ eine Funktion f S : S n → S. Notation S = (S, {c S }c∈CΣ , {R S }R∈RΣ , {f S }f ∈FΣ ) oder S = (S, c0S , c1S , . . . , R0S , R1S , . . . , f0S , f1S , . . . ) Graphstrukturen, ΣGraph = {E /2} Ein Graph G v4 v3 v2 v1 v6 v0 T G = {v0 , v1 , . . . , v6 } , v5 E G = {(v0 , v2 ), (v2 , v4 ), (v4 , v1 ), (v1 , v0 ), (v1 , v5 ), (v1 , v3 ), (v3 , v1 ), (v3 , v6 ), (v6 , v6 )} . NSuc, die natürlichen Zahlen mit Nachfolgerrelation 0 1 2 ··· T NSuc = {0, 1, 2, . . . } , E NSuc = {(0, 1), (1, 2), (2, 3), . . . } . Arithmetische Strukturen, ΣAr = {0̃, 1̃, +//2, ×//2} N, die natürlichen Zahlen T N = {0, 1, 2, . . . } , 0̃N = 0 , 1̃N = 1 , +N (a, b) = a + b N × (a, b) = ab für a, b ∈ {0, 1, 2, . . . }, für a, b ∈ {0, 1, 2, . . . }. Z7 , die Reste modulo 7 T Z7 = {0, 1, . . . , 6} , 0̃Z7 = 0 , 1̃Z7 = 1 , +Z7 (a, b) = a + b mod 7 Z7 × (a, b) = ab mod 7 für a, b ∈ {0, 1, . . . , 6}, für a, b ∈ {0, 1, . . . , 6}. Ordnungen, ΣOrd = {</2} Eine partielle Ordnung PO a3 a1 a2 T PO = {0, 1, 2, . . . } , <PO = {(a0 , a1 ), (a0 , a2 ), (a1 , a3 ), (a2 , a3 ), (a0 , a3 )} . a0 Nlt, die natürlichen Zahlen mit natürlicher Ordnung 0 1 2 ··· T Nlt = {0, 1, 2, . . . } , <Nlt = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . } . Boolesche Algebren, ΣBA = {⊥, >, ∼//1, u//2, t//2} B, die“ boolesche Algebra ” T B = {0, 1} , ⊥B = 0 , >B = 1 , ∼B = ¬˙ , tB = ∨˙ , uB = ∧˙ . PN, die Potenzmengenalgebra auf den natürlichen Zahlen T PN = 2{0,1,2,... } , ⊥PN = ∅ , >PN = {0, 1, 2, . . . } , tPN = ∪ , uPN = ∩ , ∼PN (M) = {0, 1, 2, . . . } \ M , für M ⊆ {0, 1, . . . }. Bibliotheken, ΣBib = {Buch/3, Nutzer/3, Entliehen/2} Ein Datenbankzustand DB1 T DB1 = {Wilke, Thomas, Schloß Gripsholm, Tucholsky, N1, B1} , DB1 Buch = {(B1, Tucholsky, Schloß Gripsholm)} , NutzerDB1 = {(N1, Wilke, Thomas)} , EntliehenDB1 = {(N1, B1)} . Ein anderer Datenbankzustand DB2 T DB1 = {Wilke, Thomas, Kürtz, Klaas Ole, Schloß Gripsholm, Tucholsky, Rheinsberg, N1, N2, B1, B2, B3} , DB2 Buch = {(B1, Tucholsky, Schloß Gripsholm), (B2, Tucholsky, Rheinsberg), (B3, Tucholsky, Schloß Gripsholm)} , NutzerDB2 = {(N1, Wilke, Thomas), (N2, Kürtz, Klaas Ole)} , EntliehenDB2 = {(N1, B1), (N2, B3)} . Boolesche Algebren ∀x∀y x t y = y t x ∀x∀y x u y = y u x ∀x∀y ∀z (x u y ) u z = x u (y u z) ∀x∀y ∀z (x t y ) t z = x t (y t z) (Assoziativität) ∀x x t x = x ∀x x u x = x ∀x∀y x u (x t y ) = x ∀x∀y x t (x u y ) = x ∀x∀y ∀z (x u y ) t z = (x t z) u (y t z) ∀x∀y ∀z (x t y ) u z = (x u z) t (y u z) (Distributivität) ∀x x t ⊥ = x ∀x x u > = x ∀x ∼∼x = x (Kommutativität) (Idempotenz) (Absorption) (Neutralität) (Doppelte Negation) ∀x∀y ∼(x u y ) = ∼x t ∼y ∀x∀y ∼(x t y ) = ∼x u ∼y (De Morgan) ∀x x u ∼x = ⊥ ∀x x t ∼x = > ∀x x u ⊥ = ⊥ ∀x x t > = > (Maximum und Minimum) ∼⊥ = > ∼> = ⊥ (Tertium non datur) (Komplementierung) Ordnungen ∀x∀y ∀z(x < y ∧ y < z → x < z) (Transitivität) ∀x ¬x < x (Irreflexivität) ∀x∀y (x < y → ∃z(x < z ∧ z < y ) (Dichtheit) ∀x∀y (x = y ∨ x < y ∨ y < x) (Linearität) Präordnung (Quasiordnung) Transitivität (Partielle) oder (Halb-)Ordnungen Transitivität + Irreflexivität Totale oder lineare Ordnungen Transitivität + Irreflexivität + Linearität Dichte Ordnungen Transitivität + Irreflexivität + Dichtheit Wechselseitiger Ausschluss ME-Struktur Σ = {< /2, R0 /1, R1 /1, G0 /1, G1 /1}, S = {0, 1, 2, . . . } und <S = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . }. Farbliche Kodierung Ri : Prozess i möchte zugreifen Gi : Prozess i darf zugreifen/greift zu Wechselseitiger Ausschluss P0 x P1 x verboten Schnelligkeit für P0 P0 x P1 P0 x z ok ok P1 y z u y Datenbankanfragen Nutzernamen Gesucht ist die Menge Namen aller Nutzer. ∃x2 Nutzer(x2 , x0 , x1 ) . Autorennamen Gesucht ist die Menge der (Nach-)Namen aller Autoren. ∃x1 ∃x2 Buch(x1 , x0 , x2 ) . Allentleiher Gesucht ist die Menge aller Namen (Paar bestehend aus Nach- und Vorname) aller Nutzer, die alle Titel eines Autors entliehen haben. ∃x2 (Nutzer(x2 , x0 , x1 ) ∧ ∃x3 ∀x4 (∃x5 Buch(x5 , x3 , x4 ) → ∃x6 (Buch(x6 , x3 , x4 ) ∧ Entliehen(x2 , x6 ))) . Auswertung von Formeln Eval(ϕ, n, S) n Vorbedingung: ϕ ∈ FPL (Σ), Σ relational, S endlich if ϕ = xi = xj then return {(a0 , . . . , an−1 ) ∈ S n : ai = aj } if ϕ = R(xi0 , . . . , xim−1 ) then return {(a0 , . . . , an−1 ) ∈ S n : (ai0 , . . . , aim−a ) ∈ R S } if ϕ = ϕ0 ∨ ϕ1 then return Eval(ϕ0 , n, S) ∪ Eval(ϕ1 , n, S) ... if ϕ = ∃xi ψ then if i < n then let T = ∅ and T 0 = Eval(ψ, n, S) for each (a0 , . . . , an−1 ) ∈ T 0 and b ∈ S let T = T ∪ {(a0 , . . . , ai−1 , b, ai+1 , . . . , an−1 )} return T else ... ... Nachbedingung: return = ϕ(Sn ) Umwandlung in PNF PNF(ϕ) Vorbedingung: ϕ ∈ FPL (Σ). if ϕ atomar return ϕ if ϕ = ¬ψ then return NegPNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return DisjPNF(PNF(ϕ0 ), PNF(ϕ1 )) if ϕ = ϕ0 ∧ ϕ1 then return KonjPNF(PNF(ϕ0 ), PNF(ϕ1 )) ... if ϕ = ∃xi ψ then return ∃xi PNF(ψ) if ϕ = ∀xi ψ then return ∀xi PNF(ψ) Nachbedingung: return ∈ PNF (Σ) und return ≡ ϕ. NegPNF(ϕ) Vorbedingung: ϕ ∈ FPL (Σ). if ϕ atomar return ¬ϕ if ϕ = ¬ψ then return PNF(ψ) if ϕ = ϕ0 ∨ ϕ1 then return KonjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 )) ... if ϕ = ∃xi ψ then return ∀xi NegPNF(ψ) if ϕ = ∀xi ψ then return ∃xi NegPNF(ψ) Nachbedingung: return ∈ PNF (Σ) und return ≡ ¬ϕ. Umwandlung in PNF, Teil II DisjPNF(ϕ, ψ) Vorbedingung: ϕ, ψ ∈ PNF (Σ). if ϕ, ψ ∈ QF (Σ) return ϕ ∨ ψ if ϕ ∈ QF (Σ) let (ϕ, ψ) = (ψ, ϕ) if ϕ = ∃xi ϕ0 let V = vars(ϕ) ∪ vars(ψ) let j = max{k : xk ∈ V } + 1 let ϕ0 = Swap(i, j, ϕ) let χ = DisjPNF(ϕ0 , ψ) return ∃xj χ ... Nachbedingung: return ∈ PNF (Σ) und return ≡ ϕ ∨ ψ. Swap(i, j, ϕ) Vorbedingung: i, j ∈ N, ϕ ∈ FPL (Σ). ... Nachbedingung: return = ϕπ mit π(xi ) = xj und π(xj ) = xi . Erfüllbarkeit und Gültigkeit unerfüllbar Jeder Knoten besitzt keine Nachbarn und es existiert eine Kante: ∀x0 ¬∃x1 R(x0 , x1 ) ∧ ∃x0 ∃x1 R(x0 , x1 ) erfüllbar, aber nicht allgemeingültig Jeder Knoten besitzt keine Nachbarn: ϕ = ∀x0 ∀x1 ¬R(x0 , x1 ) |= ϕ 6|= ϕ allgemeingültig Wenn es eine Kante gibt, so gibt es eine Schleife oder zwei Knoten: ∃x0 ∃x1 R(x0 , x1 ) → ∃x0 R(x0 , x0 ) ∨ ∃x0 ∃x1 (x0 6= x1 ) Das Postsche Korrespondenzproblem positive Instanz Paare: (bab,a), (ha,ba), (bbb,a), (hba, hb), (cdf, b), (a, bcdfbaba) Lösungsfolge: 3, 0, 4, 0, 5 Lösungswort: (hbababcdfbaba, hbababcdfbaba) h b a b a b c d f b a b a h b a b a b c d f b a b a negative Instanz Paare: (bab,ba), (a,b), (c,d) Nur Anfang mit (bab,ba) möglich. Dann Fortsetzung nur durch (a,b). Dann ist das eine Teilergebnis immer um eins länger als das andere. Gültigkeitstest für existenzielle Formeln SAT: Erfüllbarkeitstest für beliebige aussagenlogische Formelmengen ValidEx(ϕ) Vorbedingung: ϕ existenzielle Aussage (ohne Gleichheit). write ϕ as ∃xi0 . . . ∃xin−1 ψ with ψ quantifier-free let ϕ0 = ∀xi0 . . . ∀xin−1 ¬ψ SAT(Θϕ0 ) Nachbedingung: Bei Termination gilt |= ϕ; bei Divergenz gilt 6|= ϕ. Skolemisierung Skolem(ϕ) Vorbedingung: ϕ ist eine Formel in PNF. if ϕ quantifier-free return ϕ let ϕ = Qxi ψ where Q ∈ {∃, ∀} if Q = ∀ or xi ∈ / free(ψ) return Skolem(ψ) let V = free(ϕ) choose f ∈ / sig(ϕ) return Skolem(ψ[f (V )/xi ]) Nachbedingung: return quantorenfrei und ∀ ϕ ≡erfb ∀ return. Allgemeiner Gültigkeitstest ValidEx: Gültigkeitstest für existenzielle prädikatenlogische Formeln Valid(ϕ) Vorbedingung: ϕ prädikatenlogische Aussage. let ϕ0 = PNF(¬ϕ) let ϕ1 = ∀ Skolem(ϕ0 ) write ϕ1 as ∀xi0 . . . ∀xin−1 ψ with ψ quantifier-free return ValidEx(∃xi0 . . . ∃xin−1 ¬ψ) Nachbedingung: Bei Termination gilt |= ϕ; bei Divergenz gilt 6|= ϕ. Folgerungstest Ein Beispiel Frage Gilt {ϕ0 , ϕ1 } |= ϕ mit ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) ϕ1 = Mutter(maria, paul) ϕ = Weiblich(maria) Reduktion auf Erfüllbarkeitsproblem Ist {ϕ0 , ϕ1 , ¬ϕ} unerfüllbar? Umwandlung in PNF + Skolemisierung Φ = {ϕ00 , ϕ01 , ϕ02 } mit ϕ00 = ∀x0 ∀x1 (¬Mutter(x0 , x1 ) ∨ Weiblich(x0 )) ϕ01 = Mutter(maria, paul) ϕ02 = ¬Weiblich(maria) Aussagenlogische Expansion {¬Mutter(maria, paul) ∨ Weiblich(maria), ¬Weiblich(maria), Mutter(maria, paul), . . . } – nicht erfüllbar, also {ϕ0 , ϕ1 } |= ϕ. Ein Hilbert-System für die Prädikatenlogik Die Axiome α ∈ FAL , ϕ, ψ ∈ FPL (Σ), σ Formelsubstitution, t, t0 , t1 , t2 ∈ T (Σ) (AL) (∃∀) (∀→) (∀/) (∃/) (=R) (=S) (=T) (=/) ασ σ passt zu α und |= α ∃xi ϕ ↔ ¬∀xi ¬ϕ ∀xi (ϕ → ψ) → (ϕ → ∀xi ψ) ∀xi ϕ → ϕ[t/xi ] ϕ[t/xi ] → ∃xi ϕ xi ∈ / free(ϕ) [t/xi ] passt zu ϕ [t/xi ] passt zu ϕ t=t t0 = t1 → t1 = t0 t0 = t1 ∧ t1 = t2 → t0 = t2 t0 = t1 → (ϕ[t0 /xi ] → ϕ[t1 /xi ]) [t0 /xi ], [t1 /xi ] passen zu ϕ Ein Hilbert-System für die Prädikatenlogik Die Regeln Modus ponens (MP) ϕ ϕ→ψ ψ Generalisierungsregel (∀) ϕ ∀xi ϕ Ein Hilbert-System für die Prädikatenlogik Ein Beispiel Frage Gilt {ϕ0 , ϕ1 } `HPL ϕ mit ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) ϕ1 = Mutter(maria, paul) ϕ = Weiblich(maria) Beweis 1. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) → (∃x1 Mutter(maria, x1 ) → Weiblich(maria)) (∀/) 2. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 )) 3. ∃x1 Mutter(maria, x1 ) → Weiblich(maria) 4. Mutter(maria, paul) → ∃x1 Mutter(maria, x1 ) 5. Mutter(maria, paul) (Vorauss.) (MP) (∃/) (Vorauss.) 6. ∃x1 Mutter(maria, x1 ) (MP) 7. Weiblich(maria) (MP) Was kommt nach dem Vollständigkeitssatz? In der Vorlesung Gödelscher Vollständigkeitssatz Für alle Mengen Φ von Formeln und jede Formel ϕ gilt: Φ |= ϕ gdw. Φ ` ϕ. Nächste Schritte 1. Unvollständigkeitssatz Zu jeder widerspruchsfreien, ausdrucksstarken Menge Φ von ΣAr -Aussagen gibt es eine Aussage ϕ, für die gilt: Φ 6|= ϕ und Φ 6|= ¬ϕ. 2. Unvollständigkeitssatz Für jede widerspruchsfreie, ΣAr -Aussagen gilt: ausdrucksstarke Menge Φ von Φ 6|= wfreiΦ . Was gibt’s noch in der mathematischen Logik? I Mengenlehre I Modelltheorie I Rekursionstheorie I Beweistheorie I ... ZFC Ein Axiomensystem für die Mengenlehre Extensionalitätsaxiom ∀X ∀Y (∀a(a ∈ X ↔ a ∈ Y ) → X = Y ) Paarmengenaxiom ∀a∀b∃X (∀c(c ∈ X ↔ c = a ∨ c = b)) Aussonderungsaxiom ∀ā∀X ∃Y ∀b(b ∈ Y ↔ b ∈ X ∧ ϕ(b, ā)) Vereinigungsmengenaxiom ∀X ∃Y ∀a(a ∈ Y ↔ ∃Z (Z ∈ X ∧ a ∈ Z )) Potenzmengenaxiom ∀X ∃Y ∀Z (Z ∈ Y ↔ Z ⊆ X ) Unendlichkeitsaxiom ∃X (∅ ∈ X ∧ (∀a(a ∈ X → a ∪ {a} ∈ X )) Ersetzungsaxiom ∀ā(∀b∃=1 c ϕ(b, c, ā) → ∀X ∃Y ∀c(c ∈ Y ↔ ∃b(b ∈ X ∧ ϕ(b, c, ā))) Auswahlaxiom ∀X (¬∅ ∈ X ∧ ∀Y ∀Z (Y ∈ X ∧ Z ∈ X ∧ ¬Y = Z → Y ∩ Z = ∅) → ∃Y ∀Z (Z ∈ X → ∃=1 a(a ∈ X ∩ Y ))) Der Satz von Löwenheim-Skolem (einfache Form) Ein grundlegender Satz der Modelltheorie Satz Ist Φ eine Menge von Aussagen in einer endlichen Signatur und besitzt Φ ein Modell, dann besitzt Φ auch ein abzählbares Modell. Insbesondere anwendbar auf jedes Modell der ZFC-Mengenlehre, in der es eine unendliche Menge und deren Potenzmenge gibt, die ja überabzählbar ist. Eine interessante Frage aus der Rekursionstheorie Frage Ist das Postsche Korrespondenzproblem das einfachste unentscheidbare Problem? Was kommt nach der Prädikatenlogik? In der Vorlesung 1. Aussagenlogik 2. Prädikatenlogik, genauer: Prädikatenlogik erster Stufe Nächster Schritt 3. Prädikatenlogik zweiter Stufe Prädikatenlogik zweiter Stufe Syntax Prädikatenlogik erster Stufe, zusätzlich I Variablen für Relationen über der Trägermenge: X0 , X1 , . . . I Quantoren für die neuen Variablen: ∃Xi , ∀Xi Beispiel Ein gerichteter Graph ist stark zusammenhängend (X0 , X1 einstellig): ¬∃X0 ∃X1 ( ∧ ∃x0 X0 (x0 ) ∧ ∃x0 X1 (x0 ) ∧ ∀x0 (¬X0 (x0 ) ∨ ¬X1 (x0 )) ∧ ∀x0 ∀x1 ¬(X0 (x0 ) ∧ X1 (x1 ) ∧ E(x0 , x1 ))) Informatische Logiken I Temporale Logik Wechselseitiger Ausschluss: Jede Anfrage wird beantwortet. G(R0 → FG0 ) . Modale Logik – hier: Wissenslogik Die dinierenden Kryptographen: Ron weiß, ob die NSA oder ob einer der anderen bezahlt hat. I I Im zweiten Fall weiß Ron nicht, wer von den beiden bezahlt hat. (KRon (paid-Adi ∨ paid-Len) ∨ KRon paid-NSA) ∧ ¬KRon paid-Adi ∧ ¬KRon paid-Len Informatische Logiken II Beschreibungslogik Syntax I Konzepte: Mensch, Frau, Mann, . . . I Rollen: kind I u, ∃, ∀, v, = Beispiel Verwandtschaftsbeziehungen I Frau v Mensch I Mann v Mensch I Mutter = Frau u ∃.kind I Elternteil = ∃.kind Gilt Mutter v Elternteil? Hoare-Logik Korrektheitsbeweise für imperative Programme Ein (gültiges) Hoare-Tripel {x ≥ y ∧ y ≥ 0} let (a, b) = (x, y ) while b > 0 let a = a − b if a < b let (a, b) = (b, a) {a | x ∧ a | y ∧ ∀c(c | x ∧ c | y → c ≤ a)} Eine (gültige) Hoare-Regel ϕPψ, ψ → χ, χQρ ϕP; Qρ Logikprogrammierung Ein ganz einfaches Programm Programm R(x) :- P(x) R(y ) :- R(x), E (x, y ) P(0) E (0, 1) E (0, 2) E (2, 3) 1. Anfrage ?- R(3) Antwort: true 2. Anfrage ?- R(x) Antwort: x = 0, x = 1, x = 2, x = 3