Grundlagen der Logik und Logikprogrammierung
Grundlagen der Logik und Logikprogrammierung
Grundlagen der Logik und Logikprogrammierung
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Gr<strong>und</strong>lagen</strong> <strong>der</strong> <strong>Logik</strong> <strong>und</strong><br />
<strong>Logik</strong>programmierung<br />
Vorlesung von Prof. Schrö<strong>der</strong> im Sommersemester 2012 an <strong>der</strong> FAU Erlangen<br />
19. November 2012<br />
In L A TEX gesetzt von<br />
Johannes Schilling (dario@zerties.org)<br />
Dominik Paulus (dominik@d-paulus.de)<br />
Ulrich Rabenstein (ulrich.rabenstein@studium.uni-erlangen.de)<br />
Tobias Polzer<br />
Über dieses Skript<br />
Wir haben uns entschlossen, für die Vorlesung <strong>Gr<strong>und</strong>lagen</strong> <strong>der</strong> <strong>Logik</strong> <strong>und</strong> <strong>Logik</strong>programmierung (GLoLoP),<br />
die wir dieses Semester bei Professor Schrö<strong>der</strong> hören, mangels eines existierenden Skripts selbst eines<br />
zu erstellen.<br />
Das vor Ihnen befindliche Schriftstück erhebt keinen Anspruch auf Vollständigkeit, auch können wir<br />
nicht ausschließen, dass sich inhaltliche Fehler eingeschlichen haben. Für entdeckte Fehler <strong>und</strong> inhaltliche<br />
Verbesserungen sind wir je<strong>der</strong>zeit dankbar <strong>und</strong> aufgeschlossen<br />
1
Inhaltsverzeichnis<br />
0.1. Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
0.2. <strong>Logik</strong> in <strong>der</strong> Informatik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
1. Aussagenlogik 5<br />
1.0.1. Typische Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
1.1. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
1.1.1. Vorbemerkung: Backus-Naur-Form zur Notation einer Grammatik . . . . . . . 5<br />
1.1.2. Inhalt <strong>der</strong> Grammatik <strong>der</strong> Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . 5<br />
1.1.3. Syntax <strong>der</strong> Aussagenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
1.2. Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.2.1. Semantik <strong>der</strong> logischen Operatoren . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.2.2. Der Erfülltheitsoperator ( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
Definition: Erfülltheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.3. Logische Konsequenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Definition: logische Konsequenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Definition: Gültigkeit einer Formel ψ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
Definition: Erfüllbarkeit einer Menge von Formeln Φ . . . . . . . . . . . . . . . . . . . 8<br />
Definition: Logische Äquivalenz zweier Formeln ϕ <strong>und</strong> ψ . . . . . . . . . . . . . . . . . 8<br />
1.4. Wahrheitstafeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
Definition: Atome einer Formel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
1.5. Logische Äquivalenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
1.6. Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
1.6.1. Negationsnormalform (NNF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
Definition: Negationsnormalform NNF von ϕ . . . . . . . . . . . . . . . . . . . . . . . 10<br />
1.6.2. Konjunktive Normalformen (CNF) . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
Definition: CNF C einer Formel ϕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
1.7. Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
Definition: Resolutionsregel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
1.7.1. Syntax <strong>und</strong> Semantik <strong>der</strong> Regeln natürlichen Schließens . . . . . . . . . . . . . 13<br />
Definition: Resolutionsverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
2. Prolog 15<br />
2.1. Version 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Definition: definite Klausel, Zielklausel, Hornklausel . . . . . . . . . . . . . . . . . . . . 15<br />
2.1.1. Schreibweise: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
Definition: Programm, Anfrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
2.2. Version 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
2.2.1. Semantik per Reduktion auf Version 0: . . . . . . . . . . . . . . . . . . . . . . . 16<br />
2.3. Version 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
2.4. Unifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
Definition: Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Definition: Gleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Definition: Unifikator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
Definition: Allgemeine Unifikatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
2.4.1. Unifikationsalgorithmus von Robinson . . . . . . . . . . . . . . . . . . . . . . . 21<br />
Definition: Unifizierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
3. Prädikatenlogik erster Stufe 23<br />
3.0.2. Terminologie, Übersetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
Definition: Syntax <strong>der</strong> Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
2
Definition: Semantik <strong>der</strong> Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
Definition: Σ-Modell M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
Definition: Erfülltheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Definition: Freie Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />
Definition: Satz, universeller Abschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />
3.1. Substitutionslemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.1.1. Wie<strong>der</strong>holung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.2. Herbrand-Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
Definition: Herbrand-Universum, Herbrand-Basis . . . . . . . . . . . . . . . . . . . . . 27<br />
Definition: Herbrand-Σ-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
Definition: Gro<strong>und</strong> Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />
3.2.1. Approximation des kleinsten H-Modells . . . . . . . . . . . . . . . . . . . . . . 32<br />
3.3. SLD-Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
Definition: SLD-Herleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
Definition: P-Beweisbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
4. Formale Deduktion in Aussagenlogik 39<br />
4.1. Natürliches Schließen mit Quantoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
4.2. @- <strong>und</strong> D-Quantor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
5. Vollständigkeit <strong>der</strong> Prädikatenogik erster Stufe 45<br />
5.1. Beweise <strong>der</strong> drei Behauptungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
A. Regeln für natürliches Schließen im Fitchkalkül 48<br />
A.1. Regeln für ^ <strong>und</strong> _ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
A.2. Regeln für K <strong>und</strong> ␣ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
A.3. Regeln für @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
A.4. Regeln für D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />
3
0.1. Literatur<br />
U. Schöning <strong>Logik</strong> für Informatiker, Spektrum akademischer Verlag, 2000;<br />
kostengünstiges Basiswerk<br />
J. Barwise, J. Etchemendy Language, Proof & Logic, CSLI, 2000<br />
englisch, mit Software; allgemeiner, teilweise gar Philosophisch<br />
M. Huth, M. Ryan Logic in Computer Science, CUP, 2000<br />
für Informatiker geschrieben<br />
0.2. <strong>Logik</strong> in <strong>der</strong> Informatik<br />
Motivation <strong>der</strong> Vorlesung, warum sollte uns als Informatiker die <strong>Logik</strong> interessieren?<br />
• <strong>Logik</strong> als Problem für Informatiker<br />
– SAT<br />
– Automatischer/Halbautomatischer Theorembeweis<br />
• <strong>Logik</strong> als Programmierparadigma<br />
– Prolog<br />
– Mercury<br />
• <strong>Logik</strong> als Abfrageformalismus<br />
– SQL<br />
– Datalog<br />
• <strong>Logik</strong> als (Wissens-) Repräsentationsformalismus<br />
– Ontologie<br />
– Semantic Web<br />
– OWL<br />
• <strong>Logik</strong> als Entwicklungsmethode<br />
Spezifikation (<strong>Logik</strong>)<br />
Implementierung<br />
4
1. Aussagenlogik<br />
Redet über atomare Aussagen A, B, C, . . . ohne Rücksicht auf <strong>der</strong>en innere Struktur.<br />
(z. B. EsRegnet Ñ HabeSchirm _ WerdeNass)<br />
<strong>und</strong> <strong>der</strong>en Wahrheitswerte, hier klassisch: tlomon<br />
K , lomon J u<br />
falsch wahr<br />
1.0.1. Typische Vorgehensweise<br />
1. Definiere Syntax: „Was kann ich hinschreiben“<br />
2. Definiere Semantik: „Was bedeutet das“<br />
3. Beweise, Algorithmen auf dem jetzt definierten Raum<br />
1.1. Syntax<br />
1.1.1. Vorbemerkung: Backus-Naur-Form zur Notation einer Grammatik<br />
Die Backus-Naur-Form (BNF) ist eine verbreitete Art, die Syntax von formalen Sprachen darzustellen.<br />
Eine Beschreibung in BNF besteht aus mehreren Klauseln, jede Klausel beschreibt eine Beziehung <strong>der</strong><br />
Form a besteht aus B o<strong>der</strong> C, in <strong>der</strong> Schreibweise<br />
a :– B | C<br />
Die rechte Seite besteht aus beliebig vielen Alternativen, durch die die linke ersetzt werden kann,<br />
jeweils durch einen senkrechten Strich getrennt. In <strong>der</strong> so beschriebenen Grammatik sind genau die<br />
Terme enthalten, die durch die Ersetzungsregeln <strong>der</strong> BNF erzeugt werden können. Konventionsgemäß<br />
schreibt man Terme, die nicht weiter ersetzt (reduziert) werden können groß, alle an<strong>der</strong>en klein.<br />
1.1.2. Inhalt <strong>der</strong> Grammatik <strong>der</strong> Aussagenlogik<br />
Die Menge F <strong>der</strong> Formeln, die in <strong>der</strong> Grammatik enthalten sind, ist die kleinste Menge X mit<br />
1. A Ď X<br />
2. ϕ, ψ P X ñ ϕ ^ ψ P X<br />
3. ϕ P X ñ ␣ϕ P X<br />
Sprich: F bzw. X ist die kleinste bezüglich ^ <strong>und</strong> ␣ abgeschlossene Obermenge von A .<br />
An<strong>der</strong>s gesagt: Alle Atome sind Formeln, also P X, <strong>und</strong> die Operatoren ␣ <strong>und</strong> ^ bilden nur von<br />
Formeln zu Formeln ab (Abgeschlossenheit).<br />
1.1.3. Syntax <strong>der</strong> Aussagenlogik<br />
ϕ, ψ ::“ A | ϕ ^ ψ | ␣ ϕ<br />
Dabei ist A P A ein Atom, d.h. eine nicht weiter unterteilbare Aussage mit A ‰ H. Es gilt im übrigen:<br />
• ␣ bindet am stärksten<br />
5
• K “ A ^ ␣A<br />
• J “ ␣K<br />
• pϕ _ ψq “ ␣p␣ϕ ^ ␣ψq<br />
• ϕ Ñ ψ “ ␣ϕ _ ψ<br />
• ϕ Ø ψ “ pϕ Ñ ψq ^ pψ Ñ ϕq<br />
1.2. Semantik<br />
1.2.1. Semantik <strong>der</strong> logischen Operatoren<br />
Die Sprechweisen <strong>und</strong> Bedeutungen <strong>der</strong> logischen Operatoren, für zwei beliebige Aussagenlogische<br />
Terme ϕ <strong>und</strong> ψ sind<br />
ϕ ^ ψ „ϕ <strong>und</strong> ψ gelten beide“<br />
␣ϕ „ϕ gilt nicht“<br />
ϕ _ ψ „mindestens eines <strong>der</strong> beiden gilt“<br />
ϕ Ñ ψ „wenn ϕ gilt, dann gilt auch ψ“<br />
ϕ Ø ψ „ϕ gilt genau dann, wenn ψ gilt“ (beide Ausdrücke haben die gleiche Wahrheitstabelle)<br />
J „Top“, „Wahr“<br />
K „Bottom“, „Falsch“<br />
1.2.2. Der Erfülltheitsoperator (<br />
Definition: Erfülltheit<br />
Wahrheitsbelegung κ : A Ñ 2 lomon<br />
tJ,Ku<br />
κ erfüllt ϕ: κ ( ϕ bzw. ( ϕrκs, rekursiv definiert durch<br />
(i) κ ( A ô κpAq “ J<br />
(ii) κ ( ϕ ^ ψ ô κ ( ϕ <strong>und</strong> κ ( ψ<br />
(iii) κ ( ␣ϕ ô κ * ϕ<br />
definiert Wahrheitswert einzelner Atome<br />
κ erfüllt also ein Atom A, wenn eben im „Welt-Zustand“ A erfüllt – also wahr – ist, ansonsten nicht.<br />
Die Und-Verknüpfung zweier Formeln ϕ <strong>und</strong> ψ ist erfüllt, wenn beide erfüllt sind, die Negation<br />
einer Formel ist erfüllt, wenn die Formel in κ nicht erfüllt ist.<br />
Im Prinzip schauen wir also immer nur im „Welt-Zustand“ nach, ob eine Formel bzw. die Atome<br />
aus denen sie aufgebaut ist, erfüllt sind.<br />
Wir können zusätzlich zu obiger Definition feststellen, dass κ ( J stets <strong>und</strong> κ ( K nie wahr sind.<br />
Die O<strong>der</strong>- <strong>und</strong> die Folgerungs-Verknüpfungen, die nicht Teil <strong>der</strong> Definition son<strong>der</strong>n daraus abgeleitet<br />
sind, verhalten sich bzgl. κ ebenfalls erwartungsgemäß:<br />
κ ( ϕ _ ψ ô pκ ( ϕ o<strong>der</strong> κ ( ψq<br />
κ ( ϕ Ñ ψ ô pFalls κ ( ϕ, so auch κ ( ψq<br />
κ ( ϕ Ø ψ ô pκ ( ϕ genau dann wenn κ ( ψq<br />
Die Definition soll am Beispiel <strong>der</strong> Formel pA _ ␣Bq Ñ B verdeutlicht werden<br />
6
Beispiel: pA _ ␣Bq Ñ B<br />
κ ordne den Atomen A <strong>und</strong> B die Werte κpAq “ J <strong>und</strong> κpBq “ K zu; man könnte auch<br />
kurz schreiben: κ “ rA ÞÑ J, B ÞÑ Ks<br />
κ ( ppA _ ␣Bq Ñ Bq ô pFalls κ ( pA _ ␣Bq, so auch κ ( Bq<br />
Es gilt κ ( A _ ␣B ô pκ ( A o<strong>der</strong> κ ( ␣Bq<br />
Nun gilt κpAq “ J, also κ ( A, also κ ( A _ ␣B.<br />
Es gilt aber κ * B (da κpBq “ K), also<br />
κ * pA _ ␣Bq Ñ B<br />
Eine an<strong>der</strong>e Wahrheitsbelegung κ 2 , die den Atomen an<strong>der</strong>e Wahrheitswerte zuordnet,<br />
kann die Formel aber erfüllen, z. B. mit κ 2 “ tA ñ J, B ñ Ju gilt κ 2 ( pA _ ␣Bq Ñ B.<br />
Die Definition von ( stellt sicher, dass die Menge X:<br />
X “ tϕ P F |„κ ( ϕ ist wohldefiniert “u 1 - 3 erfüllt. Da F die kleinste solche Menge ist, ist F eine<br />
Teilmenge (o<strong>der</strong> gleich) je<strong>der</strong> an<strong>der</strong>en Menge, die diese Bedingungen erfüllt, also insbeson<strong>der</strong>e auch<br />
F Ď X.<br />
1.3. Logische Konsequenz<br />
Eine logische Konsequenz o<strong>der</strong> logische Folgerung ist die korrekte Ableitung einer neuen Formel aus<br />
einer Menge als gültig vorausgesetzter Formeln.<br />
Für die formale Definition definieren wir zunächst die Erfülltheit einer Menge Φ Ď F von Formeln<br />
durch die Erfülltheit aller Elemente. Eine Wahrheitsbelegung κ erfüllt die Menge Φ genau dann, wenn<br />
κ alle Formeln ϕ erfüllt, die in Φ enthalten sind:<br />
κ ( Φ :ô @ϕ P Φ : κ ( ϕ<br />
Definition: logische Konsequenz<br />
Sei Φ Ď F eine Menge von Formeln. Eine Formel ψ P F ist eine logische Konsequenz von Φ, wenn<br />
für alle Wahrheitsbelegungen κ : A Ñ 2 gilt, dass, falls κ ( Φ, so auch κ ( ψ. Man schreibt für<br />
„ψ ist logische Konsequenz von Φ“ auch Φ ( ψ. In Symbolen:<br />
Φ ( ψ :ô @κ : κ ( Φ Ñ κ ( ψ.<br />
Daraus lassen sich nun einige neue Begriffe <strong>und</strong> Definitionen ableiten.<br />
Definition: Gültigkeit einer Formel ψ<br />
7
Eine Formel ψ ist gültig, wenn sie aus <strong>der</strong> leeren Menge von Annahmen folgt:<br />
|ù ψ : ðñ H ( ψ ðñ @κ : κ ( ψ,<br />
d.h. also wenn alle Wahrheitsbelegungen ψ erfüllen. Wir nennen ψ in diesem Fall auch tautologisch/eine<br />
Tautologie.<br />
Definition: Erfüllbarkeit einer Menge von Formeln Φ<br />
Eine Formelmenge Φ ist unerfüllbar, wenn sich aus ihr ein Wi<strong>der</strong>spruch herleiten lässt, d.h. wenn<br />
Falsum eine logische Konsequenz von Φ ist: Φ ( K. Dies ist gleichbedeutend damit, dass keine<br />
Wahrheitsbelegung Φ erfüllt: @κ : κ * Φ.<br />
An<strong>der</strong>nfalls, d.h. wenn Dκ : κ ( Φ, heißt Φ erfüllbar.<br />
Definition: Logische Äquivalenz zweier Formeln ϕ <strong>und</strong> ψ<br />
Zwei Formeln ϕ, ψ sind logisch äquivalent (ϕ ” ψ), wenn ϕ Ø ψ gültig ist:<br />
ϕ ” ψ : ðñ |ù φ Ø ψ.<br />
Lemma 1. ψ ist genau dann logische Konsequenz von Φ, wenn die Vereinigung von Φ <strong>und</strong> <strong>der</strong> Negation<br />
von ψ unerfüllbar ist:<br />
Φ ( ψ ô pΦ Y t␣ψuq ( K<br />
(Das obige Lemma kann als eine Formulierung des Prinzips des Wi<strong>der</strong>spruchsbeweises angesehen werden)<br />
Beispiel: Erfüllbarkeit <strong>und</strong> logische Konsequenz<br />
erfüllbar A Ñ ␣A (Für die Belegung κpAq “ K)<br />
unerfüllbar A ^ ␣A<br />
gültig A _ ␣A , pA ^ Bq Ñ A<br />
logische Konsequenz tA Ñ B, Au ( B (diesen Schluss nennt man „modus ponens“)<br />
1.4. Wahrheitstafeln<br />
Eine Wahrheitstafel ist die Betrachtung <strong>der</strong> (endlich vielen!) in konkreten Formeln vorkommenden<br />
Atome in tabellarischer Form. Mit Hilfe von Wahrheitstafeln kann z.B. die Äquivalenz zweier Formeln<br />
bewiesen werden.<br />
Zunächst definieren wir formal, was die Atome einer Formel ϕ sind.<br />
8
Definition: Atome einer Formel<br />
Atome(ϕ) = Atpϕq := Menge <strong>der</strong> in ϕ vorkommenden Atome, formal:<br />
• At(A) = tAu<br />
• At(␣ϕ) = At(ϕ)<br />
• At(ϕ ^ ψ) = At(ϕ) Y At(ψ)<br />
Beispiel:<br />
AtppA ^ Bq ^ ␣Aq “ AtpA ^ BqY At(␣A) = AtpAqY At(B) Y At(A) = tAu Y tBu Y tAu “ tA, Bu.<br />
Das folgende Lemma ist die formale Legitimation dafür, dass Wahrheitstafeln sich auf die in ϕ vorkommenden<br />
Atome beschränken dürfen <strong>und</strong> nicht alle in A vorkommenden Atome berücksichtigen<br />
müssen.<br />
Lemma 2. Die Erfülltheit κ ( ϕ hängt nur von den Belegungen <strong>der</strong> Atome von ϕ, also von den Werten<br />
κpAq für A P Atpϕq ab; d.h. wenn κ 1 sich bezüglich aller Atome Atpϕq gleich verhält wie κ, so erfüllt<br />
κ 1 ϕ genau dann wenn κ dies tut. Formal: Wenn κ, κ 1 : A Ñ 2 mit κpAq “ κ 1 pAq für alle A P Atpϕq,<br />
dann gilt<br />
κ ( ϕ ô κ 1 ( ϕ.<br />
Beweis: Unabhängigkeit von unerwähnten Atomen<br />
wir erinnern uns: die Menge aller Formeln F ist definiert als die kleinste Menge, die die Bildungsgesetze<br />
1 - 3 erfüllt. Wir zeigen nun per Induktion über ϕ, genauer über die Struktur <strong>der</strong> Definition <strong>der</strong><br />
Grammatik, dass die Menge X aller ϕ, die die Behauptung erfüllen, ebenfalls 1 - 3 erfüllt <strong>und</strong> damit<br />
F Ď X, d.h. das Lemma gilt für alle Formeln.<br />
(1) κ ( A ô κpAq “ J ðùùùùñ<br />
APAtpAq κ1 pAq “ J<br />
ô κ 1 ( A<br />
(2) κ ( ␣ϕ ô κ * ϕ ðùùùùùùùùùùùùñ<br />
IV mit Atp␣ϕq“Atpϕq κ1 * ϕ<br />
ô κ 1 ( ␣ϕ<br />
(3) κ ( ϕ ^ ψ ô pκ ( ϕ <strong>und</strong> κ ( ψq ðùùùùùùùùùùùùùùùùùùùùùùùùùùñ<br />
IV mit Atpϕq,AtpψqĎAtpϕqYAtpψq“Atpϕ^ψq pκ1 ( ϕ <strong>und</strong> κ 1 ( ψq<br />
ô κ 1 ( ϕ ^ ψ<br />
ù Semantik von ϕ bestimmt durch endliche Tabellierung von κ ( ϕ für alle κ : A 0 Ñ 2 mit A 0 Ď A<br />
endlich, At(ϕ) Ď A 0 . Dass κ nicht nur auf Atpϕq definiert ist, son<strong>der</strong>n auf A 0 , von dem Atpϕq eine<br />
Teilmenge ist, liegt daran, dass in <strong>der</strong> Wahrheitstafel auch noch an<strong>der</strong>e Einträge stehen dürfen.<br />
Beispiel:<br />
Wahrheitstafel von ϕ<br />
A B A Ñ B<br />
K K J<br />
K J J<br />
J K K<br />
J J J<br />
9
A B C A _ B ␣A _ C pA _ Bq Ñ p␣A _ Cq<br />
K K K K J J<br />
K K J K J J<br />
K J K J J J<br />
K J J J J J<br />
J K K J K K<br />
J K J J J J<br />
J J K J K K<br />
J J J J J J<br />
Lemma 3. ϕ ” ψ genau dann wenn ϕ, ψ identische Wahrheitstafeln über Atpϕq Y Atpψq haben.<br />
Beispiel: Wahrheitstafel-Äquivalenz<br />
B _ ␣B ” A _ ␣A<br />
Hier sieht man wie es dazu kommen kann, dass zwei Formeln trotz unterschiedlicher verwendeter<br />
Atome äquivalent sein können.<br />
1.5. Logische Äquivalenzen<br />
Im folgenden geben wir eine Übersicht wichtiger logischer Äquivalenzen.<br />
• ␣␣ϕ ” ϕ (Doppelnegationselimination)<br />
+<br />
␣pϕ ^ ψq ” p␣ϕ _ ␣ψq<br />
• (De Morgansche Gesetze)<br />
␣pϕ _ ψq ” p␣ϕ ^ ␣ψq<br />
+<br />
ϕ ^ pψ _ χq ” pϕ ^ ψq _ pϕ ^ χq<br />
• (Distributiv-Gesetze)<br />
ϕ _ pψ ^ χq ” pϕ _ ψq ^ pϕ _ χq<br />
+<br />
pϕ ^ ψq ^ χ ” ϕ ^ pψ ^ χq<br />
• (Assoziativ-Gesetze)<br />
ϕ _ pψ _ χq ” pϕ _ ψq _ χ<br />
• χ ^ J ” χ<br />
+<br />
(Neutrale Elemente)<br />
χ _ K ” χ<br />
1.6. Normalformen<br />
1.6.1. Negationsnormalform (NNF)<br />
Definition: Negationsnormalform NNF von ϕ<br />
Eine aus Atomen sowie ␣, ^, _ gebildete Formel ϕ ist genau dann in NNF, wenn die Negation ␣<br />
in ϕ nur direkt vor Atomen vorkommt.<br />
π ist NNF von ϕ, wenn π in NNF <strong>und</strong> π ” ϕ.<br />
Wir werden sehen, dass je<strong>der</strong> Term eine NNF hat. Atome sind in NNF.<br />
10
Beispiel: Terme in NNF<br />
␣A _ pB _ ␣Cq ist in NNF;<br />
␣pA _ ␣Bq nicht (␣ vor <strong>der</strong> Klammer, Klammer kein Atom)<br />
NNFpϕq ist rekursiv definiert durch<br />
$<br />
NNF pAq “ A<br />
NNF pϕ ^ πq “ NNF pϕq ^ NNF pπq<br />
NNF pϕ _ πq “ NNF pϕq _ NNF pπq<br />
’&<br />
NNF pϕq “ NNF p␣Aq “ ␣A<br />
NNF p␣␣ϕq “ NNF pϕq<br />
NNF p␣pϕ ^ πqq “ NNF p␣ϕq _ NNF p␣πq<br />
’% NNF p␣pϕ _ πqq “ NNF p␣ϕq ^ NNF p␣πq<br />
Es lässt sich induktiv zeigen, dass NNFpϕq ” ϕ.<br />
Beispiel: ϕ – ␣p␣pA _ ␣Bq ^ Cq<br />
NNFp␣p␣pA _ ␣Bq ^ Cqq = NNFp␣␣pA _ ␣Bqq_ NNFp␣Cq =<br />
NNFpA _ ␣Bq _ ␣C = A _ ␣B _ ␣C<br />
1.6.2. Konjunktive Normalformen (CNF)<br />
Eine Formel in Konjunktiver Normalform ist eine Konjunktion von Disjunktionen von Literalen. Sie<br />
hat also die allgemeine Form<br />
ľ<br />
Lq<br />
DPCp ł LPD<br />
Die Menge aller konjunktiven Normalformen ist formal definiert durch die folgende Grammatik:<br />
Literale L ::“ A | ␣A<br />
Klauseln C ::“ K | L | L _ C<br />
CNFs ϕ ::“ J | ϕ | C ^ ϕ.<br />
A P A<br />
Meistens, insbeson<strong>der</strong>e zum Zwecke <strong>der</strong> Repräsentation im Rechner, verwenden wir eine alternative<br />
Darstellung von CNFs als Mengen:<br />
Klauseln sind endliche Mengen von Literalen, d. h. die Disjunktion L 1 _ ¨ ¨ ¨ _L n wird repräsentiert als<br />
die Menge tL 1 , . . . , L n u (was von <strong>der</strong> Reihenfolge <strong>und</strong> eventuellen Wie<strong>der</strong>holungen abstrahiert!).<br />
Die leere Klausel repräsentiert K <strong>und</strong> wird als ✷ notiert.<br />
CNFs sind endliche Mengen von Klauseln, wobei die leere Menge J repräsentiert: J “ ^<br />
H; D 1 ^ ¨ ¨ ¨ ^<br />
^<br />
D n “ tD 1 , . . . , D n u<br />
Genau wie die NNF ist die CNF nur eine an<strong>der</strong>e Repräsentation für die gleiche Aussage, was uns zu<br />
folgen<strong>der</strong> Definition <strong>der</strong> CNF einer Formel bringt:<br />
Definition: CNF C einer Formel ϕ<br />
Sei ϕ eine Formel. Eine CNF ϕ 1 heißt CNF von ϕ, wenn ϕ ” ϕ 1 .<br />
11
Lemma 4 (Berechnung einer CNF von ϕ in NNF). Sei ϕ eine Formel. Dann hat ϕ eine CNF<br />
CNFpϕq.<br />
Beweis. Wir können nach obigem annehmen, dass ϕ bereits in NNF ist. Wir definieren dann CNFpϕq<br />
rekursiv:<br />
CNFpϕ ^ ψq “ CNFpϕq ^ CNFpψq<br />
CNFpLq “ L<br />
kľ<br />
CNFpϕ _ ψq “<br />
j“1 i“1<br />
nľ<br />
pD i _ E j q mit CNFpϕq “<br />
nľ<br />
D i <strong>und</strong> CNFpψq “<br />
i“1<br />
kľ<br />
E i .<br />
Man zeigt durch Indukion über ϕ, dass ϕ ” CNFpϕq <strong>und</strong> dass CNFpϕq in <strong>der</strong> Tat eine CNF ist.<br />
Der einzig interessante Teil <strong>der</strong> Induktion ist <strong>der</strong> Induktionsschritt für ϕ _ ψ, <strong>der</strong> auf wie<strong>der</strong>holtem<br />
Anwenden des Distributivgesetzes („Ausmultiplizieren“) beruht:<br />
nľ<br />
kľ<br />
ϕ _ ψ ” p D i q _ p E j q<br />
Distr.<br />
”<br />
Dist.<br />
”<br />
i“1<br />
j“1<br />
j“1<br />
kľ nľ<br />
pp D i q _ E j q<br />
kľ<br />
j“1 i“1<br />
i“1<br />
nľ<br />
pD i _ E j q “ CNFpϕ _ ψq.<br />
i“1<br />
Problem an CNFpϕ _ ψq: n ¨ k Klauseln, z.B. CNFppA 1 ^ B 1 q _ ¨ ¨ ¨ _ pA n ^ B n qq hat 2 n Klauseln.<br />
Durch Einführung zusätzlicher Atome lässt sich <strong>der</strong> Blowup 1 polynomiell halten, dann aber CNFpϕq<br />
nur noch erfüllbarkeitsäquivalent zu ϕ (CNFpϕq erfüllbar ô ϕ erfüllbar).<br />
1.7. Resolution<br />
Das Resolutionsverfahren ist ein Algorithmus zur Entscheidung <strong>der</strong> Erfüllbarkeit einer CNF (Klauselmenge<br />
C). Er basiert auf <strong>der</strong> Resolutionsregel.<br />
Definition: Resolutionsregel<br />
D 1 Y tAu D 2 Y t␣Au<br />
(Res)<br />
(1)<br />
D 1 Y D 2<br />
Diese Regel wird im Resolutionsverfahren auf die Menge <strong>der</strong> Klauseln in einer CNF angewendet.<br />
Regeln dieser Form werden so interpretiert, dass, wenn in <strong>der</strong> Menge alle Elemente über dem Strich<br />
enthalten sind, das Element unter dem Strich zur Menge hinzugefügt werden darf. D 1 Y D 2 hat hier<br />
den Namen Resolvente.<br />
1 Als Blowup bezeichnet man das Verhältnis zwischen Größe <strong>der</strong> Eingabe <strong>und</strong> Größe <strong>der</strong> Ausgabe eines Algorithmus.<br />
Oft verwendet bei Algorithmen, die ein Problem in ein an<strong>der</strong>es Transformieren.<br />
12
1.7.1. Syntax <strong>und</strong> Semantik <strong>der</strong> Regeln natürlichen Schließens<br />
Die hier verwendete Syntax werden wir später – in Kapitel 4 – wie<strong>der</strong>sehen. Sie funktioniert so, dass<br />
Regeln als Voraussetzungen (Prämissen) <strong>und</strong> daraus möglichem Schluss (Konsequenz) notiert werden.<br />
Die Prämissen stehen dabei über einer waagrechten Linie, die einem Bruchstrich nicht unähnlich sieht,<br />
die Konsequenz darunter. Sobald die Prämissen erfüllt sind, darf die Konsequenz geschlossen werden –<br />
die Regel wurde angewendet. Typischerweise werden die Regeln benannt, <strong>der</strong> Name wird in Klammern<br />
auf Höhe des ”Bruchstrichs” vor die Regel geschrieben.<br />
(Und)<br />
A B<br />
A ^ B<br />
Die Anwendung <strong>der</strong> Resolutionsregel hat keinen Einfluss auf die Erfüllbarkeit <strong>der</strong> Formel. Der Beweis<br />
dafür folgt umgehend nach <strong>der</strong> formalisierten Aussage.<br />
Lemma 5. Sei D 1 Y tAu, D 2 Y t␣Au P C.<br />
Dann gilt: C ist erfüllbar ô C Y tD 1 Y D 2 u ist erfüllbar<br />
Beweis:<br />
„ð“ trivial, da links Teilmenge <strong>der</strong> Klauseln <strong>der</strong> rechten Seite<br />
„ñ“ Sei κ ( C, dann κ ( D 1 Y tAu, κ ( D 2 Y t␣Au<br />
Fall 1: κpAq “ J ñ κ ( D 2 ñ κ ( D 1 Y D 2<br />
Fall 2: κpAq “ K ñ κ ( D 1 ñ κ ( D 1 Y D 2<br />
Basierend auf obigem Lemma <strong>und</strong> obiger Regel können wir den folgenden Algorithmus definieren, <strong>der</strong><br />
eine Aussage über die Erfüllbarkeit einer Formel, die in konjunktiver Normalform vorliegt, trifft:<br />
Definition: Resolutionsverfahren<br />
1. Falls P C, ist C nicht erfüllbar, Schluss.<br />
2. Suche D 1 Y tAu, D 2 Y t␣Au P C, D 1 Y D 2 R C. Falls keine solchen D 1 , D 2 existieren, ist C<br />
erfüllbar, Schluss.<br />
3. C Ð C Y tD 1 Y D 2 u, gehe zu Schritt 1.<br />
Wir beweisen die totale Korrektheit des Algorithmus:<br />
Beweis: Terminierung<br />
Der Algorithmus arbeitet ausschließlich auf <strong>der</strong> Menge <strong>der</strong> Atome in C. Es gibt es nur endlich viele<br />
unterschiedliche Klauseln über AtpCq<br />
In Mengendarstellung sind es 4 | AtpCq| (Jedes Atom kann entwe<strong>der</strong> positiv, negativ, beides o<strong>der</strong> gar<br />
nicht vorkommen).<br />
Beweis: Korrektheit (Antwort „unerfüllbar“ ist richtig)<br />
Klar per Lemma 5.<br />
13
Aus dem Abbruch nach Regel 2 folgt die Abgeschlossenheit von C unter <strong>der</strong> Resolution (1). Daraus<br />
baut <strong>der</strong> folgende Beweis auf:<br />
Beweis: Vollständigkeit (Antwort „erfüllbar“ ist richtig)<br />
Sei C abgeschlossen unter Resolution, R C.<br />
zZ: C erfüllbar.<br />
Induktion über |AtpCq| “ #AtpCq:<br />
Induktionsanfang:<br />
Ohne Atome kann die Klauselmenge nur leer o<strong>der</strong> t<br />
an<strong>der</strong>en P C (wi<strong>der</strong>spricht Annahme).<br />
u sein, im einen Fall ist C per Definition J, im<br />
Induktionsschritt:<br />
Wähle A P AtpCq. Sei<br />
C{A – t Dzt␣Au | A R D P C u sowie<br />
C{␣A – t DztAu | ␣A R D P C u<br />
(Das Ergebnis ist <strong>der</strong> noch als erfüllbar zu zeigende Rest wenn wir A als J bzw. K annehmen. Es gilt<br />
AtpC{Aq S A R AtpC{␣Aq).<br />
Dann ist entwe<strong>der</strong> R C{A o<strong>der</strong> R C{␣A, denn sonst t␣Au P C Q tAu. Da C abgeschlossen unter<br />
(Res), würde folgen P C, Wi<strong>der</strong>spruch!<br />
Ohne Einschränkung 2 wählen wir den Fall<br />
Dann ist auch C{A abgeschlossen unter (1):<br />
D 1 zt␣Au Y tBu, D 2 zt␣Au Y t␣Bu P C{A<br />
ñ D 1 Y D 2 P C ñ D looomooon 1 Y D 2 zt␣Au P C{A<br />
AR<br />
R C{A.<br />
AtpC{Aq ist kleiner als AtpCq, C{A ist abgeschlossen über Resolution <strong>und</strong><br />
erfüllbar<br />
IV<br />
ñ Dκ ( C{A<br />
Sei D P C, zZ: κrA Ñ Js ( D,<br />
Fall 1: A P D ̌<br />
Fall 2: A R D ñ Dzt␣Au P C{A ñ κ ( Dzt␣Au ñ κrA Ñ Js ( D<br />
ñ κrA Ñ Js ( C<br />
R C{A, also ist C{A<br />
2 „ohne Einschränkung“ wird gleichbedeutend mit „ohne Beschränkung <strong>der</strong> Allgemeinheit“ verwendet, ist aber kürzer.<br />
Konkret heißt es hier, dass <strong>der</strong> Beweis mit dem Fall P C{␣A ganz genauso geführt werden kann, <strong>und</strong> deshalb nur<br />
die Hälfte <strong>der</strong> Fallunterscheidung aufgeführt wird.<br />
14
2. Prolog<br />
Programmieren durch Deklaration logischer Zusammenhänge <strong>und</strong> Anfragen nach <strong>der</strong>en Konsequenz.<br />
Im folgenden werden schrittweise die Versionen von Prolog aufeinan<strong>der</strong> aufbauend definiert.<br />
2.1. Version 0<br />
Die Version 0 ist im Prinzip eine Teilmenge <strong>der</strong> Aussagenlogik. Zunächst müssen wir definieren, wie<br />
die Deklaration <strong>der</strong> logischen Zusammenhänge denn aussehen soll:<br />
Definition: definite Klausel, Zielklausel, Hornklausel<br />
Eine Klausel D (bestehend aus einer Menge von Literalen) ist definit, wenn D genau ein positives<br />
Literal enthält. Enthält sie gar kein positives Literal, so ist sie eine Zielklausel. In beiden Fällen<br />
spricht man auch von einer Hornklausel.<br />
2.1.1. Schreibweise:<br />
def. Klausel tA 0 , ␣A 1 , . . . , ␣A n u ” A 0 Ð A 1 , . . . , A n<br />
Zielklausel t␣A 1 , . . . , ␣A n u ”Ð A 1 , . . . , A n<br />
Beispiel: allgemeine Klausel<br />
jľ<br />
t␣A 1 , . . . , ␣A j , B 1 , . . . , B k u ” A p Ñ<br />
kł<br />
B i<br />
p“1 i“1<br />
Das schöne an den Horn-Klauseln ist, dass es für eine gegebene Menge von Voraussetzungen nur<br />
eine Konsequenz gibt, nicht eine Menge von Konsequenzen von denen womöglich nur eine Wahr ist.<br />
Sobald eine Konsequenz nicht mehr per Definition eindeutig sein muss, wird die Berechnung um einiges<br />
aufwändiger. Dies ist <strong>der</strong> Kern warum das SAT-Problem NP-Hart ist.<br />
Definition: Programm, Anfrage<br />
Ein Programm ist eine endliche Menge P von definiten Klauseln (Regeln bzw. Fakten falls n=0).<br />
Eine Anfrage ist eine Zielklausel Q “Ð A 1 , . . . , A n<br />
Der Prolog-Interpreter versucht zu zeigen, dass P Y tQu unerfüllbar ist, d.h. dass P ( ␣Q.<br />
Beispiel: Regenwetter<br />
15
$<br />
Wet Ð Rain, NoUmbrella<br />
Rain Ð Monday<br />
’&<br />
P “ Confused Ð Monday<br />
NoUmbrella Ð Confused<br />
’%<br />
Monday<br />
Q “Ð Wet “ K Ð Wet<br />
Antwort: ja, d.h. P ( ␣Q, d. h. P ( Wet<br />
2.2. Version 1<br />
In Version 1 werden Atome zu n-stelligen Prädikaten A – P pE 1 , . . . , E n q erweitert. E 1 , . . . , E n heißen<br />
Terme, wobei ein Term E – X|c entwe<strong>der</strong> eine Variable (X, groß geschrieben) o<strong>der</strong> eine Konstante (c,<br />
klein geschrieben) ist.<br />
Const(X) ist die Menge <strong>der</strong> in X vorkommenden Konstanten.<br />
Vars(X) ist die Menge <strong>der</strong> in X vorkommenden Variablen.<br />
Prolog funktioniert nach <strong>der</strong> sog. closed world assumption (CWA), d.h. wenn eine Aussage A aus einem<br />
Programm P nicht explizit folgt, z.B. weil A überhaupt nicht erwähnt wird, so gilt A auch nicht.<br />
Lies Klauseln als universellen Abschluss: Vars(D) = tX 1 , . . . , X n u : @tX 1 , . . . , X n u.D<br />
Der universelle Abschluss ist also <strong>der</strong> „fancy-Begriff“ für die Tatsache, dass eine Klausel wahr ist, wenn<br />
alle Terme in ihr wahr sind.<br />
Beispiel: Verwandtschaften<br />
$<br />
Vater(Hans, Paula)<br />
’& Mutter(Paula, Fritz)<br />
P “<br />
Großvater(X, Y) Ð Vater(X, Z), Vater(Z, Y)<br />
’% Großvater(X, Y) Ð Vater(X, Z), Mutter(Z, Y)<br />
Q 1 “Ð Großvater(Hans, Fritz): Ja<br />
Q 2 “Ð Großvater(Hans, Paula): Nein, da sich diese Aussage nicht aus dem Programm ableiten<br />
lässt (CWA).<br />
2.2.1. Semantik per Reduktion auf Version 0:<br />
Die Idee <strong>der</strong> Reduktion auf Version 0 (2.1) ist, alle Variablen auszusubstituieren durch die im Programm<br />
vorkommenden – endlich vielen – Konstanten, <strong>und</strong> diese dann wie in Version 0 vorkommende<br />
Konstanten zu behandeln.<br />
Wir nennen ein Atom ApP, . . . q abgeschlossen (gro<strong>und</strong>), wenn Vars(A) “ H, also wenn A keine Variablen<br />
enthält.<br />
Für die Substitution σ : V arspDq Ñ ConstpP q gilt: Dσ (engl. gro<strong>und</strong> instance, deutsch: ??) ist die<br />
Klausel, die aus D durch simultane Ersetzung aller X in D durch σpXq entsteht.<br />
Wir schreiben rc 1 {X 1 , . . . , c n {X n s für die Substitution σ mit σpX i q “ c i @ i.<br />
16
Beispiel: Verwandtschaft again<br />
(Großvater(X, Y ) Ð Vater(X, Z), Mutter(Z, Y )) [Hans/X, Paula/Z, Fritz/Y]<br />
= Großvater(Hans, Fritz) Ð Vater(Hans, Paula), Mutter(Paula, Fritz).<br />
Übersetze dann eine einzelne Klausel D in eine Menge von Klauseln:<br />
D “ tDσ|σ : V arspDq Ñ ConstspP qu<br />
P “ ď DPP<br />
D<br />
Dann erfüllt ein Programm <strong>der</strong> Version 1 ␣Q genau dann, wenn Version 0 ␣Q auch erfüllt:<br />
P ( 1 ␣Q ô P ( 0 ␣Q. Daraus folgt:<br />
• Wir können alle Gro<strong>und</strong> Instances <strong>der</strong> Regeln <strong>und</strong> Fakten verwenden<br />
• ␣Q ” Ž σ:V arspQqÑConstspP q ␣Qσ<br />
#<br />
„no“ bei P * ␣Q<br />
Antwort ist also<br />
σ mit P ( ␣Qσ<br />
Beispiel:<br />
Wir verwenden das gleiche Programm wie oben.<br />
Die Anfrage lautet Q “Ð GrovaterpX, Y q.<br />
Es wird getestet, ob folgen<strong>der</strong> Zusammenhang gilt:<br />
@X, Y, Z.P looooomooooon<br />
universeller Abschluss<br />
hkikj D␣<br />
( loooooooomoooooooon<br />
␣@ X, Y : Q<br />
DX,Y :GpX,Y q<br />
Großvater(Hans, Fritz) Ð Vater(Hans, Paula), Mutter(Paula, Fritz) P P<br />
Da Mutter(Paula, Fritz), Vater(Hans, Paula) P P<br />
gilt P ( ␣QrHans/X, Fritz/Ys. Die Ausgabe von Prolog wäre also: X “ Hans, Y “Fritz.<br />
2.3. Version 2<br />
Damit lassen sich jetzt aber noch keine Datenstrukturen bauen, die wir für unsere fertige Programmiersprache<br />
doch ganz gerne hätten. . .<br />
Prolog mit „echten“ Termen:<br />
Vorrat Σ (Signatur) an Funktionssymbolen f mit endlicher Stelligkeit (Anzahl „Funktionsparameter“)<br />
n ě 0, Notation: f{n P Σ.<br />
E :– X|fpE 1 , . . . , E n q<br />
pF {n P Σq<br />
Beispiel: Liste<br />
Σ “ t<br />
rs{0 lomon<br />
leerer Konstruktor<br />
, r_|_s{2 looomooon<br />
Listenkonkatenation<br />
, 0{0 lomon<br />
Konstante 0<br />
, 1{0 lomon<br />
Konstante 1<br />
Prolog hat keine Konzepte wie »Rückgabewerte« o<strong>der</strong> »Funktionsaufruf«, deshalb drücken wir<br />
das Anhängen eines Elements an eine Liste <strong>und</strong> das Ergebnis in einem dreistelligen Prädikat aus:<br />
append(rs, X, X) (lies: append([], X) = X)<br />
append(rX|Y s, Z, rX|W s) Ð append(Y, Z, W )<br />
u<br />
17
Notation<br />
Zur vereinfachung <strong>der</strong> Schreibweise definieren wir folgende abkürzenden Schreibweisen:<br />
ra 1 , a 2 , . . . , a n s “ ra 1 |ra 2 | . . . a n |rss . . . s<br />
ra 1 , a 2 , . . . , a n |ls “ ra 1 |ra 2 | . . . a n |lss<br />
Beispiel: Auswertung von logischen Ausdrücken durch Prolog<br />
Q 1 : Ð appendpr0, 1s, r1, 0s, Xq<br />
Antwort: X ÞÑ r0, 1, 1, 0s<br />
Q 2 : Ð appendpr0, 1s, X, r0, 1, 1sq<br />
Ð appendpr1s, X, r1, 1sq<br />
Ð appendprs, X, r1sq<br />
Antwort: X ÞÑ r1s<br />
Hierbei wurde in Schritt 1 <strong>und</strong> 2 gegen die zweite Regel gematcht.<br />
Ist die Ableitung nicht mehr eindeutig, o<strong>der</strong> werden beim Befolgen <strong>der</strong> Regeln tote Enden angetroffen,<br />
so arbeitet das System mit Backtracking, z.B.<br />
Q :Ð appendpX, Y, r0, 1sq<br />
a) Ð appendprs, r0, 1s, r0, 1sqX ÞÑ rs, Y ÞÑ r0, 1s;<br />
b) appendpr0|X 1 s, Y, r0, 1sqX ÞÑ r0|X 1 s<br />
appendpX 1 , Y, r1sq<br />
b.i) X 1 ÞÑ rs, Y ÞÑ r1s ù X ÞÑ r0s<br />
b.ii) X 1 ÞÑ r1|X 2 s<br />
Ð appendpX 2 , Y, rsqX 2 ÞÑ rs, Y ÞÑ rs ù X ÞÑ r0, 1s<br />
2.4. Unifikation<br />
Die Unifikation sagt uns, wie – <strong>und</strong> ob überhaupt – zwei Terme strukturell gleich gemacht, sprich<br />
Unifiziert werden können.<br />
Beispiel:<br />
Die Anfrage<br />
Ð appendpX, r0|Y s, r1 0 1|Zsq<br />
soll mit <strong>der</strong> folgenden Regel gematcht werden<br />
appendprX 1 |Y 1 s, Z 1 , rX 1 |W 1 sq Ð appendpY 1 , Z 1 , W 1 q<br />
Wir suchen also für die ersten beiden Argumente eine Substitution σ mit rX 1 |Y 1 sσ “ σprX 1 |Y 1 sq ! “<br />
X. Damit werden wir scheitern, denn rX 1 |Y 1 s ist ein zusammengesetzter Term, also nicht mit einer<br />
einzelnen Variable unifizierbar.<br />
Der funktionierende Weg ist, ein σ zu finden, das rX 1 |Y 1 sσ “ Xσ erfüllt, also sowohl auf die Liste<br />
als auch auf X angewendet zwei gleiche Terme produziert.<br />
18
Für die zweiten Argumente <strong>der</strong> beiden Terme muss unser σ erfüllen: Z 1 σ “ r0|Y sσ, <strong>und</strong> schließlich<br />
für das dritte Argumentepaar: rX 1 |W 1 sσ “ r1 0 1|Zsσ<br />
z.B.:<br />
σ :“ tX 1 ÞÑ 1, X ÞÑ r1|Y 1 s, Z 1 ÞÑ r0 1s|Zs, Y ÞÑ r1|Zs, W 1 ÞÑ r0 1|Zsu<br />
Zur „Gleichmachung“ wird ggf. Substitution angewendet, die wir jetzt formell definieren wollen:<br />
Definition: Substitution<br />
Eine Substitution ist eine Abbildung σ, die je<strong>der</strong> Variable X einen Term σpXq zuordnet, so dass<br />
die Menge<br />
Dom σ “ tx|σpxq ‰ xu<br />
endlich ist, d.h. σ verän<strong>der</strong>t nur eine endliche Anzahl an Variablen. Dom σ („Domain“, „Bereich“<br />
von σ) ist die Menge aller Variablen, mit denen σ „etwas tut“, d.h. denen σ einen an<strong>der</strong>en Wert<br />
zuordnet.<br />
rX 1 ÞÑ E 1 , . . . , X n ÞÑ E n s ist die Substitution σ mit<br />
#<br />
σpXi q wenn X “ X i<br />
σpXq “<br />
X<br />
sonst<br />
Die Identität entspricht <strong>der</strong> leeren Substitution r s, also Φ r s ” Φ. Für Substitutionen σ, τ ist<br />
Eσ die Anwendung von σ auf E. Dabei wird jede Variable wie in σ angegeben ersetzt; Xσ “<br />
σpXq; fpE 1 , . . . , E n qσ “ fpE 1 σ, . . . , E n σq.<br />
στ ist die Substitution mit pστqpXq “ σpXqτ “ τpσpXqq.<br />
Es wird also erst mit σ <strong>und</strong> dann mit τ substituiert.<br />
Definition: Gleichung<br />
Eine Gleichung E . “ D ist ein Paar pE, Dq von Termen – die linke <strong>und</strong> die rechte Seite im Sprachgebrauch.<br />
Definition: Unifikator<br />
Eine Substitution σ ist ein Unifikator von E . “ D, wenn Eσ ” Dσ. Dreifaches Gleichheitszeichen<br />
(”) meint syntaktische, nicht nur semantische Gleichheit.<br />
σ ist ein Unifikator von S “ pE 1<br />
. “ D1 , . . . , E n<br />
. “ Dn q, wenn σ Unifikator von E i<br />
. “ Di @1 ď i ď n<br />
ist, d.h. wenn σ für alle Gleichungen in S ein Unifikator ist.<br />
UnifpSq “ t σ | σ ist Unifikator von S u ist die Menge aller Unifikatoren von S.<br />
19
Unifikatoren sind abgeschlossen über <strong>der</strong> Spezialisierung, d.h. eine Spezialisierung eines Unifikators ist<br />
selbst wie<strong>der</strong> ein Unifikator.<br />
σ P UnifpSq ñ στ P UnifpSq<br />
Dies können wir nutzen, um alle Unifikatoren einer Gleichung zu finden, wenn wir einen allgemeinsten<br />
Unifikator gef<strong>und</strong>en haben. Diesen allgemeinsten Unifikator müssen wir dann nur noch mit Spezialisierungen<br />
versehen, <strong>und</strong> erhalten daraus alle Unifikatoren.<br />
Definition: Allgemeine Unifikatoren<br />
σ 1 ist allgemeiner als σ 2 , wenn eine Substitution τ existiert mit σ 1 τ “ σ 2 , also wenn σ 2 durch eine<br />
Spezialisierung aus σ 1 hervorgeht.<br />
»σ ist <strong>der</strong> allgemeinste Unifikator von S« sei definiert als: @σ 1 P Unif(S): σ ist allgemeiner als σ 1 .<br />
Man schreibt: σ “ mgupSq („most general unifyer“).<br />
Lemma 6.<br />
σ “ mgupSq ñ UnifpSq “ tστ|τ Subst. u<br />
Kennt man den allgemeinsten Unifikator von S, so kann man durch Spezialisierungen alle an<strong>der</strong>en<br />
Unifikatoren bestimmen.<br />
Behauptung: Der mgu ist eindeutig bis auf eindeutige injektive Umbenennung von Variablen, d.h.<br />
σ, σ 1 sind mgu von S ñ es existiert τ : σ 1 “ στ mit den Eigenschaften:<br />
• τ ist eindeutig bestimmt auf V arspσq “ Ť xPV ars V arspσpxqq<br />
• τ ist injektiv auf V arspσq.<br />
TODO: den beweis nochmal durchchecken<br />
Beweis: Eindeutigkeit des mgu bis auf Umbenennung<br />
τ existiert, da σ ein mgu <strong>und</strong> σ 1 Unifikator, ebenso existiert τ 1 mit σ 1 τ 1 “ σ.<br />
(i) τ eindeutig auf x P V arspσpyqq, wenn auch σ 1 “ στ, dann<br />
σpyqτ “ σ 1 pyqτ, also notwendig τpxq “ τpxq<br />
(ii) τ injektiv auf V arspσq. Mit (i) insbeson<strong>der</strong>e<br />
στ 0 “ σ ñ τ 0 pxq “ x für alle x P V arspσq (2)<br />
Nach (2) folgt aus σττ 1 “ σ, dass τ 1 τpxq “ x für alle x P V arspxq, also falls τpxq “ τpyq für<br />
x, y P V arspσq, so gilt x “ ττ 1 pxq “ τ 1 τpyq “ y ̌<br />
Damit ist die Eindeutigkeit in <strong>der</strong> Semantik gezeigt, Umbenennung von Variablen ist aber trotzdem<br />
möglich.<br />
Beweis <strong>der</strong> Existenz eines mgu durch Angabe eines Algorithmus, <strong>der</strong> einen solchen mgu findet, z.B.<br />
Robinson:<br />
TODO: fix indentation and some formulas TODO: also the labels (1)-(3) are really overlookable<br />
20
2.4.1. Unifikationsalgorithmus von Robinson<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17<br />
18<br />
19<br />
mgu(S) = {<br />
.<br />
Stack := S // pS “ pE_1 “ D_1, . . . , E_n “ . D_nq q<br />
σ – rs<br />
while S not empty, do<br />
pop (E, D)<br />
if E = X(Var.) then E – σpXq<br />
if D = X(Var.) then D – σpXq<br />
case<br />
E “ fpE_1, . . . , E_kq, D “ gpD_1, . . . , D_lq // E, F Terme<br />
if f ‰ g then fail<br />
.<br />
.<br />
else (* k = l *) push (1) E_1 “ D_1, . . . , E_k “ D_l<br />
| E = X ñ // E Variable<br />
if X P V arspDσq then (if Dσ “ X then skip (2) else fail)<br />
else σ – σrX ÞÑ Dσs (3)<br />
| D = X // D Variable<br />
analog<br />
return σ<br />
}<br />
Beweis: Korrektheit des Robinson-Algorithmus<br />
Korrektheit heißt, dass<br />
(i) sofern ein mgu gef<strong>und</strong>en wird, dieser Korrekt ist<br />
(ii) sofern keine mgu gef<strong>und</strong>en wird, dieser nicht existiert<br />
Der Beweis wird geführt, indem gezeigt wird, dass eine Schleifeninvariante nach jedem Schleifendurchlauf<br />
gilt, <strong>und</strong> dass diese Invariante die Korrektheit impliziert.<br />
Invariante:<br />
UnifpSq “ σUnifpStack σq (1)<br />
p “ tστ|τ P UnifpStack σquq<br />
^ Dom σ Y VarspStack σq “ H (2)<br />
Invariante gilt nach Initialisierung<br />
Zu Beginn ist σ <strong>und</strong> damit Dom σ leer, also Dom σ Y VarspStack σq “ H erfüllt <strong>und</strong> UnifpSq “ σ<br />
UnifpStack σq vereinfacht sich zu UnifpSq “ UnifpStackq, was durch die Initialisierung gegeben ist.<br />
Invariante gilt nach einem Schleifendurchlauf<br />
Zu zeigen ist, dass die drei mit (1), (2) <strong>und</strong> (3) markierten Stellen im Algorithmus die Schleifeninvariante<br />
erhalten.<br />
(1) Es wird eine Gleichung vom Stack genommen <strong>und</strong> dafür k Gleichungen mit dem selben Unifikator<br />
wie <strong>der</strong> <strong>der</strong> ersten Gleichung auf den Stack gelegt. Dadurch än<strong>der</strong>t sich <strong>der</strong> Unifikator des<br />
Gesamtstacks nicht – UnifpStackq, σ bleiben gleich.<br />
(2) Es wird eine Gleichung vom Stack genommen, die von <strong>der</strong> Form X “ X ist: man kommt nur in<br />
den Fall (2), wenn Dσ “ X “ E ist. Das trägt offensichtlich zum Unifikator nichts bei. σ <strong>und</strong><br />
21
UnifpStackq bleiben gleich, VarspStackq nimmt allenfalls ab, was aber die Invariante erhält.<br />
(3) Es wird eine Gleichung vom Stack genommen <strong>und</strong> σ um eine weitere Substitutionsklausel erweitert.<br />
Der zweite Teil <strong>der</strong> Invariante bleibt erhalten, da X R VarspDσq; zu Dom σ wird X hinzugefügt,<br />
aus Stack σ wird X entfernt.<br />
Der erste Teil <strong>der</strong> Invariante ist etwas aufwändiger: wir müssen zeigen, dass<br />
σUnifp<br />
pStack Y pX . “ Dqqσ<br />
loooooooooooomoooooooooooon<br />
“Stack σYpX . “Dσq,XRDompσq<br />
Die Verän<strong>der</strong>ungen bei diesem Schritt sind<br />
a) (X . “ D) lag vorher auf dem Stack, wurde entfernt<br />
b) σ wurde um rX ÞÑ Ds erweitert.<br />
q “ σrX ÞÑ DsUnifpStack σrX ÞÑ Dsq<br />
Wir können auf beiden Seiten das führende σ streichen. Dadurch wird die Bedingung etwas verschärft<br />
(die schon in σ vorhandenen Substitutionen werden nicht genutzt), aber wenn wir es ohne<br />
σ schaffen, die Gleichheit zu zeigen, gilt sie auch mit σ.<br />
σUnifp pStack 1 Y pX . “ Dqqσ<br />
looooooooooooomooooooooooooon<br />
“Stack 1 σYpX . “Dσq,da XRDompσq<br />
q “ σrX ÞÑ DσsUnifpStack 1 σrX ÞÑ Dσsq<br />
Dass `Stack 1 Y pX . “ Dq˘ σ “ Stack 1 σ Y pX . “ Dσq, also die bisherige Substitutionsmenge σ nicht<br />
auf X angewendet werden muss, liegt daran, dass X nicht in Dompσq vorkommen kann, da es<br />
falls es vom Stack genommen wird, in den zwei Zeilen nach pop() wegsubstituiert wird (O-Ton<br />
Schrö<strong>der</strong>: „on-the-fly“).<br />
Jetzt nehmen wir uns einen Hilfsunifikator τ, von <strong>der</strong> wir zeigen wollen, dass wenn τ Element <strong>der</strong><br />
linken Seite (LHS) ist, daraus folgt dass τ Element <strong>der</strong> rechten Seite ist, also effektiv die LHS<br />
gleich <strong>der</strong> RHS ist.<br />
τ P LHS<br />
ðñ τ P Unif(Stack 1 q σ ^ τpXq “ Dστ<br />
ðñ τ P Unif(Stack 1 σrX ÞÑ Dστsq ^ τpXq “ Dστ<br />
ðñ τ P RHS<br />
Da sich τ disjunkt in einen Teil mit (Effekt auf) X <strong>und</strong> einen Teil ohne zerlegen lässt, sind wir an<br />
<strong>der</strong> Stelle fertig. TODO: das hier in human-un<strong>der</strong>standable<br />
Terminierung<br />
Def.<br />
Terminierung bei Stack = [], also UnifpSq “ σ Unif [] ðñ σ “ mgu S, da Unif [] die Menge aller<br />
Substitutionen ist. Dass <strong>der</strong> Algorithmus terminiert, lässt sich argumentieren, indem je<strong>der</strong> Schritt<br />
offensichtlich entwe<strong>der</strong><br />
i) Ein Operationssymbol vom Stack nimmt, <strong>der</strong> dadurch kleiner wird, o<strong>der</strong><br />
ii) eine Variable vom Stack nimmt, evtl. <strong>der</strong> Substitution σ hinzufügt <strong>und</strong> dadurch den Stack ebenfalls<br />
verkleinert.<br />
Definition: Unifizierbarkeit<br />
22
S heißt unifizierbar, wenn UnifpSq ‰ H.<br />
Es ist entscheidbar, ob S unifizierbar ist. Wenn S unifizierbar ist, hat S einen mgu <strong>und</strong> mgupSq ist<br />
berechenbar. Der Robinson-Algorithmus läuft im worst-case in exponentieller Zeit, das Problem an<br />
sich ist aber in polynomieller Zeit lösbar, z.B. mit dem Algorithmus von Martelli-Montanari. In <strong>der</strong><br />
Praxis hat sich <strong>der</strong> Robinson-Algorithmus als effizienter erwiesen.<br />
3. Prädikatenlogik erster Stufe<br />
3.0.2. Terminologie, Übersetzung<br />
Der englische Begriff »first or<strong>der</strong> logic« bezeichnet die <strong>Logik</strong> mit Prädikaten wie wir sie jetzt kennen<br />
lernen werden. Bezüglich <strong>der</strong> korrekten Übersetzung gibt es manchmal Zweifel, die korrekte Übersetzung<br />
in Langform ist Prädikatenlogik erster Stufe. Wir werden uns mit <strong>der</strong> Bezeichnung Prädikatenlogik<br />
begnügen, meinen aber immer Prädikatenlogik erster Stufe.<br />
Definition: Syntax <strong>der</strong> Prädikatenlogik<br />
Die Syntax <strong>der</strong> Prädikatenlogik ist gegeben durch die folgende BNF:<br />
P ist dabei ein n-stelliges Prädikat.<br />
ϕ :– E “ D | P pE 1 , . . . , E n q | ␣ϕ | ϕ 1 ^ ϕ 2 | @X.ϕ<br />
Der bekannte Existenzquantor wird abgebildet durch DX.ϕ – ␣@X.␣ϕ, außerdem<br />
K ” ␣@X.X “ X. Die restlichen Abbildungen wie Implikation, O<strong>der</strong> etc. werden wie gewohnt<br />
abgeleitet.<br />
Die Sprechweise für @X.ϕ ist »für alle X gilt ϕ«, bei DX.ϕ sagt man »es existiert ein X, so dass<br />
ϕ« o<strong>der</strong> »es existiert ein X mit <strong>der</strong> Eigenschaft ϕ.<br />
Wie immer folgt <strong>der</strong> Syntax-Definition die Semantik.<br />
Definition: Semantik <strong>der</strong> Prädikatenlogik<br />
Wir definieren folgende Bedeutungen:<br />
@X.ϕ „Für alle X gilt ϕ“<br />
DX.ϕ „Es existiert ein X, so dass ϕ“<br />
Außerdem ist noch <strong>der</strong> Begriff <strong>der</strong> Signatur wichtig. Die Signatur o<strong>der</strong> Sprache Σ enthält Prädikaten<strong>und</strong><br />
Funktionssymbole mit jeweils gegebener endlicher Stelligkeit.<br />
Aufbauend auf dem Signaturbegriff können wir nun unser Modell definieren. Im Falle <strong>der</strong> Aussagenlogik<br />
war ein Modell schlicht <strong>und</strong> einfach eine Wahrheitsbelegung κ. Damit kommen wir jetzt nicht mehr<br />
klar, da wir neben Prädikaten auch Variablen zu verwalten haben.<br />
23
Definition: Σ-Modell M<br />
Ein Σ-Modell M (Struktur, Interpretation, Algebra, . . . ) besteht aus<br />
• Einer Menge M (»Universum«, »Gr<strong>und</strong>bereich«, . . . )<br />
• Für eine n-stellige Funktion f{n P Σ eine Interpretation in M, gegeben durch<br />
Mf : M n Ñ M<br />
• Für ein n-stelliges Prädikat P {n P Σ eine Menge von Belegungstupeln MP Ď M n<br />
Eine Umgebung η ist eine Abbildung η : Vars Ñ M.<br />
Definition: Erfülltheit<br />
Zu einem Term E definieren wir seine Bedeutung MEη P M rekursiv durch<br />
• MXη = ηpXq<br />
• MfpE 1 , . . . , E n q = Mf pME 1 η, . . . , ME n ηq<br />
Die Erfülltheit einer Formel ϕ (bestehend aus n Termen) auf einem Modell <strong>und</strong> einer Umgebung<br />
M, η ( ϕ ist rekursiv definiert durch<br />
M, η ( pE “ Dq ðñ MEη “ MDη<br />
M, η ( P pE 1 , . . . , E n q ðñ pME 1 η, . . . , ME n ηq P MP <br />
Der Allquantor wird definiert durch<br />
M, η ( @X.ϕ ðñ Für alle m P M.M, ηrX ÞÑ ms ( ϕ<br />
Dabei beschreibt ηrX ÞÑ mspV q diejenige Funktion, die alle X in η durch m ersetzt <strong>und</strong> η ansonsten<br />
gleich übernimmt – also eine Substitution von X durch m auf η.<br />
Wir definieren uns rekursiv die Menge aller freien Variablen in einer Formel wie folgt; alle Variablen,<br />
die nicht nach dieser Definition frei sind, sind geb<strong>und</strong>en.<br />
Definition: Freie Variable<br />
@X.ϕ bindet X, welches damit keine freie Variable mehr ist. Die Freien Variablen einer Formel sind<br />
F V pEq<br />
“ V arspEq<br />
F V pE “ Dq<br />
“ F V pEq Y F V pDq<br />
nď<br />
F V pPpE 1 , . . . , E n qq “ F V pE i q<br />
i“1<br />
F V p␣ϕq<br />
“ F V pϕq<br />
F V pϕ ^ πq<br />
“ F V pϕq Y F V pπq<br />
F V p@X.ϕq<br />
“ F V pϕqztXu<br />
F V pX “ Y ^ @Y.Y “ Wq “ tX, Y, W u<br />
24
Definition: Satz, universeller Abschluss<br />
ϕ heißt Satz ðñ F V pϕq “ H, also alle Variablen geb<strong>und</strong>en sind.<br />
Seien die freien Variablen F V pϕq “ tX 1 , . . . , X n u. Dann ist <strong>der</strong> Universelle Abschluss von ϕ die<br />
Formel @ϕ ” @X 1 , . . . , @X n .ϕ. Semantisch werden dadurch alle freien Variablen an jeweils einen<br />
Allquantor geb<strong>und</strong>en, die Formel wird zum Satz. Man kann den universellen Abschluss umschreiben<br />
durch „einfach alle möglichen Variablen einsetzen“.<br />
Nun wollen wir zeigen, dass die freien Variablen das tun, was wir haben wollten, als wir sie definiert<br />
haben, dass nämlich eine Formel (höchstens) von den in ihr vorkommenden freien Variablen abhängt<br />
(höchstens, weil z. B. auch Tautologien möglich sind, die von garkeinen Variablen abhängig sind).<br />
Lemma 7. Sei η 1 pXq “ η 2 pXq für alle X P F V pϕq, dann M, η 1 ( ϕ ðñ M, η 2 ( ϕ, also:<br />
die Erfülltheit von ϕ ist unabhängig von den Umgebungen, solange die Umgebungen auf den freien<br />
Variablen von ϕ übereinstimmen.<br />
Beweis: Lemma 7<br />
Wir haben einen Induktionsbeweis vor, aber das Problem dass wir mit inhomogenen Entitäten arbeiten:<br />
Formeln <strong>und</strong> Termen. Daher beweisen wir zunächst, dass unsere Annahme für Terme korrekt ist, um<br />
dies in <strong>der</strong> Induktion für Formeln verwenden zu können:<br />
zZ: Es gilt für alle Terme E mit η 1 pXq “ η 2 pXq für alle X P F V pEq<br />
MrEsη 1 “ MrEsη 2 (1)<br />
Beweis per Induktion über E. Dieser Beweis beruht darauf, dass für Terme beide Seiten gleich interpretiert<br />
werden, man müsste es nur für jede Art Term einmal hinschreiben. Wir sparen uns das <strong>und</strong><br />
sehen es als bewiesen an.<br />
Induktion über ϕ: Atomare Formeln per (1), boolesche Fälle trivial. Ein Interessanter Fall ist noch <strong>der</strong><br />
des Allquantors:<br />
@X.ϕ : M, η 1 ( @X.ϕ ðñ<br />
Zur Anwendung <strong>der</strong> Induktionshypothese ist Zz:<br />
für alle m P M M, η 1 rX ÞÑ ms ( ϕ<br />
looooooooooomooooooooooon<br />
ðñ M,η 2 rXÞÑms(ϕs<br />
η 1 rX ÞÑ mspY q “ η 2 rX ÞÑ mspY q für alle Y P F V pϕq Ď F V p@X.ϕq Y tXu (2)<br />
Dass diese Gleichheit gilt, ist klar dadurch, dass die Gleichheit für F V p@X.ϕq gegeben ist, <strong>und</strong> falls<br />
Y “ X, so wird Y auf beiden Seiten <strong>der</strong> Gleichung durch X ersetzt, somit auch gleich <strong>und</strong> wir können<br />
schreiben M, η 2 ( @X.ϕ.<br />
Damit ist für einen Satz ϕ (<strong>der</strong> ja keine freien Variablen hat), M, η ( ϕ von η unabhängig, schreibe<br />
M ( ϕ.<br />
(1)<br />
Wie bisher für Aussagenlogische Formeln definieren wir M, η ( Φ ðñ M, η ( ϕ für alle ϕ P Φ.<br />
Logische Konsequenz, Erfüllbarkeit, Gültigkeit, logische Äquivalenz wie bisher bis auf Ersetzung von<br />
Wahrheitsbelegung κ durch M, η (o<strong>der</strong> nur M bei Sätzen).<br />
25
Beispiel: Erfüllbarkeit von Formeln <strong>der</strong> Prädikatenlogik<br />
ϕ ” π : ðñ @M, η.M, η ( ϕ ðñ M, η ( π<br />
Φ erfüllbar ðñ DM, η ( Φ<br />
Weiterhin:<br />
Wenn π logische Konsequenz von Φ ist, dann ist Φ vereinigt mit <strong>der</strong> Negation von π unerfüllbar.<br />
Φ ( π ðñ Φ Y t␣πu unerfüllbar.<br />
Beispiel: Logische Schlüsse<br />
Gegeben sei folgendes Programm:<br />
Φ “ t@X.@Y. pChildpX, Y q Ñ LovespX, Y qq , ChildpTom, Maryqu<br />
<strong>und</strong> die Anfrage π “ LovespMary, Tomq<br />
Φ ( π : Sei M ( Φ ñM, rX ÞÑ M, Y ÞÑ T s ( CpY, Xq Ñ LpX, Y q<br />
ñ M ( LpM, T q “ LpX, looomooon Y q rX loooooooooomoooooooooon<br />
ÞÑ M, Y ÞÑ T s<br />
ϕ<br />
M, rX ÞÑ M, Y ÞÑ T s ( CpY, Xq<br />
ñM, rX ÞÑ M, Y ÞÑ T s ( LpX, Y q<br />
σ<br />
Das beruht auf dem<br />
3.1. Substitutionslemma<br />
M, η ( ϕσ ðñ M, ηrX ÞÑ MrσpXqsη|X P Dompσqs ( ϕ<br />
Beispiel: Logische Konsequenz<br />
DX.@Y.LovespY, Xq ( @Y.DX.LpY, Xq<br />
Beweis: vorheriges Beispiel<br />
Aus <strong>der</strong> Annahme folgt: es existiert ein<br />
m P M.M, rX ÞÑ ms ( @Y.LpY, Xq (1)<br />
Sei n P M, dann ist zZ: M, rY ÞÑ ns ( DX.LpY, Xq. Das folgt aus<br />
M, rY ÞÑ n, X ÞÑ ms ( LpY, Xq (wg. 1)<br />
@Y.DX.LpY, Xq * DX.@Y.LpY, Xq: Gegenmodell z.B. Lp1, 0q ^ Lp0, 1q folgt nicht Lp0, 0q o<strong>der</strong> Lp1, 1q<br />
Beispiel:<br />
Logische Äquivalenz<br />
␣@X.ϕ ” DX.␣ϕ<br />
␣DX.ϕ ” @X.␣ϕ<br />
Ñ NNF; mit @, D in <strong>der</strong> Grammatik sonst Endlosnegation in gegenseitigen Definitionen<br />
26
3.1.1. Wie<strong>der</strong>holung<br />
Wir erinnern uns:<br />
Programm Menge P von definiten Klauseln A 0 Ð A 1 , . . . , A n entspricht @pA 1 ^ ¨ ¨ ¨ ^ A n Ñ A 0 q<br />
Anfragen Zielklauseln Q “Ð A 1 , . . . , A n entspricht @␣pA 1 ^ ¨ ¨ ¨ ^ A n q ” ␣DpA 1 ^ ¨ ¨ ¨ ^ A n q<br />
Prolog-Engine versucht zu zeigen, dass P Y tQu unerfüllbar, d.h. dass<br />
P ( DpA 1 ^ ¨ ¨ ¨ ^ A n q<br />
3.2. Herbrand-Modelle<br />
TODO: forums-faden evtl. einpflegen<br />
=Intendierte Modelle von Programmen:<br />
• alle Elemente sind benannt<br />
• verschiedene Namen Ñ verschiedene Elemente<br />
• P ( ␣Q ðñ<br />
M p lomon<br />
kleinstes H-Modell<br />
( ␣Q<br />
Ab hier ohne „““, da nicht in <strong>der</strong> Syntax enthalten <strong>und</strong> einfacher nicht jedes mal ausschließen zu<br />
müssen.<br />
Definition: Herbrand-Universum, Herbrand-Basis<br />
Gegeben sind:<br />
Signatur Σ Die Menge aller vorkommenden Symbole, meist implizit durch Verwendung „definiert“.<br />
Herbrand-Universum Die Menge aller Terme, die ohne Variablen gebildet werden können:<br />
U Σ “ tE | E Term über Σ, F V pEq “ Hu<br />
Herbrand-Basis Die Menge aller Terme, die durch anwendung aller Prädikate erzeugt werden<br />
können:<br />
B Σ “ tϕ | ϕ atomare Formel über Σ, F V pϕq “ Hu<br />
“ tP pE 1 , . . . , E n q | P {n P Σ, E 1 , . . . , E n P U Σ u<br />
Beispiel: Ungerade Zahlen<br />
P “<br />
also Σ “ ts, 0, oddu<br />
U Σ “ t0, sp0q, spsp0qq, . . . u<br />
B Σ “ toddp0q, oddpsp0qq, oddpspsp0qqq, . . . u<br />
#<br />
oddpsp0qq<br />
oddpspspXqqq Ð oddpxq<br />
27
Definition: Herbrand-Σ-Modell<br />
Ein Herbrand-Σ-Modell ist ein Σ-Modell M mit<br />
• M = U Σ<br />
• Für f{n P Σ gilt<br />
MfpE 1 , . . . , E n q<br />
Lemma 8. Sei M Herbrand-Σ-Modell. Dann ist MEη “ Eη. Was wir hierbei zum Verständnis<br />
beachten müssen, ist dass η eine Substitution ist (eine Abbildung von Variablen auf Terme).<br />
Beweis: Lemma 8<br />
Der Beweis erfolgt durch Induktion über E.<br />
Definition: Gro<strong>und</strong> Instance<br />
Sei ϕ eine Formel. Eine Gro<strong>und</strong> Instance von ϕ (von @ϕ) ist eine Formel <strong>der</strong> Form ϕσ mit σ :<br />
F V pϕq Ñ U Σ , so dass insbeson<strong>der</strong>e ϕσ eine abgeschlossene Formel ist, also F V pϕσq “ H.<br />
Satz 9. Sei M ein Herbrand-Σ-Modell <strong>und</strong> ϕ eine beliebige Formel. Dann gilt<br />
M ( @ϕ ðñ M ( ϕσ für jede gro<strong>und</strong> instance ϕσ von ϕ<br />
Beweis: Satz<br />
Für einen Äquivalenzbeweis müssen wir immer beide Richtungen <strong>der</strong> Gleichheit zeigen.<br />
ñ trivial, wenn die Erfülltheit für alles einsetzbare gilt, gilt sie auch für alle gro<strong>und</strong> instances.<br />
ð Sei F V pϕq “ tX 1 , . . . , X n u. Dann ist zu zeigen, dass für alle E 1 , . . . , E n P U Σ gilt:<br />
M, rX 1 ÞÑ E 1 , . . . , X n ÞÑ E n s ( ϕ<br />
Wir wollen zeigen, dass wenn alle gro<strong>und</strong> instances erfüllt sind, automatisch auch <strong>der</strong> universelle<br />
Abschluss @ϕ erfüllt ist. Wir zeigen also, dass für jede mögliche Belegung <strong>der</strong> universelle Abschluss<br />
erfüllt ist, indem wir eben jede mögliche Belegung (die wir aus dem Universum U Σ kennen)<br />
einsetzen.<br />
Da η wie schon erwähnt die Gestalt einer Substitution hat, können wir hier das Substitutionslemma<br />
zur Anwendung bringen, das uns erlaubt die Substitution auf die Rechte Seite <strong>der</strong> Gleichung<br />
zu ziehen.<br />
ðñ M ( ϕrX 1 ÞÑ E 1 , . . . , X n ÞÑ E n s<br />
looooooooooooooooomooooooooooooooooon<br />
gro<strong>und</strong> instance<br />
Lemma 10. Sei M ein Herbrand-Σ-Modell <strong>und</strong> P {n P Σ. Dann gilt für die Interpretation von P in<br />
M<br />
MP “ tpE 1 , . . . , E n q P U Σ | M ( P pE 1 , . . . , E n qu<br />
28
Beweis: Lemma 10<br />
Der Beweis folgt unmittelbar aus dem Lemma über ME <strong>und</strong> dem Substitutions-Lemma, mit gleicher<br />
Argumentation.<br />
pE 1 , . . . , E n q P MP ðñ M, rX 1 ÞÑ E 1 , . . . , X n ÞÑ E n s ( P pX 1 , . . . , X n q<br />
ðñ M ( P pE 1 , . . . , E n q<br />
D.h. Herbrand-Σ-Modelle p“ Teilmengen <strong>der</strong> Herbrand-Basis B Σ .<br />
M p“ tϕ P B Σ | M ( ϕu<br />
Man kann also von einer Teilmenge <strong>der</strong> Herbrand-Basis auf Modelle schließen, die sie erfüllen <strong>und</strong><br />
umgekehrt.<br />
Beispiel:<br />
Σ “ todd, s, 0u<br />
M 1 “ H<br />
M 2 “ toddpsp0qqu<br />
M 3 “ toddp0q, oddpsp0qqu<br />
M 4 “ toddps n p0qq|n “ 1, 3, 5, . . . u<br />
M 5 “ B Σ<br />
Wir können beobachten, dass solange wir die Ausdrucksmächtigkeit <strong>der</strong> logischen Programmierung<br />
nicht verlassen, die Einschränkung auf Herbrand-Modelle die <strong>Logik</strong>, also z.B. die Erfülltheit einer<br />
Formel nicht beeinflusst.<br />
Satz 11 (Herbrand-Vollständigkeit). Sei Φ eine Menge von quantorenfreien Formeln über Σ. Dann gilt,<br />
dass <strong>der</strong> universelle Abschluss @Φ <strong>der</strong> Menge Φ erfüllbar ist gdw. @Φ ein Herbrand-Σ-Modell hat. Der<br />
universelle Abschluss einer Formelmenge Φ sei definiert als die Menge aller universellen Abschlüsse<br />
<strong>der</strong> enthaltenen Formeln: @Φ – t@ϕ|ϕ P Φu.<br />
Spezifisch: Wenn ein Modell M den universellen Abschluss @Φ erfüllt, dann können wir ein Herbrand-<br />
Modell M 1 als eine Teilmenge <strong>der</strong> Herbrand-Basis konstruieren, das ebenfalls @Φ erfüllt, aber jetzt<br />
eben ein Herbrand-Modell ist (was für M nicht unbedingt gilt).<br />
M ( @Φ ñ M 1 – tϕ P B Σ |M ( ϕu<br />
Wir haben das Modell M 1 bereits konstruiert <strong>und</strong> müssen nun zeigen, dass es auch tatsächlich @Φ<br />
erfüllt.<br />
Beweis: M 1 erfüllt @Φ<br />
Nach vorherigem Satz reicht zu zeigen:<br />
M 1 ( ϕσ für alle ϕ P Φ, ϕσ gro<strong>und</strong> instance<br />
29
Per Induktion über ϕ gilt:<br />
M 1 ( ϕσ ðñ M ( ϕσ<br />
Da ϕ quantorenfrei ist, also nurnoch boolesche Operatoren <strong>und</strong> atomare Formeln enthalten kann (die<br />
booleschen Fälle folgen aus <strong>der</strong> Definition), ist die Gleichheit nurnoch für atomare Formeln zu zeigen,<br />
was nach Konstruktion gilt.<br />
M ( @ϕ, da M ( @Φ<br />
Wenn irgendein Modell einen allquantifizierten Satz erfüllt, erfüllt es insbeson<strong>der</strong>e alle gro<strong>und</strong> instances<br />
des Satzes.<br />
Der Satz gilt nicht für bel. Formelmengen, z.B.<br />
Beispiel:<br />
Φ ist erfüllbar, z.B. in ta “ H, Domppq “ t1uu<br />
Φ “ t␣ppaq, DX.ppXqu, Σ “ ta, pu<br />
U Σ “ tau, B Σ “ tppaqu<br />
Dieses erfüllt beide Formel in Φ, hat aber kein Herbrand-Modell, da die zwei möglichen Herbrand-<br />
Modelle – tppaqu <strong>und</strong> tu – nicht erfüllt sein können.<br />
Bemerkung: Wählen wir M “ B Σ , also quasi das größtmögliche Herbrand-Modell, dann erfüllt M<br />
immer P , wobei P ein definites Programm ist. M erfüllt P , wenn es alle gro<strong>und</strong> instances von P erfüllt.<br />
Für A 0 Ð A 1 , . . . , A n P P gilt M ( A 0 σ. Es gilt im allgemeinen nicht, dass M ( Q.<br />
Es zeigt sich, dass verschiedene Herbrand-Modelle nicht unbedingt gleich gut sind.<br />
Wir erinnern uns an das Programm von vorher, in dem wir odd definiert hatten. In unseren 5 Herbrand-<br />
Modellen M 1 , . . . , M 5 . Zum Beispiel ist das Modell M 5 offenbar nicht was beabsichtigt war, da in<br />
diesem Modell jede Zahl ungerade ist.<br />
Wir antworten auf diese Ungereimtheit mit folgendem<br />
Satz 12. Zunächst nehmen wir uns eine Menge von Herbrand-Modellen <strong>und</strong> bilden ihre Schnittmenge.<br />
Sei µ eine Menge von Herbrand-Σ-Modellen, P ein definites Programm (also eine Stufe spezieller als<br />
»quantorenfreie Formelmenge«). M ( P für alle M P µ. Dann erfüllt diese Schnittmenge Ş µ “ M<br />
das Programm P (M ( P ).<br />
Beweis: Satz<br />
Sei D eine definite Klausel D “ A 0 Ð A 1 , . . . , A n P P, Dσ eine gro<strong>und</strong> instance. zZ: M ( Dσ, also<br />
dass wenn die Annahmen A 1 , . . . , A n erfüllt sind, dass dann auch die Konklusion A 0 erfüllt ist. Seien<br />
A 1 σ, . . . , A n σ P M, dann ist zZ: A 0 σ P M, d.h. für alle M P µ : A 0 σ P M.<br />
Wir wissen, dass M ( P @M P µ. Daher reicht es, zu zeigen, dass A 1 σ, . . . , A n σ in M enthalten sind.<br />
Da M Ď M ist (M ist Schnittmenge), <strong>und</strong> A 1 σ, . . . , A n σ P M, liegen sie auch in M .<br />
Korollar 13. Sei P ein definites Programm, dann hat P ein kleinstes Herbrand-Modell M p , das in<br />
allen an<strong>der</strong>en Herbrand-Modellen enthalten ist.<br />
30
Beweis: Korollar<br />
Setze M p “ Ş µ mit µ “ tM|M ( P, M ist Herbrandmodell u<br />
Beispiel:<br />
Σ “ t Male, Female, Adam, Eva u<br />
P “ tMpAq, F pEqu<br />
Die Herbrand-Modelle von P sind nun alle Obermengen von tMpAq, F pEqu<br />
Das Korollar gilt nicht für beliebige Formelmengen<br />
Beispiel:<br />
Σ “ t p, q, a u<br />
Φ “ tppaq _ qpaqu<br />
tppaqu <strong>und</strong> tqpaqu sind beide Herbrand-Modelle für Φ (Teilmengen <strong>der</strong> Herbrand-Basis <strong>und</strong> erfüllen<br />
Φ), <strong>und</strong> sind beide minimal. Dass beide minimal sind, bedeutet dass kein kleinstes Herbrand-Modell<br />
existiert, was dem Korollar bereits wi<strong>der</strong>spricht. Außerdem lässt sich zeigen, dass die Erfülltheit<br />
auch nicht mehr Stabil bezüglich <strong>der</strong> Schnittmengenbildung ist, sobald in <strong>der</strong> Formel Disjunktionen<br />
(Vero<strong>der</strong>ungen) enthalten sind:<br />
tppaqu X tqpaqu “ H . Φ.<br />
Wenn wir uns überlegen, wie viele Herbrand-Modelle es für dass odd-Programm gibt, dann kommen<br />
wir zu folgen<strong>der</strong> Beschreibung aller solcher Modelle:<br />
HM von P : tM 4 Y toddps n p0qq|n gerade, n ě 2Nu|N P Nu Y tM 4 u<br />
Das kleinste Herbrand-Modell ist in diesem Fall M 4 .<br />
Der folgende Satz zeigt nun endlich, warum wir das Modell überhaupt verwenden, warum wir die<br />
ganze Konstruktion überhaupt machen: wir haben mit dem kleinsten Herbrand-Modell M p nämlich<br />
ein Modell, dass genau die erfüllbaren Queries erfüllt.<br />
Satz 14. P Y tQu erfüllbar für alle Programme P, Anfragen Q ðñ M p ( Q<br />
(genau das versucht die Prolog-Engine zu wi<strong>der</strong>legen!)<br />
Beweis: Satz<br />
Es sind wie immer bei „genau-dann-wenn“-Beziehungen beide Richtungen <strong>der</strong> Implikation zu zeigen.<br />
ð klar; M p ist kleinstes Herbrand-Modell von P , erfüllt also P <strong>und</strong> laut Voraussetzung auch Q, also<br />
auch P Y tQu.<br />
ñ Diese Richtung ist etwas schwieriger, was auch an <strong>der</strong> größeren Aussagekraft liegt; dass nämlich,<br />
sobald wir irgendein Modell M haben, das P <strong>und</strong> Q erfüllt, M p ein Modell ist. P Y tQu ist<br />
von <strong>der</strong> Form @Φ, also <strong>der</strong> universelle Abschluss einer Formelmenge Φ. Mit dem Satz 11 über<br />
die Herbrand-Vollständigkeit, <strong>der</strong> besagt dass jede erfüllbare Formelmenge <strong>der</strong> Form @Φ ein<br />
Herbrand-Modell hat.<br />
Daraus folgt (mit Satz 11), dass D Herbrand-Modell M.M ( P Y tQu<br />
ZZ: M p ( Qσ wobei Qσ gro<strong>und</strong> instance von Q. Nach Satz 9 genügt es, zu zeigen dass alle<br />
gro<strong>und</strong> instances erfüllt sind, dann ist auch die allquantifizierte Formel erfüllt.<br />
Da M Q erfüllt, erfüllt es insbeson<strong>der</strong>e auch den universellen Abschluss von Q <strong>und</strong> damit alle<br />
31
gro<strong>und</strong> instances von Q, also:<br />
M ( Qσ, d.h. bei Q “ looooooomooooooon<br />
Ð A 1 , . . . , A n , d.h. M ( ␣A i σ für mindestens ein i P t1, . . . , nu. Dieses<br />
␣pA 1^¨¨¨^A nq<br />
A i ist ein gro<strong>und</strong> atom, ein Element <strong>der</strong> Herbrand-Basis, nicht (notwendigerweise) von M, da M<br />
nur eine Teilmenge <strong>der</strong> Herbrand-Basis ist.<br />
A i σ R M ñ A i σ R M p , da M p Ď M o<strong>der</strong> an<strong>der</strong>s gesagt M p ( ␣A i σ ñ M p ( Q<br />
Korollar 15. M p “ tϕ P B Σ | P ( ϕu<br />
Beweis: Korollar 15<br />
Negation bei<strong>der</strong> Seiten:<br />
P * ϕ ðñ P Y t´ϕu lomon<br />
Anfrage<br />
erfüllbar<br />
hkikj Satz 14<br />
ðñ M p ( ␣ϕ ðñ ϕ R M p<br />
Damit ist die Equivalenz von »Enthaltensein in <strong>der</strong> linken Seite« <strong>und</strong> »Enthaltensein in <strong>der</strong> rechten<br />
Seite« gezeigt, indem über die Negationen <strong>der</strong> beiden Aussagen die Equivalenz bewiesen wurde.<br />
3.2.1. Approximation des kleinsten H-Modells<br />
Für ein definites Programm P P Σ, M Ď B Σ definiren wir den Operator T p wie folgt:<br />
T p pMq “ tA 0 σ | D “ A 0 Ð A 1 , . . . , A n P P, A 1 σ, . . . , A n P M, Dσ ist gro<strong>und</strong> instanceu<br />
T p pMq ist die Menge aller in einem Schritt aus M folgerbaren Atome<br />
Jetzt wollen wir induktiv ein kleinstes Herbrand-Modell (von unten her) approximieren. Dazu fangen<br />
wir mit einem Modell an, dass kein Herbrand-Modell ist, <strong>und</strong> fügen mit Hilfe von T p jeweils einen<br />
weiteren Schritt zum Modell hinzu.<br />
M 0 – H<br />
M i`1 “ T p pM i q<br />
Dass wir im Induktionsschritt M i nicht explizit nochmals hinzunehmen müssen, wie man zunächst<br />
mangels einer Identität in T p annehmen würde, werden wir gleich zeigen.<br />
Zunächst betrachten wir weiter die induktive Annäherung des kleinsten Herbrand-Modells. Wir definieren<br />
die Vereinigung aller M i als M<br />
Satz 16. M “ M p<br />
M –<br />
8ď<br />
M i “ tϕ | Di P N | ϕ P M i u<br />
i“0<br />
Wir behaupten also, dass das angenäherte Modell M ein (genauer: das) kleinstes Herbrand-Modell ist.<br />
Beweis: Satz 16<br />
Beweis wie immer in zwei Richtungen<br />
32
Ď M i Ď M p für alle i, per Induktion beweisbar<br />
Ě Wir zeigen zunächst, dass die Folge (M i ) monoton wächst, weil wir uns darauf im an<strong>der</strong>en Beweis<br />
stützen wollen.<br />
M i Ď M i`1 per Induktion:<br />
i “ 0: M 0 “ H ñ ̌<br />
i ´ 1 Ñ i: Sei ϕ P M i , also M i ‰ H <strong>und</strong> i ą 0, dann ñ DD “ A 0 Ð A 1 , . . . , A n P P, Dσ gro<strong>und</strong><br />
instance; mit A 1 σ, . . . , A n σ P lomon M i´1 <strong>und</strong> A 0 σ ” ϕ ñ A 0 σ P M i`1<br />
ĎM i (IV)<br />
Damit haben wir die monotone Zunahme unserer Folge bewiesen. Es reicht nun zZ: M ( P , sei<br />
also D “ A 0 Ð A 1 , . . . , A n P P, Dσ gro<strong>und</strong>. Laut Konstruktion sind A 1 σ, . . . , A n σ P M<br />
Dann bleibt zu zeigen, dass A 0 σ P M<br />
Speziell sind A 1 σ P M i1 , . . . , A n σ P M in , wobei die die i verschieden sind – eben von den<br />
verschiedenen Schritten in denen sie hinzugenommen wurden herrührend. Es sind aber endlich<br />
viele i, so dass es auch ein größtes gibt, das wir ab jetzt einfach als i bezeichnen, da es nach<br />
unserem vorherigen Hilfsbeweis alle M j mit j ă i enthält: i –maxpi 1 , . . . , i n q;<br />
ñ A 1 σ, . . . , A n σ P M i<br />
Nun ist in einem Schritt A 0 herleitbar, da alle Voraussetzungen bereits in M i enthalten sind<br />
ñ A 0 σ P M i`1 Ď M<br />
3.3. SLD-Resolution<br />
Transformation von Zielen (Anfragen) mittels Regeln (inkl. Fakten).<br />
Ð A 1 , . . . , A n B 0 Ð B 1 , . . . , B m P P<br />
(Res) Ð A1 σ, . . . , A i´1 σ, Blooooooomooooooon<br />
1 σ, . . . , B m σ, Ai ` 1σ, . . . , A n σ<br />
A i<br />
Offenbar korrekt: mit M ( @␣pA 1 ^ ¨ ¨ ¨ ^ A n q <strong>und</strong> M ( P , dann folgt auch<br />
M ( @␣pA 1 σ ^ ¨ ¨ ¨ ^ A i´1 σ ^ B 1 σ ^ ¨ ¨ ¨ ^ B m σ ^ A i`1 σ ^ ¨ ¨ ¨ ^ A n σq<br />
SLD-Resolution (Linear resolution for Definite clauses with Selection function); parametrisiert über<br />
Berechnungsregel (»computation rule«). Die Berechnungsregel gibt an, welches Unterziel als erstes<br />
behandelt wird. Sie ist eine Funktion R auf Zielklauseln mit R : pÐ A 1 , . . . , A n q ÞÑ t1, . . . , nu<br />
Ñ(Res) wird eingeschränkt auf i “ RpÐ A 1 , . . . , A m q <strong>und</strong> σ “ mgupA i , B 0 q.<br />
Typischerweise verwenden die meisten Prolog-Engines die Berechnungsregel RpQq “ 1, also immer das<br />
erste Element.<br />
Definition: SLD-Herleitung<br />
33
Gegeben P, R: Eine SLD-Herleitung von Ziel Q 0 ist eine Sequenz<br />
mit D i P P, Q: Ziele, so dass<br />
hkikj<br />
D 0 hkikj<br />
D 1<br />
δ “ Q 0 ù Q 1 ù Q 2 . . .<br />
(SLD(R))<br />
Q i D i<br />
Q i`1<br />
mit einer Substitution σpQ i , D i q<br />
Feinheit: Die Variablen in D i umbenennen: X ÞÑ X i um Gleichheit mit den Variablen von Q i zu<br />
vermeiden.<br />
hkikj<br />
D 0 hkikj<br />
D 1<br />
Terminologie Sei δ “ Q 0 ù Q 1 ù Q 2 . . .<br />
hkikj D n<br />
ù Q n`1 eine endliche Herleitung.<br />
Dann ist σpδq “ σpQ 0 , D 0 q . . . σpQ n , D n q die von δ berechnete Substitution.<br />
Erfolgreiche Herleitungen im Sinne von Prolog sind solche, die zeigen dass das Ziel unerfüllbar ist,<br />
also abgelehnt werden muss, <strong>und</strong> heißen deshalb Refutation. Eine Herleitung δ ist eine Refutation,<br />
wenn die leere Klausel hergeleitet werden kann, d.h. δ Refutation ðñ Q n`1 “ . Ist eine<br />
Refutation gef<strong>und</strong>en, dann bezeichnet man σpδq| V arspQ0 q, also σpδq, eingeschränkt auf die in V arspQ 0 q<br />
vorkommenden Atome als Antwort<br />
δ heißt fehlgeschlagen, wenn für alle Regeln B 0 Ð B 1 , . . . , B n P P bei Q n`1 “Ð A 1 , . . . , A n gilt, dass<br />
A RpQn`1 q nicht unifizierbar mit B 0 , also keine weitere Regel mehr anwendbar ist. Es lässt sich zeigen,<br />
dass es falls es für das aktuelle Unterziel keine unifizierbare Regel mehr gibt, die SLD-Resolution<br />
abgebrochen werden kann, ohne den Wahrheitsgehalt zu verfälschen<br />
Allgemein (auch wenn δ nicht endlich ist) gilt, dass δ vollständig ðñ δ Refutation, δ fehlgeschlagen<br />
o<strong>der</strong> δ unendlich.<br />
Beispiel: Abstammung<br />
Die Sprechweise für D sei "descendant", also "Kind von", die Sprechweise für ù sei "wird transformiert<br />
zu".<br />
DpX, Y q Ð DpX, Zq, DpZ, Y q<br />
Konstanten: a, b, c<br />
Nun wollen wir die Abstammungsbeziehung von a <strong>und</strong> b untersuchen:<br />
Ð Dpa, aq ù<br />
Ð Dpa, Z 1 q, DpZ 1 , aq ù<br />
Ð Dpa, Z 2 q, DpZ 2 , Z 1 q; DpZ 1 , aq<br />
Ð Dpa, Z n`1 q, . . . , DpZ 2 , Z 1 q; DpZ 1 , aq<br />
ù 8<br />
Wir versinken hier also in <strong>der</strong> Endlosrekursion.<br />
Beispiel: Listenoperation append<br />
Unser Programm besteht aus zwei Regeln, einem Basisfall R nil <strong>und</strong> einem rekursiven Fall R cons .<br />
Beim lesen <strong>der</strong> Regeln ist zu beachten, dass die Semantik von Prädikaten wie apppX, Y, Zq in Prolog<br />
ist äpppX, Y q “ Z, also <strong>der</strong> Rückgabewert ein formaler Parameter des Prädikats ist – eben weil es<br />
34
sich um ein Prädikat <strong>und</strong> keine Funktion handelt.<br />
R nil : appprs, X, Xq<br />
R cons : appprX|Y s, Z, rX|W sq Ð apppY, Z, W q<br />
Nun wollen wir wissen, in welche Teillisten man r0|1s zerlegen kann. Wir beginnen also mit <strong>der</strong><br />
Ergebnisliste"r0 1s <strong>und</strong> fragen Prolog, welche möglichen Belegungen für die Teillisten X <strong>und</strong> Y es<br />
gibt.<br />
Ð apppX, Y, r01sq Rcons<br />
ù<br />
Ð apppY 0 , Z 0 , r1sq R nil<br />
ù<br />
Ð ˝<br />
ñ Refutation, weil es keine weiteren Unterziele mehr gibt.<br />
Da die Resolution eine Refutation ergeben hat, gibt es eine Antwort, die aus <strong>der</strong> angesammelten<br />
Substitution besteht: Die Unifikation <strong>der</strong> ursprünglichen Anfrage mit <strong>der</strong> linken Seite <strong>der</strong> R cons -<br />
Regel hat die Substitution rX ÞÑ r0|Y 0 s, Y ÞÑ Z 0 , X 0 ÞÑ 0, W 0 ÞÑ r1ss erzeugt, die Unifikation <strong>der</strong><br />
Unteranfrage mit <strong>der</strong> linken Seite <strong>der</strong> R nil -Regel zusätzlich noch rY 0 ÞÑ rs, X 1 ÞÑ r1s, Z 0 ÞÑ r1ss.<br />
Einsetzen <strong>der</strong> zweiten Substitution in die erste bringt uns zu <strong>der</strong> Substitution<br />
rX ÞÑ r0|rss, Y ÞÑ r1s, X 0 ÞÑ 0, W 0 ÞÑ r1ss<br />
Einschränkung auf die Variablen X <strong>und</strong> Y (alle an<strong>der</strong>en sind nach <strong>der</strong> Definition für eine Antwort<br />
egal) führt zu <strong>der</strong> Antwort rX ÞÑ r0s, Y ÞÑ r1ss<br />
Beispiel: nochmal append<br />
Ð append r1s X rZ | Y s<br />
R cons<br />
ù append rs | X | Y<br />
R nil<br />
ù<br />
Antwort:<br />
rX 0 ÞÑ 1, Y 0 ÞÑ rs, Z 0 ÞÑ X, W 0 ÞÑ Y, Z ÞÑ 1s;<br />
rX 1 ÞÑ X, Z ÞÑ 1, Y ÞÑ Xs | X,Y,Z<br />
“ rZ ÞÑ 1, Y ÞÑ Xs<br />
Aus <strong>der</strong> Korrektheit <strong>der</strong> Gr<strong>und</strong>regel (Res) <strong>der</strong> Resolution können wir die Korrektheit <strong>der</strong> SLD-Resolution<br />
Folgern.<br />
Satz 17. Korrektheit <strong>der</strong> SLD-Resolution<br />
δ “ Q 0 ù ¨ ¨ ¨ ù Q n ñ P Y tQ 0 σpδqu ( Q n σpδq<br />
insbeson<strong>der</strong>e:<br />
Q n “<br />
ñ P Y tQ 0 σpδqu unerfüllbar, d.h. P ( @␣Q 0 σpδq<br />
Korrektheit heißt, dass wir keine falschen Dinge Herleiten können, also dass alles dass wenn wir eine<br />
Antwort von <strong>der</strong> SLD-Resolution erhalten, diese korrekt ist.<br />
35
Was uns noch fehlt, ist die umgekehrte Richtung, nämlich dass wenn es eine Refutation gibt, diese von<br />
<strong>der</strong> SLD-Resolution gef<strong>und</strong>en wird.<br />
Satz 18. Vollständigkeit <strong>der</strong> SLD-Resolution<br />
Sei P ein definites Programm <strong>und</strong> Q eine Anfrage.<br />
D<br />
P ( @␣Qσ ñ D δ “ Q “ Q<br />
0 D<br />
0 ù<br />
1 D Q1 ù<br />
2 D Q2 ù . . . ù<br />
n<br />
<strong>und</strong> es existiert eine Substitution γ (als Antwort <strong>der</strong> Refutation) mit<br />
Qσpδqγ “ Qσ<br />
Für den Beweis holen wir etwas weiter aus.<br />
Definition: P-Beweisbaum<br />
Sei P def. Programm. Ein P-Beweisbaum (für A) ist ein an den Knoten mit Atomen gelabelter<br />
Baum (mit Wurzellabel A), so dass für jeden Knoten A eine Regel B 0 Ð B 1 , . . . , B n P P existiert<br />
<strong>und</strong> eine Substitution τ existiert mit B 0 τ “ A. Kin<strong>der</strong> von A “ B 1 τ, . . . , B n τ (ind n “ 0)<br />
Beispiel: Abstammung reloaded<br />
»D« Descendant, Nachfolger; »C« Child, Kind.<br />
P “ t<br />
DpX, Y q Ð CpX, Zq, DpZ, Y q;<br />
DpX, Xq Ð;<br />
Cpc, bq, CpX, cq Ð<br />
u<br />
Je<strong>der</strong> ist also insbeson<strong>der</strong>e sein eigener Nachkomme, außerdem ist c Kind von b <strong>und</strong> je<strong>der</strong> Kind von<br />
c (. . . ).<br />
Als Beweis-Ableitungsbaum geschrieben<br />
D(X,b)<br />
C(X,c)<br />
D(c,b)<br />
C(c,b)<br />
D(b,b)<br />
Satz 19. Vollständigkeit <strong>der</strong> Resolution<br />
Sei P ein definites Programm, A Atom, P ( A.<br />
Dann existiert ein P -Beweisbaum für A.<br />
Beweis.<br />
Konstruiere Modell M mit M “ Menge aller Σ-Terme (P Programm über Σ) (auch mit Variablen)<br />
MfpE 1 , . . . , E n q “ fpE 1 , . . . , E n q<br />
Mp “ tE 1 , . . . , E n |ppE 1 , . . . , E n q hat P -Beweisbaumu<br />
36
Wir verwenden die Hilfsaussage<br />
M, η ( A ðñ Aη hat P-Beweisbaum. (1)<br />
die wir später noch beweisen werden. Die Umgebung η P M hat den Charakter einer Substitution<br />
Wir nehmen also zunächst (1) als gegeben an, <strong>und</strong> zeigen, dass M ein Modell für P ist, also M ( P :<br />
Sei A 0 Ð A 1 , . . . , A n P P, M, η ( A 1 , . . . , A n<br />
p1q<br />
ñ A 1 η, . . . , A n η haben P -Beweisbaum. Alle diese P -Beweisbäume können nun kombiniert werden, <strong>und</strong><br />
ergeben den P -Beweisbaum für A 0 , also folgt: A 0 η hat P -Beweisbaum. Dieser hat die Form<br />
A 0 η<br />
A 1 η . . . A n η<br />
Nun müssen wir noch den vorher angenommenen Hilfssatz beweisen.<br />
M, η ( A; A ” ppE 1 , . . . , E n q ðñ lomon E 1 η . . . , E n ηq P Mp<br />
“E 1 η<br />
ðñ ppE 1 η, . . . , E n ηq<br />
looooooooomooooooooon<br />
“Aη<br />
hat P -Beweisbaum<br />
Wir haben jetzt gezeigt, dass M ein Modell von P ist. Wir hatten vorausgesetzt, dass A logische<br />
Konsequenz von P ist, d.h. jedes Modell das P erfüllt, muss auch A erfüllen. Damit nach Voraussetzung<br />
auch M ( @A<br />
ñ M, id ( A ñ p1q<br />
A hat P -Beweisbaum<br />
Damit können wir nun den Beweis <strong>der</strong> Vollständigkeit <strong>der</strong> SLD-Resolution führen.<br />
Beweis: Vollständigkeit <strong>der</strong> SLD-Resolution<br />
Sei Q “Ð A 1 , . . . , A m . Aus P ( @A 1 σ ^ ¨ ¨ ¨ ^ A m σ können wir durch Auseinan<strong>der</strong>ziehen <strong>der</strong> Konjunktion<br />
P ( @A i σ für i “ 1 . . . m erhalten. Damit können wir die Ergebnisse des vorherigen Beweises<br />
anwenden.<br />
Per Vollständigkeit <strong>der</strong> Resolution: A 1 σ, . . . , A m haben P -Beweisbäume,<br />
Gesamtanzahl Knoten — n ě 0<br />
Konstruiere induktiv SLD-Herleitung (in n Schritten)<br />
D<br />
δ “ pQ “ Q<br />
0<br />
0 ù Q1 ù ¨ ¨ ¨ ù Q n q<br />
daraus gewinnen wir jeweils die allgemeinsten Unifikatoren <strong>der</strong> einzelnen Ableitungsschritte; D k ist <strong>der</strong><br />
37
Kopf (das positive Literal) einer Regel.<br />
ϑ k`1 “ σpQ k{ D k q, γ k Substitution mit . . . (EX now..)<br />
Satz 20. Vollständigkeit <strong>der</strong> SLD-Resolution<br />
Sei P ein definites Programm, Q eine Anfrage, σ eine Substitution mit<br />
D<br />
@P ( @␣Qσ ñ Dδ “ pQ “ Q<br />
0<br />
0 ù Q1 ù ¨ ¨ ¨ ù Q n “<br />
mit Qrpδqγ “ Qσ für alle γ<br />
q<br />
Beweis: [<br />
TODO: title] Sei Q “Ð A 1 , . . . , A n , also @P ( @A 1 σ ^ ¨ ¨ ¨ ^ A n σ, also<br />
@P ( @A i σ, i “ 1, . . . , n. Die A i σ haben P -Beweisbäume (nach vorigem Satz), Gesamtzahl Knoten<br />
— n. Konstruktion induktiv:<br />
mit (für alle k)<br />
• Q 0 ϑ 1 ϑ 2 . . . ϑ k γ k “ Qσ<br />
D<br />
S “ pQ “ Q<br />
0<br />
0 ù Q1 , ¨ ¨ ¨ ù Q n “<br />
ϑ k`1 – σpQ k , D k q, γ k<br />
• Jedes Atom in Q k γ k hat P -Beweisbaum, Gesamtzahl Knoten n ´ k<br />
Dann:<br />
Gesamtzahl Knoten in P -Beweisbaum für Q n γ n ist 0, also Q n “ .<br />
Induktion:<br />
σpδq “ ϑ 1 . . . ϑ n´1 æ Vars(Q)<br />
Qσpdeltaqγ n “<br />
Q lomon<br />
“Q 0<br />
ϑ 1 . . . ϑ n γ n “ Qσ<br />
k “ 0 Q 0 “ Q, γ 0 “ σ<br />
k Ñ k ` 1 Sei RpQ k q “ i, Q k “ Q 1 k , ␣Ak i , Q k“<br />
Nach Induktionsvoraussetzung (IV) hat A k i γ k P -Beweisbaum mit r ě 1 Knoten.<br />
—V<br />
D ” B 0 Ð B 1 , . . . , B n P P<br />
A k i γ k ” B 0 τ<br />
B 1 τ, . . . , B n τr ´ 1 Knoten.<br />
Sei π : Vars ÞÑ Vars bijektiv mit Vlooooomooooon<br />
arspDπq Y loooooooooooooooooooomoooooooooooooooooooon<br />
pVarspQ k q Y VarspQ 0 ϑ 1 . . . ϑ k qq “ H, d.h. die Variablen<br />
in Dπ sind frisch. Sei weiterhin Substitution α<br />
auf V wie π´1 τ,<br />
—W<br />
auf W wie γ k<br />
38
definiert.<br />
Dann:<br />
A k i α “ A k i γ k “ B 0 τ “ B 0 ππ´1 τ “ B 0 πpπ´1 τq “ pB 0 πqα<br />
ñ A k i <strong>und</strong> B 0 π sind unifizierbar, α ist Unifikator, also existiert γ k`1 mit<br />
Dann:<br />
mgu pA k i , Bπq looomooon<br />
“ϑ k`1<br />
qγ k`1 “ α; Q k`1 – pQ k , B 1 π, . . . , B n π, Q k “qϑ k`1<br />
Q k`1 γ k`1 “ pQ 1 k , B 1π, . . . , B n π, Q k “qα “ pQ 1 k γ k, B 1 τ, . . . , B n τ<br />
looooooomooooooon<br />
also pn ´ kq ´ 1 “ n ´ pk ` 1q Knoten im P -Beweisbaum <strong>und</strong><br />
r´1 Knoten in P -Beweisbaum<br />
Q 0 ϑ 1 . . . ϑ k`1 γk ` 1 “ Q 0 ϑ 1 . . . ϑkα “ Qlooooomooooon<br />
0 ϑ 1 . . . ϑ k γ k “ Qσ<br />
IV<br />
VarsĎW<br />
, Q k “γ k q<br />
4. Formale Deduktion in Aussagenlogik<br />
Hilbert Viele Axiome, wenig Regeln; meist nur modus ponens: (mp) A<br />
AÑB<br />
B<br />
Gentzen ϕ 1 , . . . , ϕ n Ñ π 1 , . . . , π k Wobei alle ϕ jeweils ein π implizieren (Die Formeln <strong>der</strong> linken Seite<br />
sind konjunktiv verknüpft, die <strong>der</strong> rechten Seite disjunktiv).<br />
Natürliches Schließen Ein einfacher Fall: Prämisse(n)<br />
Konklusion<br />
alle Prämissen bereits hergeleitet sind.<br />
gestattet die Herleitung <strong>der</strong> Konklusion, wenn<br />
Wir betrachten im folgenden ein System natürlichen Schließens, das Fitch-Kalkül.<br />
Beispiel: Regeln für eine auf Konjunktion beschränkte <strong>Logik</strong><br />
p^Iq A<br />
B<br />
A^B<br />
p^E1q A^B<br />
A<br />
p^E2q A^B<br />
B<br />
Die Regel (^I) („Und-Introduktion“) erlaubt es uns, sofern wir bereits A <strong>und</strong> B geschlossen haben,<br />
auch A ^ B zu schließen, die Regeln p^E1q <strong>und</strong> p^E2q („Und-Elimination“) erlauben es, aus einer<br />
bereits geschlossenen Konjunktion <strong>der</strong>en Teilsätze zu schließen.<br />
Notation: Wir schreiben Φ $ ϕ, wenn φ per Regeln aus Annahmen in Φ (Φ Menge von Formeln) rein<br />
syntaktisch herleitbar ist.<br />
Schreibweise:<br />
Baumartig:<br />
z.B. tA ^ Bu $ B ^ A:<br />
3<br />
p^E2q A^B<br />
A<br />
B^A<br />
A^B<br />
B<br />
p^E1q<br />
p^Iq<br />
3 Gödel, Escher, Bach; logische Schildkröte vs. Achilles<br />
39
Der Übersichtlichkeit halber verwenden wir im folgenden eine lineare Darstellung des Beweisablaufs:<br />
1 A ^ B<br />
2 B (^E2) (1)<br />
3 A (^E1) (1)<br />
4 B ^ A p^Iqp2, 3q<br />
Wir notieren in jedem Schritt die gezogene Konklusion (erste Spalte) sowie die verwendete Regel <strong>und</strong><br />
die Prämissen (zweite Spalte). Die erste Zeile stelle eine lokale Annahme dar.<br />
Innerhalb eines Beweises ist es möglich, dass ein Unterbeweis als Prämisse verwendet wird, es ergibt<br />
sich daraus eine hierarchische Struktur. Unterbeweise haben lokale Annahmen, die ebenso wie oben<br />
unterstrichen werden. Darauf aufbauend können wir unser Regelwerk erweitern:<br />
A<br />
.<br />
.<br />
pK Iq<br />
A<br />
␣A<br />
K<br />
K<br />
pK Eq beliebig<br />
p␣ Eq<br />
␣␣A<br />
A<br />
p␣Iq<br />
K<br />
␣A<br />
Beispiel: $ ␣pA ^ ␣Aq<br />
1<br />
2 A ^ ␣A<br />
3 A p^E1q, 1<br />
4 ␣A p^E1q, 1<br />
5 K pKIq, 2, 3<br />
6 ␣pA ^ ␣Aq p␣Iq, 1 ´ 4<br />
40
Schließen von A o<strong>der</strong> B (_I1)<br />
A<br />
A_B (_I2)<br />
B<br />
A_B<br />
(_E)<br />
pAñC,BñC,A_B<br />
C<br />
pÑ Eq AÑB A<br />
B<br />
pÑ Iq Añ ...B<br />
AÑB<br />
Herleitung von pÑ Iq bei Codierung A Ñ B ” ␣p␣␣A ^ ␣Bq<br />
1 ␣␣A ^ ␣B Annahme<br />
2 ␣␣A ^E 1<br />
3 A ␣E<br />
1.␣␣A ^ ␣B2.␣␣A3.A . . . n.Bn ` 1 : ␣Bn ` 2 : Kn ` 3 : ␣p␣␣A ^ ␣Bq ” A Ñ B<br />
pÑ EqbeiA Ñ B “ ␣A_B1.A2.A Ñ B “ ␣A_B3.p␣A ñ K, pKI1, 3q ñ BpKEq4.pB ñ Bq5.Bp_E3, 4q<br />
Satz 21. (Korrektheit)<br />
Φ $ π ñ Φ ( π<br />
Beweis: [<br />
TODO: title] Induktion über die Länge <strong>der</strong> Herleitung von Φ $ πpn ă k Ñ n ď kq.<br />
Fallunterscheidung nach letzter Regel, z.B. für p␣Iq:<br />
Herleitung: Φ(unterbeweis) ñ pψ . . . ..␣ψ Nach IV folgt aus Φ Y tψu $ K bereits Φ Y tψu ( J. Also<br />
Φ ( ␣ψ: Wenn κ ( Φ, dann κ * ψ, also κ $ ␣ψ<br />
Es gilt auch<br />
Satz 22. Vollständigkeit<br />
Φ ( π ñ Φ $ π<br />
Beweis: [<br />
TODO: title]<br />
(A) Reduziere auf Φ konsistent, d.h. Φ & K ñ Φ erfüllbar.<br />
Φp␣π . . . Kqp␣␣π “ą πq<br />
(B) Reduziere mit<br />
Def. Φ maximal konsistent ðñ<br />
(i) Φ kons.<br />
Φ ( π ñ Φ Y t␣πu unerfüllbar, also inkonsistent, also<br />
(ii) P hi ist maximal bezüglich Ď unter den kons. Mengen, d.h. Ψ kons., Φ Ď Ψ ñ Φ “ Ψ<br />
auf Φ maximal konsistent ñ Φ erfüllbar per<br />
Lindenbaumlemma: Φ konsistent ñ es existiert Φ max. kons mit Φ Ď Φ<br />
41
Dazu:<br />
Lemma 23. (C) Sei Φ konsistent, dann Φ Y tπu konsistent o<strong>der</strong> Φ Y t␣πu konsistent.<br />
Beweis: [<br />
(C)] Per Kontraposition: Φpπ . . . Kqp␣π . . . Kq Also quasi π _ ␣π (_E)<br />
Beweis: [<br />
Lindenbaumlemma]<br />
a) Zorn Vereinigung aufsteigen<strong>der</strong> Ketten von konsistenten Mengen sind konsistent.<br />
o<strong>der</strong> b) Sei ϕ 1 , ϕ 2 , ϕ 3 , . . . Aufzählung aller Formeln. Konstr. Φ “ Φ 0 Ď Φ 1 Ď Φ 2 Ď . . . per Φ i`1 “<br />
#<br />
Φi Y tϕ i u wenn konsistent<br />
Φ i Y t␣ϕ i u<br />
sonst<br />
Setze Φ – Ť 8<br />
i“0 Φ i. zZ:<br />
(i) Φ kons.: Wenn Φ $ K (mit endlichem Beweis), dann schon Φ i $ K für ein i <br />
hkikj<br />
(ii) Φ maximal: Sei Φ Ď Φ 1 konsistent, π P Φ 1 . Anmerkung: π R Φ. ñ ϕ n R Φ n`1 ñ Φ n Y tϕ n u<br />
“ϕ n<br />
looooomooooon<br />
inkonsistent<br />
ĎΦ 1 <br />
Beweis: [<br />
(B)] Zeige:<br />
(i) K R Φ [klar]<br />
(ii) ␣π P Φ ðñ π R Φ<br />
(iii) ψ ^ π P Φ ðñ ψ P Φ <strong>und</strong> π P Φ<br />
Φ max. kons.<br />
ad (ii): „ñ“ klar, „ð“: Φ Y tπu ‰ Ą Φ ñ Φ Y tπu inkonsistent.<br />
ñ<br />
ñ<br />
Lemma CΦ Y t␣πu konsistent, Φ max. kons ␣π P Φ.<br />
ad (iii): „ñ“ reicht zZ: ΦYtψu, ΦYtπu konsistent, z.B.: Anmerkung: ΦYtψu $ Kp^E1qΦYtψ^πu $ K,<br />
„ð“ analog mit p^Iq<br />
ñ<br />
tx ą k|k P Nu<br />
ñ<br />
ψ, π P Φ ñ Φ $ ψ ^ πΦ kons.Φ Y tψ ^ πu konsistent ñ ψ ^ π P Φ.<br />
Setze κpAq “ J ðñ A P Φ.<br />
Wahrheitslemma: „<br />
κ ( π ðñ π P Φj<br />
Beweis: Induktion über π per Definition <strong>und</strong> (i)-(iii).<br />
κ ( ␣π ðñ κ * π ðñ<br />
IV π R Φ piiq ðñ<br />
␣π P Φ<br />
Korollar: Φ Formelng (??), für alle Φ 0 Ď Φ mit Φ 0 endlich, Φ 0 erfüllbar ñ Φ erfüllbar. (Kompaktheit):<br />
ðñ<br />
Beweis: Φ erfüllbar ðñ Φ * KvollständigΦ & K<br />
42
4.1. Natürliches Schließen mit Quantoren<br />
Notation<br />
Voraussetzung 1 . . . Voraussetzung n<br />
Konklusion<br />
Sprich „Wenn ich weiß, dass Voraussetzung 1, dots <strong>und</strong> Voraussetzung n gelten, dann kann ich folgern<br />
dass auch Konklusion gilt. Kürzer lässt sich das schreiben, wenn die Voraussetzungen <strong>und</strong> Konklusionen<br />
als Buchstaben abgekürzt werden:<br />
A 1 , . . . , A n<br />
B<br />
Wir können jetzt in dieser Syntax herleiten, dass Sokrates sterblich ist, aus den Prämissen/Voraussetzungen<br />
dass alle Menschen sterblich sind <strong>und</strong> dass Sokrates ein Mensch ist:<br />
Menschen sind sterblich Sokrates ist ein Mensch<br />
Sokrates ist sterblich<br />
Kürzer können wir das in Quantorenschreibweise darstellen:<br />
@X.SpXq<br />
S(Sokrates)<br />
Sprich „Für alle X (Menschen) gilt, dass S(X) (X ist sterblich), daraus folgt dass Sokrates (ein X )<br />
sterblich ist.“<br />
4.2. @- <strong>und</strong> D-Quantor<br />
Wir betrachten nun die Quantoren @ (für alle. . . ) <strong>und</strong> D (es existiert. . . ).<br />
Die @-Elimination sieht dann so aus:<br />
@x.Φ<br />
@E Φrc{xs<br />
also umgangssprachlich „Wenn für alle x Φ gilt, dann gilt auch Φ wenn man x durch c ersetzt“.<br />
Umgekehrt können wir sagen, dass wenn wir ein c finden, aus dem Φ - möglicherweise durch Ersetzung<br />
von allen x durch dieses c - folgt, dann können wir sagen dass Φ für alle x gilt. In Beweis-<br />
Kurzschreibweise:<br />
c<br />
.<br />
(@I)<br />
Φrc{xs<br />
@x.Φ<br />
Die Introduktion für D geht (umgangssprachlich) so: „Wenn du ein c findest, so dass Φ erfüllt ist, wenn<br />
du es für alle x in Φ einsetzt (x durch c ersetzt), dann darfst du sagen, dass ein x existiert, das Φ<br />
erfüllt“.<br />
(DI)<br />
Φrc{xs<br />
DxΦ<br />
43
Das klingt erstmal nach einer Nullaussage, aber wenn man dann Beweise führt <strong>und</strong> D auflösen muss,<br />
funktioniert das meist genau nach dem Prinzip „Finde irgendein c für dass Φ gilt“.<br />
Im Prinzip sucht man also ein Gegenbeispiel gegen @x␣Φ, man kann also zusammenfassen:<br />
␣@x␣Φ ô DxΦ<br />
(DE)<br />
dabei darf c nicht in ψ vorkommen.<br />
DX.Φ<br />
ψ<br />
.<br />
c Φrc{Xs<br />
ψ<br />
Beweis von (D I)<br />
1 Φrc{xs<br />
2 @x␣Φ<br />
3 ␣Φrc{xs (@E, 2)<br />
4 K (KI 1, 3)<br />
5 ␣@x␣Φ (␣I 1-4)<br />
6 DxΦ<br />
Beweis von (D E)<br />
1 ␣@x␣Φ<br />
2 c Φrc{xs<br />
3 .<br />
4 ψ<br />
5 ␣ψ<br />
6 c<br />
7 Φrc{xs<br />
8 ψ (2, 3)<br />
9 K (KI 4,7)<br />
10 ␣Φrc{xs (␣I 6-8)<br />
11 @x␣Φ (@I 5-9)<br />
12 K (KI 1,10)<br />
13 ␣␣ψ (␣I 4-11)<br />
14 ψ (␣E, 12)<br />
44
Folgerung <strong>der</strong> Existenz aus <strong>der</strong> Allquantifiziertheit p@xP pxqq Ñ pDxP pxqq<br />
1 @xP pxq<br />
2 P pcq (@E, 1)<br />
3 Dx.P pxq (DI, 2)<br />
Wir nehmen also einfach irgendein c, dass laut Bedingung P pxq erfüllt, <strong>und</strong> können damit dann sagen<br />
es existiert ein Ausdruck c, <strong>der</strong> P pcq erfüllt.<br />
Transitivität des @-Quantors<br />
1 @xpP pxq Ñ Qpxqq<br />
2 @zpQpzq Ñ Rpzqq<br />
3 d P pdq<br />
4 P pdq Ñ Qpdq (@E, 1)<br />
5 Qpdq (ÑE 3, 4)<br />
6 Qpdq Ñ Rpdq (@E 2)<br />
7 Rpdq (ÑE 5, 6)<br />
8 @xpP pxq Ñ Rpxqq (@I* 3-7)<br />
5. Vollständigkeit <strong>der</strong> Prädikatenogik erster Stufe<br />
hier: ohne Gleichheit (“), Funktionssymbole (aber mit Konstanten)<br />
Satz 24. Φ ( π ñ Φ $ π in Prädikatenlogik<br />
Strategie<br />
(A) Erweitere Σ, Φ zu Σ H , Φ Y H<br />
Σ H Ě Σ Zeugenkonstanten c ϕpxq<br />
H Q pDx.ϕpxqq Ñ ϕpc ϕpxq q<br />
(B) Beweise Φ Y H $ ρpρ über Σq<br />
ñ Φ $ ρ 4<br />
(C) Henkin-Konstr.: Fassen FO 5 -Formeln als aussagenlogische Formeln auf, @X.ϕDX.ϕ, P p. . . q<br />
Atome. Aus κ mit kappa looooooooomooooooooon ( Φ Y H konst. M k mit looomooon M k ( Φ<br />
Aussagenlogik<br />
Dann: Φ ( π ñ ΦY␣π unerfüllbar (in FOL)<br />
ñ lomon<br />
Henkin-Konstr.<br />
H $ π in Aussagenlogik lomon ñ Φ $ π in FOL .<br />
B<br />
First-Or<strong>der</strong>-<strong>Logik</strong>(FOL)<br />
ΦYt␣πuYH unerfüllbar.<br />
ñ lomon<br />
Vollständigkeit <strong>der</strong> Aussagenlogik<br />
ΦY<br />
4 Henkin-Elimination<br />
5 first-or<strong>der</strong><br />
45
5.1. Beweise <strong>der</strong> drei Behauptungen<br />
Beweis: A<br />
Wollen für jede Formel Dx.ϕpxq Zeugen c ϕpxq , aber: Zeugen erzeugen neue Formeln, z.B. Dy.P `y, c ϕpcq˘<br />
Lösung: Iterieren ù Σ “ Σ 0 Ď Σ 1 Ď Σ 2 . . . ; Σ H “ Ť 8<br />
i“0 Σ i Jedes c ϕpxq hat Geburtstag minti|c ϕpxq Ð<br />
Σ i u<br />
H :<br />
H1: pDx.ϕpxqq Ñ ϕpc ϕpcq q<br />
H2: ϕpcq Ñ Dx.ϕpxq<br />
H3: ␣@x.ϕpxq Ø Dx.␣ϕpxq<br />
Beweis: B<br />
H2, H3 beweisbar in FOL. H1 eliminieren: Wir wählen Instanz von H1 min jüngstem c ϕpxq . Dann<br />
Φ Y lomon H YtpDx.ϕpxqq Ñ ϕpc ϕpxq qu $ ρ<br />
ĎH<br />
so dass c ϕpxq in Φ, ρ, H 0 nicht vorkommt.<br />
ñ ΦYH 0 Yt␣Dx.ϕpxqu $ ρ <strong>und</strong> ΦYH 0 tϕpc ϕpxq qu $ ρ pDEqΦYH 0 YtDx.ϕpxqu $ ρA _ ␣AΦYH 0 $ ρ,<br />
iterieren, fertig.<br />
ñ<br />
ñ<br />
On a related Note:<br />
1 A Ñ B ” ␣A _ B<br />
2 c ϕpcq<br />
3 .<br />
4 ρ<br />
5 Dx.ϕpxq<br />
6 ρ<br />
Beweis: C<br />
M k “ Menge <strong>der</strong> Konstanten in Σ H<br />
M κ pcq “ cM κ pP q “ tpc 1 , . . . , c n q|κpP pc 1 , . . . , c n qq “ Ju Wahrheitslemma: ρ Satz ñ pM κ ( ρ looomooon<br />
κ ( ρ lomon<br />
Aussagenlogik<br />
q Beweis(Wahrheitslemma) Induktion über die Größe von ρ: Zähle 2 für @x, 1 für<br />
Dx, ␣, ^.<br />
Fälle: ρ “ P pc 1 , . . . , c n q: OK nach Konstruktion<br />
␣, ^: klar (warum auch immer..)<br />
ρ ” Dx.ϕpxq<br />
„ñ“: Dann ex. c P Σ H mit M κ ( ϕpcq lomon<br />
kleiner als ϕ<br />
ñ<br />
IV κ ( ϕpcq ñ H2κ ( Dx.ϕpxq<br />
FOL<br />
ô<br />
̌ „ð“:<br />
46
hkkkikkkj<br />
κ ( Dx.ϕpxqH1κ ñ ( ϕpc ϕpxq q kleiner als ρIV ñ<br />
M κ ( ϕpc ϕpxq q ñ M κ ( Dx.ϕpxq ρ ” @x.ϕpxq : M κ (<br />
hkikj 2<br />
@x.ϕpxq ô M κ * looooomooooon Dx.␣ ϕpxq<br />
kleiner als<br />
lomon @x<br />
3<br />
.ϕpxq<br />
ô<br />
IV κ * Dx.␣ϕpxq ô H3κ * ␣@x.ϕpxq ô k ( @x.ϕpxq<br />
Dx.fpcq “ x also fpcq c fpcq“x<br />
Korollar: Φ konsistent ô Φ erfüllbar<br />
ñ Vollständigkeit<br />
ð Korrektheit<br />
Beweis:<br />
Korollar: Kompaktheit: Φ endlich erfüllbar (d.h. jede endliche Teilmenge von Φ ist erfüllbar) ñ Φ<br />
erfüllbar Beweis: analoge Eigenschaft gilt für Konsistenz<br />
Beispiel:<br />
Φ Theorie <strong>der</strong> natürlichen Zahlen N in FOL Φ Y tc ą k|k P Nu (d.h. k P t0, sp0q, spsp0qq, . . . , u)<br />
47
A. Regeln für natürliches Schließen im Fitchkalkül<br />
A.1. Regeln für ^ <strong>und</strong> _<br />
(^E)<br />
A ^ B<br />
A<br />
(^E)<br />
A ^ B<br />
B<br />
A<br />
(^I)<br />
A B<br />
A ^ B<br />
B<br />
A<br />
(_I) A _ B<br />
B<br />
(_I) A _ B<br />
A _ B<br />
.<br />
.<br />
C<br />
C<br />
(_E)<br />
C<br />
A.2. Regeln für K <strong>und</strong> ␣<br />
(KI)<br />
A ␣A<br />
(KE)<br />
K<br />
K<br />
X<br />
X ist hierbei beliebig, die Regel (KE) formalisiert „Ex falso quodlibet“ 6<br />
A<br />
(␣E)<br />
␣␣A<br />
A<br />
.<br />
K<br />
(␣I)<br />
␣A<br />
A.3. Regeln für @<br />
c<br />
c<br />
Ψrc{Xs<br />
.<br />
Φrc{Xs<br />
.<br />
Φrc{Xs<br />
@X.Φ<br />
(@E) Φrc{Xs<br />
(@I)<br />
(@I)<br />
@X.Φ<br />
@X.pΨ Ñ Φq<br />
Wobei Φrc{Xs für Φ mit allen freien X durch c ersetzt steht.<br />
A.4. Regeln für D<br />
c<br />
Φrc{Xs<br />
Φrc{Xs DX.Φ<br />
(DI)<br />
DX.Φ<br />
(DE)<br />
Wobei c nicht in ψ vorkommen darf.<br />
ψ<br />
.<br />
ψ<br />
6 eigentlich ex falso sequitur quodlibet (lat., aus Falschem folgt Beliebiges)<br />
48