04.11.2014 Aufrufe

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!