Aussagenlogik Prädikatenlogik Vorlesung “Logik” Sommersemester 2011 Universität Duisburg-Essen Barbara König Übungsleitung: Christoph Blume Barbara König Logik 1 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Motivation: Logik-Programmierung Wir betrachten sogenannte Hornklauseln, bei denen höchstens ein Literal positiv ist (analog zu den aussagenlogischen Hornformeln). Das führt zu einfacheren Resolutionsbeweisen, die im wesentlichen die Form von Ketten haben. Die dabei entstehenden Substitutionen kann man aufsammeln und als Lösung präsentieren. Auf dieser Idee basieren Logik-Programmiersprachen, wie beispielsweise PROLOG. Barbara König Logik 239 Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Aussagenlogik Prädikatenlogik Motivation: Logik-Programmierung Beispiel: wir betrachten folgende Formalisierung der Addition F = ∀x A(x, null, x) ∧ ∀x∀y ∀z (A(x, y , z) → A(x, s(y ), s(z))) Dabei ist A ein dreistelliges Prädikatsymbol mit der Bedeutung: A(x, y , z) genau dann, wenn x + y = z. Außerdem ist s eine einstellige Funktion, die die Nachfolgerfunktion (successor function) darstellen soll. Eine natürlich Zahl n soll so dargestellt werden: s n (null) = s(s(. . . (s( null)) . . . )) | {z } n mal Des weiteren soll die Konstante null die 0 repräsentieren. Barbara König Logik 240 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Motivation: Logik-Programmierung Wir wollen nun überprüfen, ob die Formel G = ∃u A(s(s(s(null))), s(s(null)), u) aus dieser Formel ableitbar ist. D.h., gibt es ein u für das gilt 3 + 2 = u? Wir negieren und skolemisieren die Formel F → G und erhalten folgende Klauselmenge: {{A(x, null, x)}, {¬A(x, y , z), A(x, s(y ), s(z))}, {¬A(s(s(s(null))), s(s(null)), u)}} Dabei heißt die aus G entstandene Klausel Zielklausel. Barbara König Logik 241 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Motivation: Logik-Programmierung Bemerkungen: Bei der Resolution dieser Klauseln reicht es aus, immer mit mindestens einer Klausel zu resolvieren, die nur aus negativen Literalen besteht. Wir beginnen die Resolution also mit der Zielklausel. Dabei entstehen als Resolventen wiederum nur Klauseln, die nur aus negativen Literalen bestehen. Barbara König Logik 242 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Motivation: Logik-Programmierung {¬A(s(s(s(null))), s(s(null)), u)} {¬A(x, y , z), A(x, s(y ), s(z))} {¬A(s(s(s(null)))), s(null), z} {¬A(x, y , z 0 ), A(x, s(y ), s(z 0 ))} {¬A(s(s(s(null)))), null, z 0 } {A(x, null, x)} hhh hhhh sub1 = h h h h hhhh [u/s(z), x/s(s(s(null))), y /s(null)] hhhh h h h hhh hhhhsub = hhhh 2 h h h hhh [z/s(z 0 ), x/s(s(s(null))), y /null] h h h hhhh hhhh h hhhh hhhh sub3 = h h h hh hhhh[z 0 /s(s(s(null))), x/s(s(s(null)))] hhhh h h h h hhhh Barbara König Logik 243 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Motivation: Logik-Programmierung Wir sammeln alle Substitutionen auf, wenden sie auf u an und erhalten: u sub 1 sub 2 sub 3 = s(z) sub 2 sub 3 = s(s(z 0 )) sub 3 = s(s(s(s(s(null))))) Das heißt, die leere Klausel kann abgeleitet werden, wenn man u durch s 5 (null) ersetzt. Das ist aber genau das Ergebnis der Addition 3 + 2. Diesen Prozess nennt man auch Antwortgenerierung. Barbara König Logik 244 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Hornklauseln Definition (Hornklauselprogramm, Teil 1) Ein Hornklauselprogramm oder Logikprogramm ist eine Klauselmenge, in der jede Klausel höchstens ein positives Literal enthält. Die Klauseln werden folgendermaßen klassifiziert: Tatsachenklauseln: Klauseln der Form {P} mit einem positiven Literal P. PROLOG-Schreibweise: P. Prozedurklauseln: Klauseln der Form {P, ¬Q1 , . . . , ¬Qk }, die Folgerungen darstellen. PROLOG-Schreibweise: P :− Q1 , . . . , Qk (:− steht für ←) Barbara König Logik 245 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Hornklauseln Definition (Hornklauselprogramm, Teil 2) Tatsachen- und Prozedurklauseln nennt man auch Programmklauseln. Sie stellen das eigentliche Logikprogramm dar. Logikprogramme werden aufgerufen durch sogenannte Zielklauseln: Zielklausel: eine Klausel der Form {¬Q1 , . . . , ¬Qk }, entspricht dem negierten Berechnungsziel PROLOG-Schreibweise: ?− Q1 , . . . , Qk Barbara König Logik 246 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick SLD-Resolution Folgende Form der Resolution funktioniert speziell für Hornklauseln: Definition (SLD-Resolution) K1 qqq q q q G1 K2 qqq qqq G Eine SLD-Resolutionsherleitung der leeren Klausel hat die rechts abgebildete Form, wobei G die Zielklausel ist, G1 , G2 , . . . nur aus negativen Literalen bestehen und K1 , . . . , Kn Programmklauseln sind. G2 .. . Kn sss s s ss Die Abkürzung SLD steht für “linear resolution with selection function for definite clauses” Barbara König Logik 247 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick SLD-Resolution Satz (Vollständigkeit der SLD-Resolution) Sei F mit Zielklausel G ein unerfüllbares Hornklauselprogramm. Dann gibt es für F eine SLD-Resolutionsherleitung der leeren Klausel. Barbara König Logik 248 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Prozedurale Interpretation der Resolution Prozedurale Interpretation Sei F mit Zielklausel G = G0 ein Hornklauselprogramm mit einer SLD-Resolutionsherleitung (wie zuvor beschrieben). Wir schreiben (Gi , sub i ) `F (Gi+1 , sub i s), falls Gi+1 der Resolvent von Gi und einer Programmklausel Ki+1 ist, wobei die Variablen in Ki+1 so umbenannt wurden, dass Gi und Ki+1 keine gemeinsamen Variablen haben. Außerdem ist s der bei der Resolution entstehende allgemeinste Unifikator. Barbara König Logik 249 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Prozedurale Interpretation der Resolution Definition (Rechnung) Sei F ein Logikprogramm mit Zielklausel G . Die Rechnung eines Hornklauselprogramms ist eine (endliche oder unendliche) Folge der Form (G , []) `F (G1 , sub 1 ) `F (G2 , sub 2 ) `F . . . Wenn es sich um eine endliche Rechnung handelt und das letzte Paar die Form (, sub) hat, dann heißt die Rechnung erfolgreich und sub angewandt auf G heißt das Rechenergebnis. Barbara König Logik 250 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Prozedurale Interpretation der Resolution Bemerkungen: Gegenüber herkömmlichen SLD-Resolutionen werden hier noch zusätzlich die Unifikatoren mitgeführt. Rechnungen können nicht-deterministisch sein und es kann daher mehrere mögliche Rechenergebnisse geben. Barbara König Logik 251 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Prozedurale Interpretation der Resolution Satz von Clark Sei F ein Logik-Programm und G =?− A1 , . . . , Ak eine Zielklausel. Korrektheit: Falls es eine erfolgreiche Rechnung von F mit Zielklausel G und Ergebnissubstitution sub gibt, dann ist jede Grundinstanz von (A1 ∧ · · · ∧ An )sub eine Folgerung von F . Vollständigkeit: Falls jede Grundinstanz von (A1 ∧ · · · ∧ An )sub 0 Folgerung von F ist, so gibt es eine erfolgreiche Rechnung von F mit Zielklausel G mit dem Ergebnis sub, so dass für eine geeignete Substitution s gilt: (A1 ∧ · · · ∧ An )sub 0 = (A1 ∧ · · · ∧ An )sub s Barbara König Logik 252 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Deklarative Programmiersprache PROLOG Die Idee der Ermittlung eines Rechenergebnisses führt zur Definition einer Programmiersprache basierend auf Hornklauselprogrammen: PROLOG (entwickelt Anfang der siebziger Jahre). Dabei beschreiben die Programmklauseln das eigentlich Programm und die Zielklausel die zu bearbeitenden Anfrage. PROLOG ist, genau wie funktionale Programmiersprachen, eine deklarative Programmiersprache. Das heißt, es wird nicht so sehr beschrieben, wie etwas berechnet wird, sondern was berechnet werden soll. Barbara König Logik 253 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Deklarative Programmiersprache PROLOG Imperativ Zustandsorientiert: Zustand eines Programms besteht aus Programmzähler und Belegung der Variablen (+ Heap) Programm besteht aus Befehlen, die diesen Zustand transformieren. Sprachen: FORTRAN, ALGOL, Pascal, Ada, C, Java Deklarativ Beschreibung einer Lösung durch Bedingungen, ohne genau zu spezifizieren, wie diese Lösung berechnet werden soll. Sprachen: Logik-Programmiersprachen: PROLOG; funktionale Sprachen: ML, OCaml, Haskell, Scheme, Lisp Barbara König Logik 254 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Deklarative Programmiersprache PROLOG Beispiel: Hausbau Hausbau (imperativ): Hebe zunächst den Keller aus. Baue dann eine Süd-, Ost-, West- und Nordwand. Setze anschließend ein Dach auf die Wände. Hausbau (deklarativ): Ein Haus besteht aus einem Keller, der von vier Wänden umgeben ist, auf denen sich das Dach befindet. Barbara König Logik 255 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Deklarative Programmiersprache PROLOG Syntax von PROLOG: Variablen werden mit Grossbuchstaben geschrieben: X, Y, Z, . . . Prädikat- und Funktionssymbole werden mit Kleinbuchstaben dargestellt. Außerdem werden Programm- und Zielklauseln wie oben beschrieben notiert. Barbara König Logik 256 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Deklarative Programmiersprache PROLOG PROLOG-Interpreter: wir verwenden GNU Prolog (http://www.gprolog.org/) Wichtige Kommandos: Aufruf > gprolog Datei laden (z.B. eltern.pl) | ?- [eltern]. compiling eltern.pl for byte code... eltern.pl compiled, 36 lines read 3874 bytes written, 11 ms (1 ms) yes Barbara König Logik 257 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Deklarative Programmiersprache PROLOG Zielklausel eingeben | ?- onkel(X,christine). X = boris ? Mit ; werden weitere Antwortsubstitutionen gesucht. Barbara König Logik 258 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Beispiele für PROLOG-Programme Beispiel: Verwandtschaftsbeziehungen Nehmen Sie an, dass Verwandtschaftsbeziehungen wie “x ist Mutter von y ” und “x ist Vater von y ” definiert sind. Außerdem ist von jeder Person bekannt, ob sie männlich oder weiblich ist. Geben Sie Programmklauseln an, die abgeleitete Verwandtschaftsbeziehungen wie “Elter”, “Grossmutter”, “Grossvater”, “Geschwister”, “Onkel” und “Tante” herleiten können. Barbara König Logik 259 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Beispiele für PROLOG-Programme Verwandtschaftsbeziehungen elter(X,Y) :- vater(X,Y). elter(X,Y) :- mutter(X,Y). grossmutter(X,Y) :- mutter(X,Z),elter(Z,Y). grossvater(X,Y) :- vater(X,Z),elter(Z,Y). geschwister(X,Y) :- elter(Z,X),elter(Z,Y),X\==Y. onkel(X,Y) :- elter(Z,Y),geschwister(Z,X),maennlich(X). tante(X,Y) :- elter(Z,Y),geschwister(Z,X),weiblich(X). Barbara König Logik 260 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Beispiele für PROLOG-Programme Dadurch, dass PROLOG-Programme nicht aus konkreten Handlungsanweisungen bestehen, können ganz verschiedene Arten von Anfragen an das gleiche Programm gestellt werden. Beispiel Addition: add(X,null,X). add(X,s(Y),s(Z)) :- add(X,Y,Z). ?- add(s(s(s(null))),s(s(null)),X). X = s(s(s(s(s(null))))) ? ; ?- add(s(s(s(null))),Y,s(s(s(s(s(null)))))). Y = s(s(null)) ? Bei der zweiten Anfrage wird eigentlich eine Subtraktion durchgeführt. Barbara König Logik 261 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Beispiele für PROLOG-Programme Zebra-Rätsel (Teil 1) 1 There are five houses in a row. 2 The Englishman lives in the red house. 3 The Spaniard owns the dog. 4 Coffee is drunk in the green house. 5 The Ukrainian drinks tea. 6 The green house is immediately to the right of the ivory house. 7 The Old Gold smoker owns snails. 8 Kools are smoked in the yellow house. 9 Milk is drunk in the middle house. 10 The Norwegian lives in the first house. Barbara König Logik 262 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Beispiele für PROLOG-Programme Zebra-Rätsel (Teil 2) 11 The man who smokes Chesterfields lives in the house next to the man with the fox. 12 Kools are smoked in the house next to the house where the horse is kept. 13 The Lucky Strike smoker drinks orange juice. 14 The Japanese smokes Parliaments. 15 The Norwegian lives next to the blue house. Who owns the zebra? Who drinks water? Barbara König Logik 263 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Effizienzgesichtspunkte in PROLOG In PROLOG wird bei der Unifikation im allgemeinen nicht der sogenannte Occurs-Check durchgeführt. Das heißt, falls eine Variable x durch einen Term t ersetzt wird, wird zuvor nicht überprüft, ob x in t vorkommt (siehe Unifikationsalgorithmus). Grund: Ein Occurs-Check wäre zu aufwändig. Barbara König Logik 264 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Effizienzgesichtspunkte in PROLOG In Fällen, in denen der Occurs-Check scheitern würde, terminiert der PROLOG-Interpreter entweder nicht . . . p(X,f(X)). ?- p(Y,Y). oder es werden sogenannte zyklische (oder unendliche) Terme erzeugt. Barbara König Logik 265 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Effizienzgesichtspunkte in PROLOG (G , []) @@ @@ @@ @@ Rechnungen eines Hornklauselprogramms können sich nicht-deterministisch verzweigen. Dabei entsteht ein Berechnungsbaum, dessen Zweige unendlich lang sein können. (G1 , sub 1 ) (G10 , sub 1 ) (G2 , sub 2 ) (, sub 2 ) Problem: Wenn ein unendlicher Zweig verfolgt wird, dann kann es passieren, dass die Auswertung nicht terminiert, obwohl es (andere) terminierende Rechnungen gibt. (G3 , sub 3 ) ~~ ~~ ~ ~ ~~ .. . Barbara König Logik 266 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Effizienzgesichtspunkte in PROLOG Lösungsmöglichkeiten: Breitensuche arbeite den Berechnungsbaum schichtenweise ab. Wird in PROLOG aus Effizienzgründen nicht durchgeführt, da es sonst in vielen Fällen zu lange dauert, bis die erste Lösung gefunden ist. Tiefensuche Wird in Prolog durchgeführt. Problem: nichtterminierende Berechnungen (siehe vorherige Folie) Abbruch solcher Berechnungen und Abschneiden von Teilen des Suchbaums durch den Cut (!). Barbara König Logik 267 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Effizienzgesichtspunkte in PROLOG Beispiel für eine nicht-terminierende Berechnung aufgrund Tiefensuche: p(X) :- p(f(X)). p(a). ?- p(X). Ein Umstellen der Programmklauseln führt zu einer erfolgreichen Rechnung: p(a). p(X) :- p(f(X)). ?- p(X). X = a ? ; Barbara König Logik 268 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Es gibt noch viele weitere Logiken, neben der Aussagenlogik und der Prädikatenlogik 1. Stufe. Prädikatenlogik 2. Stufe Quantifikation über Mengen (einstellige Prädikate) und Relationen (mehrstellige Prädikate) wird erlaubt. Barbara König Logik 269 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Beispiel: Das Induktionsaxiom für die natürlichen Zahlen N0 ist nur in Prädikatenlogik 2. Stufe ausdrückbar: Für jede Menge M von natürlichen Zahlen gilt: wenn M die 0 enthält und für jede in M enthaltene Zahl n auch deren Nachfolger n + 1 in M enthalten ist, dann sind bereits alle natürlichen Zahlen in M enthalten. ∀M 0 ∈ M ∧ ∀n(n ∈ M → n + 1 ∈ M) → ∀n(n ∈ M) Barbara König Logik 270 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Weitere Bemerkungen zur Prädikatenlogik 2. Stufe: Das Unerfüllbarkeits- bzw. Gültigkeitsproblem für Logiken höherer Stufe (insbesondere für die Prädikatenlogik 2. Stufe), ist nicht mehr semi-entscheidbar. Daraus folgt auch, dass solche Logiken höherer Stufe keinen Kalkül (wie den Resolutionskalkül) haben können. Denn aus einem Kalkül, der es ermöglicht, alle wahren Formeln abzuleiten, kann man immer ein Semi-Entscheidungsverfahren gewinnen. Barbara König Logik 271 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Die Nicht-Existenz eines solchen (vollständigen) Kalküls für die Arithmetik ist die Aussage des (Ersten) Gödelschen Unvollständigkeitssatzes (1931). Für die Mathematik bedeutet das: “Es gibt wahre Aussagen, die nicht beweisbar sind.” Unterhaltsame Lektüre zu diesem Thema: Douglas R. Hofstadter: Gödel, Escher, Bach: An Eternal Golden Braid In deutscher Übersetzung: Douglas R. Hofstadter: Gödel, Escher, Bach: Ein endloses geflochtenes Band Barbara König Logik 272 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Modallogiken Annahme, dass es mehrere mögliche Welten gibt. In manchen dieser Welten können Aussagen wahr sein, in anderen nicht. Beispiele für Aussagen der Modallogik: “Möglicherweise regnet es.” “Notwendigerweise sind alle Kreise rund.” Barbara König Logik 273 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Für die Informatik besonders wichtig ist eine bestimmte Modallogik, die sogennante Temporallogik: Temporallogik Hier werden die möglichen Welten als Momente im Ablauf der Zeit interpretiert. Das heißt, man kann Aussagen über zeitliche Abfolgen machen. Beispiele für Aussagen der Temporallogik: “Irgendwann geschieht A.” “Das Ereignis B tritt unendlich oft ein.” Die am häufigsten benutzten Temporallogiken sind: CTL (Computation Tree Logic), LTL (Linear Time Logic), modaler µ-Kalkül Barbara König Logik 274 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Dreiwertige Logiken Enhalten neben den Wahrheitswerten 0, 1 auch den Wahrheitswert 1 2 (= vielleicht). Einsatz: in der Programmanalyse. Bei Approximation eines System durch ein einfacheres System kann manchmal nicht mit Sicherheit gesagt werden, ob bestimmte Systemübergänge möglich sind oder nicht möglich sind. Diesen wird dann der Wahrheitswert 21 zugeordnet. Auch für das Ergebnis einer Programmanalyse kann gelten: geforderte Eigenschaft gilt, gilt nicht oder gilt vielleicht. Barbara König Logik 275 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Die klassische Logik ist in folgendem Sinne monoton: wenn zu einer Menge von Axiomen ein weiteres hinzukommt, dann kann man immer noch mindestens die gleichen Aussagen ableiten. Monotonie: Aus der Gültigkeit von F → H folgt immer auch die Gültigkeit von F ∧ G → H. Barbara König Logik 276 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Nicht-monotone Logik Bei nicht-monotone Logiken kann diese Bedingung verletzt sein, d.h., durch zusätzliches Wissen kann eine Folgerung ungültig werden. Beispiel: Wir wissen, dass Tweety ein Vogel ist. Dann kann man daraus folgern, dass Tweety fliegen kann. Zusätzlich erfahren wir nun, dass Tweety ein Pinguin ist. Dann kann man diese Folgerung nicht mehr aufrechterhalten. Einsatz: in Expertensystemen Barbara König Logik 277 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Fuzzy Logic Approximiertes Schließen, eine Aussage kann nur zu einem gewissen Prozentsatz “wahr” sein. Einsatz: Haushaltsgeräte, Fehlerkorrektur Barbara König Logik 278 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Intuitionistische Logik Grob: nur das, was man konstruieren kann, existiert. Widerspruchsbeweise sind nicht erlaubt. Insbesondere: P ∨ ¬P (Satz vom ausgeschlossenen Dritten) ist nicht automatisch eine gültige Formel. Bemerkung: Dadurch wird die Logik zunächst schwächer und weniger Aussagen sind beweisbar. Die Forderung der Konstruierbarkeit kann aber für die Herleitung von Berechnungsvorschriften verwendet werden. Barbara König Logik 279 Aussagenlogik Prädikatenlogik Grundbegriffe, Äquivalenz und Normalformen Herbrandtheorie und Resolution Grundlagen der Logik-Programmierung und Ausblick Ausblick Zuletzt noch eine Zusammenfassung der weiteren Anwendungen der Logik in der Informatik: Modellierung und Spezifikation: Eindeutige Beschreibung von komplexen Systemen Verifikation: Beweisen, dass ein Programm das gewünschte Verhalten zeigt Schaltkreisentwurf: Schaltkreise lassen sich als logische Formeln darstellen Entwurf und Optimierung von Schaltungen Datenbanken: Formulierung von Anfragen an Datenbanken Abfragesprache SQL (Structured query language) Künstliche Intelligenz: Schlussfolgerungen automatisieren, insbesondere in Expertensystemen Barbara König Logik 280