Jürgen Richter–Gebert Skript zur Vorlesung LOGIK ETH Zürich Wintersemester 2000/2001 Inhaltsverzeichnis 0.1 Über das Wetter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 0.2 Was ist Logik ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 0.3 Was hat Logik mit Informatik zu tun? . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 0.4 Die Vorlesung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 0.5 Literaturtips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1 Aussagenlogik 1.1 1.2 9 Wahr“ und Falsch“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ” ” Logische Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 9 1.3 Das und“ . ” 1.2.2 Das oder“ ” 1.2.3 Das nicht“ ” Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5 Semantische Äquivalenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.6 13 1.7 Wenn dann “ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ” Tautologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8 Unterschied zwischen Syntax und Semantik . . . . . . . . . . . . . . . . . . . . . . . . 15 1.9 Semantisch äquivalente Formeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.10 Weglassen von Klammern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.10.1 Weglassen äusserer Klammern . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.10.2 Weglassen von Klammern bei Folgen von oder 14 . . . . . . . . . . . . . . . . 19 1.10.3 Prioritätsregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.11 Der Äquivalenzoperator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.12 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.13 Modell, Erfüllbarkeit, Tautologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.14 Das Erfüllbarkeitsproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.15 Resolutionsalgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.16 Die leere Klausel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1 1.17 Exkurs: Beweismethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.17.1 Schlussregel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.17.2 Widerspruchsbeweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.17.3 Vollständige Induktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.18 Hauptsatz der Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.19 Resolutionsalgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.20 Folgerung von Literalen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.21 Hornklauseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 1.22 Ein Ausblick auf PROLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2 Prädikatenlogik 2.1 37 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.1 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.2 Prädikate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.3 Quantoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.4 Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2 Syntax der Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.3 Ableitungsbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.4 Freie Variablen, Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5 Semantik der Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.6 Modell, Erfüllbarkeit, Folgerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.7 Einige Randbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.7.1 Prädikatenlogik mit Gleichheit . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.7.2 Mehrere Universen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.7.3 Belegung ungebundener Variablen . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.7.4 Prädikate als Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Gültige Formeln und semantisch äquivalente Formeln . . . . . . . . . . . . . . . . . . . 51 2.8.1 Das Boolsche Gerüst einer Formel . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.8.2 Quantorenregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.8.3 Termgleichheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.8.4 Ersetzungslemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.9.1 Skolemform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.10 Endliche Universen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 2.8 2.9 2 3 Beweisbarkeit, Berechenbarkeit, Unvollständigkeit 3.1 3.2 3.3 3.4 60 Modellierung der natürlichen Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.1.1 Isomorphie von Modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.1.2 Abgrenzen von Strukturen — Axiome . . . . . . . . . . . . . . . . . . . . . . . 62 3.1.3 Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.1.4 Natürliche Zahlen als Teilstruktur von F . . . . . . . . . . . . . . . . . . . . . 65 3.1.5 Implementation anderer Funktionen und Prädikate . . . . . . . . . . . . . . . . 66 Berechenbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2.1 Was heisst berechenbar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2.2 Die Registermaschine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.2.3 Von Registermaschinen zur Logik . . . . . . . . . . . . . . . . . . . . . . . . . 72 Ableitbarkeit und Beweisbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.3.1 Ein Beweiskalkül . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.3.2 Beweisbarkeit und Berechenbarkeit . . . . . . . . . . . . . . . . . . . . . . . . 81 Der Diagonalentrick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.4.1 Abzählbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.4.2 Die Nicht-Abzählbarkeit der reellen Zahlen . . . . . . . . . . . . . . . . . . . . 84 3.4.3 Das Halteproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.4.4 Und nun zur Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4 Prolog 91 4.1 Syntax und Semantik von Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.2 Prolog und Hornklauseln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.2.1 Einführende Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.2.2 Prologklauseln sind Hornklauseln . . . . . . . . . . . . . . . . . . . . . . . . . 97 Unifikation und Auswertungsstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.1 Unifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.2 Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.3.3 Auswertungsstrategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.3 4.4 4.5 Programmieren in reinem Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.4.1 Rekursion mit Verwandtschaftsbeziehungen . . . . . . . . . . . . . . . . . . . . 109 4.4.2 Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.4.3 Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Prolog Crashkurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.5.1 Prolog am Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.5.2 Der Unifikationsoperator = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 3 4.6 4.5.3 Arithmetik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.5.4 Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.5.5 Seiteneffekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.5.6 Metalogische Prädikate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.5.7 Cut und Negation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Praxisbeispiel: Registermaschine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4 0. Prolog ( 0.1 Vorrede) Über das Wetter A: Wenn der Hahn kräht auf dem Mist, ändert sich das Wetter, oder es bleibt, wie es ist. B: Wenn es regnet, dann werden die Strassen nass. Was kann man über den Wahrheitsgehalt der beiden obigen Sätze aussagen? Sind sie wahr? Sind sie falsch? Kann man überhaupt etwas sagen? Von Standpunkt der Logik aus besteht zwischen den beiden Sätzen ein gewaltiger Unterschied. Der erste Satz ist wahr“, vollkommen unabhängig davon, was der ” ” Hahn kräht“ oder dass Wetter ändert sich“ bedeutet. Der Wahrheitsgehalt des zweiten Satzes hingegen ” hängt stark von der jeweiligen Bedeutung von es regnet“ und die Strassen werden nass“ (und von deren ” ” Verhältnis zueinander) ab. (Man kann sich durchaus Szenarien vorstellen in denen es zwar regnet, aber die Strassen dennoch nicht nass werden.) Bei den Teilaussagen der Hahn kräht“, das Wetter bleibt wie es ist“, es regnet“ und die Strassen ” ” ” ” werden nass“ handelt es sich um sogenannte atomare Teilaussagen, die vom Standpunkt der Logik aus nicht mehr weiter zerlegbar sind. Diese werden in den Sätzen A und B durch Konjunktionen wie und, oder, nicht, wenn dann zu zusammengesetzten Aussagen verknüpft. Der logische Unterschied der beiden Sätze wird noch klarer, wenn man die atomaren Teilaussagen durch irgendwelche sinnlose Floskeln ersetzt. Z.B. A: Wenn schnurks dann quimm oder nicht quimm. B: Wenn schnurks dann quimm. Der erste Satz ist unabhängig von der speziellen Bedeutung von schnurks“ und quimm“ wahr. Der ” ” zweite Satz nicht. 0.2 Was ist Logik ? Natürlich lässt sich in wenigen Sätzen nicht abgrenzen, was genau Logik ist und was nicht. Statt dessen sollen hier (als Denkanstösse) fünf grobe Aussagen herhalten, die von verschiedenen Personen mit verschiedenem Hintergrund geäussert sein könnten. Logik ist die formale Wissenschaft des Beweisens und Schliessens.“ ” Dies ist möglicher Standpunkt eines Mathematikers. In der Mathematik beschäftigt man sich oft damit, Beweise für gültige Aussagen zu finden. Die formale Grundlage dafür liefert die Logik. 5 Logik ist die Wissenschaft über die Worte ’und’, ’oder’, ’nicht’, ’wenn dann’.“ ” Dieser weitaus pragmatischere Standpunkt fragt danach, eine formales Gerüst für den umgangssprachlichen Gebrauch solcher Verbindungswörter herzustellen. Logik ist die Wissenschaft des Formalen.“ ” Die philosophische Variante. Alles was rein formal durchfürbar ist, ist letztlich mit den Mitteln der Logik angehbar. Logik schafft somit die Grundlage allen formalen Denkens und Ableitens. Logik ist die Wissenschaft des formal Machbaren.“ ” Wenn nun aber Logik den Rahmen für das Formale darstellt, so setzt sie letzlich auch die Grenzen des formal Machbaren. Was mit den Mitteln der Logik nicht erreichbar ist, ist durch formale Argumentation überhaupt nicht erreichbar. Dies ist letztlich die vornehmste Aufgabe der Logik“: ” Grenzen des formal Machbaren mit den Mitteln des Formalen aufzustellen. Logik ist die Wissenschaft des automatisch Machbaren.“ ” Was rein formal machbar ist, lässt sich auch automatisieren (z.B. auf einem Computer). Wenn Logik nun (unter anderem) Grenzen des formal Machbaren aufzeigt, so zeigt sie uns auch, für welche Probleme man computergestützte Lösungen erwarten kann und für welche Probleme nicht. 0.3 Was hat Logik mit Informatik zu tun? Überspitzt liesse sich sagen: Informatik ist angewandte Logik“. Informatik befasst sich mit den Möglich” keiten der automatischen Ausführung berechenbarer Operationen. Bei näherem Hinsehen begegnet uns dabei die Logik auf Schritt und Tritt. Einige Beispiele: Hardware Alle derzeit gängigen Rechner arbeiten digital. Das heisst, intern werden alle Informationen durch Kombination von Signalen kodiert, die nur zwei Zustände annehmen können (Strom an/aus oder Spannung 0V/5V oder Kondensator geladen/nicht geladen). Diese binären Zustände symbolisiert man oft durch die Zeichen 0 und 1. Solche elementaren Informationseinheiten werden miteinander über sogenannte logische Gatter verknüpft. Diese Gatter stellen in Form von Hardware elementarste logische Grundoperationen zur Verfügung. Drei der einfachsten Repräsentanten sind das Und-Gatter, das Oder-Gatter und das Nicht-Gatter. Die folgende Tabelle zeigt die jeweiligen Schaltsymbole und Verknüpfungstafeln dieser Gatter. Sie geben an, wie der Ausgangszustand in Abhängigkeit der Eingänge ist. Und Oder A B Z A 0 0 1 1 B 0 1 0 1 Z 0 0 0 1 Nicht A B Z A 0 0 1 1 B 0 1 0 1 6 Z 0 1 1 1 A A 0 1 Z Z 1 0 Jeder digitale Computer lässt sich in eine geeignete Zusammenschaltung aus solchen elementaren Gattern (und zusätzlich einem Taktgeber) zerlegen. De facto sind die meisten der heutige gängigen Computer auch tatsächlich so aufgebaut. Das heisst, die kleinsten funktionalen Einheiten eines Computers sind letztlich schaltungstechnische Umsetzungen geeigneter logischer Strukturen. Software (Grundlagen) Genauso wie sich die Hardware in elementare Strukturen zerlegen lässt, ist es auch bei der Software der Fall. Ein Programm egal welcher Art (ob nun das Ausrechnen einer einfachen Funktion, ein Bildverarbeitungsprogramm oder ein Texteditor) kann als Befehlssequenz aufgefasst werden, die eine im Speicher abgelegte Folge von Nullen und Einsen verarbeitet und dabei in eine andere solche Folge überführt. Die jeweilige Bedeutung dieser Folgen von Nullen und Einsen ist dem Programm und dem Computer natürlich nicht bewusst“. Es kann sich dabei um die digitale Co” dierung eines Bildes handeln, um einen Text oder einfach um eine Zahl. Auf unterster Ebene führt das Programm wiederum einfachste lokale Operationen auf diesen Folgen von Nullen und Einsen aus, die sich wieder durch logische Operationen ausdrücken lassen. Software (Anwendungen) In vielen Anwendungsprogrammen findet sich auch ein direkter Bezug zur Logik. Hier nur einige Stichworte: – Datenbanken: Logische Abfragen an eine Datenbank sind oft durch und, oder und nicht verknüpfte elementare Einheiten. Implementierungen von Datenbanken tragen dem oft Rechnung, indem sie die logischen Grundstrukturen abbilden. – Sprachverarbeitung: Die Analyse natürlichsprachiger Sätze wird häufig durch Rückführung auf die innere Logik der Sprache vorgenommen. Wir werden ein Beispiel dafür am Ende der Vorlesung noch genauer betrachten. – Automatisches Beweisen: eine Teildisziplin der computergestützten Mathematik und künst” lichen Intelligenz“ befasst sich mit der computergestützten Erzeugung mathematischer Beweise. Auch hier spielt Logik als Grundlage des Beweisens eine zentrale Rolle. – Logikprogrammierung: Es gibt Programmiersprachen, deren Struktur auf elementaren logischen Prinzipien aufgebaut ist. Eine davon (PROLOG) werden wir in der Vorlesung ausführlich behandeln. Theorie In der Theoretischen Informatik beschäftigt man sich z.B. mit Fragen nach der grundlegenden Berechenbarkeit von Funktionen. Hier verschafft die Logik das formale Rüstzeug, um überhaupt präzise Aussagen aufzustellen. Durch die Logik kann zunächst ein Begriff der Berechenbarkeit (mittels sogenannter Turingmaschinen) erstellt werden. Solche abstrakte Maschinen spiegeln ein möglichst einfaches Modell eines Computers wider, dessen Berechenbarkeitskraft“ allerdings zu ” einem beliebigen Digitalcomputer gleichwertig ist. Aufbauend auf einem solchen, auf elementarste zurückgeführten, Berechenbarkeitsbegriff kann man dann sogar von einigen Problemen nachweisen, dass sie nicht algorithmisch lösbar sind. Die Gödelschen Unvollständigkeitssätze“ nehmen in der Logik eine zentrale Stellung ein. Grob ” gespochen besagen sie, dass es in jedem logischen System, das stark genug ist, arithmetische Aussagen über die natürlichen Zahlen auszudrücken, wahre Aussagen gibt, die mit den Mitteln des Systems weder beweisbar noch widerlegbar sind. Dieser zugegebenermassen recht abstrakte und un-intuitive Satz hat seine direkten Entsprechungen auf der Ebene von konkreten Programmen. So 7 ist es z.B. nicht möglich, ein Programm zu schreiben, welches für ein gegebenes Programm einer hinreichend aussagekräftigen Programmiersprache (z.B. Pascal) testet, ob dies bei einer gewissen Eingabe anhält oder nicht. 0.4 Die Vorlesung Die Vorlesung gliedert sich in vier Abschnitte Aussagenlogik Hier beschäftigen wir uns tatsächlich nur mit den Worten und, oder und nicht. Wir werden lernen wie aussagekräftig Formeln sind, die allein aus diesen Strukturen und elementaren Aussagen aufgebaut sind. Wir lernen Grundregeln logischen Schliessens und den Unterschied zwischen Syntax und Semantik einer Formel kennen. Prädikatenlogik Hier wird unsere Sprache um Ausdrücke wie für alle und es existiert und um Funktionen und Terme erweitert. Dies ermöglicht es uns, eine Sprache aufzubauen, die aussagekräftig genug ist, um Computer und Programmabläufe zu symbolisieren. Gödels Unvollständigkeitssätze Hier stossen wir an die Grenzen der Logik. Es geht hierbei nicht darum, die Gödelschen Unvollständigkeitssätze bis ins letzte selbstbezügliche Detail zu verstehen, als vielmehr darum, für diese ein gewisses Gefühl“ zu entwickeln. Insbesondere soll deren Relevanz für die Informatik aufgezeigt werden. ” Logikprogrammierung in PROLOG Hier sollen anhand der Programmiersprache PROLOG Grundprinzipien der Logikprogrammierung erarbeitet werden. Insbesondere werden Verfahren wie Prädikatenlogische Unifikation und Resolution erläutert. Den Abschluss der Vorlesung bildet die beispielhafte Erarbeitung eines Programmes, welches umgangssprachliche Sätze auf deren grammatikalische Struktur hin analysiert. 0.5 Literaturtips 1. U. Schöning: Logik für Informatiker, Spektrum Akademischer Verlag, Heidelberg, Berlin, Oxford, 1995. 2. E. Shapiro und L. Sterling: The Art of Prolog, MIT Press, Cambridge, Massachusetts, 1994. 3. D. G. Hofstädter: Gödel, Escher, Bach, Deutscher Taschenbuch-Verlag, München, 1992. 4. R. Smullyan, Forever undecided : a puzzle guide to Gödel, Oxford University Press, Oxford, 1989. 8