Logik:! Michael Leuschel! ! Softwaretechnik und Programmiersprachen ! Was ist Logik?! Contrariwise, if it was so, it might be; and if it were so, it would be; but as it isn't, it ain't. That's logic. Lewis Carroll Grammar is the logic of speech, even as logic is the grammar of reason. Richard Chenevix Trench Logik: Wikipedia! Logik (griechisch ἡ λογική (τέχνη) he logiké téchne „die denkende [Kunst, Vorgehensweise]“) ist die Lehre des vernünftigen (Schluss-)Folgerns. Die Logik untersucht die Gültigkeit von Argumenten hinsichtlich ihrer Struktur unabhängig vom konkreten Inhalt der eigentlichen Aussagen. In diesem Sinne spricht man auch von „formaler“ Logik. Die Logik ist sowohl ein Teilgebiet der Philosophie als auch der Mathematik und der Informatik. Seit dem 20. Jahrhundert versteht man unter Logik überwiegend symbolische Logik. Diese baut auf einer künstlichen Sprache auf und verwendet streng definierte Schlussregeln. Ein einfaches Beispiel für ein solches formales System ist die Aussagenlogik. Die symbolische Logik nennt man auch mathematische Logik oder formale Logik im engeren Sinn. Die Logik hatte nicht immer eine in diesem Sinn formale Struktur, sondern befasste sich in der Antike und im Mittelalter überwiegend mit natürlichsprachlichen Argumenten. Anfänge der Logik! Alle Menschen sind sterblich Alle Menschen sind unsterblich Einige Menschen sind sterblich Einige Menschen sind unsterblich Aristoteles 384-322 vChr Warum Logik studieren ?! Wichtiger Zweig der Mathematik! ◦ Was ist Wahrheit? Was ist ein Beweis ?! Wissensdarstellung + intelligentes Denken! ◦ Künstliche Intelligenz (A.I.), natürliche Sprache, semantisches Web, ...! Überlegungen über Programme! ◦ Verifikation, statische Analyse, Optimierung,…! Hardware! Universale Vorrichtung der Berrechnung:! ◦ Logische Programmierung, Prolog, …! Was beinhaltet eine Logik ?! 1. Sprache der Ausdrücke und Formeln! 2. Beweistheorie (proof theory)! ◦ Axiome : unabdingbar wahr, automatisch Theoreme! ◦ Inferenzregeln : um neue Theoreme von existierenden abzuleiten (truth preserving inference)! 3. Modelltheorie (existiert nicht immer)! ◦ Abbildung von Ausdrücken auf “echte” Objekte, und Verknüpfung mit Aussagen in der “echten” Welt! Logik = Studium der korrekten Inferenz/ Schlussfolgerung! Verschiedene Logiken! Aussagenlogik (propositional logic)! Prädikatenlogik der ersten Stufe (predicate logic, first-order logic FOL)! Logik höherer Stufe (HOL)! Temporale Logik - Modallogik! Mehrwertige Logiken, Fuzzy Logik! Nichtmonotone Logiken! Relevanzlogik, lineare Logik! ...! rains Aussagenlogik! rains → carry_umbrella rains ∨¬ rains p ∨¬ p ◦ Was ist die Sprache?! ◦ Beweistheorie! Was gibt es an Axiomen ?! Was gibt es an Inferenzregeln?! ◦ Modelltheorie! Wie können wir Formeln mit der realen Welt verknüpfen?! Syntax der Aussagenlogik Junktoren ◦ Und (Konjunktion): ◦ Oder (Disjunktion): ◦ If then (Implikation): ◦ Äquivalenz: ◦ Nicht (Negation): ◦ XOR,NAND, . . . Aussagen ◦ Bezeichner: ∧ ∨ ⇒ ⇔ ¬ p q ( ) Andere Zeichen: ◦ Klammern 07/04/2012 rains ... Präzedenz 1. Negation ¬ höchste Priorität 2. Dann kommen ∧ und ∨ 3. Am Ende ⇒ und ⇔ Anstatt ◦ (((¬ p) ∧ (¬ q)) ⇒ ((¬ p) ∨ (¬ q))) schreiben wir ◦ (¬ p ∧ ¬ q) ⇒ (¬ p ∨ ¬ q) ◦ ¬ p ∧ ¬ q ⇒ ¬ p ∨ ¬ q 10/04/2012 Klausuraufgabe:! Kreuzen Sie eine richtige Antwort an falls es eine gibt:! ◦ a) Die Antwort b) ist richtig! ◦ b) Die Antwort c) ist falsch! ◦ c) Es gibt mindestens eine richtige Antwort! Interpretation einer Formel! Jede Aussage bekommt Wert ∈ {T,F} Verknüpfungstabelle: ◦ Formel bekommt einen Wert ∈ {T,F} basierend auf dem Wert der Argumente Modell einer Formel : ◦ Interpretation die die Formel wahr macht Wahrheitstabellen α β ¬α α∧ β T T F T T T T T F F F T F F F T T F T T F F F T F F T T 07/04/2012 α∨ β α→ β α⇔ β Übung: v(p) = T,v(q) = F v(p ∧ (q ∨ (¬p) )) = v(p → (p → q )) = v(p ∨ (¬p)) = v(p ∧ (¬p)) = 07/04/2012 Übung: Lösung v(p) = T,v(q) = F v(p ∧ (q ∨ (¬p) )) F v(p) v(p ∧ (q ∨ (¬p) )) = F v(p → (p → q )) = F v(p ∨ (¬p)) = T v(p ∧ (¬p)) = F v(q ∨ (¬p) ) T F v(q) F v(¬p) F v(p) T 07/04/2012 Übung: Lösung v(p) = T,v(q) = F v’(p) = F,v’(q) = F v(p ∧ (q ∨ (¬p) )) = F v(p → (p → q )) = F v’(p → (p → q )) = T v(p ∧ (q ∨ (¬p) )) F v(p) v(p ∨ (¬p)) = T v’(p ∨ (¬p)) = T v(q ∨ (¬p) ) T F v(q) F v(¬p) F v(p) T 07/04/2012 v(p ∧ (¬p)) = F v’(p ∧ (¬p)) = F Arten von Formeln! Tautologie! ◦ Nur Modelle! Erfüllbare Formel! ◦ Mindestens ein Modell! Widerspruch:! ◦ Kein Modell! Äquivalenz von Formeln ? Definition von Schlussfolgerung?! Äquivalenz, Logische Folge! A und B sind äquivalent (A≣B) genau dann wenn sie die gleichen Modelle haben! ist eine Schlussfolgerung von A (A ⊨ B) genau dann wenn alle Modelle von A auch Modelle von B sind! B Beweise in Aussagenlogik! - Wahrheitstabellen A ⊨? B A ≡? B p q A pq B ¬p∨q T T T T T F F F F T F T F F T T Theorem A ⊨B gdw Formel (A⇒B) ist eine Tautologie p q A pq B ¬p∨q A⇒B T T T T T T F F F T F T F T T F F T T T Theorem A ⊨B gdw Formel (A⇒B) ist eine Tautologie gdw A ⋀ ¬B ist ein Widerspruch p q A pq B ¬p∨q A⇒B A ⋀ ¬B T T T T T F T F F F T F F T F T T F F F T T T F Beispiel! What I cannot create I do not understand.! ◦ Richard Feynman! ⊨ What I can create I do understand ?! ◦ (¬C ⇒ ¬U) ⊨? (C ⇒ U)! ⊨ What I understand I can create ?! ◦ (¬C ⇒ ¬U) ⊨? (U ⇒ C)! Logisches Puzzle Ritter: sagen immer die Wahrheit Schurken: lügen immer 1: A sagt: “B ist ein Schurke oder C ist ein Schurke” 2: B sagt“A ist ein Ritter” Was sind A & B & C? 07/04/2012 Darstellung in Aussagenlogik! (A_Ritter ⇔ (¬B_Ritter or ¬C_Ritter)) ∧ (B_Ritter ⇔ A_Ritter )! 1: A sagt: “B ist ein Schurke oder C ist ein Schurke” 2: B sagt“A ist ein Ritter” Puzzle: Wahrheitstabelle ◦ Knights: always tell the truth, Knaves: always lie ◦ Three persons: knights or knaves ◦ A says: “B is a knave or C is a knave” ◦ B says “A is a knight” Theorie ⊨? A∧B A ⇔ ¬B ∨ ¬C B⇔A A B C ¬B ∨ ¬C Theorie A∧B True True True False False True True True False True True False True True False False False True True False True False False False True False False False 07/04/2012 Puzzle: Wahrheitstabelle ◦ Knights: always tell the truth, Knaves: always lie ◦ Three persons: knights or knaves ◦ A says: “B is a knave or C is a knave” ◦ B says “A is a knight” A ⇔ ¬B ∨ ¬C B⇔A A B C ¬B ∨ ¬C Theory A∧B True True True False False True True True False True True True True False True True False False ⊨ True False False True False False A∧B False True True False False False False True False True False False False False True True False False False False True False False Theorie False 07/04/2012 Praktische Anwendungen! Problem if(x==null) { search(x.value) … } Formel In Aussagenlogik SAT Solver Solver=minisat(jni) Bitwidth=5 MaxSeq=3 SkolemDepth=1 Symmetry=20 118805 vars. 2368 primary vars. 293152 clauses. 1462ms. No instance found. 44ms. Beweise in Aussagenlogik! - - - - Wahrheitstabellen Lineare Resolution (Prolog) DPLL (SAT Solver) Andere Beweistheorien: Modus Ponens (Frege 1879) Beweis durch Widerspruch (Reductio ad absurdum) Theorem: ◦ S ⊨ L gdw ◦ S ∧ ¬L ist ein Widerspruch Beweis für S ⊨ L: ◦ Wir nehmen an: S ∧ ¬L ◦ Regeln anwenden die Widerspruchsfreiheit bewaren ◦ Versuchen einen offensichtlichen Widerspruch zu finden: p ∧ ¬ p 07/04/2012 Reduction ad absurdum S ⊨ L gdw S ∧ ¬L ist ein Widerspruch A B C Theory S L=A∧B S∧ ¬L True True True False True False True True False True True False True False True False False False True False False False False False False True True False False False False True False False False False False False True False False False False False False False False False S = A ⇔ ¬B ∨ ¬C & B ⇔ A 07/04/2012 TRUE FALSE Konjunktive Normal Form (KNF) Literal = p oder¬p wo p eine atomare Aussage ist (p: positives, ¬p: negatives Literal) Klausel = Disjunktion von Literalen ◦ Examples: ¬p ∨ q, wet ∨ ¬rains ∨ ¬outside KNF: Konjunktion von Klauseln 07/04/2012 Resolution Aus Klauseln: p ∨ α und ¬p ∨ β leiten wir neue Klausel ab: α∨β ◦ p atomare Ausage ◦ α, β beliebige Formel, kann leer sein ◦ Anmerkung: Disjunktion ist assoziativ und kommutativ: s ∨ (¬t ∨ r) ≡ (s ∨ ¬t) ∨ r ≡ ¬t ∨ (s ∨ r) Resolution Beispiele: p∨α ¬p ∨ β α∨β p∨q ¬p ∨ r q∨r t∨q s ∨ ¬t ∨ r q∨s∨r rains wet ∨ ¬rains wet ¬rains ∨ wet ¬ wet ¬ rains Resolution II Aus p ∨ α und ¬p ∨ β leite α ∨ β ab ◦ Wenn α und β leer sind: p und¬p gelten wir haben einen Widerspruch gefunden geschrieben als o (leere Klausel, false) Theoreme: ◦ {p ∨ α, ¬p ∨ β} ⊨ α ∨ β ◦ If S ∪ {p ∨ α, ¬p ∨ β} ist ein Widerspruch gdw S ∪ {p ∨ α, ¬p ∨ β, α ∨ β} ist ein Widerspruch → nützlich für “reduction ad absurdum”! → Notation: Menge an F1 ∧ F2 ∧ …∧ Fn Klauseln {F1,F2,…,Fn} steht für: 09/04/2012 Ein Beweis durch Widerspruch und Resolution {p, q} ⊨ p ∧ q ? 1. Negation von p ∧ q hinzufügen {p, q, ¬(p ∧ q)} 2. Keine Klausel: ⇒ Resolution kann nicht verwendet werden ⇒ Umformen in KNF {p, q, ¬p ∨ ¬q} 3. Resolution mit p and ¬p ∨ ¬q {p, q, ¬p ∨ ¬q , ¬q} {p, q, ¬p ∨ ¬q , ¬q, false} 4. Resolution mit q and ¬q Ja: {p, q} ⊨ p ∧ q 09/04/2012 Umformen nach KNF Implikation und Äquivalenz ersetzen: (α ⇔ β) ersetzen durch (α ⇒ β ∧ β ⇒ α) (α ⇒ β) ersetzen durch (¬α ∨ β) Negation zu atomaren Aussagen verschieben: 1. ¬ (α ∧ β) 2. ¬(α ∨ β) 3. ¬ ¬ α ersetzen durch (¬α ∨ ¬β) ersetzen durch (¬α ∧ ¬β) ersetzen durch α 09/04/2012 Umformen nach KNF Disjunktion (∨) zu Literalen verschieben: Ersetzen von (“ausmultiplizieren”): ◦ α ∨ (β ∧γ) durch (α ∨ β) ∧(α ∨ γ) ◦ Man kann auch direkt folgendes anwenden: α ∨ (β1 ∧ β2 ∧... ∧βn) by (α ∨ β1) ∧(α ∨ β2) ... (α ∨ βn) ◦ Anmerkung: ∧ist assoziativ (und kommutativ): ((α ∧ β) ∧γ) is äquivalent zu (α ∧ (β ∧ γ)). Das gleiche gilt für ∨. 07/04/2012 Converting formulas into CNF Eliminate the conjunctions: ◦ Actually, all you have to do is simply write each part of a conjunction as a seperate wff. ◦ For example (p ∨ q) ∧(q ∨ r) is turned into a set consisting of two wff's: { (p ∨ q), (q ∨ r) } Simplify clauses and eliminate redundant clauses: ◦ Remove extra literals which occur more than once in a clause. For example (p ∨ ¬q ∨ p) can be simplified into (p ∨ ¬q). ◦ Remove the clauses that contain a proposition and its negation. For example (p ∨ ¬p ∨ q) can be removed (the clause is always true and does not add any information). 07/04/2012 Beispiel: Smullyan Puzzle ◦ Theorie: ◦ (A ⇔ ¬B ∨ ¬C) ∧ (B ⇔ A) ◦ Query (negiert): ◦ ¬(A ∧ B ∧ ¬C) 09/04/2012 Beispiel: Smullyan Puzzle ◦ ◦ ◦ ◦ ◦ Theorie: (A ⇔ ¬B ∨ ¬C) ∧ (B ⇔ A) (A ⇒ ¬B ∨ ¬C) ∧(¬B ∨ ¬C ⇒ A) ∧ (B ⇒ A)∧ (A ⇒ B) (¬A ∨ ¬B ∨ ¬C) ∧(¬(¬B ∨ ¬C) ∨ A) ∧ (¬B ∨ A)∧ (¬A ∨ B) (¬A ∨ ¬B ∨ ¬C) ∧((B ∧ C) ∨ A) ∧ (¬B ∨ A)∧ (¬A ∨ B) ◦ (¬A ∨ ¬B ∨ ¬C) ∧(B ∨ A) ∧ (C ∨ A) ∧(¬B ∨ A)∧ (¬A ∨ B) ◦ {¬A ∨ ¬B ∨ ¬C, B ∨ A, C ∨ A, ¬B ∨ A, ¬A ∨ B} ◦ Query (negiert): ◦ ¬(A ∧ B ∧ ¬C) ◦ {¬A ∨ ¬B ∨ C} 09/04/2012 c CanonicalCNFFormat p cnf 3 6 -1 -2 -3 0 120 130 1 -2 0 -1 2 0 -1 -2 3 0 Zusammenfassung! Logiken! Aussagenlogik:! ◦ Interpretation, Modell! ◦ Äquivalenz, logisches Schließen! ◦ Beweis durch Widerspruch! ◦ KNF und Resolution! Nächster Schritt: Prädikatenlogik!