Jürgen Richter–Gebert Skript zur Vorlesung ETH Zürich

Werbung
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
Herunterladen