Automatische Deduktion - Goethe

Werbung
Automatische Deduktion, SS 2015, vom 13.04.2015
Automatische Deduktion
Teil 1 : Deduktionssysteme: Grundlagen
Sommersemester 2015
Professor Dr. Manfred Schmidt-Schauß
Fachbereich Informatik und Mathematik
J.W.Goethe-Universität Frankfurt
1
Automatische Deduktion, SS 2015, vom 13.04.2015
2
Inhaltsverzeichnis
1 Einführung und Überblick: Grundlagen und Anwendungen von
Automatischen Deduktionssystemen
1.1 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Vorbemerkung . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Begriffe und Teilgebiete aus der Automatischen Deduktion . . . .
1.3.1 Beweiserbau . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Gleichheitsbehandlung . . . . . . . . . . . . . . . . . . . .
1.3.3 Termersetzungssysteme . . . . . . . . . . . . . . . . . . .
1.3.4 Unifikation . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.5 Logiken und (interaktive) Beweiser höherer Ordnung . . .
1.3.6 Nichtmonotone Logiken . . . . . . . . . . . . . . . . . . .
1.3.7 Logische Methoden wissensbasierter Systeme . . . . . . .
1.3.8 Modallogik . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.9 Deduktive Programmsynthese . . . . . . . . . . . . . . . .
1.3.10 Logisches Programmieren . . . . . . . . . . . . . . . . . .
1.3.11 Anwendungen Automatischer Deduktionssysteme . . . . .
1.3.12 Wichtigste Methoden . . . . . . . . . . . . . . . . . . . .
1.4 Einige computergeführte Beweise . . . . . . . . . . . . . . . . . .
1.5 Das Problem der Robbins Algebren . . . . . . . . . . . . . . . . .
1.6 Methodenwahl: menschliche oder maschinelle? . . . . . . . . . . .
1.7 Einführende Beispiele . . . . . . . . . . . . . . . . . . . . . . . .
1.8 Motivationsbeispiele . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
6
7
7
7
8
8
8
8
8
8
9
9
9
9
10
11
13
13
14
2 Aussagenlogik (propositional calculus)
17
2.1 Folgerungsbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Tautologien und einige einfache Verfahren . . . . . . . . . . . . . 21
2.3 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Schnelle CNF (Tseitin-Kodierung) . . . . . . . . . . . . . . . . . 25
2.5 SAT - Problem und Hornklauseln in Aussagenlogik . . . . . . . . 28
2.6 Resolution für Aussagenlogik . . . . . . . . . . . . . . . . . . . . 31
2.7 Davis-Putnam-Logemann-Loveland-Verfahren . . . . . . . . . . . 34
2.8 Davis-Putnam-Logemann-Loveland Verfahren mit Backjumping . 42
2.8.1 Restart, Regeln zum Lernen und Vergessen . . . . . . . . 46
2.9 Tableaukalkül für Aussagenlogik . . . . . . . . . . . . . . . . . . 47
2.9.1 Tableau-Kalkül für Aussagenlogik . . . . . . . . . . . . . 48
2.10 Entscheidungsprozeduren für quantifizierte Boolesche Formeln . . 56
2.10.1 Formeln in Klauselform . . . . . . . . . . . . . . . . . . . 59
2.11 Ein DPLL-ähnliches Entscheidungsverfahren für PränexKlauselmengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.11.1 Optimierungen: . . . . . . . . . . . . . . . . . . . . . . . . 63
2.12 Internet Referenzen (unvollständig, bitte selbst googlen) . . . . . 64
2.13 Internationale Standardisierung der Formel-Eingaben . . . . . . . 65
3
Automatische Deduktion, SS 2015, vom 13.04.2015
3 Überblick über den Aufbau und Funktionsweise eines Automatischen Deduktionssystems am Beispiel eines Resolutionsbeweisers
3.0.1 Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.0.2 Kalkül . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.0.3 Logische Zustandsübergangssysteme . . . . . . . . . . . .
3.0.4 Steuerung . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.0.5 Verwendung, Dialogverhalten . . . . . . . . . . . . . . . .
66
66
69
71
72
73
4 Prädikatenlogik (P L1 ) und Resolution
4.1 Syntax der Prädikatenlogik erster Stufe . . . . . . . . . .
4.2 Semantik von P L1 (nach Tarski) . . . . . . . . . . . . . .
4.2.1 Berechenbarkeitseigenschaften der Prädikatenlogik
4.3 Normalformen von P L1 -Formeln . . . . . . . . . . . . . .
74
74
78
87
88
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5 Resolution und Unifikation
5.1 Grundresolution: Resolution ohne Unifikation . . . . . . . . . . .
5.1.1 Resolution im allgemeinen Fall . . . . . . . . . . . . . . .
5.2 Unifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Komplexität des Unifikationsalgorithmus . . . . . . . . . . . . . .
5.3.1 Ein effizienterer Unifikationsalgorithmus nach Martelli
und Montanari . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Der allgemeine Resolutionskalkül . . . . . . . . . . . . . . . . . .
5.5 Schritte zum Vollständigkeitsbeweis der allgemeinen Resolution .
5.6 Ein Beispiel für Resolutionsbeweise: Hilbertkalkül . . . . . . . . .
5.7 Löschregeln: Subsumtion, Tautologie und Isoliertheit . . . . . . .
94
94
95
100
103
6 Einschränkung und Varianten der Resolution
6.1 Set-of-Support . . . . . . . . . . . . . . . . . .
6.2 UR-Resolution . . . . . . . . . . . . . . . . . .
6.3 Hyperresolution . . . . . . . . . . . . . . . . . .
6.4 Input-Resolution und Unäre Resolution . . . .
6.5 Eingabe-Resolution . . . . . . . . . . . . . . . .
6.6 Lineare Resolution . . . . . . . . . . . . . . . .
6.7 SL-Resolution . . . . . . . . . . . . . . . . . . .
6.8 SL-Resolution für Horn Klauseln . . . . . . . .
116
116
116
120
120
121
122
123
123
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
104
106
106
109
110
7 Tableau Kalkül für P L1
125
7.1 Tableau mit Grundtermen . . . . . . . . . . . . . . . . . . . . . . 125
7.2 Tableau mit freien Variablen . . . . . . . . . . . . . . . . . . . . 127
8 DPLL mit Theorien: SMT: Satisfiability
8.1 Algorithmus zu SMT . . . . . . . . . . .
8.2 Direkte SMT-Prozeduren . . . . . . . .
8.3 Indirekte SMT-Prozeduren . . . . . . .
8.4 Die Regeln der DPLL(T)-Prozedur . . .
modulo Theories
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
.
.
.
.
.
.
.
.
132
132
133
134
134
Automatische Deduktion, SS 2015, vom 13.04.2015
4
9 Grammatik-basierte Kompression von Termen und zugehörige
Algorithmen
137
9.1 Lempel-Ziv Kompression . . . . . . . . . . . . . . . . . . . . . . . 137
9.2 Straight Line Programs (SLP) und Singleton Context Free Grammars (SCFG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3 Ein Verfahren zur Erzeugung einer SLP aus einer LZ77Kompression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.4 Schnelle Algorithmen auf den SLP . . . . . . . . . . . . . . . . . 141
9.5 Kompression von Termen . . . . . . . . . . . . . . . . . . . . . . 143
9.5.1 Algorithmen auf STG-komprimierten Termen . . . . . . . 144
9.5.2 Gleichheitstest . . . . . . . . . . . . . . . . . . . . . . . . 146
9.5.3 Matching und Unifikation von komprimierten Termen . . 147
9.5.3.1 Finden der Position einer Variablen: . . . . . . . 148
9.5.3.2 Finden bzw. Erzeugen eines Nichtterminals der
Position einer Variablen: . . . . . . . . . . . . . 148
9.5.3.3 Matching . . . . . . . . . . . . . . . . . . . . . . 150
9.5.3.4 Anmerkungen . . . . . . . . . . . . . . . . . . . 150
9.5.4 Unifikation unter Kompression . . . . . . . . . . . . . . . 151
1
Einführung und Überblick: Grundlagen und
Anwendungen von Automatischen Deduktionssystemen
1.1
Literatur
Folgende Bücher und Handbuchartikel können als Grundlage für ein vertieftes
Studium dienen:
[And86, And02, BN98, Duf91, Bib83, Bib92, BS98, BB87, RB79] [Bun83, CL73,
EFT86, Gal86, GN87, HK89, Kel03], [RS98, Kow79, Lov87, Pau94, SA94,
WOLB84, BS94, BS99]
[KK06]
Für spezielle Themenbereiche können auch folgende Bücher verwendet werden:
[Ede92, FLTZ93, Tha88, Smu71]
Literatur
[And86]
Peter B. Andrews. An Introduction to mathematical logic and type
theory: to truth through proof. Academic Press, 1986.
[And02]
Peter B. Andrews. An Introduction to mathematical logic and type
theory: to truth through proof. Number 27 in Applied Logic Series.
Kluwer ademic Press, 2002.
[BB87]
K.-H. Bläsisus and H.-J. Bürckert. Deduktionssysteme - Automatisierung des logischen Denkens. Oldenbourg Verlag, 1987.
Automatische Deduktion, SS 2015, vom 13.04.2015
5
[Bib83]
W. Bibel. Automated Theorem Proving. Vieweg, Braunschweig,
1983.
[Bib92]
W. Bibel. Deduktion, Automatisierung der Logik. Oldenbourg, 1992.
[BN98]
Franz Baader and Tobias Nipkow. Term Rewriting and All That.
Cambridge University Press, 1998.
[BS94]
Franz Baader and Jörg H. Siekmann. Unification theory. In Handbook of Logic in Artificial Intelligence and Logic Programming, volume 2. Oxford Science Publications, 1994.
[BS98]
Wolfgang Bibel and Peter H. Schmitt, editors. Automated Deduction - A Basis for Applications, volume I – III. Kluwer Academic
Publishers, 1998.
[BS99]
Franz Baader and Wayne Snyder. Unification theory. In Handbook of
Automated Reasoning. Elsevier Science Publishers, 1999. to appear.
[Bun83]
A. Bundy. The Computer Modelling of Mathematical Reasoning.
Academic Press, London, 1983.
[CL73]
Chin-Liang Chang and Richard Char-Tung Lee. Symbolic Logic and
Mechanical Theorem Proving. Academic Press, New York, 1973.
[Duf91]
David A. Duffy. Principles of Automated Theorem Proving. John
Wiley & Sons, 1991.
[Ede92]
Elmar Eder. Relative Complexities of First order Calculi. Vieweg,
Braunschweig, 1992.
[EFT86]
H.-D. Ebbinghaus, J. Flum, and W. Thomas. Einführung in die mathematische Logik. Wissenschaftliche Buchgesellschaft Darmstadt,
1986.
[FLTZ93]
C. Fermüller, A. Leitsch, T. Tammet, and N. Zamov. Resolution
methods for the decision problem, volume 679 of LNCS. SpringerVerlag, 1993.
[Gal86]
Jean H. Gallier. Logic for Computer Science: Foundations of Automatic Theorem Proving. Harper & Row Publishers, New York,
1986.
[GN87]
Michael R. Genesereth and Nils J. Nilsson. Logical Foundations of
Artificial Intelligence. Morgan Kaufmann Publishers, 1987.
[Hak85]
A. Haken. The intractability of resolution. Theoretical Computer
Science, 39:297–308, 1985.
[HK89]
Dieter Hofbauer and Ralf-Detlef Kutsche. Grundlagen des maschinellen Beweisens. Vieweg, 1989.
Automatische Deduktion, SS 2015, vom 13.04.2015
6
[Kel03]
John Kelly. Logik im Klartext. Prentice Hall; Pearson Studium,
2003.
[KK06]
Martin Kreuzer and Stefan Khling. Logik in der Informatik. Pearson
Studium, 2006.
[Kow79]
R. Kowalski. Logic for Problem Solving. North Holland, Amsterdam,
1979.
[Lov87]
Donald W. Loveland. Automated Theorem Proving: A Logical Basis, volume 6 of Fundamental Studies in Computer Science. NorthHolland, 1987.
[NOT06]
Robert Nieuwenhuis, Albert Oliveras, and Cesare Tinelli. Solving
SAT and SAT Modulo Theories: From an abstract Davis–Putnam–
Logemann–Loveland procedure to DPLL(T). J.ACM, 53(6):937–
977, 2006.
[Pau94]
Larry C. Paulson. Isabelle: a Generic Theorem prover. SpringerVerlag, 1994.
[RB79]
J S. Moore R. Boyer. A Computational Logic, volume 29. Academic
Press, London, 1979.
[RS98]
C. Rollinger and Peter H. Schmitt. Künstliche Intelligenz: Themenheft Deduktion und Anwendung, 1998. in german.
[SA94]
Rolf
Socher-Ambrosius.
Deduktionssysteme.
Wissenschaftsverlag, 1994. in german.
[Smu71]
Raymond M. Smullyan. First-Order Logic. Springer, 1971.
[ST12]
Uwe Schöning and Jacobo Torán. Das Erfüllbarkeitsproblem SAT.
lehmanns media, 2012.
[Tha88]
André Thayse, editor. From Standard Logic to Logic Programming.
John Wiley & Sons, 1988.
BI-
[WOLB84] L. Wos, R. Overbeek, E. Lusk, and J. Boyle. Automated Reasoning
– Introduction and Applications. Prentice-Hall, Englewood Cliffs,
NJ, 1984.
1.2
Vorbemerkung
Als Motivation und erste Information zu Automatischen Deduktionssystemen (ATP) und einem Wettbewerb sei auf die Web-Seite
http://www.cs.miami.edu/ tptp/CASC/ verwiesen.
Die interessantesten und erfolgreichsten Resultate von Automatischen Deduktionssystemen wurden erzielt in den Bereichen: Mathematik, Automatische Software Generierung, Software Verifikation, und Hardware-Verifikation.
Automatische Deduktion, SS 2015, vom 13.04.2015
7
Mathematik: Robbins Algebra Problem (s.u.); Quasi-Gruppen Identitäten;
Geometrie-Beweise.
Software Generierung: Scheduling algorithmen; Programme aus Spezifikationen;
AMPHION (gesponsert von der NASA), Wiederverwendung und zuverlässige Komponenten.
Software Verifikation Z.B.: (SVRC) an der University of Queensland
Karlsruhe Interactive Verifier (KIV) PVS-System
Model-Checker.
Hardware Verifikation: Verifikation von Implementierungen von IEEEGleitkomma- Standards,
Addierer, Multiplizierer,
Mikroprozessoren (AMD5K86, FM9001).
Spezialisierte Software-Werkzeuge.
Das Gebiet der Automatischen Deduktionssysteme ist jünger im Vergleich zum
Gebiet der Logik. Insbesondere bedeutet dies, dass Notationen und Begriffe sich
z.T. nur im Englischen mit einer festen Bedeutung etabliert haben. Benutzt man
Lehrbücher oder weiterführende Literatur (Handbücher, Artikel), so wird man
mit verschiedenen Notationen und verschiedenen Namen für gleiche Begriffe
konfrontiert. So werden manche englischen Begriffe auf verschiedene Weise ins
deutsche übersetzt. Glücklicherweise sind die Begriffsbildungen diesselben, so
dass beim Literaturstudium nach etwas Einarbeitung keine wesentlichen Schwierigkeiten auftauchen.
1.3
Begriffe und Teilgebiete aus der Automatischen Deduktion
Im folgenden eine Liste von Teilgebieten und Anwendungsgebieten.
1.3.1
Beweiserbau
Die Softwaretechnik der Automatischen Deduktionssysteme. Hier werden Fragen zur Softwaretechnik von Deduktionssystemen, effizienten Implementierungen, Datenstrukturen, Heuristiken untersucht. Ebenso Fragen der Benutzung:
interaktiv, vollautomatisch, halbautomatisch, verifizierend, Erzeugung von lesbaren Beweisen.
1.3.2
Gleichheitsbehandlung
Theorie und Verfahren zur Behandlung der Gleichheitsaxiomen, Simplifikationen und operationalen Semantiken. Für Herleitung reichen naive Suchstrategien
oft nicht aus.
Automatische Deduktion, SS 2015, vom 13.04.2015
1.3.3
8
Termersetzungssysteme
Themengebiet sind gerichtete Gleichungen, deren Benutzung als Transformationssystem oder zum Entscheiden des Wortproblems. Das kann man auch als
Untergebiet der Gleichheitsbehandlung ansehen.
1.3.4
Unifikation
Zentrale Fragestellung ist, ob zwei vorgegebene Strukturen mit offenen Stellen
(Variablen) gleichgemacht werden können. Die Unifikationstheorie liefert spezielle Algorithmen und das theoretische Rüstzeug für die Untersuchung solcher
Probleme. Diese spezielle Fragestellung tritt verbreiteter auf, als man annimmt:
Gemeinsamen Instanzen von Pattern, Lösungen von Gleichungen, Logiken erster Ordnung, Typcheck in Programmiersprachen, Gleichungstheorien, LambdaKalkül.
1.3.5
Logiken und (interaktive) Beweiser höherer Ordnung
Aus dem ersten Beweissystem dieser Art: LCF, ist die Programmiersprache
ML hervorgegangen. Der Beweiser HOL ist eines der Nachfolgesysteme. Hierzu
zählt auch Isabelle: mit einer eigenen Logik; eigenem Beweis-system und der
Programmiersprache Standard ML.
Charakteristisch ist die interaktive Vorgehensweise: Ein Mensch steuert das Vorgehen des Beweisers durch vielfältige Angaben: Lemmas, Strategien usw. Die zugrundeliegende Logik garantiert aber, dass es nach Abschluss des Beweises keine
formalen Fehler gibt. Diese Systeme werden auch im Sinne eines Beweisprüfers
verwendet. Nachteilig ist die Dauer einer Sitzung zu einem Beweis (kann Tage/Wochen/ Monate sein).
1.3.6
Nichtmonotone Logiken
Eine Logik heißt monoton, wenn durch die Hinzunahme neuer Annahmen nicht
weniger folgt als ohne diese Annahmen: Φ |= T H impliziert Φ ∪ Ξ |= T H. Die
klassischerweise untersuchten Logiken sind monoton, viele Herleitungsprobleme
der Künstlichen Intelligenz jedoch nicht.
1.3.7
Logische Methoden wissensbasierter Systeme
Die wichtigsten Probleme sind die Entwicklung von Inferenzmethoden für wissensbasierte Systeme und die Mechanisierung nichtklassischer Logiken.
1.3.8
Modallogik
Dies sind Gegenstand älterer logische/philosophische Untersuchungen. Erst
durch den Versuch, geeignete Formulierungssprachen zur computergerechten
Eingabe von verschiedenen Problemen zu finden, wurden diese Logiken wiederbelebt und für die Computerverarbeitung entdeckt.
Automatische Deduktion, SS 2015, vom 13.04.2015
1.3.9
9
Deduktive Programmsynthese
Idee: Mit Hilfe deduktiver Verfahren ein Programm automatisch zu synthetisieren. Z.B.: In der konstruktiven Logik höherer Ordnung entsprechen Existenzbeweise einem ablauffähigen Programm.
1.3.10
Logisches Programmieren
Die Prädikatenlogik, insbesondere das Fragment der Hornklauseln, wird als
(Grundlage einer) Programmiersprache (Prolog) aufgefasst. Implementierungen,
Erweiterungen (Negation, Constraints, ..), werden untersucht.
1.3.11
Anwendungen Automatischer Deduktionssysteme
• logische Programmiersprachen, Constraints + logische Programmiersprachen.
• deduktive Datenbanken
• Planen, Plangenerierung in Systemen der KI.
• Diagnose.
• Nachweis der Korrektheit von Hard- oder Software:
– Programmverifikation
– Programmanalyse
– Automatische Programm Generierung
– Untersuchung von Sicherheitsprotokollen
• Inferenzkomponenten für wissensbasierte Systeme
• Wissensrepräsentationformalismen
1.3.12
Wichtigste Methoden
Resolution
Tableaukalküle
Gleichheit Termersetzung, Paramodulation, Superposition
Modelchecking
Automatische Deduktion, SS 2015, vom 13.04.2015
1.4
10
Einige computergeführte Beweise
Einige lange Zeit offene Problemen, die mit Computerhilfe gelöst wurden, (allerdings nicht mit allgemeinen automatischen Deduktionssystemen), sind:
• Der Vierfarbensatz:
jede ebene Landkarte läßt sich mit vier Farben färben. Die Lösungsmethode war ein spezielles Programm, das einige tausend Konfigurationen
zu untersuchen hatte.
• Nichtexistenz einer endlichen projektiven Ebene der Ordnung
10.
Hintergrund ist die Axiomatisierung der projektiven Ebenen:
1. Durch je zwei Punkte geht genau eine Gerade.
2. Je zwei Geraden schneiden sich in einem Punkt.
3. Es gibt 4 verschiedene Punkte von denen keine drei kollinear sind.
Stichwortartig einige Eigenschaften: Ordnung sei n; n + 1 ist dann die
Anzahl der Punkte auf einer Geraden = Anzahl der Geraden durch einen
Punkt. Alle Geraden haben gleich viele Punkte (n + 1). Durch alle Punkte
gehen gleich viele Geraden (n + 1). Anzahl aller Punkte = Anzahl aller
Geraden = n2 +n+1. Man kennt zu jeder Primzahlpotenz pn (mindestens)
eine projektive Ebene dieser Ordnung.
Aber: Man weiß nicht, ob es eine endliche projektive Ebene zu einer Ordnung gibt, die keine Primzahlpotenz ist. Die kleinste Ordnung für die dies
lange Zeit unbekannt war, ist 10. Die nächste offene Ordnung ist 12.
• Die Kepler-Vermutung zur dichtesten Kugelpackung im Raum“: Diese
”
Vermutung ist (war) bereits über dreihundert Jahre alt.
Sie besteht darin, dass die dichteste Kugelpackung im Raum diejenige ist,
die man durch Probieren sofort findet:
Nämlich die Art der Stapelung von Melonen oder von Kanonenkugeln, die
zu einer Pyramide führt: In der ersten Ebene sind die Kugeln wabenförmig
aneinandergelegt. Die nächste Ebene sieht genauso aus, nur leicht versetzt,
so dass die Kugeln der zweiten Ebene in die Täler der ersten Ebene fallen,
usw. In diesem Fall werden √π18 ∼ 0, 74048 des Raumes von Kugeln gefüllt.
Der mathematische Fallstrick ist offenbar, dass die lokale Minimierung des
Volumens, das von einer Kugel und den (maximal) 12 umgebenden Kugeln
benötigt wird, eine scheinbar bessere Packung ergibt; allerdings lässt sich
diese nicht fortsetzen.
Interessanterweise ist sogar der Beweis der (scheinbar offensichtlichen)
Vermutung, dass man keine 13 Kugeln um eine Zentralkugel gruppieren
kann, so dass alle 13 die Zentralkugel berühren, noch nicht so alt, obwohl bereits z.B Newton sich daran versucht hat. (Erster korrekter Beweis
geführt von K. Schütte und B.L. van der Waerden 1953.)
Automatische Deduktion, SS 2015, vom 13.04.2015
11
Die Kepler-Vermutung wurde gelöst von Tom Hales und seinem Doktoranden Sam Ferguson (University of Michigan).
Die Lösung erforderte umfangreiche mathematische Vorarbeit, bis man das
Problem darauf reduziert hatte, Kugelhaufen mit 53 Kugeln zu untersuchen. Hiervon gibt es ca. 5000 Typen, die alle untersucht werden müssen.
Dies wurde mit Hilfe eines Computers durchgeführt.
Die Akzeptanz der Lösung des Kepler-Problems bereitete und bereitet immer
noch Probleme, da es sich um eine Kombination von mathematischem Argumentieren und mit Programmen durchgeführte Suchen und langwierigen Prüfungen
handelt. Die mathematische Argumentation ist nachvollziehbar, aber die Korrektheit und das Ergebnis der Computerprogramme nicht (in sinnvoller Zeit);
jedenfalls nicht so dass es den Erfordernissen eines Mathematischen Journals
entspricht.
Tom Hales hat daraufhin eine Initiative gestartet: das Flyspeck-Projekt, das
eine formale Verifikation seines Beweises zum Ziel hat, so dass das Programmieren und der Programmablauf keine Löcher“hat. Kurz zusammengefasst sind
”
die meisten Teil-Probleme Constraintprobleme über reellen Variablen: Ungleichungssysteme zu reellen Variablen. Diese Systeme beschreiben mögliche Lagen
von Kugeln im Raum, wobei die Mittelpunkte der Kugeln den reellen Variablen
entsprechen. Allerdings sind es offenbar viele verschiedene Klassen von solchen
Problemen.
Soweit es aus der Projektbeschreibung hervorgeht, sollen beim Flyspeck-Projekt
auch automatische Deduktionssysteme eingesetzt werden: HOL Light.
Beim Vierfarbensatz und beim Kepler-Problem ist die Methode analog zu einem Logik-Crunching, nach einer erheblichen mathematischen Vorarbeit; beim
projektiven-Ebenen-Problem-10 ist es geordnetes, optimiertes Durchprobieren
von sehr vielen Möglichkeiten bei der Suche nach einem Modell.
Automatische Deduktionssysteme, die allgemeiner konstruiert sind, haben auch
schon Spitzenleistungen erzielt: z.B. Lösung des sogenannten Problems der
Robbins-Algebren:
1.5
Das Problem der Robbins Algebren
Das Robbins Problem sind alle Robbins-Algebren auch Boolesche Alge”
bren?“ wurde von William McCune, Automated Deduction Group, Mathematics and Computer Science Division, Argonne National Laboratory gelöst und
zwar mit Hilfe des automatischen Beweisers EQP für Gleichungstheorien. Die
Lösung ist:
Jede Robbins-Algebra ist eine Boolesche Algebra.
Zunächst: Eine Boolesche Algebra hat zwei zweistellige, kommutative, assoziative Operatoren und, oder, einen einstelligen Operator not, Konstanten 0,1,
Automatische Deduktion, SS 2015, vom 13.04.2015
12
so dass folgendes gilt: die De-Morganschen Gesetze, Distributivität, not ist ein
Komplementoperator: x und (not x) = 0, x oder (not x) = 1, not(not x) = x.
Etwas Geschichte:
Im Jahre 1933 gab E. V. Huntington die folgende (alternative) Axiomatisierung
einer Booleschen Algebra:
x+y =y+x
(x + y) + z = x + (y + z)
n(n(x) + y) + n(n(x) + n(y)) = x
[kommutativ]
[assoziativ]
[Huntington Gleichung]
In dieser Axiomatisierung kann man und mittels oder und not definieren, und
nachweisen, dass alle Axiome einer Booleschen Algebra dafür gelten.
Danach vermutete Robbins, dass man das letzte Axiom durch eine anderes ersetzen kann:
n(n(x + y) + n(x + n(y))) = x
[Robbins equation]
Robbins und Huntington konnten keinen Beweis finden, später arbeitete Tarski
mit Studenten an diesem Problem, ebenfalls ohne Erfolg.
Die Algebren mit den Axiomen Kommutativität, Assoziativität und Robbins
Axiom wurden bekannt als Robbins Algebren. Man sieht leicht, dass Boolesche
Algebren auch Robbins Algebren sind; die interessante offene Frage war die
Umkehrung.
Seit 1979 arbeitete daran: Steve Winker, Larry Wos mit dem Beweiser Ot”
ter“ Die Methode war schrittweise immer stärkere Bedingungen (d.h. zusätzliche Axiome) zu finden, unter denen eine Robbins Algebra auf jeden Fall auch
eine Boolesche Algebra ist. Hierbei wurden die Beweise vollautomatisch gesucht.
Winker fand viele solche Bedingungen und bewies dies unter Benutzung von Otter : U.a.:
∀x : n(n(x)) = x
∃0 : ∀x : x + 0 = x
∀x : x + x = x
∃C : ∃D : C + D = C
∃C : ∃D : n(C + D) = n(C)
[erste Winker-Bedingung, 1992]
[zweite Winker-Bedingung,1996]
Der automatische Beweis der Lösung des Robbins Problem wurde am 10 Oktober 1996 mittels EQP geführt. EQP benutzt assoziative-kommutative Unifikation und kann nur Gleichheitslogik.
Die Gleichungen
n(n(n(y) + x) + n(x + y)) = x
n(x + y) 6= n(x)
[Robbins Axiom]
[Negation von Winker-2]
wurden von EQP zum Widerspruch geführt. Die Suche dauerte 8 Tage. Ein
Problem war die Prüfung des von EQP gefundenen Beweises. Hierzu musste
mittels Otter ein (maschinen-)lesbarer Beweis erzeugt werden, der dann wieder
von einem anderen Beweisprüfprogramm nochmal geprüft wurde.
Für weitere Informationen, siehe die zugehörigen Web-Seiten:
Automatische Deduktion, SS 2015, vom 13.04.2015
13
http://www-unix.mcs.anl.gov/~mccune/papers/robbins/
lemmas.html
http://www.cs.unm.edu/~mccune/eqp/ und
http://www.cs.unm.edu/~mccune/otter/
1.6
Methodenwahl: menschliche oder maschinelle?
Was wird erfolgreicher sein?
• Die Nachahmung der menschlichen Vorgehensweise, oder
• Die (intelligente) brute-force (numbercrunching)-Methode
Die bisherige Erfahrung zeigt, dass der Einsatz von Computern erfolgreicher ist,
wenn man nicht das menschliche Problemlösungsverhalten nachahmt, sondern
die zweite Variante, die (intelligente) brute-force Methode verwendet. Z. B. sind
die Erfolge der Schachprogrammierung eher auf solche Methoden als auf rational
planende und nachdenkende Methoden zurückzuführen.
Genauso verhält es sich z.B. mit der Lösung des Robbins-Algebra-Problems.
Wobei man hier einwenden könnte, dass ohne einen Menschen, der das System
EQP intelligent einsetzt, der Beweis nicht gefunden worden wäre.
Es gibt einen Zweig des Automated Reasoning“, der gute Gründe dafür anführt,
”
dass eine Analogie zum menschlichen Planen notwendig sei; allerdings sind die
großen Erfolge hier bisher ausgeblieben.
1.7
Einführende Beispiele
Aussagen über die reale Welt oder über fiktive oder abstrakte Welten sind
manchmal nicht unabhängig voneinander, sondern es kann der Fall sein, dass eine Aussage aus einer oder mehreren anderen Aussage folgt. Zum Beispiel würde
man bei den Aussagen
Jede Katze isst Fische“
”
Garfield ist eine Katze“
”
Garfield isst Fische“
”
sicherlich zustimmen, dass die dritte Aussage aus den beiden anderen folgt.
Wann immer man annimmt, dass die ersten beiden Aussagen wahr sind, muss
man notwendigerweise auch annehmen, dass die dritte Aussage wahr ist. Das
gleiche gilt für folgende Aussagen
Alle Menschen sind sterblich“
”
Sokrates ist ein Mensch“
”
Sokrates ist sterblich“.
”
Wieder gilt, dass die dritte Aussage aus den ersten beiden folgt. Das interessante
dabei ist, dass der Grund weshalb die dritte Aussage aus den beiden anderen
folgt offensichtlich in beiden Fällen derselbe ist. Es hängt gar nicht davon ab, ob
wir über Fische essende Katzen oder sterbliche Menschen oder über irgendwelche
unbekannten Objekte mit unbekannten Eigenschaften sprechen:
14
Automatische Deduktion, SS 2015, vom 13.04.2015
Alle X haben die Eigenschaft E“
”
A ist ein X“
”
A hat die Eigenschaft E“
”
Offensichtlich folgt die dritte Aussage aus den beiden anderen. Die Beobachtung,
dass die folgt aus“- Beziehung zwischen verschiedenen Aussagen gar nicht not”
wendigerweise aus deren Bedeutung definiert werden muss, sondern nur aus
deren syntaktischer Form geht zurück auf Aristoteles und andere antike griechische Philosophen. Die verblüffende Konsequenz ist, dass eine an und für sich
semantische, d.h. von der Bedeutung her, definierte Beziehung, syntaktisch, d.h.
über rein mechanische Symbolmanipulation, realisiert werden kann. In diesem
Fall kann der Test auf die Folgerungsbeziehung zwischen Aussagen auch Computerprogrammen übertragen werden. Programme mit diesen Fähigkeiten heißen
Deduktionssysteme. Unter einem Deduktionssystem kann man daher ganz
allgemein ein programmierbares Verfahren verstehen, das aus vorhandenen Daten Schlussfolgerungen zieht und damit neue Daten ableitet. Welche Art von
Schlussfolgerungen gemeint ist, illustriert Modus Ponens“, eine typische Regel,
”
der auch die beiden obigen Beispiele zum Teil zugrundeliegen, und die schon auf
Aristoteles zurückgeht.
Fakt 1:
Fakt 2:
Schlussfolgerung:
P
Aus P folgt Q
Q
(P und Q sind beliebige Aussagen.)
Die Mechanismen, die einen Rechner zu solchen Ableitungen befähigen, sind im
Prinzip sehr ähnlich zu denen, die ihn zum Rechnen mit Zahlen befähigen. Die
Fakten müssen als Datenobjekte repräsentiert und die Schlussfolgerungen als
Operationen auf diesen Datenobjekten programmiert werden.
1.8
Motivationsbeispiele
Um einen allerersten Eindruck von der Arbeitsweise eines Deduktionssystems zu
bekommen, sollen zwei Beispiele zu deren Anwendung vorgestellt werden. Das
erste ist ist das Sokrates-Beispiel, und das zweite ist ein logisches Rätsel. Die
beiden Beispiele sollen nur einen ungefähren Eindruck geben und demonstrieren, dass man offensichtlich nicht nur Fische fressende Garfields oder sterbliche
Philosophen, sondern wirklich nichttriviale logische Zusammenhänge mit automatisierbaren Methoden behandeln kann.
Beispiel 1.1 Wir wollen beweisen: Aus
”
Alle Menschen sind sterblich“
Sokrates ist ein Mensch“
”
folgt
”
Sokrates ist sterblich“.
Automatische Deduktion, SS 2015, vom 13.04.2015
15
Zunächst benötigt man eine formale Sprache, in der man diesen Sachverhalt
ausdrücken kann. Dafür bietet sich in diesem Fall die Prädikatenlogik an. Das
ist die formale Sprache, in der die meisten mathematischen Zusammenhänge
einfach aufgeschrieben werden können, und die daher den meisten Lesern sowieso mehr oder weniger vertraut sein sollte. Da es in diesem Beispiel um zwei
Eigenschaften geht, führen wir Mensch und sterblich als Prädikatensymbole
ein. Sokrates ist ein Konstantensymbol in der Sprache. Die drei Aussagen sind
dann:
1.)
2.)
3.)
∀x : Mensch(x) =⇒ sterblich(x)
Mensch(Sokrates)
sterblich(Sokrates)
Der herzuleitende Aussage wird jetzt, um einen Beweis durch Widerspruch zu
demonstrieren, verneint. Damit hat man eine Menge von Aussagen, auf die man
das mechanische Verfahren der Resolution anwenden kann. Das Ziel ist es einen
Widerspruch herzuleiten. Hat man dies erreicht, dann kann man sagen, dass die
verneinte Aussage aus den anderen folgt.
1.)
2.)
3.)
∀x : Mensch(x) =⇒ sterblich(x)
Mensch(Sokrates)
¬sterblich(Sokrates)
Zunächst muss man die Formeln noch etwas abändern:
1.)
2.)
3.)
∀x : ¬Mensch(x) ∨ sterblich(x)
Mensch(Sokrates)
¬sterblich(Sokrates)
Das mechanische Verfahren der Resolution erlaubt es jetzt, aus 1) und 3) durch
instanziieren von x mit Sokrates die Formel
¬Mensch(Sokrates) .
herzuleiten. Diese Formel und die zweite erlauben es jetzt, den endgültigen Widerspruch direkt zu erkennen.
Beispiel 1.2 Wise Men Puzzle Es war einmal ein König, der hatte drei
weise Männer. Eines Tages beschloss er, herauszufinden, wer von den dreien
der weiseste ist. Er stellt sie einander gegenüber, macht jedem von ihnen einen
weißen oder schwarzen Punkt auf die Stirn und sagt ihnen, dass mindestens
einer der Punkte weiß ist. Nach einer Weile, in der niemand was sagte, fragte
er den ersten, ob er die Farbe seines Punktes wüsste. Der verneinte. Dann
fragte er den zweiten. Der verneinte ebenfalls. Daraufhin sagte der dritte
prompt, dass sein Punkt weiß ist. Woher wusste der das?
Zweite Frage: wie is die Verteilung der Farben?
16
Automatische Deduktion, SS 2015, vom 13.04.2015
Es gibt eine leichte Variante dieses Rätsels, bei dem der König mehrfach alle
gleichzeitig fragt, und zweimal keine Antwort bekommt, aber beim dritten Mal
bekommt er Antworten. Welche?
Zur Lösung dieses Rätsels ist es notwendig, Schlüsse über den Wissensstand der
Beteiligten zu ziehen. Zur Formulierung dieses Rätsels, wenn man eine explizite Darstellung des Wissensstands jedes Beteiligten haben will und automatisch
Schlüsse ziehen will, ist die prädikatenlogische Sprache daher nicht sehr gut geeignet. Einfacher wird es, wenn man die logische Sprache um neue Operatoren
erweitert, mit denen man ausdrücken kann, dass jemand eine bestimmte Sache
weiß oder nicht weiß. Damit macht man aus der Prädikatenlogik eine sogenannte epistemische Logik. Dies führt zur sogenannten Modallogik und deren Varianten. Es gibt Methoden, die Aussagen dieser Logik wieder in Prädikatenlogik
übersetzen.
Wenn man den Wissenstand der Beteiligten nicht explizit modelliert, und sich
die Fälle anschaut, kann man wie folgt argumentieren: Es gibt nur 7 Fälle:
Fall →
↓Nr. des Weisen
1.
2.
3.
1
2
3
4
5
6
7
W
W
W
W
W
S
W
S
W
W
S
S
S
W
W
S
W
S
S
S
W
Der Fall SSS ist explizit ausgeschlossen, deshalb sind es 7.
Im Fall 4 würde der erste Weise sofort erkennen, dass er W haben muss.
In Fall 6 würde der zweite Weise sofort erkennen, dass er W haben muss.
Bleibt Fall 2: In diesem Fall würde der zweite aus dem Nichtwissen des ersten
schließen, dass er W haben muss. Also bleiben nur die Fälle, in denen der
dritte Weise ein W auf der Stirn hat.
Bei der ersten Art der Fragerunde können die Fälle 3 und 5 vorkommen.
In der zweiten Variante des Rätsels kann man die Fälle 4 und 6 ausschließen
nachdem keiner auf die erste Frage eine Antwort wusste. Nachdem keiner auf
die zweite Frage eine Antwort wusste, kann es nur noch der Fall 1 sein, und
alle Weisen antworten gleichzeitig mit W.
Automatische Deduktion, SS 2015, vom 13.04.2015
2
17
Aussagenlogik (propositional calculus)
Die Aussagenlogik ist in vielen anderen Logiken enthalten; sie hat einfache verstehbare Inferenzmethoden, man kann einfache Beispiele modellhaft in der Aussagenlogik betrachten. Bei der Verallgemeinerung auf Prädikatenlogik und andere Logiken startet man meist auf der Basis der Aussagenlogik.
Dieses Kapitel geht detailliert auf Aussagenlogik, Kalküle und Eigenschaften
ein. Ziel ist jeweils, vereinfachte Varianten von allgemeinen Verfahren zum
Schlussfolgern zu verstehen, damit man einen Einblick in die Wirkungsweise von
Inferenzverfahren für Prädikatenlogik und andere Logiken gewinnt. Es soll auch
auf Methoden für schnelle und effiziente Verfahren für die Aussagenlogik eingegangen werden. Wir werden nicht auf die Verarbeitung Boolescher Funktionen
eingehen und auch nicht auf BDDs und ihre Varianten. Diese haben effiziente
Darstellungen und Algorithmen für eine Klasse von Formen, sind aber nicht so
gut geeignet, allgemeinere Logiken und Erweiterungen wie Prädikatenlogik und
Modallogik verständlich zu machen.
Ein Buch zur Aussagenlogik ist z.B. [ST12]
Definition 2.1 Syntax
Die Syntax ist gegeben durch die Grammatik:
A ::= X | (A ∧ A) | (A ∨ A) | (¬ A) | (A =⇒ A) | (A ⇔ A) | 0 | 1
Hierbei ist X ein Nichtterminal für aussagenlogische Variablen und A ein Nichtterminal für Aussagen. Die Konstanten 0, 1 entsprechen falsch bzw. wahr. Üblicherweise werden bei der Notation von Aussagen Klammern weggelassen. wobei
man die Klammerung aus den Prioritäten der Operatoren wieder rekonstruieren
kann: Die Prioritätsreihenfolge ist: ¬, ∧, ∨, =⇒ , ⇐⇒ .
Die Zeichen ∧, ∨, ¬, =⇒ , ⇔ nennt man Junktoren. Aussagen der Form 0, 1
oder x nennen wir Atome. Literale sind entweder Atome oder Aussagen der
Form ¬A, wobei A ein Atom ist.
A ∧ B:
A ∨ B:
A =⇒ B:
A ⇔ B:
¬A:
A
A
Konjunktion (Verundung).
Disjunktion (Veroderung).
Implikation .
Äquivalenz.
negierte Formel.
Atom, falls A eine Variable ist.
Literal, falls A Atom oder negiertes Atom.
Wir lassen auch teilweise eine erweiterte Syntax zu, bei der auch noch andere
Operatoren zulässig sind wie: NOR, XOR, NAND.
Dies erweitert nicht die Fähigkeit zum Hinschreiben von logischen Ausdrücken,
denn man kann diese Operatoren simulieren. Auch könnte man 0, 1 weglassen,
wie wir noch sehen werden, denn man kann 1 als Abkürzung von A ∨ ¬A, und
0 als Abkürzung von A ∧ ¬A auffassen.
18
Automatische Deduktion, SS 2015, vom 13.04.2015
Definition 2.2 Semantik Zunächst definiert man für jede Operation
¬, ∧, ∨, =⇒ , ⇔ Funktionen {0, 1} → {0, 1} bzw. {0, 1}2 → {0, 1}. Die
Funktion f¬ ist definiert als f¬ (0) = 1, f¬ (1) = 0. Ebenso definiert man
f0 := 0, f1 := 1. Die anderen Funktionen fop sind definiert gemäß folgender
Tabelle.
1
1
0
0
1
0
1
0
∧
1
0
0
0
∨
1
1
1
0
=⇒
1
0
1
1
⇐
1
1
0
1
N OR
0
0
0
1
N AN D
0
1
1
1
⇔
1
0
0
1
XOR
0
1
1
0
Der Einfachheit halber werden oft die syntaktischen Symbole auch als Funktionen gedeutet.
Definition 2.3 Eine Interpretation I ist eine Funktion: I
:
{aussagenlogische Variablen} → {0, 1}.
Eine Interpretation I definiert für jede Aussage einen Wahrheitswert, wenn man
sie auf Aussagen fortsetzt:
• I(0) := 0, I(1) := 1
• I(¬A) := f¬ (I(A))
• I(A op B) := fop (I(A), I(B)), wobei op ∈ {∧, ∨, =⇒ , ⇔ . . .}
Wenn für eine Aussage F und eine Interpretation I gilt: I(F ) = 1, dann schreiben wir auch: I |= F . Sprechweisen: I ist ein Modell für F , F gilt in I, I macht
F wahr.
Definition 2.4 Sei A ein Aussage.
• A ist eine Tautologie (Satz, allgemeingültig) gdw. für alle Interpretationen
I gilt: I |= A.
• A ist ein Widerspruch (widersprüchlich, unerfüllbar) gdw. für alle Interpretationen I gilt: I(A) = 0.
• A ist erfüllbar (konsistent) gdw. es eine Interpretationen I gibt mit: I |= A.
• ein Modell für eine Formel A ist eine Interpretation I mit I(A) = 1.
Man kann jede Aussage in den n Variablen X1 , . . . , Xn auch als eine Funktion
mit den n Argumenten X1 , . . . , Xn auffassen. Dies entspricht dann Booleschen
Funktionen.
Beispiel 2.5
• X ∨ ¬X ist eine Tautologie.
• (X =⇒ Y ) =⇒ ((Y =⇒ Z) =⇒ (X =⇒ Z)) ist eine Tautologie.
Automatische Deduktion, SS 2015, vom 13.04.2015
19
• X ∧ ¬X ist ein Widerspruch.
• X ∨ Y ist erfüllbar.
• I mit I(X) = 1, I(Y ) = 0 ist ein Modell für X ∧ ¬Y
Beispiel 2.6 Bauernregeln:
•
Abendrot Schlechtwetterbot’“ kann man übersetzen in
”
Abendrot =⇒ Schlechtes Wetter. Diese Aussage ist weder Tautologie
noch Widerspruch, aber erfüllbar.
•
Wenn der Hahn kräht auf dem Mist, ändert sich das Wetter oder es bleibt
”
wie es ist. “ kann man übersetzen in
Hahn kraeht auf Mist =⇒ (Wetteraenderung ∨ ¬Wetteraenderung).
Man sieht, dass das eine Tautologie ist.
Die tautologischen Aussagen sind in Bezug auf die Wirklichkeit ohne Inhalt. Erst wenn man sie verwendet zum Finden von Folgerungen ergibt
sich etwas neues.
Satz 2.7
• Es ist entscheidbar, ob eine Aussage eine Tautologie (Widerspruch, erfüllbar) ist.
• Die Frage Ist A erfüllbar?“ ist N P-vollständig.
”
• Die Frage Ist A Tautologie (Widerspruch)? “ ist co-N P-vollständig.
”
Das einfachste und bekannteste Verfahren zur Entscheidbarkeit ist das der
Wahrheitstafeln. Es werden einfache alle Interpretation ausprobiert.
Zur Erläuterung: N P-vollständig bedeutet, dass jedes Problem der Problemklasse mit einem nicht-deterministischen Verfahren in polynomieller Zeit gelöst
werden kann, und dass es keine bessere obere Schranke gibt.
Eine Problemklasse ist co-N P-vollständig, wenn die Problemklasse die aus den
Negationen gebildet wird, N P-vollständig ist.
Sequentielle Algorithmen zur Lösung haben für beide Problemklassen nur
Exponential-Zeit Algorithmen. Genaugenommen ist es ein offenes Problem der
theoretischen Informatik, ob es nicht bessere sequentielle Algorithmen gibt.
Die Klasse der N P-vollständigen Probleme ist vom praktischen Standpunkt aus
leichter als co-N P-vollständig: Für N P-vollständige Probleme kann man mit
Glück (d.h. Raten) oft schnell eine Lösung finden. Z.B. eine Interpretation einer
Formel. Für co-N P-vollständige Probleme muss man i.a. viele Möglichkeiten
testen: Z.B. muss man i.a. alle Interpretation einer Formel ausprobieren.
Automatische Deduktion, SS 2015, vom 13.04.2015
2.1
20
Folgerungsbegriffe
Man muss zwei verschiedene Begriffe der Folgerungen für Logiken unterscheiden:
• semantische Folgerung
• syntaktische Folgerung (Herleitung, Ableitung) mittels einer prozeduralen
Vorschrift. Dies ist meist ein nicht-deterministischer Algorithmus (Kalkül),
der auf Formeln oder auf erweiterten Datenstrukturen operiert. Das Ziel
ist i.a. die Erkennung von Tautologien (oder Folgerungsbeziehungen).
In der Aussagenlogik fallen viele Begriffe zusammen, die in anderen Logiken
verschieden sind. Trotzdem wollen wir die Begriffe hier unterscheiden.
Definition 2.8 Sei F eine Menge von (aussagenlogischen) Formeln und G eine
weitere Formel.
Wir sagen G folgt semantisch aus F
gdw.
Für alle Interpretationen I gilt: wenn für alle Formeln F ∈ F die
Auswertung I(F ) = 1 ergibt, dann auch I(G) = 1.
Die semantische Folgerung notieren wir auch als F |= G
Es gilt
Aussage 2.9 Wenn ein Fi ein Widerspruch ist, dann kann man alles folgern:
Es gilt dann für jede Formel G: F1 , . . . , Fn |= G.
Wenn ein Fi eine Tautologie ist, dann kann man dies in den Voraussetzungen
weglassen: Es gilt dann für alle Formeln G:
F1 , . . . , Fn |= G ist dasselbe wie F1 , . . . , Fi−1 , Fi+1 , . . . , Fn |= G
In der Aussagenlogik gibt es eine starke Verbindung von semantischer Folgerung
mit Tautologien: Es gilt:
Satz 2.10 (Deduktionstheorem)
{F1 , . . . , Fn } |= G gdw. F1 ∧ . . . ∧ Fn =⇒ G ist Tautologie.
Zwei Aussagen F, G nennen wir äquivalent (F ∼ G), gdw. wenn F ⇐⇒ G eine
Tautologie ist. Beachte, dass F und G genau dann äquivalent sind, wenn für
alle Interpretationen I: I |= F gdw. I |= G gilt.
Es ist auch zu beachten, dass z.B. X ∧ Y nicht zu X 0 ∧ Y 0 äquivalent ist. D.h.
bei diesen Beziehungen spielen die Variablennamen eine wichtige Rolle.
Definition 2.11 Gegeben sei ein (nicht-deterministischer) Algorithmus A (ein
Kalkül), der aus einer Menge von Formeln H eine neue Formel H berechnet,
Man sagt auch, dass H syntaktisch aus H folgt (bezeichnet mit H `A H oder
auch H →A H).
• Der Algorithmus A ist korrekt (sound), gdw. H →A H impliziert H |= H
Automatische Deduktion, SS 2015, vom 13.04.2015
21
• Der Algorithmus A ist vollständig (complete), gdw. H |= H impliziert,
dass H `A H
Aus obigen Betrachtungen folgt, dass es in der Aussagenlogik für die Zwecke
der Herleitung im Prinzip genügt, einen Algorithmus zu haben, der Aussagen
auf Tautologieeigenschaft prüft. Gegeben {F1 , . . . , Fn }, zähle alle Formeln F
auf, prüfe, ob F1 ∧ . . . ∧ Fn =⇒ F eine Tautologie ist, und gebe F aus, wenn
die Antwort ja ist. Das funktioniert, ist aber nicht sehr effizient, wegen der
Aufzählung aller Formeln. Außerdem kann man immer eine unendliche Menge
von Aussagen folgern, da alle Tautologien immer dabei sind.
Es gibt verschiedene Methoden, aussagenlogische Tautologien (oder auch erfüllbare Aussagen) algorithmisch zu erkennen: Z.B. BDDs (binary decision diagrams) : eine Methode, Aussagen als Boolesche Funktionen anzusehen und
möglichst kompakt zu repräsentieren; Genetische Algorithmen zur Erkennung
erfüllbarer Formeln; Suchverfahren die mit statischer Suche und etwas Zufall und
Bewertungsfunktionen operieren; Davis-Putnam Verfahren: Fallunterscheidung
mit Simplifikationen (siehe unten 2.7); Tableaukalkül, der Formeln syntaktisch
analysiert (analytic tableau) (siehe 2.9).
2.2
Tautologien und einige einfache Verfahren
Wir wollen im folgenden Variablen in Aussagen nicht nur durch die Wahrheitswerte 0, 1 ersetzen, sondern auch durch Aussagen. Wir schreiben dann A[B/x],
wenn in der Aussage A die Aussagenvariable x durch die Aussage B ersetzt
wird. In Erweiterung dieser Notation schreiben wir auch: A[B1 /x1 , . . . , Bn /xn ],
wenn mehrere Aussagevariablen ersetzt werden sollen. Diese Einsetzung passiert gleichzeitig, so dass dies kompatibel zur Eigenschaft der Komposition von
Funktionen ist: Wenn A n-stellige Funktion in den Aussagevariablen ist, dann
ist A[B1 /x1 , . . . , Bn /xn ] die gleiche Funktion wie A ◦ (B1 , . . . , Bn ).
Satz 2.12 Gilt A1 ∼ A2 und sind B1 , . . . , Bn weitere Aussagen, dann gilt auch
A1 [B1 /x1 , . . . , Bn /xn ] ∼ A2 [B1 /x1 , . . . , Bn /xn ].
Beweis. Man muss zeigen, dass alle Zeilen der Wahrheitstafeln für die neuen
Ausdrücke gleich sind. Seien y1 , . . . , ym die Variablen. Den Wert einer Zeile
kann man berechnen, indem man zunächst die Wahrheitswerte für Bi berechnet
und dann in der Wahrheitstabelle von Ai nachschaut. Offenbar erhält man für
beide Ausdrücke jeweils denselben Wahrheitswert. 2
Satz 2.13 Sind A, B äquivalente Aussagen, und F eine weitere Aussage, dann
sind F [A] und F [B] ebenfalls äquivalent. 1
1 Hierbei ist F [B] die Aussage, die dadurch entsteht, dass in F die Subaussage A durch B
ersetzt wird.
Automatische Deduktion, SS 2015, vom 13.04.2015
22
Die Junktoren ∧ und ∨ sind kommutativ, assoziativ, und idempotent, d.h. es
gilt:
F ∧G
⇐⇒
G∧F
F ∧F
⇐⇒
F
F ∧ (G ∧ H) ⇐⇒ (F ∧ G) ∧ H
F ∨G
⇐⇒
G∨F
F ∨ (G ∨ H) ⇐⇒ (F ∨ G) ∨ H
F ∨F
⇐⇒
F
Weiterhin gibt es für Aussagen noch Rechenregeln und Gesetze, die wir im folgenden auflisten wollen. Alle lassen sich mit Hilfe der Wahrheitstafeln beweisen,
allerdings erweist sich das bei steigender Variablenanzahl als mühevoll, denn die
Anzahl der Überprüfungen ist 2n , wenn n die Anzahl der Aussagenvariablen ist.
Die Frage nach dem maximal nötigen Aufwand (in Abhängigkeit von der Größe
der Aussagen) für die Bestimmung, ob eine Aussage erfüllbar ist, ist ein berühmtes offenes Problem der (theoretischen) Informatik, das SAT ∈ P-Problem,
dessen Lösung weitreichende Konsequenzen hätte, z.B. würde P = N P daraus
folgen. Im Moment geht man davon aus, dass dies nicht gilt.
Lemma 2.14 (Äquivalenzen:)
¬(¬A))
(A =⇒ B)
(A ⇐⇒ B)
¬(A ∧ B)
¬(A ∨ B)
A ∧ (B ∨ C)
A ∨ (B ∧ C)
(A =⇒ B)
A ∨ (A ∧ B)
A ∧ (A ∨ B)
⇐⇒
⇐⇒
⇐⇒
⇐⇒
⇐⇒
⇐⇒
⇐⇒
⇐⇒
⇐⇒
⇐⇒
A
(¬A ∨ B)
((A =⇒ B) ∧ (B =⇒ A))
¬A ∨ ¬B
(DeMorgansche Gesetze)
¬A ∧ ¬B
(A ∧ B) ∨ (A ∧ C)
Distributivität
(A ∨ B) ∧ (A ∨ C)
Distributivität
(¬B =⇒ ¬A)
Kontraposition
A
Absorption
A
Absorption
Diese Regeln sind nach Satz 2.12 nicht nur verwendbar, wenn A; B; C Aussagevariablen sind, sondern auch, wenn A, B, C für Aussagen stehen.
2.3
Normalformen
Für Aussagen der Aussagenlogik gibt es verschiedene Normalformen. U.a. die
disjunktive Normalform (DNF) und die konjunktive Normalform (CNF): Die
letzte nennt man auch Klauselnormalform.
Hierbei ist eine Klausel eine Formel der Form L1 ∨. . . Ln , wobei Li Literale sind,
und Literale sind Variablen oder negierte Variablen.
• disjunktive Normalform (DNF). Die Aussage ist eine Disjunktion von Konjunktionen von Literalen. D.h. von der Form
(L1,1 ∧ . . . ∧ L1,n1 ) ∨ . . . ∨ (Lm,1 ∧ . . . ∧ Lm,nm )
wobei Li,j Literale sind.
Automatische Deduktion, SS 2015, vom 13.04.2015
23
• konjunktive Normalform (CNF). Die Aussage ist eine Konjunktion von
Disjunktionen von Literalen. D.h. von der Form
(L1,1 ∨ . . . ∨ L1,n1 ) ∧ . . . ∧ (Lm,1 ∨ . . . ∨ Lm,nm )
wobei Li,j Literale sind.
Die Klauselnormalform wird oft als Menge von Mengen notiert und auch behandelt. Dies ist gerechtfertigt, da sowohl ∧ als auch ∨ assoziativ, kommutativ und
idempotent sind, so dass Vertauschungen und ein Weglassen der Klammern erlaubt ist. Wichtig ist die Idempotenz, die z.B. erlaubt, eine Klausel {A, B, A, C}
als unmittelbar äquivalent zur Klausel {A, B, C} zu betrachten. Eine Klausel
mit einem Literal bezeichnet man auch als 1-Klausel. Eine Klausel (in Mengenschreibweise) ohne Literale wird als leere Klausel bezeichnet. Diese ist äquivalent
zu 0, dem Widerspruch.
Definition 2.15 Eine Hornklausel ist eine Klausel mit maximal einem positiven Literal. Eine Hornklauselmenge ist eine Klauselmenge die nur aus Hornklauseln besteht.
Lemma 2.16 Eine Klausel C ist eine Tautologie genau dann wenn es eine
Variable A gibt, so dass sowohl A als auch ¬A in der Klausel vorkommen
Beweis. Übungsaufgabe.
Es gilt:
Lemma 2.17 Zu jeder Aussage kann man eine äquivalente CNF finden und
ebenso eine äquivalente DNF. Allerdings nicht in eindeutiger Weise.
Lemma 2.18
• Eine Aussage in CNF kann man in Zeit O(n ∗ log(n)) auf TautologieEigenschaft testen.
• Eine Aussage in DNF kann man in Zeit O(n ∗ log(n)) auf Unerfüllbarkeit
testen.
Beweis. Eine CNF C1 ∧. . .∧Cn ist eine Tautologie, gdw für alle Interpretationen
I diese Formel stets wahr ist. D.h. alle Ci müssen ebenfalls Tautologien sein.
Das geht nur, wenn jedes Ci ein Paar von Literalen der Form A, ¬A enthält.
Das gleiche gilt in dualer Weise für eine DNF, wenn man dualisiert, d.h. wenn
man ersetzt: ∧ ↔ ∨, 0 ↔ 1, CNF ↔ DNF, Tautologie ↔ Widerspruch. 2
Der duale Test: CNF auf Unerfüllbarkeit bzw. DNF auf Allgemeingültigkeit ist
die eigentliche harte Nuss.
Dualitätsprinzip
Man stellt fest, dass in der Aussagenlogik (auch in der Prädikatenlogik) Definition, Lemmas, Methoden, Kalküle, Algorithmen stets eine duale Variante haben.
Die Dualität ist wie im Beweis oben: durch Vertauschung zu sehen: ∧ ↔ ∨,
24
Automatische Deduktion, SS 2015, vom 13.04.2015
0 ↔ 1, CNF ↔ DNF, Tautologie ↔ Widerspruch, Test auf Allgemeingültigkeit
↔ Test auf Unerfüllbarkeit. D.h. auch, dass die Wahl zwischen Beweissystemen,
die auf Allgemeingültigkeit testen und solchen, die auf Unerfüllbarkeit testen,
eine Geschmacksfrage ist und keine prinzipielle Frage.
Lemma 2.19 Sei F eine Formel. Dann ist F allgemeingültig gdw. ¬F ein Widerspruch ist
Bemerkung 2.20 Aus Lemma 2.18 kann man Schlussfolgerungen ziehen über
die zu erwartende Komplexität eines Algorithmus, der eine Formel (unter Äquivalenzerhaltung) in eine DNF (CNF) transformiert. Wenn dieser Algorithmus polynomiell wäre, dann könnte man einen polynomiellen Tautologietest
durchführen:
Zuerst überführe eine Formel in CNF und dann prüfe, ob diese CNF
eine Tautologie ist.
Dies wäre ein polynomieller Algorithmus für ein co-N P-vollständiges Problem.
Allerdings sehen wir später, dass die DNF (CNF-)Transformation selbst nicht
der Engpass ist, wenn man nur verlangt, dass die Allgemeingültigkeit (Unerfüllbarkeit) in eine Richtung erhalten bleibt.
Definition 2.21 Transformation in Klauselnormalform
Folgende Prozedur wandelt jede aussagenlogische Formel in konjunktive Normalform (CNF, Klauselnormalform) um:
1. Elimination von ⇔ und =⇒ :
F ⇔ G → (F =⇒ G) ∧ (G =⇒ F )
und
F =⇒ G → ¬F ∨ G
2. Negation ganz nach innen schieben:
¬¬F
¬(F ∧ G)
¬(F ∨ G)
→
→
→
F
¬F ∨ ¬G
¬F ∧ ¬G
3. Distributivität (und Assoziativität, Kommutativität) iterativ anwenden,
um ∧ nach außen zu schieben ( Ausmultiplikation“). F ∨ (G ∧ H) →
”
(F ∨ G) ∧ (F ∨ H) (Das duale Distributivgesetz würde eine disjunktive
Normalform ergeben.)
Das Resultat dieser Prozedur ist eine Konjunktion von Disjunktionen (Klauseln)
von Literalen:
(L1,1 ∨ . . . ∨ L1,n1 )
∧
(L2,1 ∨ . . . ∨ L2,n2 )
∧
...
∧
(Lk,1 ∨ . . . ∨ Lk,nk )
Automatische Deduktion, SS 2015, vom 13.04.2015
25
oder in (Multi-)Mengenschreibweise:
{{L1,1 , . . . , L1,n1 },
{L2,1 , . . . , L2,n2 },
...
{Lk,1 , . . . , Lk,nk }}
Die so hergestellte CNF ist eine Formel, die äquivalent zur eingegebenen Formel ist. Dieser CNF-Algorithmus ist im schlechtesten Fall exponentiell, d.h. die
Anzahl der Literale in der Klauselform wächst exponentiell mit der Größe der
Ausgangsformel.
Es gibt zwei Schritte, die zum exponentiellem Anwachsen der Formel führen
können,
• die Elimination von ⇔: Betrachte die Formel (A1 ⇔ A2 ) ⇔ (A3 ⇔ A4 )
und die Verallgemeinerung.
• Ausmultiplikation mittels Distributivgesetz:
(A1 ∧ . . . ∧ An ) ∨ B2 ∨ . . . ∨ Bm → ((A1 ∨ B2 ) ∧ . . . ∧ (An ∨ B2 )) ∨ B3 . . . ∨ Bn
Dies verdoppelt B2 und führt zum Iterieren des Verdoppelns, wenn Bi
selbst wieder zusammengesetzte Aussagen sind.
Beispiel 2.22
((A ∧ B) =⇒ C) =⇒ C
2.4
→
¬(¬(A ∧ B) ∨ C) ∨ C
→
(A ∧ B) ∧ ¬C) ∨ C
→
(A ∨ C) ∧ (B ∨ C) ∧ (¬C ∨ C)
Schnelle CNF (Tseitin-Kodierung)
Wir geben einen Algorithmus an (Tseitin-Kodierung), der eine aussagenlogische
Formel F in polynomieller Zeit in eine CNF FCN F umwandelt, wobei die Formel
F erfüllbar ist gdw. FCN F erfüllbar ist (Erfüllbarkeits-Erhaltung). Es ist hierbei
nicht gefordert, dass F und FCN F äquivalent als Formeln sind! Beachte, dass
bei diesem Verfahren die Anzahl der Variablen erhöht wird.
Der Trick ist: komplexe Subformeln iterativ durch neue Variablen abzukürzen.
Sei F [G] eine Formel mit der Subformel G. Dann erzeuge daraus (A ⇐⇒
G) ∧ F [A], wobei A eine neue aussagenlogische Variable ist.
Lemma 2.23 F [G] ist erfüllbar gdw. (G ⇐⇒ A) ∧ F [A] erfüllbar ist. Hierbei
muss A eine Variable sein, die nicht in F [G] vorkommt.
Automatische Deduktion, SS 2015, vom 13.04.2015
26
Beweis. “⇒“ Sei F [G] erfüllbar und sei I eine beliebige Interpretation mit
I(F[G]) = 1. Erweitere I zu I 0 , so dass I 0 (A) := I(G). Werte die Formel
(G ⇐⇒ A) ∧ F [A] unter I 0 aus: Es gilt I 0 (G ⇐⇒ A) = 1 und
I 0 (F [G]) = I 0 (F [A]) = 1.
“⇐“ Sei I(G ⇐⇒ A) ∧ F [A]) = 1 für eine Interpretation I. Dann ist I(G) =
I(A) und I(F [A]) = 1. Damit muss auch I(F [G]) = 1 sein. 2
Zunächst benötigen wir den Begriffe Tiefe einer Aussage und Sub-Tiefe einer
Subformel in einer Aussage (betrachtet als Syntaxbäume). Beachte hierbei aber,
dass es jetzt auf die genaue syntaktische Form ankommt: Es muss voll geklammert sein. Man kann es auch für eine flachgeklopfte Form definieren, allerdings
braucht man dann eine andere Syntaxdefinition usw.
Definition 2.24 Die Tiefe einer Formel ist die maximale Länge eines Pfades
im Syntaxbaum.
Die Sub-Tiefe einer Subformel in einer Aussage definiert man entsprechend
dem Aufbau der Syntax: Zunächst hat jede Formel F eine Sub-Tiefe 0 in sich
selbst. Sei H eine Subformel von F der Sub-Tiefe n. Dann definieren wir für
Subformeln von F wie folgt:
• Wenn H ≡ ¬G, dann hat G die Sub-Tiefe n + 1 in F .
• Wenn H ≡ (G1 op G2 ), dann sind G1 , G2 Subformeln mit Sub-Tiefe n + 1
in F , wobei op einer der Junktoren ∨, ∧, =⇒ , ⇐⇒ sein kann.
Definition 2.25 Schneller CNF-Algorithmus
Wenn eine Formel bereits in der Form H1 ∧ . . . ∧ Hn ist, und Hj eine Tiefe
≥ 4 hat, dann ersetze Hj folgendermaßen: Ersetze alle Subformeln G1 , . . . , Gm
von Hj mit Sub-Tiefe 3 in Hj durch neue Variablen Ai (ersetze Gi nur wenn
es kein Atom ist): D.h. Ersetze Hj = Hj0 [G1 , . . . , Gm ] durch (G1 ⇐⇒ A1 ) ∧
. . . ∧ (Gm ⇐⇒ Am ) ∧ Hj0 [A1 , . . . , Am ] in der Formel H1 ∧ . . . ∧ Hn .
Iteriere diesen Schritt, bis er nicht mehr durchführbar ist.
Danach wandle die verbliebenen Formeln mit Tiefe ≤ 3 in CNF um.
Die Begründung der verbesserten Komplexität ist folgendermaßen: Aus einer
Formel F der Tiefe n entsteht im ersten Schritt eine Formel der Tiefe höchstens 3
und weitere Konjunktionsglieder der Form G ⇐⇒ A (mit kleinerer Tiefe als F ).
D.h. nur in G kann wieder ersetzt werden. D.h. die Anzahl der neu hinzugefügten
Formeln ist kleiner als die Anzahl aller Subformeln der ursprünglichen Formel
F . Den Aufwand zur Umformung der kleinen Formeln kann man als konstant
ansehen. Da die Größe der Formel F gerade die Anzahl der Subformeln ist,
ist die Anzahl der durchzuführenden Schritte linear. Je nach Datenstruktur
(zur Vermeidung von Suche) kann man den Algorithmus linear formulieren und
implementieren.
Dual dazu ist wieder die schnelle Herstellung einer DNF, die allerdings mit einer
anderen Transformation: F [G] −→ (G ⇐⇒ A) =⇒ F [A] gemacht werden
muss und bei der die Tautologie-Eigenschaft erhalten bleibt.
Automatische Deduktion, SS 2015, vom 13.04.2015
27
Beachte, dass man Disjunktionen und Konjunktionen auch als Liste verarbeiten
kann, aber zur schnellen CNF-Herstellung muss man eine obere Schranke der
Länge festsetzen, sonst ergibt sich wieder das Problem einer exponentiell großen
CNF.
Beispiel 2.26 Wandle eine DNF in eine CNF auf diese Art und Weise um
unter Erhaltung der Erfüllbarkeit. Sei (D11 ∧ D12 ) ∨ . . . ∨ (Dn1 ∧ Dn2 ) die DNF.
Wenn man das Verfahren leicht abwandelt, damit man besser sieht, was passiert:
ersetzt man die Formeln (Di1 ∧ Di2 ) durch neue Variablen Ai und erhält am
Ende:
(A1 ∨ . . . ∨ An ) ∧ (¬A1 ∨ D11 ) ∧ (¬A1 ∨ D12 ) ∧ (¬D11 ∨ ¬D12 ∨ A1 ) ∧ . . .. Diese
Formel hat 8n Literale.
Beispiel 2.27 Wandle die Formel
(((((X ⇐⇒ Y ) ⇐⇒ Y ) ⇐⇒ Y ) ⇐⇒ Y ) ⇐⇒ X)
um. Das ergibt:
(A ⇐⇒ ((X ⇐⇒ Y ) ⇐⇒ Y )) =⇒ ((((A ⇐⇒ Y ) ⇐⇒ Y ) ⇐⇒ X)
Danach kann man diese Formel dann auf übliche Weise in CNF (oder DNF)
umwandeln.
Aussage 2.28 Wenn aus einer Formel F mittels des Algorithmus in Definition
2.25 eine Formel (bzw. eine CNF) F 0 produziert wird, dann gilt folgendes:
1. F ist erfüllbar gdw. F 0 ist erfüllbar.
2. F ist Widerspruch gdw. F 0 ein Widerspruch ist.
3. Wenn F eine Tautologie ist, dann ist F 0 erfüllbar.
4. F 0 =⇒ F ist eine Tautologie.
5. F 0 ist i.a. keine Tautologie. Ebenso ist F =⇒ F 0 i.a. keine Tautologie.
Beweis.
1. Hierzu zeigt man dass für jeden Ersetzungsschritt diese Eigenschaft gilt.
2. Das folgt aus dem ersten
3. Wenn F eine Tautologie ist dann ist F erfüllbar, und wegen der Aussagen
vorher, ist dann F 0 erfüllbar.
4. F 0 =⇒ F ist eine Tautologie: Sei I ein Modell von F 0 . Dann sind alle
Definitionsgleichung erfüllt und man mann damit zeigen, dass die Interpretation I auch ein Modell von F ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
28
5. F 0 ist i.a. keine Tautologie, denn z.B. X ∨ ¬X wandelt man um in Y ∧
Y ⇐⇒ (X ∨ ¬X), aber die Interpretation die Y falsch macht, ist kein
Modell. Das gleiche Beispiel zeigt, dass F =⇒ F 0 keine Tautologie ist, da
für die Interpretation I gilt: I |= F aber I 6|= F 0 , also ist I(F =⇒ F 0 ) = 0.
Bemerkung 2.29 Ein Implementierung eines Algorithmus, der Formeln in
Klauselmengen verwandelt, kann z.B. auf der www-Seite http: // www.
spass-prover. org/ contact. html gefunden werden. Das Programm heißt
FLOTTER. Es benötigt einen gewissen Vorspann: Symbole, . . . ; es verlangt eine
standardisierte Syntax und erzeugt dann als Ausgabe-Datei eine Klauselmenge.
Diese kann dann in einen weiteren Beweiser (SPASS) eingegeben werden. Allerdings hat FLOTTER einen aussagenlogischen Check als Teilsystem eingebaut,
so dass sich aussagenlogische Formeln sofort damit entscheiden lassen. Dieses
System gibt im erfüllbaren Fall ein Modell aus.
Mittlerweile gibt es auch verschiedene Portierungen.
2.5
SAT - Problem und Hornklauseln in Aussagenlogik
Die Frage ob eine aussagenlogische Klauselmenge erfüllbar ist, ist auch als SATProblem bekannt (siehe z.B. das Buch von Schöning und Torán).
Dieses Problem ist NP-vollständig.
Es gibt Spezialisierung wir zB k − SAT : Das ist die gleiche Frage, wobei
man sich auf Klauseln der Länge genau k einschränkt. Für k = 2 ist es in
polynomieller Zeit entscheidbar (s.u.) und für k ≥ 3 wieder NP-vollständig.
Mittlerweile gibt es viele Forschergruppen, die sich nur um das SAT-Problem
und möglichst schnelle Algorithmen auch für sehr große Eingaben kümmern.
Interessant ist ein Satz der aufgrund der reinen Anzahlen von Klauseln bereits
Erfüllbarkeit zeigt.
Satz 2.30 Wenn für ein k ≥ 2 die Klauselmenge S zu k-SAT gehört (d.h. alle
Klauseln haben Länge k, und es sind h < 2k Klauseln, dann ist S erfüllbar.
Beweis. Wenn die Anzahl der aussagenlogischen n ist (es gilt ja n ≥ k), dann
gibt es 2n mögliche Interpretationen. Ein Klausel der Länge k hat 2n−k nicht
erfüllende (d.h. widerlegende) Interpretationen. Betrachtet man die gesamte
Klauselmenge, so kann man alle widerlegenden Interpretationen finden, indem
man die Menge der Interpretationen nimmt, die mindestens eine Klausel
widerlegen. Das sind maximal h ∗ 2n−k < 2n , also gibt es mindestens eine
Interpretation, die S erfüllt.
2
Das zeigt, dass man in Beispiele, bei denen man k aussagenlogischen Variablen
hat, und nur Klauselmengen mit k-Klauseln, die Erfüllbarkeit durch Zählen
entscheiden kann. Denn nur die Klauselmenge, die alle Klauseln enthält, ist
unerfüllbar; während alle kleineren Klauselmengen erfüllbar sind.
Für Literale a schreiben a für das Literal das aus ¬a durch evtl. Elimination
von doppelten Negationszeichen entsteht.
Automatische Deduktion, SS 2015, vom 13.04.2015
29
Satz 2.31 2-SAT ist in polynomieller Zeit entscheidbar.
Ein erfüllende Interpretation kann man in polynomieller Zeit konstruieren.
Beweis. Man kann das mittels Vollständigkeit der aussagenlogischen Resolution
und Sättigung zeigen.
Ein anderer Beweis (siehe [ST12]) geht direkt: Sei C eine Menge von 2-Klauseln.
Seien V := {x1 , . . . , xn } die aussagenlogischen Variablen in C. Konstruiere einen gerichteten Graphen G der als Knoten alle 2n Literale zu V hat:
V 0 := {x1 , . . . , xn , ¬x1 , . . . , ¬xn }. Zu v1 , v2 ∈ V gibt es genau dann eine Kante
v1 → v2 , wenn ¬v1 ∨ v2 eine Klausel in C ist (nach Elimination einer Doppelnegation). D.h. Jede Klausel erzeugt maximal 2 Kanten.
Der Graph hat folgende Eigenschaft: wenn es für verschiedene Literale a, b einen
Weg von a nach b gibt, dann auch einen von b nach a: Das folgt, da es für die
Klauseln und Kanten gilt.
Behauptung ist jetzt: C ist erfüllbar gdw. es kein x gibt, so dass G einen Weg
von x nach ¬x und gleichzeitig einen von ¬x nach x enthält.
Sei C erfüllbar, z.B. mit Interpretation I. Dann kann mal alle Kanten und auch
alle Wege wie Implikationen interpretieren. Wenn es ein x gibt mit Weg nach
¬x, dann kann nur I(x) = 0 sein, und einen Weg von ¬x nach x kann es dann
nicht geben. Entsprechend, wenn es einen Weg von ¬x nach x gibt.
Wenn die Wegebedingung für G gilt, dann ist C erfüllbar: Dazu konstruiere eine
Interpretation I: Zuerst betrachte die Variablen x für die es einen Weg von x
nach ¬x gibt oder einen Weg von ¬x nach x. Wenn es einen Weg von x nach
¬x gibt, dann definiere I(x) := 0. Wenn es einen Weg von ¬x nach x gibt, dann
definiere I(x) = 1. Danach lege die Interpretation fest für alle von a ∈ {x, ¬x}
aus erreichbaren Literale falls I(a) = 1. Hierbei kann es keinen Konflikt geben:
Angenommen von a aus ist sowohl b als auch b erreichbar und I(a) = 1 ist
festgelegt. Dann gibt es auch einen Weg von b nach a, was aber nur möglich ist,
wenn I(a) = 0 wäre.
Ist eine Variable y nicht erreichbar von den bereits I-festgelegten Variablen,
dann lege I(y) = 1 fest, und definiere auch alle von y aus erreichbaren Literale
+
a als I(a) = 1. Hierbei kann es kein b mit y −
→ b geben, bei dem bereits I(b) = 0
festgelegt wurde, denn es gibt einen Weg von b nach y, der dann schon I(y) = 0
festgelegt hätte. Also kann man die Interpretation festlegen, so dass alle Kanten
Implikationen entsprechen unter I. Dann sind auch alle Klauseln von I erfüllt:
Eine Klausel a ∨ b erzeugt ja eine Kante a → b. Wenn I(b) = 1 ist die Klausel
offenbar erfüllt. Wenn I(b) = 0 ist, dann kann man aus der Kante b → a schließen, dass I(a) = 1 ist, also dass I(a) = 0 sein und die Klausel wird auch von I
erfüllt.
Die Konstruktionen und die Wege-Suche sind in polynomieller Zeit machbar. 2
Definition 2.32 Eine Klauselmenge ist Horn, bzw eine Hornklauselmenge,
wenn es in jeder Klausel maximal ein positives Literal gibt.
Eine Klauselmenge C ist renamable Horn, wenn es eine Umbenennung σ gibt,
die für eine Untermenge V der Variablen und mit σ := {x 7→ x; x 7→ x | x ∈ V },
so dass σ(C) eine Hornklauselmenge ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
30
Es kann in einer Hornklauselmenge positive 1-Klauseln geben: diese nennt man
Fakten.
Aussage 2.33 Erfüllbarkeit von Hornklauselmengen ist polynomiell entscheidbar. Auch die erfüllende Interpretation kann in polynomieller Zeit konstruiert
werden.
Beweis. Sei C die Klauselmenge. Wenn es keine Fakten (positive 1-Klauseln)
gibt, dann ist die Menge erfüllbar: man definiert alle Variablen als falsch. Wenn
es eine positive Unit x gibt, dann definiert man die als wahr, und erzeugt eine
Klauselmenge, aus der alle Klauseln, die x positiv enthalten, eliminiert sind
und alle negativen Vorkommen von x aus Klauseln gelöscht sind. Es resultiert
eine Hornklauselmenge C 0 und diese ist erfüllbar gdw. C erfüllbar ist und auch
kleiner.
Insgesamt ist das Verfahren polynomiell durchführbar.
Bemerkung 2.34 Erfüllbarkeit von Hornklauselmengen kann man in Zeit
O(n2 log n) testen, wobei n die Größe der eingegebenen Klauselmenge ist.
Es geht sogar O(n log n) mit guten Datenstrukturen: Dazu erst alle Klauseln in
einen Suchbaum einfügen. Dabei alle Unit Klauseln in einer Liste merken. Pro
Klausel die Größe speichern und die vorkommenden Variablen als Suchbaum.
Dann die Liste abarbeiten:
1. Für jede unit x in der Unit-Liste:
In alle Klauseln K gehen die x enthalten:
(a) Wenn x positiv in K, dann K löschen.
(b) Wenn x negativ in K, dann x aus K löschen und Variable-Suchbaum
von K anpassen.
(c) Wenn der Suchbaum nur noch eine Variablen enthält, dann die Klausel in die Unit-Liste.
2. Wenn es eine leere Klausel gibt (entstanden aus eine nur negativen Klausel), dann unerfüllbar; Sonst: Klauselmenge erfüllbar.
Satz 2.35 Eine Klauselmenge C kann in polynomieller Zeit daraufhin überprüft
werden, ob sie renameble Horn ist, und auch das Renaming kann in polynomieller Zeit berechnet werden.
Beweis. Sei C die gegebene Klauselmenge. Konstruiere eine 2-Klauselmenge C2 :
diese enthält alle Klauseln a ∨ b, wenn a 6= b in einer Klausel von C vorkommen.
D.h. es gehen nur Klauseln aus C mit mindestens 2 Literalen hier ein. Die Idee
ist, dass C2 erzwingt, dass die negierten Literale der umbenannten Hornformel
als wahr interpretiert werden. Es gilt:
C ist renamable Horn gdw. C2 erfüllbar:
Wenn C renamable Horn, dann gibt es eine Menge von Variablen V und eine
Ersetzung σ so dass σ(C) eine Hornklauselmenge ist. Eine erfüllende Interpretation nach der Umbenennung ergibt sich, wenn alle Variablen mit 0 interpretiert
31
Automatische Deduktion, SS 2015, vom 13.04.2015
werden. In dem Fall wird nach der Umbenennung in den Klauseln maximal
ein Literal mit 0 interpretiert. ändert man die Interpretation jetzt so ab, dass
I(x) = 1, wenn x ∈ V und I(x) = 0, wenn x 6∈ V , dann wird in jeder ursprünglichen Klausel maximal ein Literal mit 0 interpretiert. Für Klauseln u ∨ v in
C2 mit u 6= v muss somit eines mit 1 interpretiert werden und deshalb ist C2
erfüllbar.
Wenn C2 erfüllbar ist, dann kann man mit analogen Argumenten zeigen, dass
C eine Hornklauselmenge ist: Sei I die erfüllende Interpretation von C2 . Dann
sieht man, dass in jeder Klauseln von C maximal ein Literal mit 0 interpretiert
wird. Jetzt können wir eine Substitution σ angeben: σ benennt die mit 0 interpretierten Literal so um, dass diese positive Variablen sind. Literale, die von I
mit 1 bewertet sind, werden so umbenannt, dass diese negative Literale sind.
Jetzt muss man nur noch einsehen, dass dabei kein Konflikt entsteht: Der einzige
mögliche Konflikt sind zwei verschiedene Literale, die mit 0 bewertet sind, und
die in einer einzigen Klausel vorkommen. Das war aber schon ausgeschlossen.
1-Klauseln in einer Klauselmenge C sind kein Problem beim Schließen, bei der
Suche nach einem Widerspruch oder bei der Suche nach einer erfüllenden Belegung, da man damit unit-propagation die Klauselmenge verkleinern kann.
2.6
Resolution für Aussagenlogik
Das Resolutionsverfahren dient zum Erkennen von Widersprüchen, wobei statt
des Tests auf Allgemeingültigkeit einer Formel F die Formel ¬F in eine Klauselform umgewandelt wird und diese dann auf Unerfüllbarkeit getestet wird. Eine
Begründung für die Korrektheit wurde bereits gegeben. Eine erweiterte liefert
das folgende Lemma zum Beweis durch Widerspruch:
Lemma 2.36 Eine Formel A1 ∧ . . . ∧ An
A1 ∧ . . . ∧ An ∧ ¬F widersprüchlich ist.
=⇒
F ist allgemeingültig gdw.
Beweis. Übungsaufgabe 2
Die semantische Entsprechung ist:
Lemma 2.37 {A1 , . . . , An } |= F gdw. es keine Interpretation I gibt, so dass
I |= {A1 , . . . , An , ¬F }
Die Resolution ist eine Regel, die auf einer Klauselmenge operiert und mit der
man aus zwei Klauseln der Klauselmenge eine weitere herleiten und diese dann
zur Klauselmenge hinzufügen kann.
Resolution:
A
¬A
∨B1 ∨ . . . ∨ Bn
∨C1 ∨ . . . ∨ Cm
B1 ∨ . . . ∨ Bn ∨ C1 ∨ . . . ∨ Cm
Man nennt die ersten beiden Klauseln auch Elternklauseln und die neu hergeleitete Klausel Resolvente.
Auf der Ebene der Klauselmengen sieht das Verfahren so aus:
Automatische Deduktion, SS 2015, vom 13.04.2015
C
→
32
C ∪ {R}
wobei R eine Resolvente ist, die aus zwei Klauseln von C berechnet worden
ist. Man nimmt der Einfachheit halber an, dass Klauseln Mengen sind; d.h.
es kommen keine Literale doppelt vor. Außerdem nimmt man auch noch an,
dass die Konjunktion der Klauseln eine Menge ist, d.h. nur neue Klauseln, die
nicht bereits vorhanden sind, können hinzugefügt werden. Wird die leere Klausel
hergeleitet, ist das Verfahren beendet, denn ein Widerspruch wurde hergeleitet.
Eingesetzt wird die Resolution zur Erkennung unerfüllbarer Klauselmengen. Es
werden solange Resolventen hergeleitet, bis entweder die leere Klausel hinzugefügt wurde oder keine neue Resolvente mehr herleitbar ist. Dies geschieht
meist in der Form, dass man Axiome (als Konjunktion) eingibt und ebenso
eine negierte Folgerung, so dass die Unerfüllbarkeit bedeutet, dass man einen
Widerspruch hergeleitet hat.
Wenn man keine neuen Klauseln mehr herleiten kann, oder wenn besonders
kurze (aussagekräftige) Klauseln hergeleitet werden, kann man diese als echte Folgerungen aus den eingegebenen Formeln ansehen, und evtl. ein Modell
konstruieren. Allerdings ist das bei obiger Widerspruchsvorgehensweise nicht
unbedingt ein Modell der Axiome, da die negiert eingegebene Folgerung dazu
beigetragen haben kann.
Lemma 2.38 Wenn C → C 0 mit Resolution, dann ist C äquivalent zu C 0 .
Beweis. Wir zeigen den nichttrivialen Teil:
Sei I eine Interpretation, die sowohl A ∨ B1 ∨ . . . ∨ Bn und ¬A ∨ C1 ∨ . . . ∨ Cm
wahrmacht. Wenn I(A) = 1, dann gibt es ein Cj , so dass I(Cj ) = 1. Damit ist
auch die Resolvente unter I wahr. Analog für den Fall I(A) = 0.
2
Aussage 2.39 Die Resolution auf einer aussagenlogischen Klauselmenge terminiert, wenn man einen Resolutionsschritt nur ausführen darf, wenn sich die
Klauselmenge vergrößert.
Beweis. Es gibt nur endlich viele Klauseln, da Resolution keine neuen Variablen
einführt. 2
Übungsaufgabe 2.40 Gebe ein Beispiel an, so dass R sich aus C1 , C2 mit
Resolution herleiten lässt, aber C1 ∧ C2 ⇐⇒ R ist falsch
Da Resolution die Äquivalenz der Klauselmenge als Formel erhält, kann man diese auch verwenden, um ein Modell zu erzeugen, bzw. ein Modell einzuschränken.
Leider ist diese Methode nicht immer erfolgreich: Zum Beispiel betrachte man
die Klauselmenge {{A, B}, {¬A, ¬B}}. Resolution ergibt:
{{A, B}, {A, ¬A}, {B, ¬B}, {¬A, ¬B}}
D.h. es wurden zwei tautologische Klauseln hinzugefügt. Ein Modell lässt sich
direkt nicht ablesen. Zum Generieren von Modellen ist die Davis-PutnamLogemann-Loveland-Prozedur (siehe 2.7) oder ein Tableaukalkül (siehe 2.9) geeigneter .
Automatische Deduktion, SS 2015, vom 13.04.2015
33
Was jetzt noch fehlt, ist ein Nachweis der naheliegenden Vermutung, dass die
Resolution für alle unerfüllbaren Klauselmengen die leere Klausel auch findet.
Satz 2.41 Für eine unerfüllbare Klauselmenge findet Resolution nach endlich
vielen Schritten die leere Klausel.
Beweis. Dazu genügt es anzunehmen, dass eine unerfüllbare Klauselmenge C
existiert, die keine Herleitung der leeren Klausel mit Resolution erlaubt. Wir
können annehmen, dass es eine kleinste Klauselmenge gibt bzgl. des Maßes
lxn(C) = Anzahl der Literale − Anzahl der Klauseln (Anzahl der überschüssigen Literale).
Im Basisfall (d.h. lxn(C) = 0) gibt es nur noch 1-Klauseln. Damit diese Klauselmenge unerfüllbar ist, muss es eine Variable A geben, so dass sowohl {A} als
auch {¬A} als Klausel vorkommt. Dann ist aber noch eine Resolution möglich,
die die leere Klausel herleitet.
Sei also lxn(C) > 0. Dann betrachte eine Klausel K ∈ C, die mehr als ein Literal
hat. Ersetzt man K durch K 0 , wobei ein Literal gestrichen ist, d.h. K = K 0 ∪{L},
so erhält man ebenfalls eine unerfüllbare Klauselmenge C 0 : Wäre C 0 erfüllbar
mit der Interpretation I, dann auch I |= C. Da lxc(C 0 ) < lxc(C), gibt es
für C 0 eine Herleitung der leeren Klausel. Wenn diese Herleitung K 0 nicht (als
Elternklausel) benötigt, dann kann man diese Herleitung bereits in C machen,
also benötigt diese Herleitung die Klausel K. Übersetzt man diese Herleitung
der leeren Klausel in eine Herleitung unter Benutzung von K, so erhält man
eine Herleitung der 1-Klausel {L}.
Betrachtet man jetzt noch die Klauselmenge C 00 , die aus C entsteht, wenn
man K durch {L} ersetzt, so sieht man wie oben: C 00 ist unerfüllbar und
lxc(C 00 ) < lxc(C). Damit existiert eine Herleitung der leeren Klausel in C 00 .
Zusammengesetzt erhält man eine Herleitung der leeren Klausel in C. 2
Beweis. Alternativer Beweis mit Induktion nach der Größe der Klauselmenge:
Sei C eine unerfüllbare Klauselmenge. Wähle ein existierende Variable A und
zerlege die Klauselmenge in drei Unterklauselmengen: C = CA ∪C¬A ∪C∅ , wobei
CA alle Klauseln von C enthält, die A positiv enthalten, CA alle Klauseln die
¬A enthalten und C∅ die Klauseln die weder A noch ¬A enthalten.
Dann gibt es keine Interpretation I mit I(A) = 0, die CA ∪ C∅ erfüllt und keine
Interpretation I mit I(A) = 1, die C¬A ∪ C∅ , also sind folgende Klauselmengen
0
0
unerfüllbar: C1 = CA
∪ C∅ wobei CA
genau die CA -Klauseln enthält, wobei A
0
0
gestrichen wurde; C2 = C¬A
∪ C∅ wobei C¬A
genau die C¬A -Klauseln enthält,
wobei ¬A gestrichen wurde. Resolution findet die leere Klausel, sowohl für C1
als auch für C2 . Wenn C∅ unerfüllbar, dann kann Resolution bereits hier die
leere Klausel herleiten. Wenn C∅ erfüllbar, dann benutzt die Resolutionsherlei0
tung der leeren Klausel in C1 eine Klausel aus CA
. Diese kann man erweitern
und erhält eine Resolutionsherleitung von {A} aus CA ∪ C∅ . Analog eine Resolutionsherleitung von {¬A} aus C¬A ∪ C∅ . Danach kann man einen weiteren
Resolutionsschritt machen und aus {A} und {¬A} die leere Klausel herleiten.
Satz 2.42 Resolution erkennt unerfüllbare Klauselmengen.
Automatische Deduktion, SS 2015, vom 13.04.2015
34
Was wir hier nicht mehr durchführen wollen, sondern auf die Behandlung der allgemeinen Resolution verschieben, ist die Verwendung von Redundanzkriterien.
Z.B. Löschung von Tautologien, unnötigen Klauseln usw.
Die Komplexität im schlimmsten Fall wurde von A. Haken [Hak85] (siehe auch
[Ede92] nach unten abgeschätzt: Es gibt eine Folge von Formeln (die sogenannten Taubenschlag-formeln (pigeon hole formula, Schubfach-formeln), für die gilt,
dass die kürzeste Herleitung der leeren Klausel mit Resolution eine exponentielle
Länge (in der Größe der Formel) hat.
Betrachtet man das ganze Verfahren zur Prüfung der Allgemeingültigkeit einer
aussagenlogischen Formel, so kann man eine CNF in linearer Zeit herstellen,
aber ein Resolutionsbeweis ist im schlimmsten Fall exponentiell lang, d.h. wird
im schlimmsten Fall auch exponentiell lange dauern.
Beachte, dass es formale Beweisverfahren gibt, die polynomiell lange Beweise für
die Schubfachformeln haben. Es ist theoretisch offen, ob es ein Beweisverfahren
gibt, das für alle Aussagen polynomiell lange Beweise hat: Dies ist äquivalent
zum offenen Problem N P = co-N P.
2.7
Davis-Putnam-Logemann-Loveland-Verfahren
Die Prozedur von Davis, Putnam, Logemann und Loveland zum Entscheiden der
Erfüllbarkeit (und Unerfüllbarkeit) von aussagenlogische Klauselmengen beruht
auf Fallunterscheidung und Ausnutzen und Propagieren der Information. Wenn
man die Vollständigkeit des Resolutionskalküls für Prädikatenlogik inklusive
einiger Redundanzregeln voraussetzt, (Subsumtionsregel, Isolationsregel), kann
man die Korrektheit leicht begründen.
Definition 2.43 Resolutionsverfahren für Aussagenlogik (Davis-Putnam Prozedur)
Sei C eine aussagenlogische Klauselmenge. Dann wird die Davis-PutnamLoveland-Logemann- Entscheidungsprozedur DP folgendermaßen (rekursiv) definiert: Es ist ein Algorithmus, der eine Klauselmenge als Eingabe hat, und
genau dann true als Ausgabe hat, wenn die Klauselmenge unerfüllbar ist.
Als Vorverarbeitungsschritt können wir annehmen, dass keine Tautologien in
der Klauselmenge enthalten sind. D.h. es gibt keine Klausel, die gleichzeitig P
und ¬P für eine Variable P enthält.
1. (a) Wenn die leere Klausel in C ist: RETURN true.
(b) Wenn C die leere Klauselmenge ist: RETURN false.
2. wenn es in C eine 1-Klausel {P } (bzw. {¬P }) gibt, wobei P eine Variable
ist, dann verändere C wie folgt:
(a) Lösche alle Klauseln in denen P (bzw. ¬P ) als Literal vorkommt.
(b) Lösche alle Vorkommen des Literals ¬P (bzw. P ) in anderen Klauseln.
Die resultierende Klauselmenge sei C 0 . RETURN DP (C 0 )
Automatische Deduktion, SS 2015, vom 13.04.2015
35
3. Wenn es isolierte Literale 2 gibt, wende die Löschregel für isolierte Literale
an. D.h. lösche die Klauseln, in denen isolierte Literale vorkommen. Die
resultierende Klauselmenge sei C 0 .
RETURN DP (C 0 )
4. Wenn keiner der obigen Fälle zutrifft, dann wähle eine noch in C vorkommende aussagenlogische Variable P aus.
RETURN DP (C ∪ {{P }}) ∧ DP (C ∪ {{¬P }})
Dies ist ein vollständiges, korrektes Entscheidungsverfahren für die (Un-)Erfüllbarkeit von aussagenlogischen Klauselmengen. Punkt 2a) entspricht der Subsumtion, Punkt 2b) ist Resolution mit anschließender Subsumtion. Punkt 3) ist
der Spezialfall der isolierten Literale und 4) ) ist eine Fallunterscheidung, ob P
wahr oder falsch ist. Diese DP-Prozedur ist im allgemeinen sehr viel besser als
eine vollständige Fallunterscheidung über alle möglichen Variablenbelegungen,
d.h. besser als die Erstellung einer Wahrheitstafel. Die DP-Prozedur braucht
im schlimmsten Fall exponentiell viel Zeit, was nicht weiter verwundern kann,
denn der Algorithmus löst ein co-N P-vollständiges Problem und als Unterproblem auch SAT, das Erfüllbarkeitsproblem für aussagenlogische Klauselmengen,
das N P-vollständig ist.
Der DP-Algorithmus ist erstaunlich schnell, wenn man bei Punkt 4) noch darauf
achtet, dass man Literale auswählt, die in möglichst kurzen Klauseln vorkommen. Dies erhöht nämlich die Wahrscheinlichkeit, dass nach wenigen Schritten
große Anteile der Klauselmenge gelöscht werden.
Der DP-Algorithmus kann leicht so erweitert werden, dass im Falle der Erfüllbarkeit der Klauselmenge auch ein Modell berechnet wird. Der Algorithmus
arbeitet depth-first mit backtracking. Wenn die Antwort erfüllbar“ ist, kann
”
man durch Rückverfolgung der folgenden Annahmen ein Modell bestimmen:
1. Isolierte Literale werden als wahr angenommen.
2. Literale in 1-Klauseln werden ebenfalls als wahr angenommen.
Beispiel 2.44 Betrachte folgende Klauselmenge, wobei jede Zeile einer Klausel
entspricht.
P,
Q
¬P, Q
R
P,
¬Q, R
¬P, ¬Q, R
P,
Q,
¬R
¬P, Q,
¬R
P,
¬Q, ¬R
¬P, ¬Q, ¬R
Fall 1: Addiere die Klausel {P }. Das ergibt nach einigen Schritten:
2 P ist isoliert, wenn ¬P nicht mehr vorkommt, entsprechend ¬P ist isoliert, wenn P nicht
mehr vorkommt
Automatische Deduktion, SS 2015, vom 13.04.2015
36
Q,
R
¬Q, R
Q,
¬R
¬Q, ¬R
Fall 1.1: Addiere {Q}: ergibt die leere Klausel.
Fall 1.2: Addiere {¬Q}: ergibt die leere Klausel.
Fall 2: Addiere die Klausel {¬P }. Das ergibt nach einigen Schritten:
Q
¬Q R
Q
¬R
¬Q ¬R
Weitere Schritte für Q ergeben
R
¬R
Auch dies ergibt sofort die leere Klausel. Damit hat die DP-Prozedur die eingegebene Klauselmenge als unerfüllbar erkannt.
Beispiel 2.45 Wir nehmen uns ein Rätsel von Raymond Smullyan vor:
Die Frage nach dem Pfefferdieb.
Es gibt drei Verdächtige: Den Hutmacher, den Schnapphasen und die (Hasel)Maus. Folgendes ist bekannt:
• Genau einer von ihnen ist der Dieb.
• Unschuldige sagen immer die Wahrheit
• Schnapphase: der Hutmacher ist unschuldig.
• Hutmacher: die Hasel-Maus ist unschuldig
Kodierung: H, S, M sind Variablen für Hutmacher, Schnapphase, Maus und bedeuten jeweils ist schuldig“. Man kodiert das in Aussagenlogik und fragt nach
”
einem Modell.
• H ∨S∨M
• H =⇒ ¬(S ∨ M )
• S =⇒ ¬(H ∨ M )
• M =⇒ ¬(H ∨ S)
• ¬S =⇒ ¬H
• ¬H =⇒ ¬M
Dies ergibt eine Klauselmenge (doppelte sind schon eliminiert):
Automatische Deduktion, SS 2015, vom 13.04.2015
37
1. H, S, M
2. ¬H, ¬S
3. ¬H, ¬M
4. ¬S, ¬M
5. S, ¬H
6. H, ¬M
Wir können verschiedene Verfahren zur Lösung verwenden.
1. Resolution ergibt: 2 + 5 : ¬H, 3 + 6 : ¬M . Diese beiden 1-Klauseln mit
1 resolviert ergibt: S. Nach Prüfung, ob {¬H, ¬M, S} ein Modell ergibt,
können wir sagen, dass der Schnapphase schuldig ist.
2. Davis Putnam: Wir verfolgen nur einen Pfad im Suchraum:
Fall 1: S = 0. Die 5-te Klausel ergibt dann ¬H. Danach die 6te Klausel
¬M . Zusammen mit (den Resten von) Klausel 1 ergibt dies ein Widerspruch.
Fall 2: S = 1. Dann bleibt von der vierten Klausel nur ¬M übrig, und von
der zweiten Klausel nur ¬H. Diese ergibt somit das gleiche Modell.
Beispiel 2.46 Eine Logelei aus der Zeit“:
”
Abianer sagen die Wahrheit, Bebianer lügen. Es gibt folgende Aussagen:
1. Knasi: Knisi ist Abianer.
2. Knesi: Wenn Knösi Bebianer, dann ist auch Knusi ein Abianer.
3. Knisi: Wenn Knusi Abianer, dann ist Knesi Bebianer.
4. Knosi: Knesi und Knüsi sind beide Abianer.
5. Knusi: Wenn Knüsi Abianer ist, dann ist auch Knisi Abianer.
6. Knösi: Entweder ist Knasi oder Knisi Abianer.
7. Knüsi: Knosi ist Abianer.
Eine offensichtliche Kodierung ergibt
A <=> I
E <=> (-OE => U)
I <=> (U => -E)
O <=> (E /\ UE)
U <=> (UE => I)
OE <=> (A XOR I)
UE <=> O
Automatische Deduktion, SS 2015, vom 13.04.2015
38
Die Eingabe in den Davis-Putnam-Algorithmus ergibt:
abianer1Expr = "((A <=> I) /\ (E <=> (-OE => U)) /\ (I <=> (U => -E))
/\ (O <=> (E /\ UE)) /\ (U <=> (UE => I))
/\ (OE <=> -(A <=> I)) /\ (UE <=> O))"
Resultat:
"Modell: -OE, -O, -UE, E, U, -I, -A"
Damit sind Knesi und Knusi Abianer, die anderen sind Bebianer.
Beispiel 2.47 Ein weiteres Rätsel von Raymond Smullyan:
Hier geht es um den Diebstahl von Salz. Die Verdächtigen sind: Lakai mit dem
Froschgesicht, Lakai mit dem Fischgesicht, Herzbube.
Die Aussagen und die bekannten Tatsachen sind:
• Frosch: der Fisch wars
• Fisch: ich wars nicht
• Herzbube: ich wars
• Genau einer ist der Dieb
• höchstens einer hat gelogen
Man sieht, dass es nicht nur um die Lösung des Rätsels selbst geht, sondern
auch um etwas Übung und Geschick, das Rätsel so zu formalisieren, dass es von
einem Computer gelöst werden kann. Man muss sich auch davon überzeugen,
dass die Formulierung dem gestellten Problem entspricht.
Wir wollen Aussagenlogik verwenden.
Wir verwenden Variablen mit folgenden Namen und Bedeutung:
FRW
FIW
HBW
FID
FRD
HBD
Frosch sagt die Wahrheit
Fisch sagt die Wahrheit
Herzbube sagt die Wahrheit
der Fisch ist der Dieb
der Frosch ist der Dieb
der Herzbube ist der Dieb
Die Formulierung ist:
Automatische Deduktion, SS 2015, vom 13.04.2015
höchstens
¬F RW
¬F IW
¬HBW
einer
=⇒
=⇒
=⇒
39
sagt die Wahrheit:
F IW ∧ HBW
F RW ∧ HBW
F RW ∧ HIW
genau einer ist der Dieb:
F ID ∨ F RD ∨ HBD
F ID
=⇒ ¬F RD ∧ ¬HBD
F RD
=⇒ ¬F ID ∧ ¬HBD
HBD
=⇒ ¬F ID ∧ ¬F RD
Die Aussagen:
F RW
=⇒
F IW
=⇒
HBW
=⇒
F ID
¬F ID
HBD
Eingabe in den DP-Algorithmus:
dp "((-FRW => FIW /\ HBW) /\ (-FIW => FRW /\\ HBW)
/\ (-HBW => FRW /\ HIW)
/\ (FID => -FRD /\ -HBD) /\ (FRD => -FID /\ -HBD)
/\ (HBD => -FID /\ -FRD) /\ (FRW => FID)
/\ (FIW => -FID) /\ (HBW => HBD))"
Die berechnete Lösung ist: HBD, −F ID, HBW, F IW, −F RW, −F RD D.h
FRW ist falsch, d.h. der Fisch hat gelogen und der Herzbube war der Dieb.
Beispiel 2.48 Anwendung auf ein Suchproblem: das n-Damen Problem.
Es sollen Königinnen auf einem quadratischen Schachbrett der Seitenlänge n so
platziert werden, dass diese sich nicht schlagen können. damit die Formulierung
einfacher wird, erwarten wir, dass sich in jeder Zeile und Spalte eine Königin
befindet.
Ein Programm zum Erzeugen der Klauselmenge erzeugt im Fall n = 4:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12],
[13, 14, 15, 16], [1, 5, 9, 13],
[2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16],
[-1, -5], [-1, -9], [-1, -13],
[-1, -2], [-1, -6], [-1, -3], [-1, -11], [-1, -4], [-1, -16],
[-5, -9], [-5, -13],
[-5, -2], [-5, -6], [-5, -10], [-5, -7], [-5, -15], [-5, -8],
[-9, -13],
[-9, -6], [-9, -10], [-9, -14], [-9, -3], [-9, -11], [-9, -12],
[-13, -10], [-13, -14],
[-13, -7], [-13, -15], [-13, -4], [-13, -16], [-2, -6], [-2, -10],
Automatische Deduktion, SS 2015, vom 13.04.2015
40
[-2, -14],[-2, -3], [-2, -7], [-2, -4], [-2, -12], [-6, -10],
[-6, -14], [-6, -3],
[-6, -7], [-6, -11], [-6, -8], [-6, -16], [-10, -14], [-10, -7],
[-10, -11], [-10, -15],[-10, -4], [-10, -12], [-14, -11],
[-14, -15], [-14, -8], [-14, -16], [-3, -7],
[-3, -11], [-3, -15], [-3, -4], [-3, -8], [-7, -11], [-7, -15],
[-7, -4], [-7,-8],
[-7, -12], [-11, -15], [-11, -8], [-11, -12], [-11, -16], [-15, -12],
[-15, -16], [-4, -8], [-4, -12], [-4, -16], [-8, -12],
[-8, -16], [-12, -16]]
Das Ergebnis der DP-Prozedur sind zwei Interpretationen:
> davisPutnamAlle (generate_nqueens 4)
[[-4, -8, -15, 5, -13, 14, -6, -2, 12, -9, -1, 3, -16, -10, -7, -11],
[-4, 2, 8, -6, -1, 9, -12, -14, -13, -5, 15, -3, -16, -10, -7, -11]]
Die entsprechen den zwei möglichen Platzierungen im Fall n = 4.
Der Aufruf dpqueens 8 ergibt nach kurzer Zeit:
- - D - - - - - - - - - - D - D - - - - - - - - - - - - D
- - - - D - - D - - - - - - - - - D - - - - - - - - D - Beispiel 2.49 Das n-Damen Problem gibt es noch in weiteren Varianten: Die
Torus-Variante: In dem Fall setzt sich die Bedrohung über der Rand an der Seite
und oben und unten fort. Die die Bedrohung entlang Diagonallinien des 8 × 8
Feldes ist so dass die Dame in der ersten Zeile im unteren Beispiel die Dame
in der vierten Zeile bedroht, wenn man die Diagonale nach links unten verfolgt.
- - D - - - - - - - - - - D - D - - - - - - - - - - - - D
- - - - D - - D - - - - - - - - - D - - - - - - - - D - Recherche im Internet ergibt (z.B Polya hat sich schon damit beschäftigt): es
gibt offenbar Lösungen, wenn n teilerfremd zu 6 ist und n ≥ 5. D.h. für n =
5, 7, 11, 13, 17, .. gibt es Lösungen, für n = 4, 6, 8, 9, 10, 12, 14, 15, 16, . . . gibt es
keine Lösungen. Eine Lösung (Aufruf: dpqueenscyl 5) ist:
Automatische Deduktion, SS 2015, vom 13.04.2015
41
D - - - - - D - - - - - D
- D - - - - - D Für n = 11 werden 4 Lösungen ermittelt und für n = 13 werden 174 Lösungen ermittelt (allerdings nach einer Symmetrieoptimierung). Eine generische
Lösung ist (Nr 33.):
D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D
- D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D - - - - - - - - - - - - - D Aus diesen Beispielen kann man sich auch eine Serie von erfüllbaren und unerfüllbaren Klauselmengen generieren, die man für Testzwecke verwenden kann.
Beispiel 2.50 Sudoku: Lösen mittels DP-Algorithmus
Sudoku-Rätsel setze ich mal als bekannt voraus: Es ist ein 9 × 9 Feld, unterteilt
in 9 3 × 3 Quadrate: In jeder Zeile, Spalte und in jedem 3 × 3-Quadrat muss jede
Zahl zwischen 1 und 9 genau einmal vorkommen. Einige Zahlen sind vorgegeben.
Es gibt eine Beispiel-Implementierung, die auf dem DP-Algorithmus basiert und
folgende Sequenz von Operationen ausführt:
• Texteingabe: die Aufgabe, d.h. die bereits bekannten Zahlen.
• Parser: Texteingabe wird überführt in eine Klauselmenge aus Units.
die logischen Variablen Xi,j,k beschreiben ob auf Feld mit Koordinate i, j
die Zahl k steht oder nicht.
• Generator: Klauselmenge, die alle Bedingungen beschreibt. (Theorie) Zum
Beispiel muss genau eine der Variable x1,1,1 , . . . x1,1,9 wahr sein und die
anderen falsch.
• DP-Lauf mit der Klauseleingabe
• Aus der ausgegebenen Interpretation wird eine textuelle Lösung berechnet.
sudokuex20100419 =
["3--5-4--1",
"-1-----7-",
42
Automatische Deduktion, SS 2015, vom 13.04.2015
"--9-1-5--",
"4--3-9--7",
"--3---9--",
"1--8-7--6",
"--5-6-2--",
"-8-----4-",
"2--4-5--9"]
> length (sudokucnf sudokuex20100419)
12016
> sudokuexam20100419loesung
> sudokuexam20100419trace
> sudokuexam20100419loesung
= sudokul sudokuex20100419
> sudokuexam20100419loesung
326574891
514698372
879213564
468329157
753146928
192857436
945761283
681932745
237485619
Diese Implementierung ist nur ein Demonstrator, der zeigen soll, dass und wie
man mit Logik auch solche Puzzles lösen kann. die Rechenzeit ist im Sekundenbereich, kann aber auch recht lange werden, wenn es sich um ein schweres
Problem handelt. Zum Vergleich:es gibt spezialisierte Algorithmen zB im Internet, die alle Sudoku-Fragen im Milli-Sekunden berechnen.
2.8
Davis-Putnam-Logemann-Loveland
Backjumping
Verfahren
mit
Die DPLL-Implementierungen sind aktuell die schnellsten implementierten Algorithmen um aussagenlogische Klauselmenge auf Erfüllbarkeit zu testen (SATSolver). Ein wichtiger Trick bzw eine wichtige Verbesserung besteht darin, das
Backtracking zu verbessern, das in der obigen Implementierung durch die Rekursion festgelegt war. Wir geben die wesentlichen Ideen und die Motivation und
Begründungen dieser Optimierungen der DPLL-Methode an (siehe [NOT06]).
Dazu benutzen wir die Schreibweise aus [NOT06].
43
Automatische Deduktion, SS 2015, vom 13.04.2015
Die DPLL-Prozedur hat als Zustandsdarstellung M || F , wobei M die aktuelle
Belegung von aussagenlogischen Variablen darstellt durch eine Folge von Literalen. Hierbei werden die Literale, für die Fallunterscheidung gemacht werden
muss, mit d gekennzeichnet: decision literals“. F ist eine Formel, i.a. die Klau”
selmenge, die während der (einfachen) Prozedur nicht verändert wird. l wird als
undefiniert in M bezeichnet, wenn l durch M nicht festgelegt wird, d.h. weder
l noch ¬l in M vorkommen.
Die DPLL-Prozedur ist beendet wenn folgendes gilt, wobei es zwei Möglichkeiten
gibt:
• Wenn für alle Klauseln C aus F gilt: M |= C, und wenn keine Regel
mehr anwendbar ist. Dann hat die DPLL Prozedur ein Modell M für F
gefunden.
• Wenn Fail anwendbar ist. In dem Fall sind alle Möglichkeiten erschöpft, M
besteht nur noch aus Literalen ohne Alternative, und man findet trotzdem
eine Klausel C mit M |= ¬C. Die Ausgabe der DPLL-Prozedur ist dann,
dass F widersprüchlich ist.
Die DPLL-Prozedur hat 5 Regeln:
UnitPropagate :
M || F, C ∨ l
=⇒
M l || F, C ∨ l
M |= ¬C
l ist nicht definiert in M
PureLiteral :
M || F
=⇒
M l || F

 l kommt in einer Klausel von F vor
¬l kommt in F nicht vor

l ist nicht definiert in M
M ld || F

 l oder ¬l kommt in einer Klausel
von F vor

l ist nicht definiert in M
Decide :
M || F
=⇒
Fail :
M || F, C
=⇒
M |= ¬C
M enthält keine d-Literale
M ld N |= ¬C
N enthält keine d-Literale
Fail
Backtrack :
d
M l N || F, C
=⇒
M ¬l || F, C
Dieses Verfahren entspricht dem rekursiven Verfahren, das schon behandelt wurde, auch wenn es anders notiert ist.
Kurze Kommentare zu den Regeln, auch um die Notation zu vertiefen:
UnitPropagate Wenn es eine Klausel C ∨ l gibt, so dass M |= ¬C, d.h. C ist
falsch, dann muss l wahr sein. Also kann man l zu M hinzunehmen.
PureLiteral Wenn l vorkommt, aber ¬l nicht, dann kann man l als wahr annehmen, da es im Fall der Erfüllbarkeit auch ein Modell gibt, das auch l wahr
44
Automatische Deduktion, SS 2015, vom 13.04.2015
macht.
Ein Unterschied zur Prozedur DP oben ist, dass in DPLL die PureLiteralRegel sich auf globale Vorkommen von l, ¬l bezieht, während DP sich
die puren Literale nach Wegstreichen von Klauseln anschaut, und deshalb
diese Regel besser einsetzt.
Decide: Fallunterscheidung zur Belegung von l (die Fallunterscheidung ist hier
nicht explizit in den Regeln enthalten). Normalerweise wird Decide nur
angewendet, wenn keine andere Regel anwendbar ist.
Fail: Wenn eine Klausel falsch wird unter der aktuellen Belegung, aber es keine
Möglichkeit gibt, zurückzusetzen, dann ist die Klauselmenge unerfüllbar.
Wenn M kein d-Literal enthält, dann folgen alle Literale in M aus F .
Backtrack: Alle Literale in N sind Folgerungen aus M ld , also kann man bis
zum letzten d-Literal zurückgehen, und sich dort anders entscheiden. Die
Klausel C, die falsch ist unter M , wird auch Konflikt-Klausel genannt
Ein besseres Backtracking ist möglich, wenn man genauer verfolgt, was als Ursache für die Konflikt-Klausel in Frage kommt. Hier muss man auch rückwärts
die Effekte von UnitPropagate beachten.
Betrachte folgendes Beispiel aus [NOT06] zum besseren Backtracking.
Beispiel 2.51 In diesem Beispiel werden die negativen Literale durch eine
Oberlinie markiert.
1 ∨ 2,
1 ∨ 2,
1 ∨ 2,
1 ∨ 2,
1 ∨ 2,
1 ∨ 2,
1 ∨ 2,
1 ∨ 2,
∅ ||
1d ||
1d 2 ||
d d
1 23 ||
1d 23d 4 ||
1d 23d 45d ||
1d 23d 45d 6 ||
d
1d 23d 45 ||
3 ∨ 4,
3 ∨ 4,
3 ∨ 4,
3 ∨ 4,
3 ∨ 4,
3 ∨ 4,
3 ∨ 4,
3 ∨ 4,
5 ∨ 6,
5 ∨ 6,
5 ∨ 6,
5 ∨ 6,
5 ∨ 6,
5 ∨ 6,
5 ∨ 6,
5 ∨ 6,
6∨5∨2
6∨5∨2
6∨5∨2
6∨5∨2
6∨5∨2
6∨5∨2
6∨5∨2
6∨5∨2
=⇒
=⇒
=⇒
=⇒
=⇒
=⇒
=⇒
=⇒
Decide
UnitPropagate
Decide
UnitPropagate
Decide
UnitPropagate
Backtrack
Die Konflikt-Klausel ist 6 ∨ 5 ∨ 2. Man sieht, dass dies eine logische Konsequenz der Entscheidung 1d ist, aber nicht aus 3d folgt. Auch kann man erkennen
(auch algorithmisch), dass 1d mit 5d unvereinbar ist. Also kann man die Klausel
1 ∨ 5 herleiten und zum Backtracking verwenden. D.h. eigentlich könnte man
mit Backjump so fortsetzen: 3d kann übersprungen werden und 5 kann ohne
Alternative benutzt werden.
1d 23d 45d 6
1d 25
||
||
1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2
1 ∨ 2, 3 ∨ 4, 5 ∨ 6, 6 ∨ 5 ∨ 2
=⇒
Backjump
Die DPLL-Prozedur mit Backjump besteht aus den 4 DPLL-Regeln, und statt
der Backtrack-Regel aus der Backjump-Regel:
45
Automatische Deduktion, SS 2015, vom 13.04.2015
Backjump :
M ld N || F, C
=⇒ M l0 || F, C

M ld N |= ¬C




 Es gibt eine Klausel C 0 ∨ l0 mit
F, C |= C 0 ∨ l0 und M |= ¬C 0


l0 ist nicht definiert in M


 0
l oder ¬l0 kommen in F oder in M ld N vor
Hierbei ist C die Konfliktklausel und C 0 ∨ l0 die Backjump-Klausel.
Im obigen Beispiel ist C = 6 ∨ 5 ∨ 2, C 0 = 1 und l0 = 5. Beachte, dass die Klausel
C 0 ∨ l0 i.a. nicht in F vorkommt, sondern erst erzeugt werden muss. Zu dieser
Berechnung gibt es in der Literatur und in den implementierten SAT-Beweisern
verschiedene Möglichkeiten und Strategien; eine ist oben im Beispiel angedeutet.
Oft wird die Klausel C 0 ∨l0 auch als Lemma, oder als gelernte Klausel bezeichnet
Es wird oft der Konfliktgraph zur partiellen Interpretation und zu M mitgeführt.
Der Konfliktgraph am Beispiel oben:
1
2
3
4
5
-6
Wid
Konflikt
Ein leicht komplexeres Beispiel, bei dem der Konflikt nicht direkt am d-Literal
auftritt:
• F enthält: {9, 6, 7, 8}, {8, 7, 5}, {6, 8, 4}, {4, 1}, {4, 5, 2}, {5, 7, 3}, {1, 2, 3}
• M ist von der Form: . . . 6 . . . 7 9d 8 5 4 1 2 3
46
Automatische Deduktion, SS 2015, vom 13.04.2015
6
9d
2
-8
-1
2
-5
-7
-3
Zum Fortschritt bzw der Ordnung die die Terminierung der DPLL-Prozedur
bestimmt:
Diese wird alleine bestimmt durch die partielle Interpretation M , inklusive der dMarkierungen, da der Zustand M || C nur durch Unterschiede von M bestimmt
wird.
M 0 ld . . . > M 0 l0 . . .
wenn l0 kein d-Literal (d.h. kein Fallunterscheidungs-Literal) ist. Damit kann
man l0 aus den d-Literalen von M 0 (und aus C) herleiten: ohne Fallunterscheidung.
Die normale DPLL-Prozedur verkleinert die obige Ordnung in jedem Schritt.
Da die Ordnung fundiert ist – es gibt nur endlich viele Literale – terminiert das
Verfahren.
2.8.1
Restart, Regeln zum Lernen und Vergessen
Eine weitere Möglichkeiten zum Verbessern der DPLL-Prozedur ist das (gelegentliche) Restarten der DPLL-Prozedur:
Restart :
M || F
=⇒
∅ || F, F 0
F |= F 0
F 0 ermittelt aus M und F
Damit kann man die ganze Prozedur mit einer erweiterten Klauselmenge nochmal starten, wobei man Klauseln hinzunimmt, die aus dem abgebrochenen
DPLL-Lauf als Folgerungen aus F implizit berechnet wurde. Diese sollen
möglichst klein sein. Meist wird Restart statt eines Backjumps gemacht, allerdings so gesteuert, dass das teurere Restarten eher selten passiert.
Im allgemeinen werden mittels Statistiken und Strategien diese neuen Klauseln bestimmt, und auch evtl. wieder eliminiert, wenn diese (lt. Ablaufstatistik)
keinen Nutzen bringen.
Lernen und Vergessen in der DPLL-Prozedur wird zwar sehr stark von heuristischen Parametern, Statistiken usw. bestimmt, aber die allgemeinen Regeln
kann man leicht so formulieren:
47
Automatische Deduktion, SS 2015, vom 13.04.2015
Learn :
M || F
=⇒ M || F, C
Forget :
M || F, C
=⇒ M || F
Jedes Atom aus C kommt inF oder M vor
F |= C
wenn F |= C
Diese Regeln zum Lernen und Vergessen sind Inverse voneinander und können
somit unendliche Abläufe von Lernen und Vergessen erzeugen. Dies wird durch
Strategien in den Implementierungen verhindert.
2.9
Tableaukalkül für Aussagenlogik
Im folgenden betrachten wir einen Kalkül, der in verschiedenen Formen und
Ausprägungen viele Einsatzbereiche hat: u.a Aussagenlogik, Prädikatenlogik,
Modallogik, mehrwertige Logik, und Programmanalysen.
Ein Tableau ist i.a. eine baumförmig organisierte Datenstruktur, die mit (beliebigen) Formeln markiert ist, und die mit geeigneten Regeln aufgebaut wird.
Die Formel an der Wurzel ist bewiesen (ein Tautologie), wenn das Tableau (der
Baum) bestimmte Bedingungen erfüllt. Wir betrachten hier eine Variante des
sogenannten analytischen Tableau-kalküls, der eine komplexe Formel Schritt
für Schritt vereinfacht und am Ende Literale an den Blättern hat. Die zu überprüfende Bedingung betrifft jeweils die Formeln auf den Pfaden.
Grundbegriffe für den aussagenlogischen Tableaukalkül sind:
• α-Formeln (konjunktive Formeln) und
• β-Formeln (disjunktive Formeln)
Beachte, dass die Negationszeichen nicht nach innen gezogen sind.
Die direkten Unterformeln der α-Formeln sind:
α
X ∧Y
¬(X ∨ Y )
¬(X =⇒ Y )
(X ⇐⇒ Y )
α1
X
¬X
X
X =⇒ Y
α2
Y
¬Y
¬Y
Y =⇒ X
Die direkten Unterformeln der β-Formeln sind:
β
X ∨Y
¬(X ∧ Y )
X =⇒ Y
¬(X ⇐⇒ Y )
β1
X
¬X
¬X
¬(X =⇒ Y )
β2
Y
¬Y
Y
¬(Y =⇒ X)
Es gilt: α ist äquivalent zu (α1 ∧ α2 ), und β ist äquivalent zu (β1 ∨ β2 ).
48
Automatische Deduktion, SS 2015, vom 13.04.2015
2.9.1
Tableau-Kalkül für Aussagenlogik
Direktes Ziel des Tableau-Kalkül ist der Nachweis der Inkonsistenz einer Aussage.
Will man beweisen, dass eine Aussage A eine Tautologie ist, dann wendet man
den Tableaukalkül auf ¬A an. Damit kann man auch zeigen, dass eine Aussage
B aus einer Menge von Aussagen A1 , . . . , An folgt: nämlich durch den Nachweis,
dass A1 ∧ . . . ∧ An =⇒ B eine Tautologie ist.
Definition 2.52 Ein (aussagenlogisches) Tableau ist ein markierter Baum, wobei die Knoten mit aussagenlogischen Formeln markiert sind. Die Wurzel ist mit
der Eingabeformel markiert.
• Ein Pfad ist geschlossen, wenn 0 oder ¬1 vorkommt, oder eine Formel X
existiert, so dass auch ¬X auf diesem Pfad ist.
• Ein Pfad ist (atomar) geschlossen, wenn 0 oder ¬1 vorkommt, oder ein
Atom A existiert, so dass auch ¬A auf diesem Pfad ist. Ein Tableau ist
(atomar) geschlossen, wenn alle Pfade (atomar) geschlossen sind.
Man kann die Regeln ansehen als Tableau-Aufbauregeln oder als Transformationsregeln auf Tableaus. Wir werden die Sichtweise der Tableau-Aufbauregeln
verfolgen, denn dann gibt es keinen Unterschied zwischen der Situation beim
Aufbau und der Situation des fertigen (geschlossenen) Tableaus. Im Falle von
Transformationsregeln könnte es sein, dass das fertige Tableau keine Überprüfung der Aufbauregeln zulässt.
Definition 2.53 Der Tableaukalkül T KA hat als Eingabe eine Formel F . Initial wird ein Tableau mit einem Knoten und der Formel F erzeugt. Danach
werden ausgehend vom initialen Tableau weitere Tableaus erzeugt mit folgenden
Expansionsregeln:
¬¬X
X
α
α1
α2
β
β1 | β2
¬0
1
¬1
0
Diese Regeln sind wie folgt zu verstehen: Sei θ ein Pfad im Tableau T , und die
obere Formel Fo eine Markierung eines Knotens auf diesem Pfad, dann erweitere das Tableau durch Verlängern des Pfades θ (d.h. Anhängen an das Blatt
des Pfades) um einen mit der unteren Formel Fu markierten Knoten. Stehen
unten zwei oder mehrere durch | getrennte Formeln, dann sollen entsprechend
viele Blätter als Töchter angehängt werden,mit der jeweiligen Formel markiert.
Danach verzweigt der Pfad θ am alten Blatt zu mehreren Pfaden.
Stehen zwei oder mehr Formeln untereinander, dann sollen in Folge an den Pfad
θ zwei oder mehrere Blätter (mit den jeweiligen Formeln markiert) angehängt
werden.
Z.B.: Wenn eine α-Formel zu expandieren ist, erweitere den Pfad erst um α1 ,
dann um α2 . Wenn eine β-Formel zu expandieren ist, erweitere den Pfad, so
Automatische Deduktion, SS 2015, vom 13.04.2015
49
dass zwei neue Pfade entstehen: hänge an das Blatt des Pfades zwei markierte
Knoten als Töchter an, eine mit β1 eine mit β2 markiert.
Als Einschränkung wird verwendet, dass jede Formel auf jedem Pfad nur einmal
analysiert (bzw. expandiert) wird.
Ein Formel F ist als Tautologie bewiesen, wenn aus dem Tableau mit der initialen Formel ¬F ein geschlossenes Tableau erzeugt worden ist.
Im allgemeinen wird man die Formel direkt am Blatt markieren. Allerdings
kommt es auch vor, dass eine Formel, die nicht das Blatt ist, expandiert wird.
Diese Regeln sind nicht-deterministisch, d.h. es gibt keine genaue Angabe,
welche Formel zu expandieren ist. Diese Formulierung ist gewählt, um eine
möglichst große Freiheit bei der Anwendung zu haben, mit der Garantie, dass
die Anwendung korrekt bleibt. Allerdings sollte man in einer effizienten Implementierung zunächst die besten Schritte machen: D.h. möglichst wenig verzweigen. Dies wird durch Bevorzugung der α-Regeln erreicht. Außerdem sollte man
Formeln nicht zweimal auf dem gleichen Pfad expandieren.
Beispiel 2.54 Wir zeigen ein (das) Tableau für X ∧ ¬X:
X ∧ ¬X
|
X
|
¬X
Beispiel 2.55 Ein Tableau für ¬(X ∧ Y =⇒ X):
¬(X ∧ Y =⇒ X)
|
X ∧Y
|
¬X
|
X
|
Y
Beide Tableaus sind geschlossen.
Zur Optimierung der Analyse von Aussagen der Form A ⇔ B gibt es eine
bessere Alternative:
Erfinde neue Tableau-Expansionsregeln
A⇔B
A ¬A
B ¬B
50
Automatische Deduktion, SS 2015, vom 13.04.2015
¬(A ⇔ B)
A ¬A
¬B B
Beispiel 2.56
¬((P ⇐⇒ Q) ⇐⇒ (Q ⇐⇒ P ))
VVVV
i
VVVV
iiii
i
i
VVVV
i
iii
VVVV
i
i
i
V
iii
¬(P ⇐⇒ Q)
(P ⇐⇒ Q)
¬(Q ⇐⇒ P )
r
rrr
r
r
rr
rrr
P
¬P
¬Q
P
{{
{{
{
{
{{
¬Q
hh
hhhh
h
h
h
hhhh
hhhh
hhhh
Q ⇐⇒ P
Q
Q
¬Q
P
¬P
Q
...
...
...
¬P
Übungsaufgabe 2.57 Gebe die Tableauregeln für XOR an.
Beachte: A XOR B ist äquivalent zu ¬(A ⇔ B).
Hat man die Aufgabe zu zeigen, dass B aus A1 , . . . , An folgt, so kann man daraus
sofort ein Tableau machen:
A1
|
...
|
An
|
¬B
Beispiel 2.58 Zeige, dass P =⇒ (Q =⇒ P ) eine Tautologie ist:
51
Automatische Deduktion, SS 2015, vom 13.04.2015
¬(P =⇒ (Q =⇒ P ))
P
¬(Q =⇒ P )
Q
¬(P )
Das Tableau ist geschlossen, da P und ¬P auf dem einen Pfad liegen.
Beispiel 2.59 Zum Nachweis der Tautologieeigenschaft von ((P =⇒ Q) ∧
(Q =⇒ R)) =⇒ (P =⇒ R): starten wir mit ¬(((P =⇒ Q) ∧ (Q =⇒
R)) =⇒ (P =⇒ R)).
(P =⇒ Q)
(Q =⇒ R)
¬(P =⇒ R)
P
¬R L
LL
nnn
n
LL
n
n
LL
n
nn
LL
n
n
LL
n
n
n
¬P
t Q III
tt
II
t
t
II
tt
II
t
t
II
t
t
¬Q
R
geschlossen
geschlossen
geschlossen
Automatische Deduktion, SS 2015, vom 13.04.2015
52
Der Nachweis der algorithmischen Korrektheit des Tableaukalküls für Aussagenlogik besteht aus zwei Teilen:
1. Korrektheit (Soundness): Der Kalkül erzeugt geschlossene Tableaus nur
für unerfüllbare Formeln.
2. Vollständigkeit (completeness): Für jede unerfüllbare Formel kann der Tableaukalkül ein geschlossenes Tableau erzeugen.
Im folgenden verwenden wir Korrektheit“ im Sinne der Soundness.
”
Definition 2.60 Ein Pfad eines Tableaus ist erfüllbar, wenn die Konjunktion
aller Formeln auf dem Pfad erfüllbar ist. Ein Tableau ist erfüllbar, wenn es
einen Pfad gibt, der erfüllbar ist.
Beachte: Wenn eine Menge von Formeln 0 oder ¬1 enthält, dann ist sie nicht
erfüllbar.
Ein geschlossenes Tableau ist nicht erfüllbar.
Lemma 2.61 Für die Tableau-Expansionsregeln gilt: Wenn T zu T 0 expandiert
wird, dann ist T erfüllbar gdw. T 0 erfüllbar.
Beweis. =⇒ “: Es genügt, sich einen erfüllbaren Pfad θ anzuschauen, und eine
”
Interpretation I der aussagenlogischen Variablen zu wählen, die alle Formeln
des Pfades wahr macht und alle Fälle der Expansionsregeln durchzugehen.
• Wenn ¬¬X in θ, dann ist I(¬¬X) = 1 wahr, also auch I(X) = 1
• Wenn für die α-Formel X ∧ Y gilt, dass I(X ∧ Y ) = 1, dann auch I(X) =
I(Y ) = 1.
• Wenn für die β-Formel X ∨ Y gilt dass I(X ∨ Y ) = 1, dann gilt I(X) =
1 oder I(Y ) = 1. Somit ist einer der Pfade, die θ fortsetzen, erfüllbar,
entweder der mit dem Blatt X, oder der mit dem Blatt Y .
• Analog für die anderen α und β-Formeln.
⇐“: Wenn ein Pfad in T 0 erfüllbar ist, dann ist auch der verkürzte Pfad in T ,
”
der den Pfad T 0 erzeugt hat, erfüllbar. 2
Korollar 2.62 Der Tableaukalkül T KA ist sound.
Beweis. Gegeben eine Formel F , die kein Widerspruch ist. Dann ist F erfüllbar.
Der Tableaukalkül startet mit F , also ist das initiale Tableau erfüllbar, also auch
alle daraus erzeugten nach Lemma 2.61, insbesondere kann kein geschlossenes
Tableau erzeugt werden. 2
Die Vollständigkeit kann im Fall der Aussagenlogik auf relativ einfache Weise gezeigt werden, allerdings ist diese Beweismethode nicht auf allgemeinere Logiken
übertragbar.
Zwischenziel: Zeige die Terminierung des Tableaukalküls für Aussagenlogik.
Automatische Deduktion, SS 2015, vom 13.04.2015
53
Bemerkung 2.63 Zu Ordnungen
Ein fundierte (well-founded) Ordnung ist eine partielle Ordnung ≥ auf einer
Menge M , so dass es keine unendlich absteigenden Ketten a1 > a2 > . . . in M
gibt.
Es gilt: Die lexikographische Kombination von fundierten Ordnungen ist wieder
fundierte Ordnung. D.h. Seien (M1 , ≥1 ) und (M2 , ≥2 ) fundierte Ordnungen.
Dann ist M1 × M2 mit der Ordnung (m1 , m2 ) >12 (m01 , m02 ) gdw. m1 >1 m01
oder (m1 =1 m01 und m2 >2 m02 ) fundiert.
Eine weitere nützliche Konstruktion von fundierten Ordnungen gibt es mittels
Multimengen, sogenannte Multimengenordnungen: Sei (M, >) eine Menge mit
fundierter Ordnung, dann kann man auf Multimengen (Mengen bei denen mehrfaches Vorkommen von Elementen erlaubt ist) über M : d.h. auf Mult(M ) eine
Ordnung erklären:
Seien A und B Multimengen über M , dann definiert man A >> B, wenn es
weitere Multimengen X 6= ∅ und Y gibt, so dass B = (A \ X) ∪ Y und es zu
jedem Element von Y ein echt größeres Element in X gibt.
Es gilt: Die Multimengenordnung >> ist eine partielle Ordnung. Sie ist fundiert,
gdw. > fundiert ist.
Z. B Nimmt man die natürlichen Zahlen mit der >-Ordnung, dann gilt in
Mult(N): {3, 3, 2, 1} >> {3, 2, 2, 2}, denn {3, 2, 2, 2} = {3, 3, 2, 1} \ {3, 1} ∪
{2, 2, 2}.
Lemma 2.64 Der Tableaukalkül für Aussagenlogik terminiert, wenn man jede
Formel auf jedem Pfad höchstens einmal expandiert.
Beweis. Wir konstruieren ein fundiertes Maß für die Größe eines Tableaus als
Multimenge, so dass jede Expansionsregel dieses Maß verkleinert.
Beachte, dass eine Formel die als Markierung eines Knotens auftritt, möglicherweise mehrfach expandiert werden muss, da die Formel auf mehreren Pfade sein
kann.
1. Die Größe einer Formel sei eine gewichtete Anzahl der Zeichen: Das Zeichen ⇐⇒ wird doppelt gezählt, Klammern werden nicht gezählt, alle
anderen Zeichen einfach.
2. Die Größe eines Pfades θ wird gemessen durch die Multimenge der Größen
der Formeln an seinen Knoten, wobei der Expansions-status der Formel
für diesen Pfad θ noch berücksichtigt werden muss: Eine Formel wird nur
dann in das Maß des Pfades θ aufgenommen, wenn sie auf diesem Pfad
noch nicht expandiert worden ist.
3. Die Größe des Tableaus ist die Multimenge der Größe aller nicht geschlossenen Pfade.
Betrachte typische Fälle der Expansionsregeln:
Automatische Deduktion, SS 2015, vom 13.04.2015
54
• ¬¬X → X macht einen Pfad kleiner, unabhängig von der Art der Formel
X, da danach ¬¬X in diesem Pfad schon expandiert wurde. D.h. im Maß
des Pfades wird die Größe von ¬¬X durch die Größe von X ersetzt.
• X ∧ Y wird durch X, Y ersetzt. D.h. gr(X) + gr(Y ) + 1 wird im Maß des
Pfades durch {gr(X), gr(Y )} ersetzt. Analog für die anderen α-Formeln.
• X ∨ Y wird durch X | Y ersetzt. D.h. es werden zwei Pfade erzeugt. D.h
ein Pfad θ wird durch zwei andere θ1 , θ2 ersetzt. Im Maß wirkt sich das wie
folgt aus: Da gr(X ∨ Y ) > gr(X), gr(Y ) für alle Formeln X, Y . Dadurch
wird gr(θ) >> gr(θ1 ) und gr(θ) >> gr(θ2 ). Damit wird die Multimenge
aller Pfade kleiner.
• X ⇐⇒ Y wird durch X =⇒ Y und Y =⇒ X ersetzt (nichtoptimierte
Variante).
Da gr(X ⇐⇒ Y ) − 1 = gr(X =⇒ Y ), kann man die gleiche Argumentation wie oben anwenden.
• Andere Fälle analog.
Das zugehörige Maß für das Tableau ist fundiert, also terminiert das Verfahren.
2
Definition 2.65 Eine (aussagenlogische) Hintikka-Menge ist eine Menge H
von aussagenlogischen Formeln, für die folgendes gilt:
1. Es kann nicht gleichzeitig A ∈ H und ¬A ∈ H für ein Atom A gelten.
2. 0 6∈ H, ¬1 6∈ H
3. ¬¬X ∈ H =⇒ X ∈ H
4. α ∈ H =⇒ α1 ∈ H und α2 ∈ H
5. β ∈ H impliziert β1 ∈ H oder β2 ∈ H
D.h. eine Hintikka-Menge ist abgeschlossen gegen bestimmte Formen der Zerlegung der Formeln.
Lemma 2.66
bar.
(Hintikka)
Jede aussagenlogische Hintikka-Menge ist erfüll-
Beweis. Wir zeigen, dass es eine Interpretation gibt, so dass jede Formel in H
den Wert 1 erhält.
Wenn eine Variable A ∈ H, so definiere I(A) := 1, wenn ¬A ∈ H, dann definiere
I(A) := 0, wenn weder A noch ¬A in H, dann definiere I(A) beliebig, z.B.
I(A) := 1. Induktion über die Termstruktur zeigt jetzt, dass für alle Formeln
F ∈ H, I(F ) = 1 gilt. 2
Automatische Deduktion, SS 2015, vom 13.04.2015
55
Aussage 2.67 Sei T ein Tableau, auf das keine Expansionsregeln mehr angewendet werden können. Dann ist jeder Pfad entweder geschlossen oder entspricht
einer aussagenlogischen Hintikka-Menge (d.h. die Menge der Aussagen auf dem
Pfad ist erfüllbar).
Beweis. Wenn ein nicht geschlossener Pfad existiert, dann zeigen die Expansionsregeln, dass dieser Pfad dann eine Hintikka-Menge ist. Hierbei genügt entsprechend der oben angegebenen Steuerung, dass jede Formel nur einmal pro
Pfad expandiert wird. 2
Satz 2.68 Der Tableaukalkül für Aussagenlogik terminiert, ist korrekt und
vollständig.
Beweis. Wir haben schon die Korrektheit und Terminierung gezeigt. Wir betrachten den Fall, dass eine unerfüllbare Formel eingegeben wird. Wenn ein
Pfad existiert, der nicht geschlossen ist, so ist die Menge seiner Markierungen
eine Hintikka-Menge nach Aussage 2.67, also erfüllbar nach Lemma 2.66, und
somit auch die eingegebene Formel, was der Voraussetzung widerspricht. Also
ist jeder Pfad geschlossen. 2
Aussage 2.69 Der Tableaukalkül konstruiert für erfüllbare Formeln ein Modell.
An jedem Pfad, der nicht geschlossen ist aber auch nicht weiter expandierbar
ist, kann man ein Modell ablesen.
Begründung. Da erfüllbare Tableaus solange expandiert werden, bis alle Pfade
entweder geschlossen sind oder eine Hintikka-Menge darstellen, erhält man zumindest einen Pfad mit einer Hintikka-Menge, wenn man das Tableauverfahren
startet mit einer erfüllbaren Formel an der Wurzel. Dies ergibt ein Modell für
einen Pfad. Beachtet man, dass im Beweis oben für erfüllbare Tableaus T , die
zu T 0 expandiert werden, die Interpretation erhalten bleibt, kann man schließen,
dass die in diesem Pfad enthaltenen Atome ein Modell der Formel an der Wurzel
definieren.
Automatische Deduktion, SS 2015, vom 13.04.2015
2.10
56
Entscheidungsprozeduren für quantifizierte Boolesche Formeln
Quantifizierte Boolesche Formeln (QBF) sind Boolesche Formeln, bei denen
Quantoren erlaubt sind. Die Syntax ist:
Q :=
0|1
|P
( Boolesche Variable)
| (Q1 ∧ Q2 ) | (Q1 ∨ Q2 )
| (¬ Q)
| ∀P.Q | ∃P.Q
Man kann auch weitere Junktoren zulassen, aber diese sind redundant, da sie
sich durch die Junktoren ∧, ∨, ¬ definieren lassen.
Die Quantifizierung ist nur über die zwei Wahrheitswerte.
Für geschlossenen QBFs ist die Gültigkeit einer Formel definiert. Diese kann
nur 0 oder 1 sein. Man kann auch für offene QBFs entsprechende Begriffe wir
Erfüllbarkeit und Tautologie definieren. Diese sind aber direkt äquivalent zur
Frage der Gültigkeit einer entsprechenden geschlossenen QBF.
Es ist bekannt, dass die Gültigkeit von QBFs PSPACE-vollständig ist. Auch die
Komplexitätsklassen der polynomiellen Komplexitätshierarchie sind einfach mit
QBF zu erklären: Die Klassen Σpn und Πpi sind definiert als:
• N P : Klasse der Probleme, die nichtdeterministisch in polynomieller Zeit
entschieden werden können.
• coN P : Klasse der Probleme, deren Negation (Komplemente) nichtdeterministisch in polynomieller Zeit entschieden werden kann.
• Σp1 := N P , Πp1 := coN P
• Σpi+1 Klasse der Probleme, die n.d. in polynomieller Zeit entschieden werden können, wobei ein Orakel aus Πpi verwendet werden darf.
• Πpi+1 Klasse der Probleme, deren Negation n.d. in polynomieller Zeit entschieden werden kann wobei ein Orakel in Σpi verwendet werden darf.
• P H Vereinigung aller Πpi = Vereinigung aller Σpi
• Es gilt: P H ⊆ PSPACE
Die Klassen Σpn und Πpi haben die folgenden QBFs als vollständige Problemmengen, wobei zu Πpi die Menge (∀+ ∃+)∗ .F gehört und zu Σpn : die Menge (∃+ ∃+)n .F
mit maximal n − 1 Quantorenwechseln.
Das Interesse an der Implementierung von Entscheidungsalgorithmen für QBFs
kommt daher, dass man dadurch Implementierungen für eine ganze Klasse von
Problemen behandeln kann. Wenn man eine effiziente“ Implementierung hat,
”
hat man damit auch ein effizientes Entscheidungsverfahren für alle PSPACEvollständigen Probleme, wobei man vorher noch das Problem entsprechend übersetzen müsste. Natürlich sind alle bekannten Entscheidungsalgorithmen exponentiell, aber die Hoffnung ist, dass man durch geeignete Optimierungen der
Automatische Deduktion, SS 2015, vom 13.04.2015
57
Implementierung doch einen großen Anteil der praktisch relevanten Probleme
effizient entscheiden kann.
Beispiel 2.70 Aussagenlogische Formeln kann man als QBFs ansehen, wobei
man je nach Fragestellung (Erfüllbarkeit bzw Unerfüllbarkeit) andere Quantoren
wählt.
1. Erfüllbarkeit einer aussagenlogischen Formel F ist das gleiche wie Gültigkeit der QBF ∃p1 , . . . , pn .F , wobei pi die aussagenlogischen Variablen in
F sind.
2. Die Tautologie-Eigenschaft einer aussagenlogischen Formel F ist das gleiche wie Gültigkeit der QBF ∀p1 , . . . , pn .F , wobei pi die aussagenlogischen
Variablen in F sind.
Man kann QBFs in Normalform bringen, z.B. in Pränex-Form. In dieser Form
sind alle Quantoren im Präfix der Formel, der Rumpf ist dann eine aussagenlogische Formel. Eine weitergehende Normalform ist eine Pränex-Klausel-Form,
in der die Formel im Rumpf eine Konjunktion von Klauseln ist. Oder auch in
die Negations-Normalform (alle Negationszeichen sind vor Variablen).
Folgendes Verfahren kann man dazu verwenden:
• Alle gebundenen Variablen müssen verschieden sein.
Wenn nicht, unter Beachtung der Bindungsbereiche umbenennen
mit neuen Variablen-Namen.
Diese Umbenennung muss auch gemacht werden, wenn Formeln
kopiert werden, z.B. bei der Elimination von Äquivalenzen.
1.
2.
3.
4.
Implikationen ersetzen durch A =⇒ B → ¬A ∨ B;
und Äquivalenzen ersetzen durch:
A ⇐⇒ B → A =⇒ B ∧ B =⇒ A.
Negationen nach innen schieben, u.a. mit
¬(∀X.P ) → (∃X.¬P ) und ¬(∃X.P ) → (∀X.¬P )
Quantoren nach außen schieben, wobei
F ∨ ∀X.P → ∀X.F ∨ P (mit evtl. Umbenennungen)
das gleiche auch für die anderen Kombinationen von Quantoren
und Junktoren und ∧, ∨
Die Verwendung von Abkürzungen wie in der schnellen CNF.
hierbei ist die Transformation im bereits quantorfreien Rumpf:
F [G] ; ∃X.F [X] ∧ (X ⇐⇒ G).
Aussage 2.71 Man kann eine QBF F , die keine Äquivalenzen enthält, in Zeit
O(n ∗ log(n)) in eine äquivalente Pränexform umwandeln.
Beweis. Zunächst kann man Negationen nach innen und Quantoren nach außen
schieben, ohne die Formel zu vergrößern. Die Umwandlung des quantorenfreien
Rumpfs in eine CNF ist wie bei der schnellen CNF; hierbei können weitere
Ex-Quantoren hinzugefügt werden.
Automatische Deduktion, SS 2015, vom 13.04.2015
58
QBFs mit Äquivalenzen sind immer noch in PSPACE, da man die Gültigkeit
der Formel durch ein top-down Verfahren (semantischer Baum) ermitteln kann,
das nur linear viel Platz benötigt. Wenn man diese in in eine Pränexform umwandelt, kann die Formel exponentiell groß werden durch die Verdopplung der
Unterformeln bei der Ersetzung der Äquivalenzen.
Bei Übersetzungen von QBFs in aussagenlogische Formeln (ohne Quantoren)
muss man immer von einem (worst-case) exponentiellen Zeitbedarf ausgehen,
manchmal sogar von (worst-case) exponentiellem Platzbedarf, d.h. die erzeugte
Formel ist exponentiell groß, da Erfüllbarkeit von aussagenlogischen Formeln
NP-vollständig ist bzw. Unerfüllbarkeit co-NP-vollständig.
Eine einfache, aber nicht effiziente Möglichkeit, die Gültigkeit einer QBFs zu
prüfen, die man auch als Definition der Gültigkeit ansehen kann, ist folgende
Transformation:
1. ∀P.F → F [1/P ] ∧ F [0/P ]
2. ∃P.F → F [1/P ] ∨ F [0/P ]
Die erhaltene Formel ist eine variablenfreie (geschlossene) aussagenlogische Formel, die man nur vereinfachen muss, bis sich 0 oder 1 ergibt.
Der Nachteil dieser Methode ist, dass sie i.a. exponentiell große Formeln erzeugt
bzw. exponentiell viele Fallunterscheidungen erfordert. Eine geschickte Simplifikation kann in linearem Platz durchgeführt werden, aber in evtl. exponentieller
Zeit.
Hier ist zu beachten, dass alle geschlossenen QBFs entweder 0 oder 1 ergeben,
d.h. entweder Tautologien oder Widersprüche sind (im Sinne der QBFs). Das
gilt in der Prädikatenlogik nicht mehr.
Beispiel 2.72 Betrachte ∀x∃y.x ⇐⇒ y.
Die Methode oben ergibt: (∃y.1 ⇐⇒ y) ∧ (∃y.0 ⇐⇒ y). Danach ergibt sich:
((1 ⇐⇒ 1) ∨ (1 ⇐⇒ 0)) ∧ ((0 ⇐⇒ 1) ∨ (0 ⇐⇒ 0))
Man sieht, dass sich wie erwartet, 1 als Resultat ergibt.
Eine andere, direkte Übersetzung nach Aussagenlogik, die QBFs in aussagenlogische Formeln übersetzen kann, erlaubt die Verwendung der aussagenlogischen
DPLL-Prozedur: Die neu eingeführten Variablen werden als existenzquantifiziert
angesehen.
Die QBF Formel wird, nach Elimination der Äquivalenzen und Implikationen,
zunächst in Negations-Normalform überführt, d.h. alle Negationszeichen nach
innen geschoben. Danach wird von oben die Formel transformiert: Sei ψ die
Transformation
• ψ(∀X.Q) := ψ(Q ∧ Q̄)
• ψ(∃X.Q) := ψ(Q).
wobei Q̄ die Formel Q[¬X/X] ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
59
• ψ(F1 ⊗ F2 ) := ψ(F1 ) ⊗ ψ(F2 ) wobei ⊗ ∈ {∨, ∧}.
Die Übersetzung erhält die Erfüllbarkeit, wenn man die auch auf offene QBFs
anwendet. D.h. eine QB-Formel F in NNF ist gültig, gdw. die Formel ψ(F )
erfüllbar ist.
Beweis. Induktion nach Tiefe der Quantoren, und dann nach Größe der Formeln.
Sei I eine Interpretation mit I(F ) = 1. Wenn F = F1 ∨ F2 , dann I(F1 ) = 1 oder
I(F2 ) = 1, und Induktion reicht aus, entsprechend F = F1 ∧ F2 . Wenn F keine
Quantoren enthält, dann gibt es nichts zu zeigen.
Wenn F = ∀X : F 0 , dann ist I(F 0 [1/X]) = 1 und I(F 0 [0/X]) = 1. Für jede Interpretation I 0 , die I auch auf X ausdehnt, ist dann auch I 0 (F 0 ∧F 0 [¬X/X]) = 1,
unabhängig vom Wert von I 0 (X). Genauso für F = ∃X.F 0 .
Umgekehrt geht es analog. Wir schauen mal den Fall F = ∀X : F 0 genauer an.
Sei I eine erfüllende Interpretation von F 0 ∧F 0 [¬X/X], d.h. I(F 0 ∧F 0 [¬X/X]) =
1. Dann ist I(F 0 [1/X]) = 1 als auch I(F 0 [0/X]) = 1. Deshalb gilt auch I(∀X :
F 0 ) = 1.
Die Übersetzung ergibt eine Formel, die lineare Größe in der Anzahl der Existenzquantoren, aber exponentielle Größe in der Anzahl der All-Quantoren hat.
Bei der Übersetzung und nachfolgender Umwandlung in Klauselform geht die
Quantor-Struktur verloren, so dass man die Optimierungen, die die Quantoren
erlauben, verliert.
2.10.1
Formeln in Klauselform
Man kann eine QBF auch (effizient) in eine Klauselform bringen, d.h. sie besteht dann aus einem Quantorenpräfix und einer Klauselmenge (auch Matrix
genannt). Wir nehmen an, dass Simplifikationen ¬0 → 1 und ¬1 → 0 gemacht
wurden. Die effiziente Transformation besteht einfach darin, dass man die Ersetzung
P.F [G] → P.∃X.((X ⇐⇒ G) ∧ F [X])
macht. Man kann auch die Variante
P.F [G] → P.∀X.((X ⇐⇒ G) =⇒ F [X])
verwenden.
Interessanterweise kann man jetzt die Problematik der Klauselmengentransformation in der Aussagenlogik eher verstehen: Sei jetzt F eine aussagenlogische
Formel, d.h. existenzquantifizierte Formel.
• Bei der Erfüllbarkeit gibt es kein Problem, wenn man die erste Variante
verwendet, da man nur eine existenzquantifizierte Variable hinzufügt.
• Bei der Tautologie-Eigenschaft gibt es kein Problem, wenn man die zweite
Variante verwendet, da man dann eine allquantifizierte Formel hat, und
allquantifizierte Variablen hinzufügt.
Automatische Deduktion, SS 2015, vom 13.04.2015
60
• Allerdings ist die Äquivalenz der Formeln vorher und nachher i.a. falsch.
2.11
Ein DPLL-ähnliches Entscheidungsverfahren
Pränex-Klauselmengen
für
Wir betrachten in diesem Unterabschnitt ein DPLL-analoges Entscheidungsverfahren für Klauselmengen mit Quantoren-Präfix, Das Ziel ist es, zu zeigen,
dass die eingegebene Formel falsch ist. Dies Asymmetrie kommt daher, dass der
Formelrumpf, die sogenannte Matrix, eine Klauselmenge ist, und somit besser
für Widersprüchlichkeit geeignet ist. Allerdings ist dies nur für die Regel der
isoloierten Literale wichtig.
Hierbei kann man Klauseln innerhalb der Klauselmenge schon vorher klassifizieren:
1. Eine Klausel ist PK-wahr, wenn sie ein Literal 1 enthält, oder eine Variable
sowohl positiv als auch negativ.
2. Eine Klausel ist PK-falsch, wenn 1 nicht gilt und wenn die Klausel keine existenziell quantifizierte Variable enthält. Z.B. eine Klausel mit nur
allquantifizierten Variablen ist falsch, wenn sie keine Tautologie ist.
3. Andere Klauseln nennt man PK-offen.
Dies Klassifikation wird im Entscheidungsverfahren verwendet, nachdem Fallunterscheidungen für die Belegung von Variablen gemacht wurde und meist auch
nachdem eine Simplifikation durchgeführt wurde, die die Konstanten eliminiert.
Als Beispiel die QBF ∀x.∃y.x ∧ (¬x ∨ y). Hier kann man den Term x als Klausel
ansehen, die nach Definition als PK-falsch klassifiziert wird. Wenn man als sicher
annimmt, dass PK-falsche Formeln falsch sind, dann ist die gesamte Formel auch
falsch.
Lemma 2.73
• Wenn eine QBF F in Pränexform eine PK-wahre Klausel enthält, dann kann diese Klausel gestrichen werden (durch 1 ersetzt
werden), was eine Formel F 0 ergibt, unter Erhaltung der Gültigkeit der
Formel, d.h. F gültig gdw F 0 gültig.
• Wenn eine QBF F in Pränexform eine PK-falsche Klausel enthält, dann
ist F nicht gültig.
Beweis. Die erste Aussage ist ganz einfach zu zeigen und gilt ja bereits in
Aussagenlogik ohne Quantoren.
Die zweite Aussage kann man folgendermaßen begründen: Wenn x1 , . . . , xn die
Variablen der PK-falschen Klausel sind, dann mache die n Ersetzung ∀xi .Fi →
Fi [0/xi ] ∧ Fi [1/xi ]. Hierbei sind die xi all-quantifiziert und erscheinen in dieser
Reihenfolge, und man kann annehmen, dass zuerst xn , dann xn−1 usw. ersetzt
wird. Nach jeder Ersetzung kann man die Formel wieder in PK-Form bringen
durch P.∀xn .P 0 .K → P.P 0 .K[1/xn ]∧P 0 .K[0/xn ], und dann durch Umbenennen
und verschieben in P.P 0 .P 00 K[1/xn ] ∧ K 00 [0/xn ]. Hierbei ist K[1/xn ] ∧ K 00 [0/xn ]
61
Automatische Deduktion, SS 2015, vom 13.04.2015
wieder eine Klauselmenge. Macht man das für alle x1 , . . . , xn , dann ergibt sich
Pn .Kn und es wird in einer der Kopien von K die PK-falsche Klausel nach einer
Ersetzung sich zu 0 simplifizieren lassen, da ja alle Möglichkeiten vorkommen.
Damit wird die gesamte Klauselmenge Kn falsch und somit auch die Formel.
Beispiel 2.74 Betrachte die Formel
∃x1 ∀x2 ∃x3 ∃x4 .((¬x1 ∨ x2 ∨ ¬x3 ) ∧ (x3 ∨ ¬x4 ) ∧ (x3 ∨ x4 ) ∧ (x1 ∨ ¬x2 ∨ ¬x3 ))
{z
} | {z } | {z } |
{z
}
|
c1
c2
c3
c4
Diese Formel ist nicht gültig.
Um das nachzuweisen kann man einen semantischen Baum für diese Formel
erstellen. Die Blätter sind jeweils die falschen Klauseln unter der Belegung. Die
Doppelkanten sollen konjunktiv verknüpfte Alternativen andeuten.
·@
{{ @@@ ¬x1
{
@@
{
@@
{{
{{
x1
·
~~~~
~
~
~~
x2
~~~~
~~~~
·
·
¬x2
~~
~~ ¬x3
~
~
~~
c1
·?
 ??? ¬x4

??

??
 x4


c2
c3
x3
· @@@
@@@
@@@@¬x2
x2
@@@@
@@
·
·
~
x3 ~~
~
¬x3
~~
~~
c4
·?
 ??? ¬x4

??

??
 x4


c2
c3
Die zwei offenen Knoten brauchen nicht weiter expandiert zu werden, da sich
jeweils im anderen Ast schon ein False“ ergeben hat. Insgesamt ist die Formel
”
dann ein Widerspruch.
Die Entscheidungsprozedur für Pränex-Klauselformen die analog zu DPLL ist,
muss sich nach dem Quantorenpräfix richten. Sie arbeitet von oben nach unten
und macht Fallunterscheidungen: Es wird immer eine quantifizierten Variable
mit 0 oder 1 belegt, je nach Quantor müssen dann beide Fälle wahr sein (∀) oder
ein Fall (∃). Es wird jeweils die Klauselmenge untersucht, ob schon erkennbar
ist ob diese immer wahr ist, oder immer falsch. Optimierungen werden später
betrachtet.
Folgende semantische-Baum Prozedur ist die einfachste Variante:
Definition 2.75 Entscheidungsprozedur semantischer Baum, wobei man genau
genommen nur nach der Gültigkeit der Formel fragt. Knoten sind mit Formeln
markiert. Man kann Knoten nach UND- bzw. ODER-Knoten klassifizieren, je
nachdem ob die Variable All- oder Ex-quantifiziert ist:
• An der Wurzel steht die eingegebene Formel.
Automatische Deduktion, SS 2015, vom 13.04.2015
62
• An jedem Knoten wird die erste Variable des Quantorenpräfix untersucht:
– Wenn es eine All-quantifizierte Variable x ist, dann ist es ein UNDKnoten. Die beiden Töchterknoten sind jeweils die vereinfachten Formeln: einmal ist 1 für x eingesetzt, beim anderen Knoten 0 für x.
– Wenn es eine Ex-quantifizierte Variable x ist, dann ist es ein ODERKnoten. Die beiden Töchterknoten sind jeweils die vereinfachten Formeln: einmal ist 1 für x eingesetzt, beim anderen Knoten 0 für x.
• ein Knoten wird als Blatt angesehen, wenn sich die Klauselmenge bereits
zu 1 oder 0 auswerten lässt, entsprechend der Definition von PK-wahren
und PK-falschen Klauseln: Wenn eine PK-falsche Klausel dabei ist, dann
0, wenn alle Klauseln PK-wahr sind, dann 1.
• Wenn der Baum aufgebaut ist, erhält man entsprechend der UND, bzw
ODER-Auswertung einen Booleschen Wert an der Wurzel. Dieser ist das
Ergebnis.
2
Man kann die Auswahl der Variablen, nach der Fallunterscheidung gemacht
wird, noch etwas variieren und einschränken: wenn die ersten k Variablen alle
gleichartig quantifiziert sind, dann kann man sich eine Variable aussuchen.
Bei ∀ muss man beide untersuchen und bei ∃ kann man mittels eine Strategie
raten. Wenn man allerdings Gültigkeit und ungültigkeit der Formel als Frage
stellt, dann sind die beiden Quantoren gleichwertig.
Bemerkung 2.76 Man kann auch nach der Ungültigkeit der Formel fragen.
Das macht keinen Unterschied bei geschlossenen Formeln. Die UND und ODERKnoten sollte man dann dual interpretieren. Einen Unterschied gibt es bei Optimierungen wie isolierte Literale (s.u.), da man dann eine Wahl hat und die
Optimierung abhängt von der ursprünglichen Frage.
Der Nichtdeterminismus der Prozedur hat zwei Quellen:
• Welche Variable wird zur Fallunterscheidung verwendet?
• Welcher Fall wird zuerst untersucht pro Variable?
Beispiel 2.77 Nochmal die Formel ∀x.∃y.x ⇐⇒ y:
(mit einer Nicht-Klauselmenge, aber das geht auch)
∀x∃y.x ⇐⇒
NN y
ii
i
i
NNNN
i
ii
NNNN
iiii
i
i
i
N
iii
∃y.0 ⇐⇒K y
∃y.1 ⇐⇒K y
KK
KK
s
oo
KK
KK
ss
ooo
o
KK
KK
ss
o
s
o
KK
KK
s
o
s
oo
s
1 ⇐⇒ 0
1 ⇐⇒ 1
0 ⇐⇒ 1
0 ⇐⇒ 0
Man sieht: der Wert an der Wurzel ist 1.
Automatische Deduktion, SS 2015, vom 13.04.2015
2.11.1
63
Optimierungen:
Eine einfache Optimierung durch Vermeiden von Fallunterscheidungen ist:
• Wenn an einem Knoten eine der Top-Variablen (alle gleichartig quantifiziert) nicht in der Klauselmenge enthalten ist, dann kann man die Variable
einfach (für den Unterbaum) aus dem Präfix streichen.
Eine gute Entscheidungsprozedur benötigt noch mindestens zwei Regeln:
Unit-Propagation Eine Klausel c ist eine PK-Unit, gdw. sie genau ein existenzielles Literal hat (x oder ¬x), keine Konstanten enthält und alle anderen
(universellen) Literale der Klausel haben eine Variable y, die rechts von x
im Quantorenpräfix steht.
Die Aktion ist:
Betrachte nur den Fall F [1/x], wenn x das Literal ist und F [0/x], wenn
¬x das Literal ist.
Diese Aktion kann auch durchgeführt werden, wenn die existenzquantifizierte Variable nicht die aktuelle Top-Variable ist.
Isoliertes Literal Ein Literal in einer Klauselmenge ist PK-isoliert (PK-pur),
wenn das Komplement nicht in der Klauselmenge vorkommt.
Hier nehmen wir an, dass die Frage ist ob die Gesamtformel F = 1 ist.
Die Aktion ist folgende: Sei x die Variable im isolierten Literal.
1. Wenn x Ex-quantifiziert ist, dann betrachte nur einen Tochterknoten
mit F [1/x], wenn x das Literal ist und F [0/x], wenn ¬x das Literal
ist.
2. Wenn x All-quantifiziert ist, dann betrachte nur einen Tochterknoten
mit F [0/x], wenn x das Literal ist und F [1/x], wenn ¬x das Literal
ist.
Auch diese Aktion kann durchgeführt werden, wenn x nicht die Topvariable ist.
Das Verfahren, das man erhält, ist das Davis-Putnam-Loveland-Logemann
(DPLL-) Verfahren für QBF.
Die prototypische Implementierung zur Vorlesung hat nur die Unit-Propagation,
aber noch nicht die Regel zu PK-isolierten Literal eingebaut.
Bemerkung 2.78 Dependency-directed Backtracking und RelevanzMengen
Eine einfache Idee, die Entscheidungsprozedur mittels semantischem Baum
weiter zu verbessern sind dynamische Relevanz-Mengen: Hierbei wird angenommen, dass die QBF in einer Pränexform vorliegt und die Formel eine
Klauselmenge ist.
Die Transformation kann man schnell durchführen wie bei der schnellen
Automatische Deduktion, SS 2015, vom 13.04.2015
64
CNF-Erzeugung, wobei die neuen Variablen existenzquantifiziert sind.
Grob die Idee: Wenn man an einem Knoten verzweigt für eine existenzquantifizierte Variable x; und im linken Zweig (x = 0) findet man eine Klausel, die
unabhängig von x immer falsch ist, dann ist diese Klausel auch im rechten Zweig
(x = 1) falsch und man kann sofort backtracken.
Dies kann man implementieren durch einen Markierungsalgorithmus, der einen
Relevanzmarker für Ex-Variablen verwaltet:
1. Bei Verzweigung an einer Ex-Variablen: markiere diese als irrelevant.
2. Wenn an einem Knoten eine falsche Klausel entdeckt wird, dann wird
am Knoten ein backtracking gemacht; gleichzeitig werden all Ex-Variablen
dieser Klausel als relevant markiert.
3. Kommt man (von links) beim backtracking an einen Knoten N , der an
einer Ex-Variablen y verzweigt, und y ist (noch) als irrelevant markiert,
dann kann man den rechten Zweig überspringen.
Dies kann man weiter verfeinern durch Verwaltung von Relevanzmengen.
2.12
Internet Referenzen (unvollständig, bitte selbst googlen)
http://www2.tcs.ifi.lmu.de/ letz/TU/semprop/
http://users.ics.aalto.fi/rintanen/jussi/publications.html
65
Automatische Deduktion, SS 2015, vom 13.04.2015
2.13
Internationale
Eingaben
Standardisierung
der
Formel-
Für SAT-Klauselmengen gibt es eine Standardform der Eingaben, damit alle
SAT-Solver die gleichen Benchmarks benutzen können und Beispiele leicht
austauschen können:
DIMACS-Format:
Die Klauselmenge wird zeilenweise eingegeben, pro Zeile eine Klausel, Literale
sind positive oder negative ganze Zahlen.
Der Vorspann des Files kann Kommentarzeilen enthalten, die mit “c “ beginnen
müssen. Danach kommt eine Zeile der Form
p cnf 123 456
wobei 123 die genaue Anzahl der Variablen der Klausel ist und 456 die genaue
Anzahl der Klauseln. Danach kommt pro Zeile eine Klausel, wobei als Stoppzeichen noch eine 0 folgen muss, z.B.:
1 -3 5 0
Beispiel:
p cnf 2 3
a 1 0
e 2 0
1 0
-1 2 0
2 0
QDIMACS-Format:
Das Format für quantifizerte Boolesche Formel in Pränex-Klauselform ist sehr
ähnlich, enthält aber noch den Quantorprefix vor den Klauseln, nach der “p
cnf” Zeile: Die Zeile sehen so aus:
e 2 3 5 0
wenn die Variablen 2,3,5 existenzquantifiziert sind. a 4 6 0
wenn 4, 6 allquantifiziert sind. Die Quantoren müssen abwechselnd geschrieben
werden und die letzte Quantorzeile muss eine e-Zeile sein. Tautologische Klauseln oder Klauseln, die zweimal dieselbe Variable enthalten, sind nicht zulässig.
Zum Beispiel die Pränex-Klauselform ∀x∃y : x ∧ (¬x ∨ y) ∧ y, wenn man die
Nummerierung x als 1 und y als 2 gewählt hat:
p cnf 2 3
a 1 0
e 2 0
1 0
-1 2 0
2 0
Automatische Deduktion, SS 2015, vom 13.04.2015
3
66
Überblick über den Aufbau und Funktionsweise eines Automatischen Deduktionssystems am Beispiel eines Resolutionsbeweisers
Ein implementiertes Automatisches Deduktionssystem (auf der Basis der Resolution) hat im wesentlichen vier Komponenten – Logik, Kalkül, logisches Zustandsübergangssystem und Steuerung. Im folgenden sollen die Ideen informell
skizziert werden. Später werden diese in Definitionen präzisiert.
3.0.1
Logik
Eine Komponente eines Deduktionssystems wird durch eine Logik gebildet, die
mit der Festlegung der Syntax einer formalen Sprache und deren Semantik die
zulässige Struktur und die Bedeutung von Aussagen vorgibt. Aussagen entsprechen Formeln der Logik. Die gewählte Logik bestimmt ganz konkret, welche
Arten von Aussagen erlaubt und welche verboten sind. Beispielsweise kann sie
festlegen, dass eine Quantifizierung Für alle Zahlen gilt . . .“ erlaubt, eine
”
Quantifizierung Für alle Funktionen über natürlichen Zahlen gilt . . .“ da”
gegen verboten sein soll. Die Definition einer Bedeutung (Semantik) für die
Formeln liefert darüberhinaus eine Beziehung zwischen Aussagen, die als aus
”
A folgt B“ gedeutet werden kann. Damit ist ein semantischer Folgerungsbegriff etabliert, der zunächst jedoch in keiner Weise hilft, für gegebene A und B
algorithmisch zu bestimmen, ob B wirklich aus A folgt. Wie in den Motivationsbeispielen schon angedeutet wurde, gibt es jedoch nicht die eine Logik, sondern
ähnlich wie bei Programmiersprachen gibt es eine ganze Hierarchie von Logiken mit vielen unterschiedlichen Varianten und Erweiterungen nach verschiedenen Richtungen. Jede von ihnen formalisiert ganz bestimmte Grundkonzepte,
auch wiederum ähnlich wie in Programmiersprachen. Genauso wie man sich für
normale Anwendungen eine möglichst gut geeignete Programmiersprache aussucht, muss man für konkrete deduktive Anwendungen eine adäquate Logik
auswählen. Für einfache Puzzles kann die Aussagenlogik ausreichen, während
für kompliziertere Anwendungen und Beispiele (wise-man puzzle) eine MultiModallogik gut geeignet ist. Eng mit der Auswahl der Logik verknüpft ist die
Frage der Formulierung eines Problems, d.h. wie formuliere ich das Problem in
”
der jeweiligen Logik am besten?“. Z. B. hätte man das wise-man puzzle auch
rein in Prädikatenlogik formulieren können. Offensichtlich ist diese Formulierung schwieriger. Damit stellt sich auch die Frage; ist das Problem überhaupt
”
richtig formuliert ?“, also nach der Korrektheit“ der Formulierung.
”
Die elementarste Logik ist die Aussagenlogik. Sie formalisiert die Grundkonzepte
wahr und falsch und führt darauf die Booleschen Verknüpfungen ¬, ∧, ∨, =⇒
, ⇔, . . . ein. In Aussagenlogik kann man z.B. es-regnet =⇒ Straße-wird”
nass“ hinschreiben, aber nicht über irgendwelche Mengen quantifizieren. Das
Problem, herauszufinden, ob eine Aussage aus einer anderen folgt ist in Aussagenlogik entscheidbar.
Das gilt jedoch nicht mehr in der etwas komplizierten Logik, der Gleichungslogik.
Automatische Deduktion, SS 2015, vom 13.04.2015
67
Neben Quantifizierungen über Mengen führt Gleichungslogik das Konzept der
Funktion ein. Man kann dann z.B. hinschreiben:
∀x, y : x + 0 = x ∧ x + s(y) = s(x + y)
Die Formel beschreibt die Addition auf natürlichen Zahlen wobei s(x) als x+1 zu
interpretieren ist. Man muss aber beachten, dass s eine syntaktische Repräsentation der +1-Funktion ist, und nicht die Funktion selbst. Betrachtet man die
tatsächlichen Zahlen als Abkürzungen für entsprechend viele Verschachtelungen
der Funktion s, dann kann man mit Hilfe dieser Axiome schon richtig rechnen.
Zum Beispiel ergibt sich:
3 + 2 = s(s(s(0))) + s(s(0)) = s(3 + s(0)) = s(s(3 + 0)) = s(s(3)) = 5
Gleichungslogik ist aber wiederum nur ein Spezialfall von Prädikatenlogik, wo
neben der ganz speziellen Relation der Gleichheit ganz allgemeine Relationen als
neues Konzept hinzukommen. Hier kann man dann beispielsweise formulieren:
∀x, y : Katze(x) ∧ Vogel(y) =⇒ Mag(x, y)
Katze(Garfield) ∧ Vogel(Tweety)
Katze“ und Vogel“ bezeichnen einstellige Relationen, die auf ein Objekt zu”
”
treffen können oder nicht. Mag“ bezeichnet eine zweistellige Relation. In der
”
Prädikatenlogik gibt es Relationen mit beliebiger Stelligkeit.
Eine weitere Logik ist zum Beispiel die Modallogik, die man zur (automatischen)
Lösung des Wise Men Puzzles benutzen kann. Das Grundkonzept, das bei den
Modallogiken hinzukommt, ist das der Zustände – manchmal auch Welten genannt – und der Zustandsübergänge. Wie beim Wise Men Puzzle macht es
offensichtlich Sinn, nicht nur über eine Welt zu reden, in der eine Aussage einen
bestimmten Wahrheitswert hat, sondern es kann notwendig sein, gleichzeitig
über viele verschieden hypothetische Welten und deren Beziehungen zueinander
zu reden. Genau das ist mit Modaloperatoren in sehr eleganter Weise möglich.
Beim wise-man-puzzle kann man sich vorstellen, dass jeder ein eigene Menge
von gültigen Aussagen haben kann.
Von Logikern und Philosophen wurden noch eine Unzahl anderer Logiken und
deren Beziehungen zueinander untersucht. Für eine konkrete Anwendung ist die
Situation daher wie bei der Wahl einer geeigneten Programmiersprache. Die
beste ist die, die das, was in der Anwendung vorkommt möglichst einfach und
elegant zu formulieren erlaubt, und für die es einen möglichst guten Compiler oder Interpretierer gibt. Die Formalismen, die man braucht, um eine Logik
zu beschreiben und zu untersuchen sind zunächst eine Beschreibung der Syntax, d.h. der Grammatik der Sprache und eine Beschreibung der Bedeutung der
syntaktischen Elemente, d.h. der Semantik. Der Semantikformalismus, der uns
hier interessiert, geht zurück auf Alfred Tarski und wird deshalb auch TarskiSemantik genannt. Die Idee ist, eine Abbildung der syntaktischen Elemente
auf mathematische Objekte anzugeben, und diese Abbildung zu benutzen, um
dann Terme auf Objekte einer bestimmten Menge, der. sogenannten Trägermenge oder auch Universum genannt, abzubilden, und Formeln zu wahr oder falsch
Automatische Deduktion, SS 2015, vom 13.04.2015
68
zu evaluieren. Eine solche Abbildung heißt auch Interpretation. Typischerweise bildet man in diesem Formalismus Konstanten- und Variablensymbole auf
Elemente der Trägermenge, Funktionssymbole auf Funktionen und Prädikatensymbole auf Relationen ab. Eine solche Abbildung, die eine Formel wahr macht
heißt Modell der Formel. Zum Beispiel kann man für die Formel
Katze(Garf ield) ∧ V ogel(T weety)
als Trägermenge tatsächlich die Menge aller Katzen und Vögel nehmen.
Das Prädikatensymbol Katze“ wird auf die Relation Katze abgebildet, d.h.
”
Katze(x) trifft zu wenn x wirklich eine Katze ist. Entsprechend machen wir das
mit dem Symbol Vogel“. Wenn jetzt die Konstantensymbole Garfield“ und
”
”
Tweety“ tatsächlich auf eine Katze bzw. Vogel abgebildet werden, dann ist die
”
Formel wahr und wir haben damit ein Modell der Formel. Wenn wir stattdessen
das Symbol Garfield“ auf einen Vogel abbilden, dann ist die Formel falsch und
”
die Interpretation ist kein Modell. Genausogut können wir auch als Trägermenge die natürlichen Zahlen nehmen und das Prädikatensymbol Katze“ auf die
”
Relation gerade und das Prädikatensymbol Vogel“ auf die Relation ungerade
”
abbilden. Wenn jetzt z.B. Garfield“ auf die 0 und Tweety“ auf die 1 abgebil”
”
det wird haben wir wieder ein Modell der Formel. Man bezeichnet eine Formel
als allgemeingültig oder als Tautologie wenn sie unter allen Interpretationen
wahr ist. Typische Tautologien sind P ∨ ¬P“, aber auch Formeln wie Eukli”
”
dische Geometrieaxiome =⇒ Satz des Pythagoras“. Formeln, die unter keiner
Interpretation wahr sind heißen unerfüllbar oder widersprüchlich. Typische Widersprüche sind P ∧ ¬P“, aber auch Formeln wie ¬ (Euklidische Geometrie”
”
axiome =⇒ Satz des Pythagoras)“. Formeln, die weder allgemeingültig noch
widersprüchlich sind, die man also je nach Interpretation wahr oder falsch machen kann, heißen erfüllbar. Die obige Formel Katze(Garf ield)∧V ogel(T weety)
ist von diesem Typ. Die Tarski Semantik erlaubt die Definition eines semantischen Folgerungsbegriffs: F |= G (G folgt aus F ) falls G in allen Modellen von F
gilt. Das heißt, wie immer auch die Symbole, die in F vorkommen interpretiert
werden, falls F unter dieser Interpretation wahr ist, muss auch G unter dieser
Interpretation wahr sein. Dieser semantische Folgerungsbegriff definiert präzise,
was Folgerung“ heißen soll. Da die Anzahl der möglichen Interpretationen meist
”
unendlich ist, gibt sie aber keinen Hinweis, wie man die Folgerungsbeziehung
für zwei konkrete Formeln F und G auch tatsächlich überprüfen kann (das ist
Sache der zweiten Stufe eines Deduktionssystems, des Kalküls). Spezielle Fragestellungen, die man auf der Ebene der Logiken noch untersucht, sind z.B. die
Beziehung zwischen semantischer Folgerung und syntaktischer Implikation, d.h.
die Frage, ob das sogenannte Deduktionstheorem gilt:
F |= G gdw. F =⇒ G allgemeingültig.
In Prädikatenlogik gilt es, in anderen Logiken nicht unbedingt. Eine andere Fragestellung ist mehr anwendungsorientiert, nämlich die Frage nach der Existenz
von Übersetzern, die Formeln einer Logik in eine andere übersetzen. Analog wie
bei der Entwicklung einer Programmiersprache ein Compiler die Ausführung von
Automatische Deduktion, SS 2015, vom 13.04.2015
69
Programmen erheblich beschleunigen kann, kann ein Übersetzer zwischen Logiken den Test der Folgerungsbeziehung erheblich erleichtern. Beispiele für solche
Übersetzer sind die Transformation von epistemischer Logik in Prädikatenlogik,
die bei der Lösung des Wise Men Puzzles benutzt werden kann. Ein weiteres
Beispiel ist die Transformation in Klauselnormalform. Klauselnormalform ist
eine echte Unterklasse der Prädikatenlogik, so dass man diese Transformation
auch als Übersetzung in eine andere Logik sehen kann.
3.0.2
Kalkül
Der in der Logik definierte semantische Folgerungsbegriff hilft meist nicht, für
gegebene A und B algorithmisch zu bestimmen, ob B wirklich aus A folgt. Dies
ist Aufgabe des Kalküls, der zweiten Komponente eines Deduktionssystems. Ein
Kalkül definiert syntaktische Ableitungen als Manipulationen auf den (syntaktisch gegebenen) Formeln. Damit kann aus einer Formel A durch reine Symbolmanipulation eine Formel B gewonnen werden, wobei die Bedeutung der in A
und B vorkommenden Symbole überhaupt keine Rolle spielt. Ein syntaktisch aus
A abgeleitetes B soll aber trotzdem semantisch folgen und umgekehrt. Ein korrekter Kalkül stellt daher nur solche Ableitungsoperationen zur Verfügung, die
garantieren, dass alles syntaktisch Ableitbare auch semantisch folgt. Wenn umgekehrt alles, was semantisch folgt, auch syntaktisch ableitbar ist, ist der Kalkül
vollständig. Es gibt auch Kalküle, die statt auf Formeln auf anderen Datenstrukturen operieren, z.B. auf Folgen von Formeln (Sequenzenkalkül), Mengen von
Formeln, oder auf einem Graph, der u.a. mit Formeln markiert ist.
Nach dem Unvollständigkeitssatz von Kurt Gödel [?] sind vollständige Kalküle
ab einer gewissen Ausdrucksstärke der Logiken jedoch nicht möglich. Dazu
gehört die sogenannte Prädikatenlogik zweiter Stufe, in der neben Quantifizierungen über Mengen auch Quantifizierungen über Funktionen über den Mengen
erlaubt sind. Hierzu zählt auch die Logik, die die Theorie der natürlichen Zahlen
beschreibt, d.h. alle Formeln die genau für die natürlichen Zahlen gelten. In diesen Logiken gibt es Aussagen, die über den semantischen Folgerungsbegriff aus
anderen folgen, was aber mit keinem Kalkül, der nur mit Symbolmanipulation
arbeitet, nachgewiesen werden kann.
F1 , . . . , F n
Meist werden Ableitungsregeln folgendermaßen geschrieben:
. Das
F
soll bedeuten, wenn F1 , . . . , Fn schon abgeleitete Formeln sind, dann ist es auch
erlaubt, die Formel F abzuleiten. Eine typische Ableitungsregel dieser Art ist
die Instanziierungsregel:
∀x : F [x]
F [t/x]
Dabei ist F [x] eine Formel, in der die Variable x vorkommt und F [t/x] ist eine
Variante von F , bei der alle Vorkommnisse von x durch den Term t ersetzt
worden sind (t ist beliebig). Die Regel besagt, dass eine Aussage, die für alles
gilt (∀x) auch für jedes spezielle Objekt gilt. Zweimal angewendet lässt sich
damit zum Beispiel aus
∀x, y : Katze(x) ∧ V ogel(y) =⇒ M ag(x, y)
Automatische Deduktion, SS 2015, vom 13.04.2015
70
ableiten:
Katze(Garf ield) ∧ V ogel(T weety) =⇒ M ag(Garf ield, T weety)
Eine weitere Regel dieser Art ist die Modus Ponens Regel, die schon auf die
griechischen Philosophen zurückgeht:
A =⇒ B
A
B
Sie drückt folgendes aus: wenn es gilt, dass aus der Aussage A die Aussage B
folgt und wenn weiterhin bekannt ist, dass die Aussage A tatsächlich wahr ist,
dann darf man annehmen, dass auch die Aussage B wahr ist.
Beide Regeln, die Instanziierungsregel als auch die Modus Ponens Regel eignen
sich als reine Zeichenkettenmanipulationen und lassen sich daher problemlos auf
einem Rechner ausführen.
Typische Fragestellungen auf der Kalkülebene sind folgende:
Korrektheit eines gegebenen Kalküls: Folgt alles abgeleitete auch semantisch?
Vollständigkeit eines gegebenen Kalküls: Lässt sich alles semantisch folgerbare auch ableiten?
Für die Praxis hat sich gezeigt, dass die Vollständigkeit so wie oben definiert
an den Kalkül leicht angepasst werden muss. Was man z.B. bei Resolutionsbeweisern wirklich braucht ist die Widerlegungsvollständigkeit: Wenn aus einer
Aussage F eine Aussage G semantisch folgt, ist dann ein Widerlegungsbeweis
für F ∧ ¬G möglich? Resolution ist z.B. ein Kalkül, der nicht vollständig , aber
widerlegungsvollständig ist. Beispielsweise folgt aus A die Aussage A ∨ B. Sie
ist aber nicht mit Resolution ableitbar. Jedoch ist A ∧ ¬(A ∨ B)(= A ∧ ¬A ∧ ¬B)
mit Resolution widerlegbar. Eine weiteres Problem im Bereich der Kalküle ist
die Frage nach der Effizienz eines Kalküls. Dabei betrachtet man meist zwei
Effizienzkriterien, i) die Verzweigungsrate im Suchraum und die ii) Länge der
Beweise. Die Regeln eines Kalküls sind im allgemeinen an vielen verschiedenen
Stellen einer Formelmenge anwendbar. Nicht alles, was damit abgeleitet wird,
ist jedoch für den gesuchten Beweis brauchbar. Daher definieren die Regeln eines
Kalküls einen Suchraum, der durch irgendein Suchverfahren abgesucht werden
muss. Je größer die Verzweigungsrate, d.h. je mehr Stellen es in der aktuellen
Formelmenge gibt, auf die die Kalkülregeln anwendbar sind, desto aufwendiger
ist meist die Suche. Die Verzweigungsrate ist jedoch kein generelles Kriterium.
Ist die Verzweigungsrate niedrig, liegt aber dafür der gesuchte Beweis sehr tief
im Suchraum, dann ist auch nicht viel gewonnen. Was man braucht ist einerseits eine möglichst kleine Verzweigungsrate und andererseits Kalkülregeln, die
einen Beweis mit möglichst wenig Schritten finden, und diese Schritte sollen mit
möglichst wenig Aufwand berechenbar sein. Die Kunst des Kalkülentwerfens besteht darin, solche Kalküle zu entwickeln, die einen guten Kompromiss zwischen
allen drei Faktoren bilden.
Automatische Deduktion, SS 2015, vom 13.04.2015
71
Die rein syntaktisch arbeitenden Kalküle wie Resolution, die nichts von der
Bedeutung der Symbole, die sie manipulieren wissen, sind zwar im Prinzip ausreichend. Für viele häufig vorkommende Konstrukte kennt man jedoch Algorithmen und Kalküle, die spezielle Probleme erheblich schneller und besser lösen als
die universell anwendbaren Kalküle. Niemand würde zum Beispiel auf die Idee
kommen, die Gleichung 3 + 4 = x mit einem universellen Kalkül wie Resolution
zu lösen. Das rechnet man einfach aus. Daher besteht ein weiterer Zweig der
Kalkülentwicklung darin, Algorithmen für wichtige Spezialfälle zu integrieren,
bzw. erst überhaupt zu entwickeln. Als ein Rahmenkonzept dafür hat sich die
von Mark Stickel vorgeschlagene Theorieresolution [?] als sehr nützlich gezeigt.
Die Idee dabei ist, einen Resolutionsschritt nicht mehr über die syntaktische
Komplementarität – gleiches Prädikatensymbol und Argumente, verschiedenes
Vorzeichen – sondern über semantische Widersprüchlichkeit der Resolutionsliterale zu steuern. Diese semantische Widersprüchlichkeit kann von einem speziellen Algorithmus, der über die Bedeutung der vorkommenden Symbole etwas
weiß, getestet werden. Beispielsweise kann man damit folgern:
a<b∨P
a>b∨Q
P ∨Q
eben weil a < b und a > b unter der üblichen Bedeutung von < und > widersprüchlich sind. Ein Teil des Skripts ist solchen Spezialverfahren gewidmet.
3.0.3
Logische Zustandsübergangssysteme
Die dritte Komponente eines Deduktionssystems, das logische Zustandsübergangssystems, das zur Organisation der Suche nach dem richtigen und besten
nächsten Herleitungsschritt dient, ist verantwortlich für die Darstellung von Formeln oder Formelmengen, deren Beziehungen zueinander und von den jeweiligen
Zuständen der Ableitungsketten.
Ein logisches Zustandsübergangssysteme besteht aus einer Menge S von
Zuständen und einer binären Relation →, der Übergangsrelation. Jeder Zustand
ist dabei die Repräsentation einer Formelmenge, im einfachsten Fall lediglich
die Menge selbst. In ausgefeilteren Systemen enthalten die Zustände aber noch
mehr Komponenten, Information über die Geschichte der Ableitung, Repräsentationen der von dem aktuellen Zustand aus machbaren Ableitungen zusammen
mit strategischer und heuristischer Information über den Nutzen des jeweiligen
Schritts usw. Die Übergangsrelation S → S 0 für Zustände S und S 0 ergibt sich
F1 , . . . , F n
aus dem Kalkül zunächst mal ganz einfach folgendermaßen: Wenn
F
eine Kalkülregel ist und F1 , . . . , Fn im Zustand S repräsentiert ist dann ist S 0
eine Repräsentation für F ∪ {F }, wobei F die in S repräsentierte Formelmenge
ist. Auf dieser Ebene werden oft zusätzliche Operationen eingeführt, etwa das
Löschen von redundanten Aussagen, so dass im Kalkül noch mögliche Ableitungen nun nicht mehr möglich – und hoffentlich auch nicht mehr nötig – sind. Die
Automatische Deduktion, SS 2015, vom 13.04.2015
72
Übergangsrelation → enthält daher nicht nur Ableitungsschritte, sondern auch
Reduktionsschritte, die die Formelmenge von unnützem Ballast befreien sollen.
Für jedes logische Zustandsübergangssystem sind drei Eigenschaften von Interesse:
Korrektheit, Vollständigkeit und Konfluenz.
Durch neue Regeln, mit denen Formeln oder Teile davon gelöscht werden, wird
die Korrektheit und Vollständigkeit des zugrundeliegenden Kalküls beeinflusst.
Für jede solche Regel muss man neu beweisen, dass man damit keine falschen
Beweise erzeugt (Korrektheit), und dass man mögliche Beweise auch finden kann
(Vollständigkeit). Die letzte Eigenschaften der Konfluenz ist für die Implementierung eines Deduktionssystems wichtig. Konfluenz bedeutet, dass wenn man
von einem Zustand S aus zwei Nachfolgezustände S1 und S2 erreichen kann,
dann gibt es für S1 und S2 einen gemeinsamen Nachfolgezustand S 0 . Ist ein
System konfluent, dann kann man es sich bei der Suche leisten, zunächst mal in
die falsche Richtung zu suchen. Wenn vom Ausgangszustand (S) überhaupt ein
Weg zu einem Beweis (S 0 ) existiert, dann existiert er auch von jedem weiteren
Zustand (S1 oder S2 ) aus. Das heißt, bei der Suche gibt es keine Sackgassen; man
braucht nie mehr zu früheren Zuständen zurückzukehren (kein Backtracking).
Das entspricht auch der Intuition für Beweissuchen: Eine Aussage, die man einmal abgeleitet hat, mag zwar nutzlos für den aktuellen Beweis sein, es sollte aber
nicht nötig sein, deren Ableitung selbst ungeschehen zu machen. Vollständigkeit
des Deduktionsprozesses bedeutet, dass man unabhängig von den ausgeführten
Transformationen vom aktuellen Zustand aus den Beweis noch finden kann. Hat
man sehr starke Reduktions- oder Steuerungsregeln, so kann das Zustandsübergangssystem des Deduktionssystems die Eigenschaft der Konfluenz verlieren.
In diesem Fall bedeutet Vollständigkeit des Deduktionssystems, dass man nach
der Ausführung gewisser Transformationen den Beweis nur noch dadurch findet, dass man zurücksetzt in einen vorangegangenen Zustand und eine andere
Alternative wählt.
3.0.4
Steuerung
Die vierte Komponente eines Deduktionssystems, die Steuerung, enthält schließlich die Strategien und Heuristiken, mit denen unter den möglichen Ableitungsschritten die jeweils sinnvollen ausgewählt werden. Hier steckt die eigentliche
Intelligenz“ des Systems. Die Idee dabei ist, gute“ Schritte zu bevorzugen
”
”
und schlechte“ Schritte zu vermeiden. Man unterscheidet Restriktionsstrategi”
en und Ordnungsstrategien.
Restriktionsstrategien schränken den Suchraum weiter ein, in dem sie bestimmte Ableitungen einfach generell verbieten. Zum Beispiel verbietet die Set of
”
Support“-Strategie bei Widerlegungsbeweisen Ableitungen zwischen Axiomen
untereinander. Die Idee dabei ist, dass bei Ableitungen zwischen Axiomen allein
garantiert kein Widerspruch zu finden ist. Da Restriktionsstrategien bestimmte
Ableitungen prinzipiell verbieten, muss man jeweils nachweisen, dass im verbleibenden Suchraum immer noch ein Beweis zu finden ist (Vollständigkeit).
Automatische Deduktion, SS 2015, vom 13.04.2015
73
Ordnungsstrategien sortieren die möglichen Ableitungen nach bestimmten Kriterien, z.B. könnte man Ableitungen, die kleine Formeln erzeugen, bevorzugen.
Der Zweck der Ordnungsstrategien ist, die Suche selbst geschickt zu organisieren
und natürlich die Suche zu terminieren, d.h. wenn es einen Beweis gibt, dessen
Auffindung mit endlich vielen Schritten zu garantieren (Terminierung).
3.0.5
Verwendung, Dialogverhalten
Ein wichtiger praktischer Aspekt ist die Art der Verwendung des Systems, bzw.
die Art der Unterstützung die ein Deduktionssystem bietet:
Vollautomatisch Das Deduktionssystem hat als Eingabe die Axiome und
die nach zuweisende Schlußfolgerungen, und als Ausgabe nur Erfolg/Misserfolg und eine Begründung (Beweis). Dies ist die Idealvorstellung eines Automatischen Deduktionssystems. Pragmatische System beschränken sich auf eine (einfache) Auswahl) von Eingaben, z.B. einfache
Verifikationsbedingungen. Im allgemeinen haben die Automatischen Deduktionssystems eine Menge von Parametern, die vor dem Lauf eingestellt
werden müssen. So dass z.B. die Arbeit mit dem System Otter darin bestehen kann, in vielen Läufen, die richtigen Parameter bzw. Heuristiken
einzustellen, so dass es am Ende doch eher interaktiv wirkt.
Es gibt Varianten dieser Systeme, die während der Suche interaktive Hilfestellung erlauben.
Halbautomatisch Bestimmte Systeme für Logiken höherer Ordnung (Typenlogik) führen einen Dialog mit dem Benutzer. Einfache Folgerungen werden automatisch durchgeführt, für andere wird von Benutzer erwartet, die
Zwischenziele (Lemmas) zu formulieren und Beweistaktiken zu programmieren. Der geführte Beweis ist im Erfolgsfall korrekt, allerdings kann ein
solcher Dialog einige Wochen dauern. Z.B. ist mit dieser Methode der
Nachweis der Korrektheit eines Tokenizers von T. Nipkow (TU München)
durchgeführt worden
Beweisprüfung Diesen Systemen muss die komplette Axiomatisierung und
der Beweis vorgelegt werden. Dies kann selbst für einfache Dinge sehr
mühsam sein, da der Detaillierungsgrad sehr hoch gewählt ist: Jeder (formale) Schritt des Beweises muss formal korrekt vorliegen.
Automatische Deduktion, SS 2015, vom 13.04.2015
4
74
Prädikatenlogik (P L1 ) und Resolution
Prädikatenlogik (PL) ist eine ausdrucksstarke Logik, die im Prinzip für sehr
viele Anwendungen ausreicht.
Man unterscheidet verschiedene Stufen der Prädikatenlogik. Prädikatenlogik
0.Stufe (P L0 ) ist die Aussagenlogik. Sie erlaubt keine Quantifikationen. Prädikatenlogik erster Stufe (P L1 ) dagegen erlaubt schon Quantifikationen über die
Elemente einer Trägermenge. Prädikatenlogik 2.Stufe (P L2 ) erlaubt darüberhinaus noch unabhängig Quantifikationen über die Funktionen und Relationen über dieser Trägermenge. Man kann also z.B. in P L2 hinschreiben
∀x : ∃f : ∀P : P (f (x, f ))“, was in P L1 nicht geht. Prädikatenlogik noch
”
höherer Stufe erlaubt Quantifizierungen über die Funktionen und Relationen
über der Funktions- und Relationsmenge usw. siehe [And02, EFT86].
Aus praktischer Sicht gibt es viele Zusammenhänge, die sich in anderen Logiken
wesentlich eleganter und einfacher formulieren lassen als in P Ln . Kurt Gödel
hat gezeigt, dass es im Gegensatz zu P L1 für P Ln , n ≥ 2, keinen vollständigen
Kalkül mehr geben kann [?]. D.h. es gibt Aussagen in P L2 , die in allen Interpretationen gültig sind, was aber mit keinem durch Symbolmanipulation arbeitenden Verfahren mehr nachgewiesen werden kann. Das heißt nicht, dass man für
P L2 keine Deduktionssysteme entwickeln kann – sie können eben nur nicht alle
gültigen Theoreme beweisen; aber das können heutige Deduktionssysteme für
P L1 auf heutigen Computern auch nur theoretisch. Deduktionssysteme für P L2
sind aber um einiges komplizierter als solche für P L1 [?, RB79]. Wir werden in
der Vorlesung auch Kalküle für Logiken höherer Ordnung betrachten, falls die
Zeit ausreicht.
4.1
Syntax der Prädikatenlogik erster Stufe
P L1 ist zunächst mal eine formale Sprache, deren Syntax sich durch eine entsprechende Grammatik angeben lässt. Im Gegensatz zu vielen Programmiersprachen z.B. ist die Grammatik von P L1 aber extrem einfach. Wie für die
meisten Logiken besteht die Syntaxbeschreibung aus den drei Komponenten:
• Signatur
• Bildungsregeln für Terme
• Bildungsregeln für Formeln
Die Signatur gibt das Alphabet an, aus dem die zusammengesetzten Objekte
bestehen. Man unterscheidet Funktions- und Prädikatensymbole. Neben diesen
Symbolen gibt es noch unendliche viele Variablensymbole, die nicht zur Signatur gerechnet werden. In einer Formel ∀x : ∃y : P (x, f (y))“ sind x und y
”
Variablensymbole, f ist ein einstelliges Funktionssymbol und P ein zweistelliges
Prädikatensymbol. Die logischen Junktoren und Quantoren sind fest und zählen
daher nicht zu der Signatur. Aus den Variablen- und Funktionssymbolen lassen
sich Terme aufbauen (f (y) ist zum Beispiel ein Term) und damit und mit den
Automatische Deduktion, SS 2015, vom 13.04.2015
75
Prädikatensymbolen Atome, Literale und Formeln. Der Unterschied zwischen
Termen und Formeln ist in erster Linie semantischer Natur. Terme bezeichnen Objekte einer Trägermenge und Formeln bezeichnen Wahrheitswerte. Die
formale Definition ist:
Definition 4.1 (Syntax von P L1 )
Signatur : Σ = (F, P) , wobei
• F ist die Menge der Funktionssymbole
• P ist die Menge der Prädikatensymbole
Diese Mengen sind disjunkt. Daneben braucht man noch die Menge V der
Variablensymbole (abzählbar unendlich viele). Diese Menge ist ebenfalls
disjunkt zu F und P.
Jedem Funktions- und Prädikatensymbol f ∈ Σ ist eindeutig eine Stelligkeit zugeordnet Stelligkeit : arity(f ) ≥ 0. Funktionssymbole mit der Stelligkeit 0 bezeichnet man auch als Konstantensymbole. {f ∈ F | arity(f ) = 0}
= Konstantensymbole. Es muss mindestens ein Konstantensymbol in F
vorhanden sein!
Terme Die Menge der Terme T (Σ, V ) über der Signatur Σ = (F, P) und den
Variablen V wird induktiv als die kleinste Menge definiert, die folgendes
erfüllt:
• V ⊆ T (Σ, V )
• falls f ∈ F, arity(f ) = n, t1 , . . . tn ∈ T (Σ, V ) dann f (t1 , . . . tn ) ∈
T (Σ, V ). Hierbei ist f (t1 , . . . tn ) zu lesen als Zeichenkette bzw. als
ein Baum.
Um Subterme zu addressieren, benutzt man Positionen in Termen. Das
sind Strings von positiven ganzen Zahlen, so dass man mit t|p den Unterterm von t an der Position p berechnen kann:
• t|ε = t
• f (t1 , . . . , tn )i.p = (ti )|p .
Formeln Die Menge der Formeln FΣ über der Signatur Σ = (F, P) und den
Variablen V wird induktiv als die kleinste Menge definiert, die folgendes
erfüllt:
• falls P ∈ P, arity(P ) = n, t1 , . . . , tn ∈ TΣ dann P (t1 , . . . tn ) ∈ FΣ
(Atom) . Auch hier ist P (t1 , . . . tn ) als Zeichenkette zu lesen.
• falls F, G ∈ FΣ , x ∈ V , dann auch: (¬F ), (F ∨ G), (F ∧ G), (F =⇒
G), (F ⇔ G), (∀x : F ) und (∃x : F ) ∈ FΣ .
Automatische Deduktion, SS 2015, vom 13.04.2015
76
Wir machen bei den Schreibweisen einige Vereinfachungen: Geschachtelte gleiche
Quantoren schreiben wir als Quantor über mehreren Variablen: ∀x; ∀y : F wird
als ∀x, y : F geschrieben. In Formeln werden zum Teil Klammern weggelassen,
wenn die Eindeutigkeit gewährleistet bleibt, mit den üblichen Prioritätsregeln.
Weiterhin erlauben wir auch als Formelkonstanten die Formeln false und true.
Beispiel 4.2 Signatur Σ := ({a, b, f, g}, {P, Q, R}) mit arity(a) = arity(b) =
arity(P ) = 0, arity(f ) = arity(Q) = 1 arity(g) = arity(R) = 2.
V = {x, y, z, . . .}
TΣ =
f (a), f (b), f (x), . . .
g(a, a), g(a, b), g(a, f (a)), . . .
f (f (a)), f (f (b)), . . . f (g(a, a)), . . .
g(f (f (a)), a), . . .
...
FΣ =
{P, Q(a), Q(b), Q(x), . . . , R(a, a), . . . R(a, b), . . .
¬P, ¬Q(a), . . .
P ∧ Q(a), P ∧ ¬Q(a), . . .
P ∨ Q(a), P ∨ ¬Q(a), . . .
P =⇒ Q(a), P ⇔ ¬Q(a), . . .
∀x : Q(x), . . .
∃x : R(x, y) =⇒ Q(x), . . .
Mit der Forderung, dass mindestens ein Konstantensymbol vorhanden sein muss,
ist implizit verbunden, dass die Trägermengen, über die in einer jeweiligen Interpretation quantifiziert wird, nicht leer sein kann – es muss mindestens ein
Element vorhanden sein, auf das dieses Konstantensymbol abgebildet wird. Damit verhindert man, dass Quantifizierungen der Art ∀x : (P ∧ ¬P )“ wahr
”
gemacht werden können; indem die Menge, über die quantifiziert wird, leer ist.
Einige der logischen Verknüpfungen, wie z.B. =⇒ und ⇔ sind redundant. Sie
können durch die anderen dargestellt werden. Bei der Herstellung der Klauselnormalform (Abschnitt 4.3) werden sie dann auch konsequenterweise wieder
eliminiert. Nichtsdestotrotz erleichtern sie die Lesbarkeit von Formeln beträchtlich und sind daher mit eingeführt worden.
Definition 4.3 Konventionen:
• Da 0-stellige Funktionssymbole als Konstantensymbole dienen3 , schreibt
man im allgemeinen nicht a()“ sondern einfach nur a
”
• Variablen sind genau einem Quantor zugeordnet Insbesondere gelten
ähnlich wie in den meisten Programmiersprachen die schon gewohnten Bereichsregeln (lexical scoping) für Variable. D. h. Formeln der Art
∀x : ∃x : P (x) haben nicht die vermutete Bedeutung, nämlich dass für
alle x das gleiche x existiert, sondern x ist gebunden in ∃x : P (x) und
dass äußere x in alle ∀x : kann das innere x nicht beeinflussen. D.h. die
Formel ∀x : ∃x : P (x) ist zu ∃x : P (x) äquivalent. Da man unendlich viele Variablensymbole zur Verfügung hat, kann man in jedem Fall für jeden
Quantor ein anderes Variablensymbol wählen.
3 Indem man Konstantensymbole nicht extra ausweist, spart man sich in vielen Fallunterscheidungen eben diesen speziellen Fall.
Automatische Deduktion, SS 2015, vom 13.04.2015
77
• Meist haben die logischen Verknüpfungssymbole die Bindungsordnung =⇒
, ⇔, ∧, ∨, ¬ , d.h. =⇒ bindet am schwächsten und ¬ am stärksten. Danach gilt eine Formel ¬A ∧ B ∨ C =⇒ D ⇔ E ∧ F als folgendermaßen
strukturiert: ((¬A) ∧ (B ∨ C)) =⇒ (D ⇔ (E ∧ F )). Quantoren binden,
soweit die quantifizierte Variable vorkommt. D.h. ∀x : P (x) ∧ Q steht für
(∀x : P (x)) ∧ Q während ∀x : P (x) ∧ R(x) für (∀x : (P (x) ∧ R(x))) steht.
Um Zweifel auszuschließen, werden aber meist die Klammern explizit angegeben.
• Im folgenden wird die allgemein übliche Konvention für die Benutzung des Alphabets verwendet: Buchstaben am Ende des Alphabets, d.h.
u, v, w, x, y, z bezeichnen Variablensymbole. Buchstaben am Anfang des
Alphabets, d.h. a, b, c, d, e bezeichnen Konstantensymbole. Die Buchstaben f, g, h werden für Funktionssymbole benutzt. Die großen Buchstaben
P, Q, R, T werden für Prädikatensymbole benutzt.
Die Syntax der Terme und Formeln wurde induktiv definiert: Aus den einfachen Objekten, Variable im Fall von Termen und Atome im Fall von Formeln
wurden mit Hilfe von Konstruktionsvorschriften die komplexeren Objekte aufgebaut. Damit hat man eine Datenstruktur, die eine Syntaxbaum hat, der mit
verschiedenen Konstruktoren aufgebaut wurde. Definitionen, Algorithmen, Argumentation und Beweise müssen nun jeweils rekursiv (induktiv) gemacht werden, wobei man stets Fallunterscheidung und Induktion über die Struktur der
Formeln und Terme machen muss
Folgende Definition (der freien Variablen) demonstriert eine Anwendung des
rekursiven Definitionsschemas für Terme und Formeln. Eine Variable wird als
frei bezeichnet wenn sie sich nicht im Bindungsbereich (Skopus) eines Quantors
befindet.
Definition 4.4 (Freie Variablen für Terme und Formeln) Die Operation FV(.)
sammelt alle nicht durch Quantoren gebundenen Variablensymbole in Termen
und Formeln auf.
Definition von FV für Terme:
t
falls t eine Variable ist (Basisfall)
FV(t) =
FV(t1 ) ∪ . . . ∪ FV(tn ) falls t = f (t1 , . . . tn )
(Rekursionsfall)
Definition von FV für Formeln: Basisfall: H = P (t1 , . . . tn ) ist ein Atom,
dann: FV(H) = FV(t1 ) ∪ . . . ∪ FV(tn ) (FV ist für Terme schon definiert.)
Rekursionsfälle: Fallunterscheidung nach der Struktur von H:
Fall: H = ¬F
dann FV(H) := FV(F )
Fall: H = F ∨ G
dann FV(H) = FV(F ) ∪ FV(G)
Fall: H = F ∧ G
dann FV(H) = FV(F ) ∪ FV(G)
Fall: H = F =⇒ G dann FV(H) = FV(F ) ∪ FV(G)
Fall: H = F ⇔ G
dann FV(H) = FV(F ) ∪ FV(G)
Fall: H = ∀x : F
dann FV(H) = FV(F ) \ {x}
Fall: H = ∃x : F
dann FV(H) = FV(F ) \ {x}
Automatische Deduktion, SS 2015, vom 13.04.2015
Beispiel 4.5
78
Unten sind x, y, z Variablensymbole
• FV(x) = FV(f (x)) = FV(g(x, g(x, a))) = {x}
• FV(P (x) ∧ Q(y)) = {x, y}
• FV(∃x : R(x, y)) = {y}.
Zum Schluss des Abschnitts über die Syntax von P L1 werden noch einige
Sprechweisen und Begriffe, die z.T. auch schon benutzt wurden, eingeführt. Da
sie sehr häufig gebraucht werden, muss man sie sich unbedingt einprägen.
Definition 4.6 Einige übliche Sprechweisen:
Atom:
Eine Formel der Art P (t1 , . . . tn ) wobei P ein Prädikatensymbol und t1 , . . . , tn Terme sind heißt Atom.
Literal:
Ein Atom oder ein negiertes Atom heißt Literal. (Beispiele:
P (a) und ¬P (a))
Grundterm:
Ein Term t ohne Variablensymbole, d.h. FV(t) = ∅, heißt
Grundterm (engl. ground term).
Grundatom:
Ein Atom F ohne Variablensymbole, d.h. FV(F ) = ∅, heißt
Grundatom.
geschlossene Formel: Eine Formel F ohne freie Variablensymbole, d.h. FV(F ) =
∅ heißt geschlossen.
Klausel
Formel mit einem Quantorpräfix nur aus Allquantoren besteht
. d.h F = ∀n .F 0 und F 0 ist eine Disjunktionen von Literalen.
Beispiel 4.7 Für eine geschlossene Formel: ∀x : ∃y : P (x, y). Nicht geschlossen ist: ∃y : P (x, y), da FV(∃y : P (x, y)) = {y}) .
4.2
Semantik von P L1 (nach Tarski)
Durch die formale Definition der Syntax von P L1 ist man jetzt zwar in der Lage,
Aussagen als Formeln hinzuschreiben und zu überprüfen ob das was man hingeschrieben hat auch syntaktisch in Ordnung (wohlgeformt) ist. Man kann jetzt
auch Operationen zur Manipulation von Termen und Formeln definieren. Was
diese Formeln, die ja bisher nur reine Zeichenketten sind, und die Operationen,
die nur Zeichenketten manipulieren, aber bedeuten sollen ist bisher nur intuitiv
angedeutet worden. Um aber eine Zeichenkettenmanipulation als korrekte Ableitungsregel zu interpretieren braucht man einen Formalismus, der Termen und
Formeln Bedeutung zuordnet, so dass man damit eine semantische Folgerungsbeziehung definieren kann. Dies ist eine Verallgemeinerung der entsprechenden
Konzepte in der Aussagenlogik.
Es gibt auch eine Analogie zu Programmiersprachen. Die reine Syntaxdefinition
in einer Backus-Naur Form zum Beispiel hilft zu entscheiden, ob ein gegebenes
Programm syntaktisch korrekt ist. Um aber einen Interpretierer oder Compiler
Automatische Deduktion, SS 2015, vom 13.04.2015
79
für die Sprache zu schreiben und insbesondere, um dessen Korrektheit nachzuweisen, muss man sagen, was die Konstrukte, die in der Sprache auftreten,
bedeuten sollen, d.h. man braucht eine formale Semantik. Dafür gibt es verschiedene Möglichkeiten. Die abstrakteste ist wohl die denotationale Semantik, bei
der die Programmiersprachenkonstrukte im wesentlichen auf Mengenoperationen abgebildet werden. Diese Operationen sind dann einfach und übersichtlich
zu erklären. Hiermit hat man eine Möglichkeit, die Ausführung von Programmkonstruktionen zu definieren bzw. zu überprüfen.
Um die Semantik einer Logik zu definieren gibt es ebenfalls verschiedene
Möglichkeiten.
Eine operationale Methode der Definition einer Logik ist ein sogenannter Hilbertkalkül. Dabei gibt man zunächst einen Satz von Formeln oder Formelschemata an, die man apriori als gültige Aussagen (Axiome) ansehen will (z.B.
P =⇒ P ). Weiterhin braucht man einen Satz von (syntaktischen) Ableitungsregeln, die aus den Axiomen neue Formeln generieren, welche man dann ebenfalls
als gültige Formeln annimmt. Man muss nur aufpassen, dass diese Ableitungsregeln nicht gleichzeitig eine Formel und deren Negation generieren (Korrektheit).
Ein solcher Hilbertkalkül charakterisiert eine Logik zwar genau, ist aber i.a. zu
indirekt. Eine Charakterisierung durch einen Hilbertkalkül eignet sich nicht, um
andere, für die Automatisierung besser geeignete Kalküle, zu entwickeln.
Eine sehr natürliche Möglichkeit (die denotationale Semantik“ von P L1 ), die
”
Semantik einer Logik und insbesondere von P L1 anzugeben ist von Alfred Tarski
entwickelt worden [?]. Die Grundidee dabei ist, eine Abbildung der syntaktischen Objekte auf mathematische Objekte (Mengen, Funktionen, Relationen
etc.) anzugeben, so dass man unter dieser Abbildung Formeln zu Wahrheitswerten evaluieren kann. Gesucht sind daher:
• geeignete mathematische Objekte
• eine geeignete Abbildungsvorschrift, wobei die Abbildung in drei Schritten
definiert wird:
1. Abbildung der Signatur (für P L1 auf Funktionen und Relationen)
2. Abbildung der Terme auf Elemente einer Grundmenge Trägermenge,
Universum)
3. Abbildung der Formeln auf Wahrheitswerte.
Für P L1 wird diese Abbildung dann so aufgebaut, dass man zunächst eine
Menge definiert, in die die Terme abgebildet werden sollen; Trägermenge, Domain oder Universum genannt. Funktionssymbole werden auf Funktionen über
dieser Menge und Prädikatensymbole auf Relationen über dieser Menge abgebildet. Damit ist die Grundstruktur festgelegt. Die Abbildung von Termen und
Formeln ergibt sich jetzt ganz natürlich aus ihrer syntaktischen Struktur. Ein
Term f (a, b) zum Beispiel bezeichnet gerade eine Funktionsanwendung: Die dem
Symbol f zugeordnete Funktion wird auf die den Konstantensymbolen a und
b zugeordneten Werte angewendet. Dem Term selbst wird gerade das Ergebnis
80
Automatische Deduktion, SS 2015, vom 13.04.2015
dieser Funktionsanwendung zugeordnet. Wenn z.B. f die arithmetische Funktion + zugeordnet wird und a und b die Zahlen 3 und 4, dann wird damit
automatisch dem Term f (a, b) der Wert 7 zugeordnet. Mit Hilfe der Abbildung
von Prädikatensymbolen auf Relationen lassen sich Atome auf Wahrheitswerte
abbilden. Wenn z.B. das Prädikatensymbol P auf die arithmetische <-Relation
abgebildet werden und wie oben die Konstantensymbole a und b auf die Zahlen
3 und 4, dann ist P (a, b) wahr, da ja 3 < 4 wahr ist. Wenn man dagegen a und
b umgekehrt auf 4 und 3 abbildet, dann ist P (a, b) falsch. Ausgehend von dieser Grundvorschrift für Atome lassen sich dann zusammengesetzte Formeln aus
den Werten für ihre Komponenten und der Bedeutung des obersten logischen
Symbols auswerten. Wenn z.B. die Formel F zu falsch ausgewertet wird, dann
wird ¬F zu wahr ausgewertet usw.
Man beachte, dass die syntaktischen Objekte, wie z.B. der Term f (a, b), nichts
weiter sind als Zeichenketten. In einem Computer werden sie als Bitfolgen repräsentiert, die für den Computer keinerlei Bedeutung haben. Im Gegensatz dazu ist mit + wirklich die arithmetische Additionsfunktion gemeint. Wenn man
auf Papier einen Unterschied machen will zwischen der Darstellung von f als
Funktionssymbol und z.B. + als Funktion, dann muss man zunächst Konventionen zur Schreibweise einführen, um Datenstrukturobjekte und mathematische
Dinge auseinander zu halten. Es sind aber völlig unterschiedliche Dinge damit
gemeint. In rein mathematischen Texten sind mit den Zeichen, die auf dem
Papier innerhalb von Formeln erscheinen im allgemeinen die semantischen Objekte, d.h. die Funktionen usw. gemeint. In logischen Texten wie auch in diesem
Skript sind es dagegen die syntaktischen Objekte, um die es primär geht.
Die Idee für die Semantik von P L1 ist offensichtlich sehr einfach und natürlich.
Der Formalismus ist umfangreich aber einfach und gibt ganz genau die oben
geschilderten Prinzipien wieder.
Für eine Signatur Σ = (F, P), die nach Definition 4.1 aus Funktions- und Prädikatensymbolen besteht, definiert man zunächst Σ-Algebren 4 bestehend aus einer
Trägermenge und einer geeigneten Anzahl von Funktionen geeigneter Stelligkeit.
Für jedes in F vorkommende Funktionssymbol mit Stelligkeit n braucht man genau eine n-stellige Funktion. Um auch die Prädikatensymbole zu interpretieren,
werden die Σ-Algebren zu Σ-Strukturen erweitert, die für jedes in Σ vorkommende Prädikatensymbol eine passende Relation enthalten. (Den Unterschied
zwischen Σ-Algebren und Σ-Strukturen macht man deshalb, weil Σ-Algebren zur
Interpretation von Termen und auch für Gleichheitslogiken und für die Unifikation ausreichen, während man für Formeln Σ-Strukturen braucht.) Schematisch
sieht die Abbildung der Signatur dann so aus:
Σ-Struktur:
Σ-Algebra : {
Funktionssymbole
Prädikatensymbole
→ Funktionen
→ Relationen
Definition 4.8 Σ-Algebra, Σ-Struktur)
Sei Σ = (F, P) eine Signatur. A = (DA , FA ) heißt eine Σ-Algebra gdw.
4 Das Σ in Σ-Algebra bezieht sich auf die Signatur Σ: Für jede Signatur Σ gibt es eine
Klasse von Σ-Algebren
Automatische Deduktion, SS 2015, vom 13.04.2015
81
• DA ist eine nichtleere Menge (die Trägermenge von A)
• FA enthält für jedes Funktionssymbol in F eine passende totale Funktion
, d.h. FA = {fA ∈ (DA )n → DA | f ∈ F, arity(f ) = n}.
S = (DS , FS , PS ) heißt eine Σ-Struktur gdw.
• (DS , FS ) ist eine Σ-Algebra und
• PS enthält für jedes Prädikatensymbol in P mit Stelligkeit ≥ 1 eine passende Relation, d.h. PS = {PS ⊆ (DA )n | P ∈ P, arity(P ) = n}.
• Jedes Prädikatensymbol der Stelligkeit 0 wird auf 0 oder 1 abgebildet. Die
konstanten Formel werden abgebildet wie folgt: true auf 1 und false auf
0.
Die zugeordneten Funktionen, Prädikate, Wahrheitswerte zu einem Symbol R
werden i.a. mit einem Index S gekennzeichnet. Z.B. f → fS .
Für eine Σ-Algebra oder Σ-Struktur S soll in Zukunft mit DS deren Trägermenge bezeichnet werden.
Beispiel 4.9 Σ-Algebren und Σ-Strukturen
Sei Σ = ({o, s}, {L}) mit arity(o) = 0, arity(s) = 1, arity(L) = 2.
Σ-Algebra A1 = (N, {0, inc} wobei N = natürliche Zahlen, inc(x) := x + 1,
Hierbei wird o der Konstanten 0 zugeordnet und s der FUnktion inc. Die
Relationn wird nicht interpretiert.
Σ-Struktur S1 = (N, {0, inc}, {<}) wobei (N = natürliche Zahlen, inc(x) :=
x + 1) und das Prädikatensymbol L wird als < interpretiert.
Σ-Struktur S2 = ({M o, Di, M i, Do, F r, Sa}, {M o, morgen}, {vor}) wobei
morgen(M o) = Di, morgen(Di) = M i, . . . und M o vor Di, Di vor
M i,. . . , Sa vor So, aber nicht M o vor M i usw. (d.h. vor ist nicht transitiv.)
Die Trägermenge in S1 sind die natürlichen Zahlen, dem Konstantensymbol
o entspricht die Zahl 0, dem Funktionssymbol s entspricht die Funktion inc
und dem Prädikatensymbol L entspricht die <-Relation. Die Trägermenge in
S2 sind die Wochentage, dem Konstantensymbol o entspricht der Montag, dem
Funktionssymbol s entspricht die Funktion morgen und dem Prädikatensymbol
L entspricht die vor-Relation.
Wenn man sagt, für die Signatur Σ hat man die Σ-Algebra A, dann ist ganz genau festgelegt, wie die Funktionssymbole von Σ in A interpretiert werden – und
wenn man sagt, man hat eine Σ-Struktur A, dann ist genau festgelegt, wie die
Funktionssymbole und die Prädikatensymbole von Σ in A interpretiert werden.
Die Interpretation der Variablensymbole ist jedoch vorläufig noch offen. Auch
ist noch nicht gesagt, wie die Abbildung der Terme formal definiert wird. Man
Automatische Deduktion, SS 2015, vom 13.04.2015
82
will ja nicht irgendeine Abbildung, sondern eine, die zur Struktur der Terme
passt. Die eleganteste Formulierung dieser Abbildung, die auch für viele spätere
Zwecke die richtige Begriffsbildung zur Verfügung stellt, geht von der Beobachtung aus, dass man für eine Signatur Σ aus der Menge der Terme T (Σ, V ) selbst
zusammen mit einer Menge von Termkonstruktorfunktionen“ eine Σ-Algebra
”
erhält. Diese Termkonstruktorfunktionen nehmen n Terme t1 , . . . , tn und bauen
daraus einen neuen Term f (t1 , . . . , tn ) auf. Diese Termalgebra ist das geeignete
Objekt, um eine Abbildung von Termen auf eine Σ-Algebra sauber zu definieren.
Definition 4.10 (Termalgebra) Für eine Signatur Σ = (F, P) und eine Menge von Variablen V sei T (Σ, V ) die Menge der Terme über der Signatur Σ und
den Variablen V . Sei FT die Menge der Funktionen {fΣ | f ∈ F, arity(f ) =
n, fΣ (t1 , . . . , tn ) := f (t1 , . . . , tn )}). Dann nennt man (T (Σ, V ), FT ) die Termalgebra über der Signatur Σ.
Beachte, dass bei fΣ (t1 , . . . , tn ) die Klammern die n Argumente einklammern,
auf die die Funktion fΣ angewendet wird, während f (t1 , . . . , tn ) ein Datenstrukturobjekt ist, d.h. ein Term in T (Σ, V ).
Aussage 4.11 (T (Σ, V ), FT ) ist eine Σ-Algebra .
Beweis. Da mindestens ein Konstantensymbol in der Signatur vorhanden ist,
ist die Trägermenge T (Σ, V ) nicht leer. Für jede Funktion fΣ ∈ T (Σ, V ) gilt
offensichtlich, dass die Stelligkeit passt und dass fΣ Terme auf Terme abbildet.
Damit sind die Bedingungen der Definition 4.8 erfüllt. 2
Termmengen lassen sich somit als Σ-Algebren interpretieren. Worauf es dabei
ankommt ist, dass die Abbildung von Elementen der Trägermenge und den
Funktionen und Relationen in bestimmter Weise verträglich sind.
Was bisher noch fehlt, ist die Interpretation von Variablensymbolen.
Definition 4.12 Interpretation Gegeben sei eine Signatur Σ = (F, P) und
eine Menge von Variablen V . Eine Interpretation I = (S, IV ) besteht aus einer
Σ-Struktur S und einer Variablenbelegung IV . Die Variablenbelegung ist eine
Abbildung IV : V → DS , die jedem Variablensymbol einen Wert in der Trägermenge von S zuordnet.
Diese Interpretation wird verträglich erweitert auf Terme5 :
IV (t)
falls t eine Variable ist
Ih (t) =
fS (Ih (t1 ), . . . , Ih (tn )) falls t = f (t1 , . . . tn )
Im Folgenden schreiben wir der Einfachheit halber I statt Ih .
Eine Interpretation wie sie in 4.12 definiert wurde, enthält alle Informationen,
um den in einer Signatur vorkommenden Symbolen eine Bedeutung zuzuordnen. Die Belegung von Funktions- und Prädikatensymbolen wurde getrennt von
5 Man
kann das auch als Homomorphismus von Algebren und Strukturen definieren.
83
Automatische Deduktion, SS 2015, vom 13.04.2015
der Belegung von Variablensymbolen definiert, weil die Belegung von Variablensymbolen mit Werten aus der Trägermenge einer Σ-Algebra erst geschieht,
wenn quantifizierte Formeln zu Wahrheitswerten ausgewertet werden, wobei die
Belegung der Variablen noch variiert wird. Für eine Formel ∀x : P (x)“ zum
”
Beispiel wird die Belegung des Prädikatensymbols P“ durch eine Σ-Struktur fi”
xiert, während das Symbol x mit allen Werten der Trägermenge der Σ-Struktur
belegt werden muss, um herauszufinden, ob P (x) für alle x gilt.
Nachdem jetzt geklärt ist, wie man Terme evaluiert, wird im nächsten Schritt
festgelegt, wie man Formeln auf Wahrheitswerte abbildet. Für atomare Formeln, d.h. Formeln der Art P (t1 , . . . , tn ) funktioniert das einfach so, dass man
zunächst die Terme t1 , . . . , tn auf Elemente Ih (t1 ), . . . , Ih (tn ) der Trägermenge
der Σ-Struktur abbildet und dann prüft, ob diese Elemente in der dem Prädikatensymbol zugeordneten Relation liegen. Wenn ja, ist das Atom wahr, wenn
nicht, dann ist das Atom falsch. Für die zusammengesetzten Formeln wird die
Abbildung auf Wahrheitswerte entsprechend der intuitiven Bedeutung der logischen Verknüpfungen und Quantoren definiert. (Dies ist die Stelle wo die Bedeutung der logischen Symbole präzisiert wird.)
Für eine gegebene Interpretation I definieren wir eine weitere Interpretation
I[a/x], mit gleicher Σ-Struktur und mit I[a/x](x) := a und I[a/x](y) := I(y)
falls y 6= x.
Definition 4.13 Auswertung von Formeln: Sei I = (S, IV ) eine Interpretation.
Basisfälle:
Fall: H = P (t1 , . . . tn )
falls (I(t1 ), . . . , I(tn )) ∈ PS 6 ,
falls (I(t1 ), . . . , I(tn )) 6∈ PS ,
Fall H = P
Rekursionsfälle:
Fall: H = false
Fall: H = true
Fall: H = ¬F
Fall: H = F ∨ G
Fall: H = F ∧ G,
Fall: H = F =⇒ G
Fall: H = F ⇔ G
Fall: H = ∀x : F
Fall: H = ∃x : F
dann
dann
dann
dann
dann
dann
dann
dann
dann
I(H) = 0
I(H) = 1
I(H) = 1
I(H) = 1
I(H) = 1
I(H) = 1
I(H) = 1
I(H) = 1
I(H) = 1
falls
falls
falls
falls
falls
falls
falls
dann I(H) := 1.
dann I(H) := 0.
I(P ) := PS .
I(F ) = 0
I(F ) = 1 oder I(G) = 1
I(F ) = 1 und I(G) = 1
I(F ) = 0 oder I(G) = 1
I(F ) = 1 gdw. I(G) = 1
für alle a ∈ DS : I[a/x](F ) = 1
für ein a ∈ DS : I[a/x](F ) = 1
Diese Definition erlaubt es, für eine Formel und eine Interpretation I zu bestimmen, ob die Formel in dieser Interpretation wahr oder falsch ist. Im nächsten
Schritt lassen sich dann die Formeln danach klassifizieren, ob sie in allen Interpretationen wahr werden (Tautologien), in irgendeiner Interpretation wahr
werden (erfüllbare Formeln), in irgendeiner Interpretation falsch werden (falsifizierbare Formeln) oder in allen Interpretationen falsch werden (unerfüllbare
oder widersprüchliche Formeln).
6P
S
ist die in S dem Symbol P zugeordnete Relation
Automatische Deduktion, SS 2015, vom 13.04.2015
84
Definition 4.14 (Modelle, Tautologien etc.)
Eine Interpretation I, die eine Formel F wahr macht (erfüllt) heißt Modell von
F . Man sagt auch: F gilt in I (F ist wahr in I, I erfüllt F ). Bezeichnung:
I |= F .
Eine Formel F heißt:
allgemeingültig (Tautologie, Satz) wenn sie von allen Interpretationen
erfüllt wird
erfüllbar wenn sie von einer Interpretation erfüllt wird, d.h. wenn es ein Modell gibt
unerfüllbar (widersprüchlich) wenn sie von keiner Interpretation erfüllt
wird.
falsifizierbar wenn sie in einer Interpretation falsch wird.
Es gibt dabei folgende Zusammenhänge:
• Eine Formel F ist allgemeingültig gdw. ¬F unerfüllbar
• Falls F weder allgemeingültig noch Widerspruch, dann gilt: F ist erfüllbar
und ¬F ist erfüllbar
Die Menge der unerfüllbaren und die Menge der allgemeingültigen Formeln sind
disjunkt. Formeln die weder unerfüllbar noch allgemeingültig sind sind gleichzeitig erfüllbar und falsifizierbar.
Beispiel 4.15
allgemeingültig:
unerfüllbar
erfüllbar, falsifizierbar:
Für den letzten Fall geben
die sie falsifiziert:
P ∨ ¬P
P ∧ ¬P
∀x.P (x)
wir Interpretation an, die die Formel erfüllt und eine
1. Als Menge wählen wir {0, 1}, als Interpretation für P ebenfalls die Menge {0, 1}. Dann ergibt eine Interpretation I bzgl. dieser Struktur S2 :
I(∀x.P (x)) gdw 0 ∈ PS2 und 1 ∈ PS1 . D.h. I(∀x.P (x)) = 1.
2. Als Menge wählen wir {0, 1}, als Interpretation für P die Menge {0}.
Dann ergibt eine Interpretation I bzgl. dieser Struktur S2 : I(∀x.P (x)) gdw
0 ∈ PS2 und 1 ∈ PS1 . D.h. I(∀x.P (x)) = 0.
Als weiteren, einfachen Testfall untersuchen wir Klauseln.
Beispiel 4.16 Wann ist die Klausel {P (s), ¬P (t)} eine Tautologie?
Zunächst ist einfach zu sehen, dass {P (s), ¬P (s)} eine Tautologie ist: Für jede Interpretation I gilt, dass I(P (s)) gerade der negierte Wahrheitswert von
I(¬P (s)) ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
85
Angenommen, s 6= t. Vermutung: dann ist es keine Tautologie. Um dies nachzuweisen, muss man eine Interpretation finden, die diese Klausel falsch macht.
Zuerst definieren wir eine Trägermenge und eine Σ-Algebra. Man startet mit
einer Menge A0 , die mindestens soviele Elemente enthält, wie die Terme s, t
Konstanten und Variablen enthalten. Also A0 := {a1 , . . . , an , cx1 , . . . cxm }, wobei
ai die Konstanten in s, t sind und xi die Variablen.
Danach definiert man alle Funktionen so, die in s, t vorkommen, so dass keinerlei Beziehungen gelten. D.h. man kann genau alle Terme nehmen, die sich
aus den A0 als Konstanten und den Funktionssymbolen aufbauen lassen. D.h.
es ist die Termmenge einer Termalgebra über einer erweiterten Signatur Σ0 .
Danach wählt man als Interpretation I(ai ) := ai , I(xi ) = cxi , fS = f . Beachte,
dass der Quantorpräfix nur aus Allquantoren besteht.
Damit gilt nun: I(S) 6= I(t). Da man die einstellige Relation (die Menge), die
P zugeordnet wird, frei wählen kann, kann man dies so machen, dass I(s) 6∈ PS
und I(t) ∈ PS . Damit wird aber die Klausel falsch unter dieser Interpretation.
D.h. es kann keine Tautologie sein.
Analog kann man diese Argumentation für Klauseln mit mehrstelligen Prädikaten verwenden.
Übungsaufgabe 4.17 Jede Klausel die mehr als ein Literal enthält ist erfüllbar. Wie nehmen an, dass die Formeln true, f alse nicht in Klauseln verwendet
werden.
Mit der Einführung des Begriffs eines Modell (und einer Interpretation) sind
alle Voraussetzungen gegeben, um – in Verallgemeinerung der Begriffe für Aussagenlogik – eine semantische Folgerungsbeziehung |= zwischen zwei Formeln zu
definieren:
Definition 4.18 (Semantische Folgerung) F |= G gdw. G gilt (ist wahr) in
allen Modellen von F .
Diese Definition ist zwar sehr intuitiv, da es aber i.a. unendlich viele Modelle für
eine Formel gibt, ist sie jedoch in keiner Weise geeignet, um für zwei konkrete
Formeln F und G zu testen, ob G aus F semantisch folgt. Die semantische Folgerungsbeziehung dient aber als Referenz; jedes konkrete, d.h. programmierbare
Testverfahren muss sich daran messen, ob und wie genau es diese Beziehung
zwischen zwei Formeln realisiert.
Bemerkung 4.19 Man muss sich folgendes klar machen: Bezüglich einer gegebenen Σ-Struktur ist eine gegebene geschlossene Formel F entweder wahr oder
falsch. Das heißt aber noch nicht, dass entweder F oder ¬F eine Tautologie ist,
denn dieser Begriff ist definiert über alle Σ-Strukturen.
Bemerkung 4.20 Das Beispiel der natürlichen Zahlen und der darin geltenden
Sätze ist nicht vollständig mit P L1 zu erfassen. Der Grund ist, dass man nur
von einer einzigen festen Σ-Struktur ausgeht (die natürlichen Zahlen) und dann
nach der Gültigkeit von Sätzen fragt.
86
Automatische Deduktion, SS 2015, vom 13.04.2015
Versucht man die natürlichen Zahlen in P L1 zu erfassen, so stellt sich heraus,
dass man mit endlich vielen Axiomen nicht auskommt. Es ist sogar so, dass die
Menge der Axiome nicht rekursiv aufzählbar ist.
Bemerkung 4.21 Es gibt Varianten der Prädikatenlogik erster Stufe: Manche
Formulierungen (bezeichen wir hier mit PL1(=)) erlauben ein Gleichheitszeichen: “=“, das Infix verwendet wird und ein zweistellgies Prädikat ist. Bei Interpretationen wird es meist speziell behandelt: I(s = t) = 1, wenn I(s) = I(t)
ist.
In PL1 gilt: Wenn eine Formel F ein Modell hat, dann kann man auch immer
ein Modell mit unendlich vielen Elementen angeben. Das gilt in PL1(=) nicht
mehr: z.B. die Formel ∀x, y : x = y hat nur einelementige Modelle in PL1(=).
Bemerkung 4.22 Folgende Formel hat nur unendliche Modelle:
∀x : ∃y : R(x, y)
∧ ∀x, y, z : R(x, y) ∧ R(y, z) =⇒ R(x, z)
∧ ∀x, y : R(x, y) =⇒ ¬R(y, x)
seriell
transitiv
asymmetrisch
Beispiel 4.23 Ein Beispiel für eine in P L1 modellierbare Theorie sind die
Gruppen. Man benötigt nur endlich viele Axiome. Und man kann dann danach
fragen, welche Sätze in allen Gruppen gelten.
Ein erster Schritt zur Mechanisierung der Folgerungsbeziehung liefert das sogenannte Deduktionstheorem, welches die semantische Folgerungsbeziehung in
Beziehung setzt mit dem syntaktischen Implikationszeichen. Dieses Theorem
erlaubt die Rückführung der semantischen Folgerung auf einen Tautologietest.
Satz 4.24 Deduktionstheorem Für alle Formeln F und G gilt: F |= G gdw.
F =⇒ G ist allgemeingültig (Tautologie).
Beweis. =⇒ “Es gelte F |= G. Sei I eine beliebige Interpretation. Wenn F in I
”
wahr ist, dann ist auch G wahr, nach Annahme. Damit ist aber auch die Formel
F =⇒ G in I wahr. Wenn F in I falsch ist, dann ist die Formel F =⇒ G in
I wahr.
Also gilt F =⇒ G in allen Interpretationen I, d.h. F =⇒ G ist allgemeingültig.
⇐“Annahme ist jetzt: F =⇒ G ist allgemeingültig. Sei I eine beliebige
”
Interpretation. Wenn I die Formel F erfüllt, dann gilt das auch für G, da F =⇒
G ist allgemeingültig ist.
Da die Interpretation beliebig gewählt war, gilt somit F |= G 2
Bemerkung 4.25 Will man wissen, ob eine Formel F aus einer Menge von
Axiomen A1 , . . . , An folgt, so kann man dies zunächst auf die äquivalente Frage
zurückführen, ob F aus der Konjunktion der Axiome A1 ∧ . . . ∧ An folgt und
dann auf die äquivalente Frage, ob die Implikation (A1 ∧ . . . ∧ An ) =⇒ F eine
Tautologie ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
87
Das Deduktionstheorem gilt in anderen Logiken i.a. nicht mehr. Das kann daran
liegen, dass die semantische Folgerungsbeziehung dort anders definiert ist oder
auch, dass die Implikation selbst anders definiert ist. Die Implikation, so wie sie
in P L1 definiert ist, hat nämlich den paradoxen Effekt, dass aus etwas Falschem
alles folgt, d.h. die Formel f alse =⇒ F ist eine Tautologie. Versucht man,
diesen Effekt durch eine geänderte Definition für =⇒ zu vermeiden, dann muss
das Deduktionstheorem nicht mehr unbedingt gelten. Da F eine Tautologie ist
genau dann wenn ¬F unerfüllbar ist, folgt unmittelbar:
F |= G
gdw.
¬(F =⇒ G) ist unerfüllbar (widersprüchlich)
gdw.
F ∧ ¬G ist unerfüllbar.
Das bedeutet, dass man in P L1 den Test der semantischen Folgerungsbeziehung
weiter zurückführen kann auf einen Unerfüllbarkeitstest. Genau dieses Verfahren ist die häufig verwendete Methode des Beweis durch Widerspruch: Um
zu zeigen, dass aus Axiomen ein Theorem folgt, zeigt man, dass die Axiome
zusammen mit dem negierten Theorem einen Widerspruch ergeben.
4.2.1
Berechenbarkeitseigenschaften der Prädikatenlogik
Es gilt die Unentscheidbarkeit der Prädikatenlogik:
Satz 4.26 Es ist unentscheidbar, ob eine geschlossene Formel ein Satz der
Prädikatenlogik ist.
Einen Beweis geben wir nicht. Der Beweis besteht darin, ein Verfahren anzugeben, das jeder Turingmaschine M eine prädikatenlogische Formel zuordnet,
die genau dann ein Satz ist, wenn diese Turingmaschine auf dem leeren Band
terminiert. Hierbei nimmt man TM, die nur mit einem Endzustand terminieren
können. Da das Halteproblem für Turingmaschinen unentscheidbar ist, hat man
damit einen Beweis für den Satz.
Satz 4.27 Die Menge der Sätze der Prädikatenlogik ist rekursiv aufzählbar.
Die Begründung ist analog.
Als Schlussfolgerung kann man sagen, dass es kein Deduktionssystem gibt (Algorithmus), das bei eingegebener Formel nach endlicher Zeit entscheiden kann,
ob die Formel ein Satz ist oder nicht. Allerdings gibt es einen Algorithmus, der
für jede Formel, die ein Satz ist, auch terminiert und diese als Satz erkennt.
Über das theoretische Verhalten eines automatischen Deduktionssystems kann
man daher folgendes sagen: Es kann terminieren und antworten: ist oder ist kein
Satz. Wenn das System sehr lange läuft, kann das zwei Ursachen haben: Der
Satz ist zu schwer zu zeigen (zu erkennen) oder die eingegebene Formel ist kein
Satz und das System kann auch dies nicht erkennen.
88
Automatische Deduktion, SS 2015, vom 13.04.2015
Die Einordnung der sogenannten quantifizierten Booleschen Formeln – Quantoren über null-stellige Prädikate sind erlaubt, aber keine Funktionssymbole,
und keine mehrstelligen Prädikate – ist in P L1 nicht möglich. Diese QBF sind
ein Fragment“ von P L2 . Es ist bekannt (aus Info-3+4), dass die Eigenschaft
”
Tautologie“ für QBF entscheidbar ist (PSPACE-vollständig).
”
4.3
Normalformen von P L1 -Formeln
Ziel diese Abschnitts ist es, einen Algorithmus zu entwickeln, der beliebige Formeln in eine Klauselnormalform (conjunctive normal form, CNF), d.h. eine
Konjunktion (∧) von Disjunktionen (∨ ) von Literalen, transformiert. Diese
Klauselnormalform ist nur ganz außen“ allquantifiziert, es gibt keine inneren
”
Quantoren. Folgendes Lemma erlaubt die Transformation von Formeln, wobei
die Regeln in Tautologien entsprechen, aber als Transformationen benutzt werden. Diese sind Erweiterungen der Tautologien der Aussagenlogik.
Lemma 4.28 Elementare Rechenregeln
(F ⇐⇒ G)
(F =⇒ G)
¬¬F
¬(F ∧ G)
¬(F ∨ G)
¬∀x : F
¬∃x : F
(∀x : F ) ∧ G
(∀x : F ) ∨ G
(∃x : F ) ∧ G
(∃x : F ) ∨ G
∀x : F ∧ ∀x : G
∃x : F ∨ ∃x : G
F ∨ (G ∧ H)
F ∧ (G ∨ H)
⇐⇒
⇐⇒
⇔
⇔
⇔
⇔
⇔
⇔
⇔
⇔
⇔
⇔
⇔
⇔
⇔
(F =⇒ G) ∧ (G =⇒ F )
(¬F ∨ G)
F
¬F ∨ ¬G
¬F ∧ ¬G
∃x : ¬F
∀x : ¬F
∀x : (F ∧ G)
∀x : (F ∨ G)
∃x : (F ∧ G)
∃x : (F ∨ G)
∀x : (F ∧ G)
∃x : (F ∨ G)
(F ∨ G) ∧ (F ∨ H)
(F ∧ G) ∨ (F ∧ H)
(erlaubt Elimination von ⇐⇒ )
(erlaubt Elimination von =⇒ )
falls
falls
falls
falls
x
x
x
x
nicht
nicht
nicht
nicht
frei
frei
frei
frei
in
in
in
in
G
G
G
G
(Distributivität)
(Distributivität)
Beweis. Wir beweisen beispielhaft den Fall: ¬∀x : F ⇔ ∃x : ¬F
=⇒ Sei I eine Interpretation, die ¬∀x : F erfüllt.
”
”
d.h. ∀x : F gilt nicht in I (4.13 ).
; D.h.: es gilt nicht: für alle a aus der Trägermenge von I: I[a/x] erfüllt F .
; Somit gibt es ein a aus der Trägermenge von I, so dass F nicht in I[a/x]
gilt.
; Es gibt ein a aus der Trägermenge von I, so dass I[a/x] die Formel ¬F
erfüllt (4.13, Fall ¬ )
; I erfüllt damit ∃x : ¬F . (4.13, Fall ∃ )
Automatische Deduktion, SS 2015, vom 13.04.2015
89
⇐“ Sei I eine Interpretation, die ∃x : ¬F erfüllt. Die obige Folgerungskette
”
kann auch rückwärts durchlaufen werden. 2
Bemerkung 4.29 Mithilfe der obigen Tautologien kann man die sogenannte Pränexform und auch die Negations-normalform einer Formel herstellen.
Die Pränex-form ist dadurch gekennzeichnet, dass in der Formel zuerst alle
Quantoren kommen (Quantorpräfix), und dann eine quantorenfreie Formel. Die
Negations-normalform ist dadurch gekennzeichnet, dass alle Negationszeichen
nur vor Atomen vorkommen und dass die Junktoren =⇒ , ⇐⇒ eliminiert
sind.
Zur Umwandlung einer Formel in Pränexform braucht man nur die Äquivalenzen zu verwenden, die Quantoren nach außen schieben. Hierzu müssen alle
gebundenen Variablen verschiedene Namen haben. Die Äquivalenzen, die es erlauben, Subformeln unter Quantoren ∀x. zu schieben, falls diese die Subformel
die Variable x nicht enthält, spielen eine wichtige Rolle.
Die Negationsnormalform wird erreicht, indem man zunächst =⇒ , ⇐⇒ eliminiert und dann alle Äquivalenzen nutzt, um Negationszeichen nach innen zu
schieben.
Die Elimination von Existenzquantoren ist die sogenannte Skolemisierung (Nach
Thoralf Skolem).
Idee: Ersetze in ∃x : P (x) das x, das existiert“ durch ein Konstantensymbol
”
a, d.h. ∃x : P (x) → P (a) Ersetze in ∀x1 . . . xn : ∃y : P (x1 , . . . , xn , y) das y
durch eine Funktion von x1 , . . . , xn , d.h. ∀x1 . . . xn : ∃y : P (x1 , . . . , xn , y) →
∀x1 . . . xn : P (x1 , . . . , xn , f (x1 , . . . , xn )).
Im nächsten Theorem sei G[x1 , . . . , xn , y] eine beliebige Formel, die die Variablensymbole x1 , . . . , xn , y frei enthält und G[x1 , . . . , xn , t] eine Variante von F ,
in der alle Vorkommnisse von y durch t ersetzt sind.
Satz 4.30 Skolemisierung
Eine Formel F = ∀x1 . . . xn : ∃y : G[x1 , . . . , xn , y] ist (un-)erfüllbar gdw. F 0 =
∀x1 . . . xn : G[x1 , . . . , xn , f (x1 , . . . , xn )] (un-)erfüllbar ist, wobei f ein n-stelliges
Funktionssymbol ist, das nicht in G vorkommt.
Beweis. Wir zeigen die Erfüllbarkeitsäquivalenz. Die Unerfüllbarkeitsäquivalenz
ergibt sich dann automatisch.
=⇒ “Sei I1 = (A1 , IV ) eine Σ1 -Interpretation mit I1 |= F , wobei Σ1 die
”
Signatur für F ist. Für Σ2 = Σ1 plus zusätzliches n-stelliges Funktionssymbol
f konstruieren wir ein Σ2 -Modell I2 für F 0 folgendermaßen: I2 = (A2 , IV ) mit
A2 := A1 plus eine neue n-stellige Funktion fA2 , wobei fA2 wie folgt arbeitet:
für alle a1 , . . . , an aus der Trägermenge von A2 : fA2 (a1 , . . . , an ) := c, so dass
I1 [a1 /x1 , . . . , an /xn , c/y] |= G[x1 , . . . , xn , y]
Da I1 ein Modell für F ist, existiert so ein c immer.
; I2 [a1 /x1 , . . . , an /xn ] |= G[x1 , . . . , xn , f (x1 , . . . , xn )]
Automatische Deduktion, SS 2015, vom 13.04.2015
90
; I2 |= ∀x1 , . . . , xn : G[x1 , . . . , xn , f (x1 , . . . , xn )]
; F 0 ist erfüllbar.
Die ⇐“ Richtung ist trivial. 2
”
Beispiel 4.31 Skolemisierung
∃x : P (x) → P (a)
∀x : ∃y : Q(f (y, y), x, y) →
∀x, y : ∃z : x + z = y
→
∀x : Q(f (g(x), g(x)), x, g(x))
∀x, y : x + (y − x) = y.
Beispiel 4.32 Skolemisierung erhält i.a. nicht die Allgemeingültigkeit (Falsifizierbarkeit):
∀x : P (x) ∨ ¬∀x : P (x) ist eine Tautologie
∀x : P (x) ∨ ∃x : ¬P (x) ist äquivalent zu
∀x : P (x) ∨ ¬P (a) nach Skolemisierung.
Eine Interpretation, die die skolemisierte Formel falsifiziert kann man konstruieren wie folgt: Die Trägermenge ist {a, b}. Es gelte P (a) und ¬P (b). Die Formel
ist aber noch erfüllbar.
Beachte, dass es dual dazu auch eine Form der Skolemisierung gibt, bei der die
allquantifizierten Variablen skolemisiert werden. Dies wird verwendet, wenn man
statt auf Widersprüchlichkeit die Formeln auf Allgemeingültigkeit testet. Im
Beweis ersetzt man dann die Begriff erfüllbar durch falsifizierbar und unerfüllbar
durch allgemeingültig.
Skolemisierung ist eine Operation, die nicht lokal innerhalb von Formeln verwendet werden darf, sondern nur global, d.h. wenn die ganze Formel eine bestimmte
Form hat. Zudem bleibt bei dieser Operation nur die Unerfüllbarkeit der ganzen
Klausel erhalten.
Satz 4.33 Allgemeinere Skolemisierung
Sei F eine geschlossene Formel, G eine existentiell quantifizierte Unterformel in
F an einer Position p, Weiterhin sei G nur unter All-quantoren, Konjunktionen,
und Disjunktionen. Die All-quantoren über G binden die Variablen x1 , . . . , xn .
D.h. F ist von der Form F [∃y : G0 [x1 , . . . , xn , y]].
Dann ist F [G] (un-)erfüllbar gdw. F [G0 [x1 , . . . , xn , f (x1 , . . . , xn )]] (un-)erfüllbar
ist, wobei f ein n-stelliges Funktionssymbol ist, das nicht in G vorkommt.
Definition 4.34 Transformation in Klauselnormalform unter Erhaltung
der Unerfüllbarkeit.
Folgende Prozedur wandelt jede prädikatenlogische Formel in Klauselform
(CNF) um:
91
Automatische Deduktion, SS 2015, vom 13.04.2015
1. Elimination von ⇔ und =⇒ : F ⇔ G → F =⇒ G ∧ G =⇒ F und
F =⇒ G → ¬F ∨ G
(siehe Lemma 4.28). Die Optimierung durch Abkürzen wie n der
Aussagenlogik (schnelle CNF) kann auch hier verwendet werden. Die
Verallgemeinerung auf Prädikatenlogik erfodert Abkürzungen der Form
P (x1 , . . . , xn ) für (Sub-)Formeln F mit den freien Variablen x1 , . . . , xn .
2. Negation ganz nach innen schieben:
¬¬F
¬(F ∧ G)
¬(F ∨ G)
¬∀x : F
¬∃x : F
→ F
→ ¬F ∨ ¬G
→ ¬F ∧ ¬G
→ ∃x : ¬F
→ ∀x : ¬F
3. Skopus von Quantoren minimieren, d.h. Quantoren so weit wie möglich
nach innen schieben
∀x : (F
∀x : (F
∃x : (F
∃x : (F
∀x : (F
∃x : (F
∧ G)
∨ G)
∧ G)
∨ G)
∧ G)
∨ G)
→
→
→
→
→
→
(∀x : F ) ∧ G
(∀x : F ) ∨ G
(∃x : F ) ∧ G
(∃x : F ) ∨ G
∀x : F ∧ ∀x : G
∃x : F ∨ ∃x : G
falls
falls
falls
falls
x
x
x
x
nicht
nicht
nicht
nicht
frei
frei
frei
frei
in
in
in
in
G
G
G
G
Diese Operationen sind optional und können die Stelligkeit der Skolemfunktionen minimieren. Es können aber auch mehr Skolemfunktionen entstehen.
4. Alle gebundenen Variablen sind systematisch umzubenennen, um Namenskonflikte aufzulösen.
5. Existenzquantoren werden durch Skolemisierung eliminiert
6. Allquantoren löschen (alle Variablen werden als allquantifiziert angenommen).
7. Distributivität (und Assoziativität, Kommutativität) iterativ anwenden,
um ∧ nach außen zu schieben ( Ausmultiplikation“). F ∨ (G ∧ H) →
”
(F ∨ G) ∧ (F ∨ H) (Das duale Distributivgesetz würde eine disjunktive Normalform ergeben.) Hier ist eine Optimierung sinnvoll, die mittels
Abkürzungen unnötiges Kopieren von großen Formeln vermeidet.
8. Allquantoren an die Klauseln schieben, und danach gebundenen Variablen
umbenennen, damit alle Klauseln variablendisjunkt werden.
Automatische Deduktion, SS 2015, vom 13.04.2015
92
Das Resultat dieser Prozedur ist eine Konjunktion von Disjunktionen (Klauseln)
von Literalen:
(L1,1 ∨ . . . ∨ L1,n1 )
∧
(L2,1 ∨ . . . ∨ L2,n2 )
∧
...
∧
(Lk,1 ∨ . . . ∨ L1,nk )
oder in (Multi-)Mengenschreibweise:
{{(L1,1 , . . . , L1,n1 },
{L2,1 , . . . , L2,n2 },
...
{Lk,1 , . . . , L1,nk }}
Bemerkung 4.35 Der CNF-algorithmus (4.34) ist im schlechtesten Fall exponentiell, d.h. die Anzahl der Literale in der Klauselform wächst exponentiell mit
der Schachtelungstiefe der Ausgangsformel (siehe 2.4).
Analog zu 2.4 und kann man den Algorithmus optimieren, so dass nur ein lineares Anwachsen der Formel erfolgt. Damit gibt es eine zweite Quelle, die die
Formeln nicht-äquivalent macht, und nur die Erfüllbarkeit erhält: Abkürzungen
und Skolemisierung.
Beispiel 4.36
A1: Dieb(Anton) ∨ Dieb(Ede) ∨ Dieb(Karl)
A2: Dieb(Anton) =⇒ (Dieb(Ede) ∨ Dieb(Karl))
A3: Dieb(Karl) =⇒ (Dieb(Ede) ∨ Dieb(Anton))
A4: Dieb(Ede) =⇒ (¬ Dieb(Anton) ∧¬ Dieb(Karl))
A5: ¬ Dieb(Anton) ∨¬ Dieb(Karl)
Klauselform:
A1:
Dieb(Anton), Dieb(Ede), Dieb(Karl)
A2:
¬ Dieb(Anton), Dieb(Ede), Dieb(Karl)
A3:
¬ Dieb(Karl), Dieb(Ede), Dieb(Anton)
A4a: ¬ Dieb(Ede), ¬ Dieb(Anton)
A4b: ¬ Dieb(Ede), ¬ Dieb(Karl)
A5:
¬ Dieb(Anton),¬ Dieb(Karl)
Beispiel 4.37 verschiedene Typen von Normalformen:
Original Formel: ∀ε : (ε > 0 =⇒ ∃δ : (δ > 0 ∧ ∀x, y : (|x − y| < δ =⇒
|g(x) − g(y)| < ε)))
Negations Normalform : (Alle Negationen innen; =⇒ , ⇐⇒ eliminiert)
∀ε : (¬ε > 0 ∨ ∃δ : (δ > 0 ∧ ∀x, y : (¬|x − y| < δ ∨ |g(x) − g(y)| < ε)))
Pränex Form : (Alle Quantoren außen)
∀ε : ∃δ : ∀x, y : ε > 0 =⇒ δ > 0 ∧ (|x − y| < δ =⇒ |g(x) − g(y)| < ε)
Automatische Deduktion, SS 2015, vom 12.05.2015
93
Skolemisierte Pränex Form :
ε > 0 =⇒ fδ (ε) > 0 ∧ (|x − y| < fδ (ε) =⇒ |g(x) − g(y)| < ε)
Disjunktive Normalform :
(¬ε > 0) ∨ (fδ (ε) > 0 ∧ ¬|x − y| < fδ (ε)) ∨ (fδ (ε) > 0 ∧ |g(x) − g(y)| < ε)
Konjunktive Normalform :
(¬ε > 0 ∨ fδ (ε) > 0) ∧ (¬ε > 0 ∨ ¬|x − y| < fδ (ε) ∨ |g(x) − g(y)| < ε)
Klauselform :
{{¬ε > 0, fδ (ε) > 0}, {¬ε > 0, ¬|x − y| < fδ (ε), |g(x) − g(y)| < ε}}.
Automatische Deduktion, SS 2015, vom 12.05.2015
5
94
Resolution und Unifikation
Ein Kalkül soll die semantische Folgerungsbeziehung durch syntaktische Manipulation nachbilden, d.h. genau dann wenn F |= G, soll es möglich sein, entweder
G aus F durch syntaktische Manipulation abzuleiten (F ` G, positiver Beweis)
oder F ∧ ¬G durch syntaktische Manipulation zu widerlegen (F ∧ ¬G ` f alse,
Widerlegungsbeweis). Für jeden Kalkül muss die Korrektheit gezeigt werden,
d.h. wann immer F ` G, dann F |= G. Die Vollständigkeit, d.h. wann immer
F |= G, dann F ` G ist nicht notwendig. Was möglichst gelten sollte (aber bei
manchen Logiken nicht möglich ist), ist die Widerlegungsvollständigkeit, d.h.
wann immer F |= G dann F ∧ ¬G ` f alse. Für P L1 gibt es eine ganze Reihe
unterschiedlicher Kalküle. Ein wichtiger und gut automatisierbarer ist der 1963
von John Alan Robinson entwickelte Resolutionskalkül [?]. Er arbeitet in erster
Linie auf Klauseln.
5.1
Grundresolution: Resolution ohne Unifikation
Im folgenden schreiben wir Klauseln teilweise als Folge von Literalen: L1 , . . . Ln
und behandeln diese als wären es Multimengen. (teilweise auch als Mengen).
Definition 5.1 Resolution im Fall direkt komplementärer Resolutionsliterale.
Elternklausel 1: L, K1 , . . . , Km
Elternklausel 2: ¬L, N1 , . . . , Nn
Resolvente:
K1 , . . . , Km , N1 , . . . , Nn
Hierbei kann es passieren, dass die Resolvente keine Literale mehr enthält. Diese
Klausel nennt man die leere Klausel; Bezeichnung: 2. Sie wird als falsch“ in”
terpretiert und stellt i.a. den gesuchten Widerspruch dar.
Beispiel 3.2.14 weiter fortgesetzt:
Beispiel 5.2 siehe Beispiel 4.36
A1:
Dieb(Anton), Dieb(Ede), Dieb(Karl)
A2:
¬ Dieb(Anton), Dieb(Ede), Dieb(Karl)
A3:
¬ Dieb(Karl), Dieb(Ede), Dieb(Anton)
A4a: ¬ Dieb(Ede), ¬ Dieb(Anton)
A4b: ¬ Dieb(Ede), ¬ Dieb(Karl)
A5:
¬ Dieb(Anton),¬ Dieb(Karl)
Resolutionsableitung:
A2,2 & A4a,1
R1,2 & A5,2
R2 & A3,3
R3,2 & A4b,1
R4 & A1,3
R5,1 & R2
Also, Ede wars.
`
`
`
`
`
`
R1:
R2:
R3:
R4:
R5:
R6:
¬ Dieb(Anton), Dieb(Karl)
¬ Dieb(Anton)
¬ Dieb(Karl), Dieb(Ede)
¬ Dieb(Karl)
Dieb(Anton), Dieb(Ede)
Dieb(Ede)
Automatische Deduktion, SS 2015, vom 12.05.2015
95
Aussage 5.3 Die Grund-Resolution ist korrekt:
C1
C2
R
:= L, K1 , . . . , Km
:=: ¬L, N1 , . . . , Nn
= K1 , . . . , Km , N1 , . . . , Nn
Dann gilt C1 ∧ C2 |= R.
Beweis. Wir müssen zeigen: Jede Interpretation, die die beiden Elternklauseln
wahr macht, macht auch die Resolvente wahr. Das geht durch einfache Fallunterscheidung:
Falls L wahr ist, muss ¬L falsch sein. Da C2 wahr ist, muss ein Ni wahr sein.
Da dieses Literal in R vorkommt, ist auch R (als Disjunktion betrachtet) wahr.
Falls L falsch ist, muss ein Kj wahr sein. Da das ebenfalls in der Resolvente
vorkommt, ist R auch in diesem Fall wahr. 2
Bemerkung 5.4 Im Sinne der Herleitbarkeit ist Resolution unvollständig:
Nicht jede Formel, die semantisch folgt, lässt sich durch Anwenden der Resolution ableiten: Denn P |= P ∨ Q. aber auf P alleine kann man keine Resolution
anwenden.
Für den eingeschränkten Fall, dass die Klauselmenge keine Variablen enthält
(Grundfall) können wir schon die Widerlegungsvollständigkeit der Resolution
beweisen.
Satz 5.5
(Widerlegungsvollständigkeit der Grundresolution) Jede endliche
unerfüllbare Grundklauselmenge lässt sich durch Resolution widerlegen.
Beweis. siehe Beweis von Satz 2.42 2
5.1.1
Resolution im allgemeinen Fall
Für den allgemeinen Fall, wenn in den Literalen auch Variablen vorkommen,
benötigt man eine zusätzliche Operation, um potentielle Resolutionspartner,
d.h. Literale mit gleichem Prädikat und verschiedenem Vorzeichen durch Einsetzung von Termen für Variablen komplementär gleich zu machen. Dazu führen
wir zunächst das Konzept der Substitution ein.
Definition 5.6 (Substitution)
Eine Substitution σ ist eine Abbildung, die Terme auf Terme abbildet und
die nur endlich viele Variablen verändert. Zusätzlich gilt: σ(f (t1 , . . . , tn )) =
f (σ(t1 ), . . . , σ(tn )). D.h. die Substitution σ kann man sehen als gleichzeitige
Ersetzung der Variablen x durch den Term σ(x).
Substitutionen werden meist geschrieben wie eine Menge von Variable - Term
Paaren:
{x1 7→ t1 , . . . , xn 7→ t1 }
Mit Hilfe der rekursiven Definition:
96
Automatische Deduktion, SS 2015, vom 12.05.2015
σ(t) :=
ti
f (σ(t1 ), . . . , σ(tn ))
falls t ≡ xi und σ(xi ) = ti
falls t ≡ f (t1 , . . . tn ))
lassen sich solche Mengen von Variable - Term Paaren korrekt als (mit Datenstruktur verträgliche) Abbildung auf beliebigen Termen definieren. Entsprechend kann man die Anwendung von Substitutionen auf Literale und Klauseln
definieren.
Beispiel 5.7
σ = {x 7→ a}
σ = {x 7→ g(x)}
σ = {x 7→ y, y 7→ a}
σ = {x 7→ y, y 7→ x}
σ(x) = a, σ(f (x, x)) = f (a, a)
σ(x) = g(x), σ(f (x, x)) = f (g(x), g(x)),
σ(σ(x)) = g(g(x))
σ(x) = y, σ(σ(x)) = a,
σ(f (x, y)) = f (y, a)
σ(x) = y, σ(f (x, y)) = f (y, x)
Definition 5.8 Für eine Substitution σ = {x1 7→ t1 , . . . , xn 7→ tn } heißt
dom(σ) := {x1 , . . . , xn }
cod(σ) := {t1 , . . . , tn }
die Domain
die Codomain
Substitutionen σ mit σ(σ(t)) = σ(t) für alle Terme t heißen idempotent.
Die Komposition στ von Substitutionen σ und τ ist definiert als: στ (t) :=
σ(τ (t)).
Gleichheit (modulo einer Menge von Variablen W ) zwischen Substitutionen σ
und τ wird folgendermaßen definiert: σ = τ [W ] gdw. σx = τ x für alle x ∈ W .
Eine Instanziierungrelation ≤ [W ] zwischen Substitutionen σ und τ (für eine
Menge von Variablen W ) ist folgendermaßen definiert:
σ ≤ τ [W ] gdw. es existiert eine Substitution λ mit λσ = τ [W ]. Zwei Substitutionen σ und τ sind äquivalent, d.h. σ ≈ t[W ] gdw. σ ≤ τ [W ] und τ ≤ σ[W ]
gilt.Ist W die Menge aller Variablen, so kann man W weglassen.
Bemerkung 5.9 Die Relationen ≤ [W ] ist reflexiv und transitiv, aber nicht
antisymmetrisch. D.h. es ist eine Präordnung.
Die Relation ≈ [W ] ist eine Äquivalenzrelation.
Eine Substitution ist genau dann idempotent wenn die Variablen der Domain
nicht in der Codomain vorkommen.
Beispiel 5.10
Komposition:
• {x 7→ a}{y 7→ b} = {x 7→ a, y 7→ b}
• {y 7→ b}{x 7→ f (y)} = {x 7→ f (b), y 7→ b}
• {x 7→ b}{x 7→ a} = {x 7→ a}
Instanziierungsrelation:
Automatische Deduktion, SS 2015, vom 12.05.2015
97
• {x 7→ y} ≤ {x 7→ a}[x]
• {x 7→ y} ≤ {x 7→ a}[x, y] gilt nicht !
• {x 7→ y} ≤ {x 7→ a, y 7→ a}
• {x 7→ f (x)} ≤ {x 7→ f (a)}
Äquivalenz: {x 7→ y, y 7→ x} ≈ Id (Id ist die identische Substitution)
Für die Äquivalenz von Substitutionen gilt: σ ≈ τ [W ] gdw. σ = ρτ [W ] für
eine Variablenpermutation ρ. Eine Variablenpermutation ρ ist eine Substitution,
die Variablen permutiert, d.h. Dom(ρ) = Cod(ρ) und ρ bildet Variablen auf
Variablen ab. (Beweis Übungsaufgabe)
Definition 5.11 (Resolution mit Unifikation)
Elternklausel 1:
Elternklausel 2:
Resolvente:
L, K1 , . . . , Km
σ ist eine Substitution (Unifikator)
¬L0 , N1 , . . . , Nn
σ(L) = σ(L0 )
σ(K1 , . . . , Km , N1 , . . . , Nn )
Die Operation auf einer Klauselmenge, die eine Klausel C auswählt, auf diese
eine Substitution σ anwendet und σ(C) zur Klauselmenge hinzufügt, ist korrekt.
Damit ist auch die allgemeine Resolution als Folge von Variableneinsetzung und
Resolution korrekt.
Beispiel 5.12 Dieses Beispiel (Eine Variante der Russelschen Antinomie)
zeigt, dass noch eine Erweiterung der Resolution, die Faktorisierung, notwendig
ist. Die Aussage ist: Der Friseur rasiert alle, die sich nicht selbst rasieren:
∀x : ¬rasiert(x, x) ⇐⇒ rasiert(F riseur, x)
rasiert(x, x), rasiert(F riseur, x)
σ = {x 7→ F riseur, y 7→ F riseur}
¬rasiert(F riseur, y), ¬rasiert(y, y)
rasiert(F riseur, F riseur), ¬rasiert(F riseur, F riseur)
Die Klauseln sind widersprüchlich, was aber ohne eine Verschmelzung der Literale mittels Resolution nicht ableitbar ist.
Man kann aus den Klauseln
rasiert(x, x), rasiert(F riseur, x)
¬rasiert(F riseur, y), ¬rasiert(y, y)
folgende gesättigte Klauselmenge mit Resolution herleiten:
rasiert(x, x), rasiert(F riseur, x)
¬rasiert(F riseur, y), ¬rasiert(y, y)
rasiert(F riseur, F riseur), ¬rasiert(F riseur, F riseur)
rasiert(x, x), ¬rasiert(x, x)
rasiert(F riseur, x), ¬rasiert(F riseur, x)
98
Automatische Deduktion, SS 2015, vom 12.05.2015
In der folgenden Herleitung werden die Variablen mit Friseur“instanziiert, und
”
dann die Literale verschmolzen.
rasiert(x, x), rasiert(F riseur, x) `
¬rasiert(F riseur, y), ¬rasiert(y, y) `
rasiert(F riseur, F riseur)
¬rasiert(F riseur, F riseur)
Danach ist es möglich, diese beiden Literale durch Resolution zur leeren Klausel
abzuleiten.
Definition 5.13 (Faktorisierung)
Elternklausel:
Faktor:
L, L0 , K1 , . . . , Km
σ(L, K1 , . . . , Km )
σ(L) = σ(L0 )
Damit besteht der Resolutionskalkül jetzt aus Resolution und Faktorisierung.
Definition 5.14 Der Resolutionskalkül transformiert Klauselmengen S wie
folgt:
1. S → S ∪ {R}, wobei R eine Resolvente von zwei (nicht notwendig verschiedenen) Klauseln aus S ist.
2. S → S ∪ {F }, wobei F ein Faktor einer Klausel aus S ist.
Der Resolutionskalkül terminiert mit Erfolg, wenn die leere Klausel abgeleitet
wurde, d.h. wenn 2 ∈ S.
Bei Klauselmengen nehmen wir wie üblich an, dass die Klauseln variablendisjunkt sind.
Beispiel 5.15 Wir wollen die Transitivität der Teilmengenrelation mit Resolution beweisen. Wir starten mit der Definition von ⊆ unter Benutzung von
∈:
∀x, y : x ⊆ y ⇔ ∀w : w ∈ x =⇒ w ∈ y
Das zu beweisende Theorem ist:
∀x, y, z : x ⊆ y ∧ y ⊆ z =⇒ x ⊆ z
Umwandlung in Klauselform ergibt:
H1: ¬x ⊆ y, ¬w ∈ x, w ∈ y
( =⇒ Teil der Definition)
H2: x ⊆ y, f (x, y) ∈ x
(zwei ⇐ Teile der Definition,
H3: x ⊆ y, ¬f (x, y) ∈ y
f ist die Skolem Funktion für w)
C1: a ⊆ b
(drei Teile der negierten Behauptung,
C2: b ⊆ c
a, b, c sind Skolem Konstanten für x, y, z)
C3: ¬a ⊆ c
Resolutionswiderlegung:
99
Automatische Deduktion, SS 2015, vom 12.05.2015
H1,1 & C1,
H1,1 & C2,
H2,2 & R1,1,
H3,2 & R2,2,
R3,2 & R4,2,
R5 & (Faktorisierung)
R6 & C3
{x 7→ a, y 7→ b}
{x 7→ b, y 7→ c}
{x 7→ a, w 7→ f (a, y)}
{y 7→ c, w 7→ f (x, c)}
{x 7→ a, y 7→ c}
`
`
`
`
`
`
`
R1:
R2:
R3:
R4:
R5:
R6:
R7:
¬w ∈ a, w ∈ b
¬w ∈ b, w ∈ c
a ⊆ y, f (a, y) ∈ b
x ⊆ c, ¬f (x, c) ∈ b
a ⊆ c, a ⊆ c
a⊆c
2
Automatische Deduktion, SS 2015, vom 12.05.2015
5.2
100
Unifikation
Die Resolutions- und Faktorisierungsregel verwenden Substitutionen (Unifikatoren), die zwei Atome syntaktisch gleich machen. Meist will man jedoch nicht
irgendeinen Unifikator, sondern einen möglichst allgemeinen. Was das bedeutet,
zeigen die folgenden Beispiele:
Beispiel 5.16 Unifikatoren und allgemeinste Unifikatoren.
P (x), Q(x)
¬P (y), R(y)
σ = {x →
7 a, y 7→ a}
Q(a), R(a)
σ ist ein Unifikator
P (x), Q(x)
¬P (y), R(y)
Q(y), R(y)
σ = {x 7→ y}
σ ist ein allgemeinster Unifikator
Fragen:
• Was heißt allgemeinster“ Unifikator?
”
• Wieviele gibt es davon? (σ 0 = {y 7→ x} im obigen Beispiel ist offensichtlich
auch einer.)
• Wie berechnet man sie?
Ein allgemeinster Unifikator (von zwei Atomen) kann man intuitiv dadurch erklären, dass es eine Substitution ist, die zwei Terme oder Atome gleich macht,
und möglichst wenig instanziiert. Optimal ist es dann, wenn alle Unifikatoren durch weitere Einsetzung in den allgemeinsten Unifikator erzeugt werden
können.
Definition 5.17 Unifikatoren und allgemeinste Unifikatoren.
Seien s und t die zu unifizierenden Terme (Atome) und W := FV(s, t). Eine
Substitution σ heißt Unifikator (von s, t), wenn σ(s) = σ(t). Die Menge aller
Unifikatoren bezeichnet man auch mit U (s, t),
Eine Substitution σ heißt allgemeinster Unifikator für zwei Terme s und t wenn
σ ein Unifikator ist
(Korrektheit)
für alle Unifikatoren τ gilt σ ≤ τ [W ]
(Vollständigkeit)
Der allgemeinste Unifikator ist i.a. nur eindeutig bis auf ≡ [W ]:
Beispiel 5.18 Es gibt (mindestens) zwei allgemeinste Unifikatoren für x und
y: {x 7→ y}, {y 7→ x}, die sich aber nur durch Variablenumbenennung unterscheiden.
Die Beispiele legen die Vermutung nahe, dass es bis auf Variablenumbenennung
immer einen allgemeinsten Unifikator gibt. Wir geben den Unifikationsalgorithmus in Form eines Regelpaketes an, das auf Mengen von Gleichungen operiert.
Automatische Deduktion, SS 2015, vom 12.05.2015
101
Definition 5.19 Unifikationsalgorithmus U 1:
Eingabe: zwei Terme oder Atome s und t:
Ausgabe:
nicht unifizierbar“ oder einen allgemeinsten Unifikator:
”
Zustände: auf denen der Algorithmus operiert: Eine Menge Γ von Gleichungen.
?
Initialzustand: Γ0 = {s = t}.
Unifikationsregeln:
?
f (s1 , . . . , sn ) = f (t1 , . . . , tn ), Γ
?
(Dekomposition)
?
s1 = t1 , . . . , sn = tn , Γ
?
x = x, Γ
Γ
?
x = t, Γ
?
x = t, {x 7→ t}Γ
(Tautologie)
x ∈ FV(Γ), x 6= t,
x 6∈ FV(t)
(Anwendung)
?
t = x, Γ
?
t 6∈ V
(Orientierung)
x = t, Γ
Abbruchbedingungen:
?
f (. . .) = g(. . .), Γ
F ail
?
x = t, Γ
F ail
wenn f 6= g
wenn x ∈ FV(t),
und t 6= x
(Clash)
(occurs check Fehler)
Steuerung:
Starte mit Γ = Γ0 , und transformiere Γ solange durch (nichtdeterministische)
Anwendung der Regeln, bis entweder eine Abbruchbedingung erfüllt ist oder keine Regel mehr anwendbar ist. Falls eine Abbruchbedingung erfüllt ist, terminiere mit nicht unifizierbar“. Falls keine Regel mehr anwendbar ist, hat die
”
?
?
Gleichungsmenge die Form {x1 = t1 , . . . , xk = tk }, wobei keine der Variablen
xi in einem tj vorkommt; d.h. sie ist in gelöster Form. Das Resultat ist dann
{x1 7→ t1 , . . . , xk 7→ tk }. (siehe Lemma 5.22).
Beispiel 5.20 Unifikation von zwei Termen durch Anwendung der obigen Regeln:
102
Automatische Deduktion, SS 2015, vom 12.05.2015
?
→
→
→
→
→
→
→
→
{k(f (x, g(a, y)), g(x, h(y))) = k(f (h(y), g(y, a)), g(z, z))}
?
?
{f (x, g(a, y)) = f (h(y), g(y, a)), g(x, h(y)) = g(z, z)}
?
?
{x = h(y), g(a, y) = g(y, a), g(x, h(y)) = g(z, z)}
?
?
?
?
{x = h(y), a = y, y = a, g(x, h(y)) = g(z, z)}
?
?
?
{x = h(y), y = a, g(x, h(y)) = g(z, z)}
?
?
?
{x = h(a), y = a, g(x, h(a)) = g(z, z)}
?
?
?
?
{x = h(a), y = a, x = z, h(a) = z}
?
?
?
?
{x = h(a), y = a, x = z, z = h(a)}
?
?
?
{x = h(a), y = a, z = h(a)}
(Dekomposition)
(Dekomposition)
(Dekomposition)
(Orientierung)
(Anwendung, y)
(Dekomposition)
(Orientierung)
(Anwendung)
Unifizierte Terme: k(f (h(a), g(a, a)), g(h(a), h(a))).
Satz 5.21 Der Unifikationsalgorithmus U1 terminiert, ist korrekt und
vollständig.
Beweis.
Seien s und t die zu unifizierenden Terme. Sei W := FV(s, t).
Korrektheit: Wir müssen zeigen, dass die berechnete Substitution auch wirklich ein Unifikator für die beiden Eingabeterme ist. Die Idee dazu ist folgende: Man zeige, dass für jede Transformationsregel gilt: wenn die Gleichungsmenge Γ0 nach einer Regelanwendung unifizierbar ist, dann ist auch
die entsprechende Menge vor der Regelanwendung unifizierbar. Per Induktion nach der Anzahl der Regelanwendungen ergibt sich dann: Wenn die
Lösungsgleichungsmenge unifizierbar ist, dann sind auch die Ausgangsterme unifizierbar. Man muss jetzt jede Unifikationsregel daraufhin untersuchen.
Wir machen das am Beispiel der Dekompositionsregel:
?
?
Angenommen, Γ0 = {s1 = t1 , . . . , sn = tn } ∪ Γ ist unifizierbar, d.h. es
?
?
existiert eine Substitution τ ∈ U ({s1 = t1 , . . . sn = tn } ∪ Γ). Dann gilt
?
selbstverständlich τ f (s1 , . . . , sn ) = τ f (t1 , . . . , tn ), d.h. das Gleichungssystem vorher ist unifizierbar. Für die anderen Regeln ist die Argumentation
analog.
Terminierung Um zu zeigen, dass der Unifikationsalgorithmus immer terminiert, müssen wir ein (fundiertes) Maß für Gleichungssysteme finden, das
nach jeder Regelanwendung kleiner wird. Ein Maß ist das Tupel (Anzahl
der ungelösten Variablen, Anzahl der Symbole, Anzahl der falsch orientierten Gleichungen) mit lexikographischer Ordnung. (Eine Variable x heißt
?
gelöst wenn sie nur noch in der Gleichung x = t, aber x nicht in t vorkommt.). Dieses Maß wird nach jeder Regelanwendung kleiner: Wenn die
Dekomposition oder Tautologieregel feuert, wird die Anzahl der Symbole
kleiner, wenn die Anwendungsregel feuert, wird die Anzahl der ungelösten
Automatische Deduktion, SS 2015, vom 12.05.2015
103
Variablen kleiner, und die Orientierungsregel verkleinert die dritte Komponente und lässt die anderen fest.
Vollständigkeit: Wir zeigen, dass alle Regeln die Menge der Unifikatoren nicht
verändert. Da die Korrektheit schon gezeigt ist, d.h. die Menge vergrößert
sich nicht, müssen wir jetzt nur noch zeigen, dass die Menge der Unifikatoren sich nicht verkleinert. Sei τ eine Substitution mit τ ∈ U (Γ)
und sei Γ → Γ0 transformiert worden. Wenn die entsprechende Regel die
Dekomposition, Tautologie oder die Orientierung war, dann sieht man
leicht ein, dass τ ∈ U (Γ0 ). Betrachtung wir die Regel (Anwendung). Dann
gilt τ x = τ t. Hieraus folgt, dass τ = τ {x 7→ t} ist, denn für x gilt:
τ (x) = τ (t) und τ {x 7→ t}(x) = τ (t). Für andere Variablen y 6= x gilt
offenbar τ {x 7→ t}(y) = τ (y). Folglich gilt auch hier τ ∈ U (Γ0 ).
2
Lemma 5.22 Der Unifikationsalgorithmus U1 terminiert entweder mit einem
Unifikator in gelöster Form, oder er bricht ab mit nicht unifizierbar“.
”
Beweis. nach 5.21 terminiert U1 immer. Es gibt folgende Möglichkeiten: entweder bricht er ab mit nicht unifizierbar“ oder es ist keine Regel mehr anwendbar.
”
?
Wenn keine Regel mehr anwendbar ist, dann gibt es nur noch Gleichungen x = t,
Dekomposition ist nicht mehr anwendbar, die Gleichungen sind richtig orientiert
und x kommt nur einmal in Γ vor, insbesondere nicht in t. 2
?
?
Lemma 5.23 Sei Γ = {x1 = t1 , . . . , xk = tk } ein Gleichungssystem in gelöster
Form. Dann ist σ := {x1 7→ t1 , . . . , xk 7→ tk } ein allgemeinster Unifikator.
Beweis. Offenbar ist σ ein Unifikator. Zum Nachweis der Allgemeinstheit sei τ
ein Unifikator von Γ. Dann gilt τ σ = τ : τ σxi = τ ti = τ xi für i = 1, . . . , n und
für eine Variable x 6∈ {x1 , . . . , xn } gilt τ σx = τ x. Also ist σ allgemeiner als τ . 2
Satz 5.24 Für jedes unifizierbare Gleichungssystem Γ gibt es bis auf Umbenennung von Variablen genau einen allgemeinsten Unifikator und U1 berechnet
einen solchen.
5.3
Komplexität des Unifikationsalgorithmus
Aussage 5.25 Der Unifikationsalgorithmus U1 hat exponentielle Laufzeit in
der Anzahl der Symbole der zu unifizierenden Terme:
Beispiel 5.26 Zu unifizieren sei:
?
f (x2 , x3 , x4 , . . . , xn ) = f (g(x1 , x1 ), g(x2 , x2 ), g(x3 , x3 ), . . . , g(xn−1 , xn−1 ))
Der Unifikationsalgorithmus arbeitet dann folgendermaßen:
Automatische Deduktion, SS 2015, vom 12.05.2015
104
?
f (x2 , x3 , x4 , . . . , xn ) = f (g(x1 , x1 ), g(x2 , x2 ), g(x3 , x3 ), . . . , g(xn − 1, xn − 1))
?
?
?
?
→ x2 = g(x1 , x1 ), x3 = g(x2 , x2 ), x4 = g(x3 , x3 ), . . . , xn = g(xn−1 , xn−1 )
(Dekomposition)
?
?
?
→ x2 = g(x1 , x1 ), x3 = g(g(x1 , x1 ), g(x1 , x1 )), . . . , xn = g(xn−1 , xn−1 )
(Anwendung, x2 )
?
?
→ x2 = g(x1 , x1 ), x3 = g(g(x1 , x1 ), g(x1 , x1 )),
?
?
x4 = g(g(g(x1 , x1 ), g(x1 , x1 )), g(g(x1 , x1 ), g(x1 , x1 ))), . . . , xn = g(xn−1 , xn−1 )
(Anwendung, x3 )
Da die Terme exponentiell anwachsen, benötigt man in diesem Beispiel exponentiell viel Platz.
Eine Verbesserung ist die Verwendung von Sharing, d.h.gerichteten Graphen
statt Bäumen). Danach wird der Platzbedarf stark verbessert (linear), allerdings
benötigt der (naive) occurs-check exponentiellen Aufwand. Auch diesen kann
man verbessern durch Verwendung von optimierten Graph-algorithmen, so dass
man nach Optimierung einen im schlimmsten Fall quadratischen Algorithmus
erhält.
Es gibt jedoch Unifikationsalgorithmen, die durch geschickte Repräsentation der
Terme eine lineare Komplexität haben [?]. Allerdings sind für praktische Zwecke
die Varianten des Algorithmus von Martelli und Montanari geeigneter [?].
5.3.1
Ein effizienterer Unifikationsalgorithmus nach Martelli und
Montanari
?
Er basiert auf Multigleichungen, die mehrere Gleichungen bedeuten, z.B. s1 =
?
?
?
s2 = s3 entspricht den zwei Gleichungen s1 = s2 und s2 = s3 . Außerdem werden
nur spezielle flache Terme in Multigleichungen aufgenommen, d.h nur solche mit
?
Tiefe 1 und die als Unterterme nur Variablen haben. Z.B. wird f (g(x), y) = z
?
?
als f (x0 , y) = z, x0 = g(x) behandelt. Nach einer Vorbereitung, das Flachmachen (Flattening), das in linearer Zeit durchgeführt werden kann, startet der
Unifikationsalgorithmus mit einer Multi-Menge von Multigleichungen, die nur
flache Terme enthalten. Die interne Darstellung der Multimengen ist meist eine
Liste, kann aber bei großen auch eine Map sein. Der Algorithmus operiert auf
einem Paar: der Multimenge der gelösten und der Mutimenge der ungelösten
Gleichungen, bezeichnet mit Γs , Γu , eobei die Multimenge der gelösten am Anfang leer ist.
Es werden folgende Regeln angewendet:
105
Automatische Deduktion, SS 2015, vom 12.05.2015
?
(Merge)
?
Γs ; Γu ∪ {x = M1 } ∪ {x = M2 }
?
?
(solved)
(single)
?
Γs ; Γu ∪ {x = M1 = M2 }
?
Γs ; Γu ∪ {x = s = M }
?
wenn x ∈
/ Var (Γu , s, M )
?
Γs ∪ {x = s}; Γu ∪ {s = M }
Γs ; Γu ∪ {s}
Γs ; Γu
?
(decompose)
?
Γs ; Γu ∪ {f (x1 , . . . , xn ) = f (y1 , . . . , yn ) = M }
?
?
?
Γs ; Γu ∪ {f (y1 , . . . , yn ) = M } ∪ {x1 = y1 } ∪ . . . ∪ {xn = yn }
Die neu eingeführten Variablen repräsentieren Knoten in einem gerichteten
Graphen, und optimieren dadurch das Sharing. Die einzigen Objekte, die
kopiert werden, sind flache Terme, was in konstanter Zeit passieren kann und
somit keine exponentielle Vergrößerung der Terme bzw. der Gleichungsmenge
bewirkt. Die Erkennung, dass die Menge nicht unifizierbar ist, erfolgt durch
zwei Regeln:
?
(Clash)
?
Γs ; Γu ∪ {f (. . .) = g(. . .) = M }
Nicht unifizierbar
?
(cycle)
?
Es gibt eine Folge x1 = s1 , . . . xn = sn von Gleichungen
in Γu ∪ Γs ,
so dass x1 ∈ Var (sn ) und xi ∈ Var (si−1 ), i = 2, . . . , n
und mindestens ein si ist keine Variable
Nicht unifizierbar
Argumentation zur Komplexität: Wir betrachten dabei nur den ungelösten Teil.
(decompose) vermindert die Anzahl der Vorkommen der Funktionssymbole, und
erhöht die Anzahl der Vorkommen von Variablen maximal um die (maximale)
Stelligkeit von Funktionssymbolen. die anderen Regeln verkleinern jeweils die
Anzahl der Terme im ungelösten Teil. Da man die Datenstrukturen verwalten
muss, ergibt sich noch ein logarithmischer Faktor in der Komplexität. Die cycleRegel kann in linearer durchgeführt werden analog zum topologischen Sortieren.
Wenn man die Lösung bereitstellen will, muss man darauf achten, dass Γs nicht
die Substitution selbst darstellt, sondern noch nicht voll eingesetzt ist: Z.B.
?
?
könnte es {x = f (y, y), y = g(z)} sein. Beim vollen Einsetzen kann sich wieder eine exponentiell große Substitution ergeben, so dass man entweder DAGs
nehmen muss, oder bei der iterierte Form der Einsetzungen bleiben muss.
Wir schauen uns an, wie der Algorithmus das exponentielle Wachstum im obigen
Beispiel verhindert.
Beispiel 5.27 Gleichungen:
?
f (x2 , x3 , x4 , . . . , xn ) = f (g(x1 , x1 ), g(x2 , x2 ), g(x3 , x3 ), . . . , g(xn−1 , xn−1 ))
Automatische Deduktion, SS 2015, vom 12.05.2015
Nach dem Flachmachen sind die Gleichungen:
?
?
f (x2 , x3 , x4 , . . . , xn ) = f (y1 , . . . , yn−1 ), y1
= g(x1 , x1 ), . . . , yn−1
g(xn−1 , xn−1 )).
Der Multigleichungsalgorithmus macht daraus in einigen Schritten:
?
?
?
?
x2 = y1 , . . . , xn = yn−1 , y1 = g(x1 , x1 ), . . . yn−1 = g(xn−1 , xn−1 )).
?
?
?
?
?
?
x2 = y1 = g(x1 , x1 ), x3 = y2 = g(x2 , x2 ), . . . xn = yn−1 = g(xn−1 , xn−1 )).
106
?
=
Wenn wir nur die Variablen xi betrachten, die im Originalproblem vorkommen,
dann erhalten wir als Darstellung des Unifikators (Diese wird teilweise auch
Dreiecks-Darstellung genannt)
xn
xn−1
...
x2
7→
7→
...
7→
g(xn−1 , xn−1 )
g(xn−2 , xn−2 )
...
g(x1 , x1 )
Das zeigt deutlich die Struktur der Lösung und warum die eingesetzte Lösung
exponentiell groß wird ohne Sharing.
Man kann den Algorithmus auch noch abwandeln druch eine Regel, die Variablen
durch Variablen ersetzen kann.
5.4
Der allgemeine Resolutionskalkül
Wir können nun zusammenfassend sagen, wie der Resolutionskalkül auf Klauselmengen arbeitet:
Definition 5.28 Der Resolutionskalkül ist ein Kalkül, der Klauselmengen in
Klauselmengen transformiert mit den zwei folgenden Regeln:
1. Sei C eine Menge von Klauseln. Sei R eine Resolvente von zwei (nicht
notwendig verschiedenen) Klauseln in CS, wobei der zugehörige Unifikator
ein allgemeinster ist. Dann bilde C 0 := C ∪ {R}
2. Sei C eine Menge von Klauseln. Sei F ein Faktor einer der Klauseln
in CS, wobei der zugehörige Unifikator ein allgemeinster ist. Dann bilde
C 0 := C ∪ {F }
5.5
Schritte zum Vollständigkeitsbeweis der allgemeinen
Resolution
Definition 5.29 Herbrand Interpretation: Sei C eine Klauselmenge über der
Signatur Σ und V die Menge der Variablen. Eine Herbrand Interpretation ist
eine Interpretation (IV , T (Σ, ∅), P ) wobei
• T (Σ, ∅) die Grundtermalgebra ist (ohne Variablensymbole) (auch Herbrand Universum genannt) und
Automatische Deduktion, SS 2015, vom 12.05.2015
107
• IV eine Variablenbelegung in T (Σ, ∅), d.h. eine Abbildung auf Grundterme
• P für jedes Prädikatensymbol eine Relation auf Grundtermen festlegt.
(Für jedes Prädikatensymbol kann man die Relation dadurch festlegen, dass man
eine Menge von Atomen angibt, die als wahr in der Interpretation angenommen
werden sollen.)
Bemerkung: Für eine feste Klauselmenge unterscheiden sich die HerbrandInterpretationen nur durch die Interpretation der Variablen und Prädikatensymbole.
Satz 5.30 (Herbrand Theorem) Für eine unerfüllbare Menge C von Klauseln
gibt es eine endliche unerfüllbare Menge von Grundinstanzen
Beweis. 1.) Die Menge Cgr aller Grundinstanzen von C ist unerfüllbar:
Wir nehmen an, dass die Menge Cgr aller Grundinstanzen von C erfüllbar ist,
von einer Interpretation I. Wir konstruieren eine Herbrandinterpretation IH
für Cgr wie folgt: In jeder Grundklausel wird mindestens ein Literal von I wahr
gemacht. All diese Literale zusammen ergeben dann genau eine (Herbrand) Interpretation der Prädikatensymbole, die in C vorkommen.
Um zum Widerspruch zu kommen, müssen wir jetzt zeigen, dass diese Herbrandinterpretation auch die ursprüngliche Klauselmenge C erfüllt. Das heißt, für
jede Klausel D und für jede Belegung der Variablen x1 , . . . , xn in der Klausel
mit Grundtermen muss gelten, dass IH [t1 /x1 , . . . , tn /xn ] |= D. Es ist jedoch
{x1 7→ t1 , . . . , xn 7→ tn }C gerade eine der Grundklauseln, die von IH erfüllt
wird. Da bei Herbrand-Interpretationen Variablenbelegungen dasselbe sind wie
Substitutionen, gilt: IH [t1 /x1 , . . . , tn /xn ] |= C. Also wird die Klauselmenge C
von IH erfüllt, und das ist der gesuchte Widerspruch.
2.) Es gibt eine endliche unerfüllbare Teilmenge von Cgr :
Annahme: jede endliche Teilmenge von Cgr ist erfüllbar. Wir konstruieren damit eine Interpretation von von Cgr . Sei A1 , A2 , . . . eine Aufzählung der Atome
einer Herbrandbasis
(alle Grundatome).
S
Sei B := Bn wobei Bn := {B | B : {A1 , A2 , . . . , An } → {0, 1}}. Das ist die
Menge aller möglichen (Teil-) Belegungen von Atomen. Dies ergibt einen Baum
mit den Belegungen als Knoten; von B nach B 0 geht genau dann eine gerichtete Kante, wenn B ∈ Bn , B 0 ∈ Bn+1 und B und B 0 auf {A1 , A2 , . . . , An }
übereinstimmen. Ein Knoten B ∈ Bn in diesem Baum heißt abgeschlossen,
wenn es eine Klausel in Cgr gibt, so dass alle in Cgr vorkommenden Atome in
{A1 , A2 , . . . , An } sind und B diese Klausel zu falsch evaluiert. Offenbar ist auch
jeder Nachfolgeknoten eines abgeschlossenen Knotens wieder abgeschlossen. Für
jedes n gibt es einen nicht abgeschlossenen Knoten in Bn , denn anderenfalls gibt
es für jeden Knoten in Bn eine Klausel in Cgr , die zu falsch evaluiert wird. Dies
sind endlich viele Klauseln, deren Konjunktion könnte dann von keiner Interpretation erfüllt werden, was ein Widerspruch zur obigen Annahme ist. Der
Teilbaum der nicht abgeschlossenen Knoten ist ein unendlicher Baum mit endlicher Verzweigungsrate. Nach König’s Lemma gibt es einen unendlichen Pfad
108
Automatische Deduktion, SS 2015, vom 12.05.2015
in diesem Baum. Dieser unendliche Pfad stellt gerade eine Interpretation von
Cgr dar. Dies ist ein Widerspruch zur Annahme, dass Cgr unerfüllbar ist. Damit
haben wir gezeigt, dass es eine endliche unerfüllbare Teilmenge von Cgr gibt. 2
Das hier nicht bewiesene Kompaktheitstheorem für P L1 sagt aus, dass jede unerfüllbare unendliche Menge von Aussagen eine endliche, unerfüllbare Teilmenge
hat. Unter Ausnutzung dieses Satzes kann man im zweiten Teil des obigen Beweises sofort schließen, dass es eine unerfüllbare endliche Teilmenge von Cgr
geben muss.
Das Herbrand Theorem können wir jetzt für folgende Argumentation benutzen:
Für eine unerfüllbare Klauselmenge gibt es offensichtlich eine endliche Menge
von Grundinstanzen, so dass diese Grundklauselmenge unerfüllbar ist. Diese
Grundklauselmenge können wir durch Resolution ohne Unifikation widerlegen,
das sagte gerade das Theorem 5.5. Was wir jetzt noch brauchen ist die Möglichkeit, diese Widerlegung auf der variablenfreien Ebene zu einer Widerlegung auf
der Ebene der Originalklauseln zu liften“, d.h. wir müssen zeigen, dass es für
”
jeden Grundresolutionsschritt eine entsprechende allgemeine Resolution gibt, so
dass die Grundresolvente eine Instanz der allgemeinen Resolvente ist. Das leistet
das sogenannte Lifting Lemma
Lemma 5.31 Lifting Lemma
Seien C und D zwei beliebige Klauseln ohne gemeinsame Variablen, Cgr und
Dgr zwei Grundinstanzen davon. Für jede Resolvente Rgr zwischen Cgr und Dgr
gibt es eine entsprechende Resolvente R von (evtl. iterierten) Faktoren (siehe
Definition. 5.13) von C und D, so dass Rgr eine Grundinstanz von R ist.
Beweis. siehe einschlägige Literatur. 2
Satz 5.32 Vollständigkeit der Resolution und Faktorisierung mit allgemeinsten
Unifikatoren: Für jede unerfüllbare Klauselmenge gibt es einen Widerlegungsbeweis mittels Resolution und Faktorisierung.
Beweis. Wir sammeln einfach alle bisherigen Ergebnisse auf: Nach dem Herbrand Theorem (5.30) gibt es eine endliche unerfüllbare Grundklauselmenge,
für die man nach Theorem 5.5 eine Resolutionswiderlegung findet. Durch Induktion nach der Anzahl der Grundresolutionen bekommt man jetzt mittels des
Lifting Lemmas, dass es für jede dieser Grundresolutionen eine entsprechende
Sequenz von Faktorisierungen und Resolution mit allgemeinsten Unifikatoren
gibt, so dass die Resolvente allgemeiner ist als die Grundresolvente. Für die allerletzte Grundresolvente, die leere Klausel, ist die einzige allgemeinere Klausel
ebenfalls die leere Klausel. Daher wird auf der allgemeineren Ebene ebenfalls
die leere Klausel produziert. 2
Resolution
*
2 allgemein
C1
C2
Herbrand
Theorem
Instanz
C1,gr
Grund-Resolution
Lifting
C2,gr
*
2 Grund
Automatische Deduktion, SS 2015, vom 12.05.2015
5.6
109
Ein Beispiel für Resolutionsbeweise: Hilbertkalkül
Der Hilbertkalküle gibt es für viele Logikvarianten. Die Idee ist stets, eine Menge von Axiomen: die als bereits wahr angenommenen Theoreme der Logik, und
als einzige Schlussregel den Modus ponens zu nehmen. Die Menge der herleitbaren Formeln sind dann die Sätze der entsprechenden Hilbertlogik. Diese Kalküle
bieten eine rein operationale Definition von Logik(en), die keine Semantik erfordert.
Wir formulieren in P L1 Aussagen über eine andere Logik, nennen wir sie MINI.
Dies ist eine Implementierung einer Variante des Hilbertkalküls für Aussagenlogik. Die Syntax dieser Logik MINI lasse nur nullstellige Prädikatensymbole und
einen Implikationsjunktor IMP zu. Wir betrachten einen Kalkül für MINI mit
zwei logischen Axiomen:
X IMP (Y IMP X)
(X IMP (Y IMP Z)) IMP ((X IMP Y ) IMP (X IMP Z))
und der einzigen Schlussregel Modus Ponens
X,
(X IMP Y )
Y
D.h. der Kalkül arbeitet auf Mengen von Formeln, und fügt entsprechend der
Schlussregel Modus ponens neue Formeln hinzu. Allerdings ist diese Schlussregel
mit Instanziierung verbunden, so dass diese korrekter lauten sollte:
X1 ,
(X2 IMP Y )
σ(Y )
σ ist allgemeinster Unifikator von X1 , X2
Dabei stehen X1 , X2 , Y, Z jeweils für beliebige MINI-Formeln.
Wir wollen zeigen, dass im MINI-Kalkül die Formel (X IMP X) für beliebige
MINI-Formeln X aus den Axiomen ableitbar ist.
Um die Aussagen über MINI in P L1 zu formulieren, benutzen wir ein
P L1 -Prädikatensymbol ableitbar und kodieren den Junktor als ein P L1 Funktionssymbol imp“ (in Präfixschreibweise). Dadurch werden MINI-Formeln
”
als P L1 -Terme dargestellt. Der MINI-Kalkül lässt sich dann folgendermaßen
durch P L1 -Formeln beschreiben:
F1: ∀x, y :
ableitbar(imp(x, imp(y, x)))
F2: ∀x, y, z : ableitbar(imp(imp(x, imp(y, z)), imp(imp(x, y), imp(x, z))))
F3: ∀x, y :
ableitbar(x) ∧ ableitbar(imp(x, y)) =⇒ ableitbar(y)
Wir wollen zeigen, dass daraus folgende Formel folgt:
B : ∀x : ableitbar(imp(x, x))
Die Klauselform von F 1 ∧ F 2 ∧ F 3 ∧ ¬B ist eine Menge von vier Klauseln, wobei die Variable in ¬B durch eine nullstellige Skolemfunktion, also eine
Skolemkonstante c ersetzt ist:
Automatische Deduktion, SS 2015, vom 12.05.2015
C1 =
C2 =
C3 =
B
=
110
ableitbar(imp(x1 , imp(y1 , x1 )))
ableitbar(imp(imp(x2 , imp(y2 , z2 )), imp(imp(x2 , y2 ), imp(x2 , z2 ))))
¬ableitbar(x3 ), ¬ableitbar(imp(x3 , y3 )), ableitbar(y3 )
¬ableitbar(imp(c, c))
Im folgenden bezeichne C, n das n-te Literal einer Klausel C, das Kürzel
C, n+D, m ` R steht für eine Anwendung der Resolutionsregel mit den entsprechenden Resolutionsliteralen der Elternklauseln C und D und der Resolvente R.
Die Variablen jeder Resolvente werden systematisch umbenannt, um Namenskonflikte zu vermeiden.Wir führen folgende Resolutionsableitung durch:
C1 + C3, 1{x3 7→ imp(x1 , imp(y1 , x1 ))}
` R10 = ¬ableitbar(imp(imp(x1 , imp(y1, x1 )), y3 )), ableitbar(y3)
→ R1 = ¬ableitbar(imp(imp(x4 , imp(y4 , x4 )), z4 )), ableitbar(z4)
C2 + R1, 1{z4 7→ imp(imp(x4 , y4 ), imp(x4 , x4 )), x2 7→ x4 , y2 7→ y4 , z2 7→ x4 }
` R20 = ableitbar(imp(imp(x4 , y4 ), imp(x4 , x4 )))
→ R2 = ableitbar(imp(imp(x5 , y5 ), imp(x5 , x5 )))
R2 + C3, 2{x3 7→ imp(x5 , y5 ), y3 7→ imp(x5 , x5 )}
` R30 = ¬ableitbar(imp(x5 , y5 )), ableitbar(imp(x5 , x5 ))
→ R3 = ¬ableitbar(imp(x6 , y6 )), ableitbar(imp(x6 , x6 ))
C1 + R3, 1{x6 7→ x1 , y6 7→ imp(y1 , x1 )}
` R40 = ableitbar(imp(x1 , x1 ))
→ R4 = ableitbar(imp(x7 , x7 ))
B + R4 ` R5 = 2
5.7
Löschregeln: Subsumtion, Tautologie und Isoliertheit
Wenn man einen automatischen Beweiser, der nur mit Resolution und Faktorisierung arbeitet, beobachtet, dann wird man sehr schnell zwei Arten von Redundanzen feststellen: Der Beweiser wird Tautologien ableiten, d.h. Klauseln, die
ein Literal positiv und negativ enthalten, z.B. {P, ¬P, . . .}. Diese Klauseln sind
in allen Interpretationen wahr und können daher zur Suche des Widerspruchs
(leere Klausel) nicht beitragen. Man sollte entweder ihre Entstehung verhindern
oder sie wenigstens sofort löschen. Weiterhin wird der Beweiser Klauseln ableiten, die Spezialisierungen von schon vorhandenen Klauseln sind. Z.B. wenn
schon {P (x), Q} vorhanden ist, dann ist {P (a), Q} aber auch {P (y), Q, R}, eine Spezialisierung. Alles was man mit diesen (subsumierten) Klauseln machen
kann, kann man genausogut oder besser mit der allgemeineren Klausel machen.
Daher sollte man subsumierte Klauseln sofort löschen. Es kann auch passieren,
dass eine neue abgeleitete Klausel allgemeiner ist als schon vorhandene Klauseln
(die neue subsumiert die alte).
Pragmatisch gesehen, muss man auch verhindern, dass bereits hergeleitete und
hinzugefügte Resolventen (Faktoren) noch einmal hinzugefügt werden. D.h. eine
Buchführung kann sinnvoll sein.
Automatische Deduktion, SS 2015, vom 12.05.2015
111
Im folgenden wollen wir uns die drei wichtigsten Löschregeln und deren Wirkungsweise anschauen und deren Vollständigkeit im Zusammenhang mit der
Resolution zeigen.
Definition 5.33 Isoliertes Literal
Sei C eine Klauselmenge, D eine Klausel in C und L ein Literal In D. L heißt
isoliert, wenn es keine Klausel D0 6= D mit einem Literal L0 in C gibt, so dass
L und L0 verschiedenes Vorzeichen haben und L und L0 unifizierbar sind.
Die entsprechende Reduktionsregel ist:
Definition 5.34 ISOL: Löschregel für isolierte Literale
Wenn D eine Klausel aus C ist mit einem isolierten Literal, dann lösche die
Klausel D aus C.
Der Test, ob ein Literal in einer Klauselmenge isoliert ist, kann in Zeit
O(n3 log(n)) durchgeführt werden.
Dass diese Regel korrekt ist, kann man mit folgender prozeduralen Argumentation einsehen: Eine Klausel D, die ein isoliertes Literal enthält, kann niemals in
einer Resolutionsableitung der leeren Klausel vorkommen, denn dieses Literal
kann mittels Resolution nicht mehr entfernt werden und ist deshalb in allen
nachfolgenden Resolventen enthalten. Dies gilt auch für eine eventuelle spätere Resolution mit einer Kopie von D. Also kann ein Resolutionsbeweis in der
restlichen Klauselmenge gefunden werden. Somit gilt:
Satz 5.35 Die Löschregel für isolierte Literale kann zum Resolutionskalkül hinzugenommen werden, ohne die Widerlegungsvollständigkeit zu verlieren.
Die Löschregel für isolierte Literale gehört gewissermaßen zur Grundausstattung
von Deduktionssystemen auf der Basis von Resolution. Sie kann mögliche Eingabefehler finden und kann Resolventen mit isolierten Literalen wieder entfernen.
Der Suchraum wird im allgemeinen jedoch nicht kleiner, denn die Eingabeformeln enthalten normalerweise keine isolierten Literale. Das Löschen von Resolventen mit isolierten Literalen ist noch nicht ausreichend. Denn ein nachfolgender Resolutionsschritt könnte genau denselben Resolutionsschritt noch einmal
machen. Das Klauselgraphverfahren z.B.hat diese Schwächen nicht.
Beispiel 5.36 Betrachte die Klauselmenge
C1 :
C2 :
C3 :
C4 :
P (a)
P (b)
¬Q(b)
¬P (x), Q(x)
Diese Klauselmenge ist unerfüllbar. Am Anfang gibt es keine isolierten Literale.
Resolviert man C1 + C4 so erhält man die Resolvente {Q(a)}. Das einzige
Literal ist isoliert. Somit kann diese Resolvente gleich wieder gelöscht werden.
D.h. dieser Versuch war eine Sackgasse in der Suche.
Automatische Deduktion, SS 2015, vom 12.05.2015
112
Eine weitere mögliche Redundanz ist die Subsumtion
Definition 5.37 Seien D und E Klauseln. Wir sagen dass D die Klausel E
subsumiert, wenn es eine Substitution σ gibt, so dass σ(D) ⊆ E
D subsumiert E wenn D eine Teilmenge von E ist oder allgemeiner als eine
Teilmenge von E ist. Zum Beispiel {P (x)} subsumiert {P (a), P (b), Q(y)}. Dass
eine Klausel E, die von D subsumiert wird, redundant ist, kann man sich folgendermaßen klarmachen:
Wenn eine Resolutionsableitung der leeren Klausel irgendwann E benutzt, dann
müssen in nachfolgenden Resolutionsschritten die überflüssigen“ Literale wie”
der wegresolviert werden. Hätte man statt dessen D benutzt, wären diese extra
Schritte überflüssig.
Die entsprechende Reduktionsregel ist:
Definition 5.38 SUBS: Löschregel für subsumierte Klauseln
Wenn D und E Klauseln aus C sind, D subsumiert E und E hat nicht weniger
Literale als D, dann lösche die Klausel E aus C .
Beispiel 5.39
• P subsumiert {P, S}.
• {Q(x), R(x)} subsumiert {R(a), S, Q(a)}
• {E(a, x), E(x, a)} subsumiert {E(a, a)} D.h eine Klausel subsumiert einen
ihren Faktoren. In diesem Fall wird nicht gelöscht.
• {¬P (x), P (f (x))} impliziert {¬P (x), P (f (f (x))} aber subsumiert nicht.
Die Subsumtionslöschregel unterscheidet man manchmal noch nach Vorwärtsund Rückwärtsanwendung. Vorwärtsanwendung bedeutet, dass man gerade neu
erzeugte Klauseln, die subsumiert werden, löscht. Rückwärtsanwendung bedeutet, dass man alte Klauseln löscht, die von gerade erzeugten Klausel subsumiert
werden. Die Bedingung, dass D nicht weniger Literale als C haben muss, verhindert, dass Elternklauseln ihre Faktoren subsumieren. Die Einschränkung auf das
syntaktische Kriterium θ(C) ⊆ D für Subsumtion ist zunächst mal pragmatischer Natur. Es ist nämlich so, dass man die allgemeine Implikation, C =⇒ D,
nicht immer entscheiden kann. Selbst wenn man es entscheiden könnte, wäre
es nicht immer geschickt, solche Klauseln zu löschen. Z.B. folgt die Klausel
{¬P (x), P (f (f (f (f (f (x))))))} aus der Klausel {¬P (x), P f (x))}. Um eine Widerlegung mit den beiden unären Klauseln P (a) und ¬P (f (f (f (f (f (a)))))) zu
finden, benötigt man mit der ersten Klausel gerade zwei Resolutionsschritte,
während man mit der zweiten Klausel 6 Resolutionsschritte benötigt. Würde
man die implizierte Klausel löschen, würde der Beweis also viel länger werden.
Ein praktisches Problem bei der Löschung subsumierter Klauseln ist, dass der
Test, ob eine Klausel C eine andere subsumiert, N P-vollständig ist. Die Komplexität steckt in den Permutationen der Literale beim Subsumtionstest. In der
Automatische Deduktion, SS 2015, vom 12.05.2015
113
Praxis macht das keine Schwierigkeiten, da man entweder die Länge der Klauseln für die Subsumtion testet, beschränken kann, oder den Subsumtionstest
unvollständig ausführet, indem man nicht alle möglichen Permutationen von
Literalen mit gleichem Prädikat ausprobiert.
Um zu zeigen, dass man gefahrlos subsumierte Klauseln löschen kann, d.h. dass
man Subsumtion zu einem Resolutionsbeweiser hinzufügen kann ohne dass die
Widerlegungsvollständigkeit verlorengeht, zeigen wir zunächst ein Lemma.
Lemma 5.40 Seien D, E Klauseln in der Klauselmenge C, so dass D die Klausel E subsumiert. Dann wird jede Resolvente und jeder Faktor von E von einer
Klausel subsumiert, die ableitbar ist, ohne E zu verwenden, wobei statt E die
Klausel D oder Faktoren von D verwendet werden.
Beweis. Faktoren von E werden offensichtlich von D subsumiert. Seien E =
{K} ∪ ER und F = {M } ∪ FR , wobei K und M komplementäre Literale sind
und sei R := τ ER ∪ τ FR die Resolvente.
Sei σ(D) ⊆ E.
1. σ(D) ⊆ ER .
Dann ist τ σ(D) ⊆ FR , d.h. D subsumiert die Resolvente R.
2. D = {L} ∪ DR , σDR ⊆ ER und σ(L) = K
Die Resolvente von D mit F auf den Literalen L, M und dem allgemeinsten Unifikator µ ist dann µDR ∪ µFR . Sei τ 0 die Substitution, die auf E
wie τ σ wirkt und auf F wie τ . Diese Definition ist möglich durch Abänderung auf Variablen, da wir stets annehmen, dass verschiedene Klauseln
variablendisjunkt sind. Da µ allgemeinst ist, gibt es eine Substitution λ
mit λµ = τ 0 . Dann ist λµDR ∪ λµFR = τ σDR ∪ τ FR ⊆ τ ER ∪ τ FR . Also
wird die Resolvente Rvon E und F subsumiert von einer Resolvente von
D und F .
3. σDR ⊆ E aber nicht σDR ⊆ ER .
0
und σLi = σL = K. Mit einer ArguDann ist DR = {L1 , . . . , Lm } ∪ DR
mentation ähnlich zu der in Fall 1 sieht man, dass es einen Faktor D0 von
D gibt, der L und alle Li verschmilzt und immer noch E subsumiert. Auf
diesen kann dann Fall 1 angewendet werden.
2
Satz 5.41 Der Resolutionskalkül zusammen mit der Löschung subsumierter
Klauseln ist widerlegungsvollständig.
Beweis. Induktion nach der Länge einer Resolutionsableitung mit Lemma 5.40
als Induktionsschritt und der Tatsache, dass die einzige Klausel, die die leere
Klausel subsumiert, selbst nur die leere Klausel sein kann, liefert die Behauptung. 2
Definition 5.42 Sei D eine Klausel. Wir sagen dass D eine Tautologie ist,
wenn D in allen Interpretationen wahr ist.
Automatische Deduktion, SS 2015, vom 12.05.2015
114
Beispiele für Tautologien sind {P a, ¬P a}, {Qa, P (f (x)), ¬P (f (x), Qb} oder
{P x, ¬P x}. Keine Tautologien sind {P x, ¬P f (y)} und {¬P (x, y), P (y, x)}.
Ein syntaktisches Kriterium zur Erkennung von tautologischen Klauseln ist der
Test, ob zwei komplementäre Literale L, L0 enthalten sind mit gleichen Atomen.
(siehe Beispiel 4.16). Dieser Test ist für die ganze Klauselmenge nach einer groben Abschätzung in Zeit O(n3 ) durchführbar.
Eine genauere Analyse zeigt, dass der Test auch schon O(n2 ) durchführbar:
Nimmt man das erste Literal L einer Klausel C und prft ob diese nochmal in C
vorkommt, so braucht man fr jedes andere Literal L0 : maximal c|L0 | Zeit. Summiert man, dann ist das maximal c|C|. Das muss man fr jedes Literal machen,
also maximal c|C|2 . Fr alle Klauseln summiert, ergibt das cΣ|Ci |2 , was kleiner
als c|CS| ist. Hierbei ist jeweils die Gesamtgröße der Klauseln bzw. Klauselmenge gemeint. Also O(n2 ).
Die entsprechende Reduktionsregel ist:
Definition 5.43 TAUT: Löschregel für tautologische Klauseln
Wenn D eine tautologische Klausel aus der Klauselmenge C ist, dann lösche die
Klausel D aus C.
Da tautologische Klauseln in allen Interpretationen wahr sind, ist die Löschung
von Tautologien unerheblich für die Unerfüllbarkeit.
Satz 5.44 Die Löschregel für tautologische Klauseln ist widerlegungsvollständig.
Beweis. Hierzu zeigt man, dass ein Beweis, der eine tautologische Klausel benutzt, verkürzt werden kann:
Sei C = C1 ∨ L ∨ ¬L eine tautologische Klausel, die im Beweis benutzt wird.
Sei D = D1 ∨ L0 die Klausel, mit der als nächstes resolviert wird. Wir können
annehmen, dass L0 und ¬L komplementär sind mit allgemeinstem Unifikator σ.
Das Resultat ist σ(C1 ∨ L ∨ D1 ). Diese Resolvente wird von D subsumiert. Mit
Lemma 5.40 können wir den Resolutionsbeweis verkürzen, indem D statt dieser
Resolvente genommen wird. Mit Induktion können so alle Tautologien aus einer
Resolutionsherleitung der leeren Klausel eliminiert werden. 2
Es gilt:
Satz 5.45 Der Resolutionskalkül zusammen mit Löschung subsumierter Klauseln, Löschung von Klauseln mit isolierten Literalen und Löschung von Tautologien ist widerlegungsvollständig.
Die Löschung von subsumierten Klauseln kann sehr zur Verkleinerung von
Suchräumen beitragen. Umgekehrt kann das Abschalten der Subsumtionsregel einen Beweis dadurch praktisch unmöglich machen, dass mehr als 99% aller
abgeleiteten Resolventen subsumierte Klauseln sind. Es gibt noch verschiedene
destruktive Operationen auf der Menge der Klauseln, die als Zusammensetzung
von Resolution, Faktorisierung und Subsumtion verstanden werden können.
Zum Beispiel gibt es den Fall, dass ein Faktor eine Elternklausel subsumiert,
wie in {P (x, x), P (x, y)}. Faktorisierung zu {P (x, x)} und anschließende Subsumtionslöschung kann man dann sehen als Ersetzen der ursprünglichen Klausel
Automatische Deduktion, SS 2015, vom 12.05.2015
115
durch den Faktor. Diese Operation wird auch Subsumtionsresolution genannt.
Die Prozedur von Davis und Putnam (siehe Abschnitt 2.7) zum Entscheiden
der Unerfüllbarkeit von aussagenlogische Klauselmengen kann man jetzt leicht
aus Resolution, Subsumtionsregel, Isolationsregel und Fallunterscheidung zusammenbauen.
Automatische Deduktion, SS 2015, vom 12.05.2015
6
116
Einschränkung und Varianten der Resolution
Der Resolutionskalkül hat durch die Verwendung allgemeinster Unifikatoren den
Vorteil, dass die Verzweigungsrate im Suchraum endlich ist, d.h. für jede Klauselmenge gibt es nur endlich viele, und i.a. nicht allzu viele Möglichkeiten,
Resolventen abzuleiten. Um einen wirklich guten Resolutionsbeweiser zu implmentieren und dann bereitszustellen, muss man noch viel mehr Redundanzen
eliminieren und Strategien hinzufügen, die alle syntaktischen und semantischen
Hilfestellungen ausnutzen.
6.1
Set-of-Support
Die am meisten benutzte und oft sehr wirkungsvolle Restriktionsstrategie ist
Set-of-Support. Dazu teilt man die Klauselmenge auf in die Klauseln, die aus
den Voraussetzungen entstanden sind, und die Klauseln, die von der negierten
Behauptung stammen. Man geht davon aus, dass die Voraussetzungen nicht
selbst bereits widersprüchlich sind und deshalb ein Widerspruch nur unter Beteiligung der Behauptung erzielt werden kann. Die Restriktion verbietet deshalb
die Erzeugung von Resolventen zwischen zwei Voraussetzungs-Klauseln.
Wenn im Beispiel {P, Q}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q} die Klausel {P, Q} als
Set-of-Support definiert ist, dann darf man nicht innerhalb der restlichen Klauselmenge resolvieren.
Im allgemeinen hat man die Axiome A1 , . . . An und einen Satz der Form
B1 ∧ . . . ∧ Bn =⇒ F . Wenn Bi , F Literale sind, dann ist in der Klauselform nur ¬F im set-of-support. Die Resolution mit SOS kann also nur damit
anfangen zu schließen. Die Einschränkung ist am Anfang einer Beweissuche mittels Resolution sehr wirksam. Allerdings vergrößert sich die SOS-Menge nach
einigen Resolutionsschritten, so dass die Wirkung nachläßt.
Etwas allgemeiner kann man die Klauselmenge, gegeben eine Struktur S in die
Menge der Klauseln aufteilen, die von S erfüllt werden, und das Komplement.
Ein Widerspruch kann nicht entstehen, wenn zwischen in S gültigen Klauseln
resolviert wird.
6.2
UR-Resolution
Bei der UR-Resolution (englisch: unit resulting resolution) wird jeweils eine
Klausel mit n + 1 Literalen, der sogenannte Nukleus“, simultan mit n unären
”
Klauseln resolviert, so dass eine neue unäre Klausel entsteht. Seien beispielsweise
folgende Klauseln gegeben:
C1
C2
C3
{¬P (x, y), ¬P (y, z), P (x, z)}
{P (a, b)}
{P (b, c)}
Damit sind u.a. folgende Resolutionsschritte möglich:
117
Automatische Deduktion, SS 2015, vom 12.05.2015
C1, 1 + C2
R1, 1 + C3
`
`
R1 = {¬P (b, z), P (a, z)}
R2 = {P (a, c)}
Die zweite Resolvente entsteht aber auch mit einer anderen Ableitung, die sich
nur durch eine unwesentliche Vertauschung der Reihenfolge der Schritte von der
ersten unterscheidet:
C1, 2 + C3
R1, 1 + C2
{R10 = ¬P (x, b), P (x, c)}
R2 = {P (a, c)}
`
`
L1
resolvierbar
simultaner
Unifikator σ
resolvierbar
Die UR-Resolution faßt die beiden Schritte so zusammen, dass R2 unmittelbar
abgeleitet wird und die Reihenfolge der Schritte keine Rolle mehr spielt. Das
allgemeine Schema für UR-Resolution sieht in graphischer Darstellung folgendermaßen aus:
Unit
...
K1
Kn
Klauseln
...
Ln
Ln+1
Nukleus
Ln+1
URResolvente
Diese Darstellung verdeutlicht, dass die unären Klauseln in der Ausgangssituation gleichberechtigt sind, und dass daher die Reihenfolge, in der sie bearbeitet
werden, keine Auswirkung auf das endgültige Resultat haben sollte. Der gemeinsame Unifikator wird berechnet, indem man durch Aneinanderhängen der
Termlisten der unären Klauseln und der Termlisten der Partnerliterale im Nukleus zwei große Termlisten bildet und diese ganz normal unifiziert. Im Transitivitätsbeispiel von oben sind die beiden Termlisten (x, y, y, z) und (a, b, b, c).
Deren Unifikator ist {x 7→ a, y 7→ b, z 7→ c}. Es gibt allerdings auch effizientere
Methoden.
Die Wirkung der UR-Resolution ist nicht nur, dass von der Reihenfolge der
n unären Resolutionsschritte abstrahiert wird. Obendrein werden die als Zwischenergebnisse anfallenden n − 1 Klauseln gar nicht erzeugt, im obigen Beispiel
würden also R1 oder R10 nicht in die Klauselmenge eingefügt. Da es dafür
zunächst keinen Grund gibt, jedenfalls nicht mit irgendeiner gängigen Reduktionsregel, entspricht die UR-Resolution genaugenommen sogar einer ganz neuen
Schlussregel, für die wieder dieselben Eigenschaften gezeigt werden müssen wie
für die Resolutionsregel.
118
Automatische Deduktion, SS 2015, vom 12.05.2015
Die UR-Resolution ist korrekt, da sie immer das gleiche Ergebnis liefert wie eine entsprechende Folge von normalen Resolutionen. Sie ist nicht widerlegungsvollständig wie die folgende unerfüllbare Klauselmenge zeigt:
{{P, Q}, {P, ¬Q}, {¬P, ¬Q}, {¬P, ¬Q}}
Diese Klauselmenge enthält überhaupt keine unären Klauseln und kann damit
nicht mit UR-Resolution widerlegt werden. Für eine eingeschränkte Klasse von
Klauseln ist sie jedoch widerlegungsvollständig, und zwar für die sogenannten
unär widerlegbare Klauselmengen. Diese Klauselmengen kann man widerlegen,
indem man die Resolution dahingehend einschränkt, dass man fordert, dass eine
der beteiligten Elternklauseln immer eine unäre Klausel ist, d.h. aus einem Literal besteht. Es gibt (bis jetzt) keine geeignete syntaktische Charakterisierung
dieser Eigenschaft. Eine wichtige Unterklasse der unär widerlegbaren Klauselmengen sind Mengen von Hornklauseln, die in dieser Vorlesung noch behandelt
werden.
Erinnerung: Eine Hornklausel ist eine Klausel mit maximal einem positiven
Literal. Eine Hornklauselmenge ist eine Klauselmenge die nur aus Hornklauseln
besteht.
Beispiel 6.1 UR-Resolution zur Aktionsplanung Typische Blockswelt“:
”
initial state
B
A
1
goal state
2
1
A
B
2
Gesucht ist eine Aktionsfolge, die den initialen Zustand in den Zielzustand transformiert.
Axiomatisierung des Problems:
Es wird verwendet:
• at(z, x, l): im Zustand z ist Block x auf Position l.
• on(z, x, y): im Zustand z ist Block x auf Block y.
• cl(z, x): im Zustand z ist Block x frei.
• M (x, l): Block x geht nach Position l.
• n(x, y): Zustand nach Aktion y vom Zustand x aus.
• Konstanten: S: Startzustand, A, B: Bausteine.
Automatische Deduktion, SS 2015, vom 12.05.2015
119
Allgemeine Regel:
C1 : 1 6= 2
Ausgangszustand:
C2 : at(S, A, 1)
C3 : at(S, B, 1)
C4 : cl(S, B)
C5 : on(S, B, A)
Axiomatisierung der Aktion M (x, l) :
C6 : ∀s, x, l : (cl(s, x) =⇒ at(n(s, M (x, l)), x, l))
C7 : ∀s, x, y, l1 , l2 : (on(s, x, y) ∧ at(s, x, l1 ) ∧ l1 6= l2 =⇒ cl(n(s, M (x, l2 )), y))
C8 : ∀s, x, y, l(at(s, x, l) =⇒ at(n(s, M (y, l)), x, l))
Ziel:
∃z(at(z, A, 2) ∧ at(z, B, 2))
Klauselform:
C1 :
C2 :
C3 :
C4 :
C5 :
C6 :
C7 :
C8 :
Z:
1 6= 2
at(S, A, 1)
at(S, B, 1)
cl(S, B)
on(S, B, A)
¬cl(s, x), at(n(s, M (x, l)), x, l)
¬on(s, x, y), ¬at(s, x, l1), l1 = l2, cl(n(s, M (x, l)), y)
¬at(s, x, l), at(n(s, M (y, l)), x, l)
¬at(z, A, 2), ¬at(z, B, 2)
UR-Resolutionsfolge:
C6 + C4
`
C7 + C5, C2, C1
`
C6 + R2
`
C8 + R1
`
Z + R3, R4
`
R1 : at(n(S, M (B, l)), B, l)
{s 7→ S, x 7→ B}
R2 : cl(n(S, M (B, 2)), A)
{s 7→ S, x 7→ B, y 7→ A, l1 7→ 1, l2 7→ 2}
R3 : at(n(n(S, M (B, 2)), M (A, l)), A, l)
{s 7→ n(S, M (B, 2)), x 7→ B}
R4 : at(n(n(S, M (B, l)), M (y, l)), B, l)
{s 7→ n(S, M (B, l)), x 7→ B}
R5 : 2
{l 7→ 2, z 7→ n(n(S, M (B, 2)), M (A, 2))}
Die gesuchte Aktionsfolge ist also M (B, 2)M (A, 2).
120
Automatische Deduktion, SS 2015, vom 12.05.2015
6.3
Hyperresolution
Die Hyperresolution kann man als Verallgemeinerung der UR-Resolution
ansehen. Sie wurde ebenfalls von John Alan Robinson entworfen und wird
durch folgendes Schema beschrieben:
R1 −K1 . . .
Rn −Kn
Elektronen
simultaner
Unifikator σ
+L1 . . .
σ( R1 . . .
+Ln −Ln+1
...
Rn −Ln+1 . . .
−Ln+m
−Ln+m )
Nukleus
HyperResolvente
Als Nukleus“ dient eine Klausel, die mindestens ein positives Literal enthält.
”
Solche Klauseln gibt es in unerfüllbaren Klauselmengen immer. Für jedes positive Literal des Nukleus benötigt man ein sogenanntes Elektron“, eine Klausel
”
mit nur negativen Literalen. Rein negative Klauseln kommen in unerfüllbaren
Klauselmengen ebenfalls immer vor. Der Nukleus wird wieder simultan mit allen
Elektronen resolviert, wodurch eine rein negative Klausel entsteht, die wiederum
als Elektron im nächsten Hyperresolutionsschritt dienen kann. Die rein negativen Klauseln übernehmen hier also die gleiche Rolle wie die unären Klauseln in
der UR-Resolution. Dual zu dieser sogenannten negativen Hyperresolution definiert man die positive Hyperresolution, bei der die Vorzeichen der Literale in
Nukleus und Elektronen gerade vertauscht sind. Da im Normalfall eine negierte
Behauptung nur negative Literale enthält und damit als Elektron für negative
Hyperresolution verwendbar ist, eignet sich diese für Rückwärtsschließen von
der Behauptung in Richtung Voraussetzungen, während positive Hyperresolution gerade umgekehrt von den Voraussetzungen in Richtung auf die Behauptung
arbeiten kann. Beide Varianten der Hyperresolution (mit eingebauter Faktorisierung) sind widerlegungsvollständig für beliebige Klauselmengen.
6.4
Input-Resolution und Unäre Resolution
Unäre Resolution (englisch unit resolution) verbietet die Erzeugung von Resolventen zwischen zwei Elternklauseln, wenn beide mehr als ein Literal enthalten. Positiv formuliert muss also jede Resolvente mindestens eine unäre Elternklausel besitzen. Faktorisierung ist ebenfalls erlaubt. Diese Restriktion schränkt
die möglichen Nachfolgezustände einer Klauselmenge stark ein, führt außerdem
stets zu Resolventen mit weniger Literalen als sie die längere Elternklausel besitzt. Sie ist die Basisvariante zur UR-Resolution.
Beispiel 6.2
( Unäre Resolution)
Wir widerlegen die Klauselmenge {{P (a)}, {¬P (x), P (f (x))}, {¬P (f (f (f (f (a)))))}},
121
Automatische Deduktion, SS 2015, vom 12.05.2015
einmal mit unärer Resolution und dann ohne eine feste Strategie. Zur Darstellung benutzen wir einen sogenannten Widerlegungsbaum, bei dem jeder
Knoten genau die beiden Elternklauseln als Vorgänger hat. Die Wurzel (diesmal
wirklich unten) ist die leere Klausel.
Widerlegungsbäume
mit unärer Resolution
P (a)
¬P (x); P (f (x))
hh q
hhhh qqzz
thhhh qqqqzzz
P (f (a))
qq zz qqq zzz
q
q
xqq zzz P (f (f (a))) zzz zz }zz P (f (f (f (a))))
P (f (f (f (f (a))))
mit allgemeiner Resolution
¬P (x); P (f (x))
ggggg
gs gggg
¬P (x); P (f (f (x))
¬P (x); P (f (x)
¬P (x); P (f (f (x))
ggggg
gs gggg
gg P (a)
ggggg
g
g
g
g
gs gg
¬P (x); P (f (f (f (f (x))))
¬P (f (f (f (f (a))))
P (f (f (f (f (a))))
¬P (f (f (f (f (a))))
f
fffff
fs fffffff
2
ggggg
sggggggg
2
Wie man sieht, ist die unäre Widerlegung länger als die uneingeschränkte. Man
kann das Beispiel leicht erweitern, so dass man sieht, dass die unäre Widerlegung exponentiell länger ist. Das bedeutet aber nicht, dass der Suchraum auch
exponentiell größer ist, im Gegenteil: meist ist der Suchraum erheblich viel kleiner.
Die unäre Resolution ist im allgemeinen nicht widerlegungsvollständig, das
heißt, die leere Klausel ist mit dieser Strategie nicht von allen unerfüllbaren
Klauselmengen aus ableitbar. Immerhin ist die Widerlegungsvollständigkeit für
eine wichtige Klasse von Klauselmengen gewährleistet, die die Klasse der Hornklauselmengen umfaßt und die man mangels einer syntaktischen Charakterisierung die unär widerlegbare Klasse nennt.
6.5
Eingabe-Resolution
Für die Klasse der unär widerlegbaren Klauselmengen ist auch eine andere wichtige Restriktionsstrategie widerlegungsvollständig, die Eingaberesolution (englisch input resolution). Diese verbietet die Erzeugung von Resolventen, deren
Elternklauseln beide Resolventen sind. Positiv formuliert muss also jede Resolvente wenigstens eine Elternklausel aus der initialen Klauselmenge besitzen. Der
wesentliche Vorteil dieser Restriktion besteht daran, dass von allen möglichen
Resolutionsschritten ein Resolutionsliteral a priori bekannt ist. Faktorisierung
ist ebenfalls erlaubt. Insbesondere treten damit nur Unifikationen zwischen jeweils einem beliebigen und einem a priori bekannten Term auf, so dass man
für jeden dieser bekannten Terme aus den initialen Klauseln einen speziellen
122
Automatische Deduktion, SS 2015, vom 12.05.2015
Unifikationsalgorithmus kompilieren“ kann. Dieser ist in der Regel wesentlich
”
effizienter als einer, der zwei beliebige Terme unifizieren können muss.
Es gilt: Eine Klauselmenge ist genau dann mit unärer Resolution widerlegbar,
wenn sie mit Inputresolution widerlegbar ist. In diesem Sinne sind beide Strategien gleichwertig.
6.6
Lineare Resolution
Es gibt eine Reihe von Restriktionsstrategien, die die Grundidee der Eingaberesolution möglichst weitgehend erhalten wollen, aber widerlegungsvollständig für
beliebige Klauselmengen sind. Die meisten basieren auf der linearen Resolution.
Man arbeitet immer mit einer aktuellen Klausel, der Zentralklausel. Resolution
mit Eingabe-Klauseln ist erlaubt, ebenso Faktorisierung, wobei diese auch implizit sein kann. Außerdem werden Resolutionsschritte zwischen zwei Resolventen
in den Fällen zugelassen, in denen eine ein Vorgänger“ der anderen ist.
”
Beispiel 6.3 Lineare Resolution
Wir widerlegen die Klauselmenge {P, Q}, {¬P, Q}, {P, ¬Q}, {¬P, ¬Q}, einmal
mit linearer Resolution und einmal mit allgemeiner Resolution:
lineare Resolution
allgemeine Resolution
mit Vorgängerschritt
¬QP
¬P Q
P
¬Q¬P
Q
¬P
PQ
P Q=
==
¬QP
}}
}
~}
P QQQ
QQQ
QQQ
(
¬P QD
DDD
"
2
l ¬P
lll
l
l
lu ll
¬P ¬Q
w
w
w
{w
2
Beispiel 6.4 Folgendes Beispiel zeigt, dass man Faktorisierung braucht. Die
Klauselmenge sei {{P (x), P (y)}, {¬P (x), ¬P (y)}}. Lineare Resolution ohne
Faktorisierung ergibt immer eine Zentralklausel der Länge zwei, wobei auch keine automatische Verschmelzung auftritt.
Durch Verschärfungen dieser Bedingung sowie durch Beschränkungen für die als
Resolutionsliterale zulässigen Literale einer Klausel ergeben sich verschiedene
Varianten der linearen Resolution, zum Beispiel die sogenannte SL-Resolution .
Automatische Deduktion, SS 2015, vom 12.05.2015
6.7
123
SL-Resolution
SL-Resolution ist eine Restriktionsstrategie, die i.a. gekoppelt ist mit einer Ordnungsstrategie [?]. Die Bedeutung der SL-Resolution liegt darin, dass sie eine
prozedurale goal/subgoal“ Sichtweise der Resolution erlaubt. SL-Resolution ist
”
die Strategie, die der logischen Programmiersprache PROLOG zugrundeliegt. Im
folgenden wird die SL-Resolution für Horn Klauseln behandelt. Im Falle der
Hornklauselmengen ist die Faktorisierung nicht notwendig.
6.8
SL-Resolution für Horn Klauseln
Angenommen, wir haben eine Menge von initialen Horn Klauseln und eine Ziel”
klausel“, d.h. ein negiertes Theorem ohne Kopfliteral. Beginnend mit der Zielklausel als Zentralklausel“ wählt SL-Resolution in jedem Schritt die letzte Re”
solvente als neue Zentralklausel und bestimmt die zulässigen Resolutionsschritte
wie folgt: Wenn die aktuelle Zentralklausel C = C1 ∨ C2 ist, wobei C2 der Block
von Literalen ist, der von der letzten Seitenklausel“ abstammt, wird aus C2
”
ein Literal L ausgewählt und dafür eine Resolvente mit einer passenden Klausel
aus der initialen Klauselmenge generiert. Daher resolviert SL-Resolution nur
zwischen der letzten Resolvente und den Eingabeklauseln. Darüberhinaus werden diejenigen Literale zuerst wegresolviert, die als letzte in die Klausel hinein
kamen. Die Auswahl des Literals in der Zentralklausel durch eine Selektionsfunktion ist deterministisch. Dem liegt die Erkenntnis zugrunde, dass die Reihenfolge, in der man Literale einer Klausel wegresolviert“ unerheblich ist – wenn
”
es in einer Reihenfolge nicht geht, geht es auch in keiner anderen. Die Auswahl des Resolutionspartners ist dagegen nichtdeterministisch: eine erfolgreiche
Resolutionskette ist ausreichend.
Beispiel 6.5 SL-Resolution mit Horn Klauseln
Klausel Notation:
Prolog Notation:
C1: A(x, y) ⇐ P (x, y)
A(x, y) ∨ ¬P (x, y)
C2: A(x, z) ⇐ P (x, y) ∧ A(y, z) A(x, z) ∨ ¬P (x, y) ∨ ¬A(y, z)
C3: P (a, b)
C4: P (b, c)
C5: P (c, d)
Theorem:
∃v : A(a, v) ∧ P (v, d)?
Negiertes Theorem: ¬A(a, v) ∨ ¬P (v, d)
In den beiden folgenden Bildern wird der Suchraum für dieses Beispiel und
für zwei verschiedene Selektionsfunktionen dargestellt. Die Selektionsfunktionen
sind:
1. Das am stärksten instanziierte Literal zuerst
2. Das am wenigsten instanziierte Literal zuerst.
Die zuletzt eingeführten Literale, die zuerst wegresolviert werden, sind unterstrichen. Da SL-Resolution einen normalen Suchbaum generiert, können die
normalen Suchalgorithmen angewendet werden [?]. Zum Beispiel Tiefensuche,
124
Automatische Deduktion, SS 2015, vom 12.05.2015
wie sie in Prolog angewendet wird, hat den Vorteil, dass nur ein Ast zu einer Zeit entwickelt wird. Backtracking zu früheren Zuständen kann leicht durch
Stacks implementiert werden. Tiefensuche ist jedoch nicht vollständig wenn der
Suchraum unendliche Äste enthält. Bei Breitensuche und bei heuristischer Suche muss man dagegen alle offenen Knoten abspeichern, was sehr aufwendig
sein kann.
Am meisten instanziierte Literale zuerst:
¬A(a, v); ¬P (v, d)
i
iiii
iiiC1
i
i
i
i
¬P (a, v); ¬P (v, d)
v7→b;C3
¬P (b, d)
C2
¬P (a, y); ¬A(y, v); ¬P (v, d)
y7→b;C3
¬A(b, v); ¬P (v, d)
C1
Fehler
¬P (b, v)¬P (v, d)
v7→c;C4
¬P (c, d)
C5
Erfolg
WWWWW C2
WWWWW
WWWW
¬P (b, y 0 ); ¬A(y 0 , v); ¬P (v, d)
y 0 7→c;C4
¬A(c, v); ¬P (v, d)
C1
TTTT C2
TTTT
TTTT
T
¬P (c, v); ¬P (v, d)
v7→d;C5
¬P (d, d)
Fehler
Rekursion
125
Automatische Deduktion, SS 2015, vom 12.05.2015
Am wenigsten instanziierte Literale zuerst:
¬A(a, v); ¬P (v, d)
i
iiii
iiiC1
i
i
i
i
¬P (a, v); ¬P (v, d)
v7→b;C3
¬P (b, d)
Fehler
C2
¬P (a, y); ¬A(y, v); ¬P (v, d)
C1
UUUU
UUC2
UUUU
U
¬P (y, v); ¬P (a, y); ¬P (v, d)
0
0
¬P
); ¬A(y
v);
¬P(y,
(a,yy),
¬P (v,,d)
KKKTTTT
SSS ∞
SSS
KKK TTTTT
y7→a,v7→b C3
SSS
TTTT
KKK
SSS
TTTC5
SS
KKC4
TTTT
·
¬P (a, a)¬P (b, d)y7→b,v7→cKKK y7→c,v7T
TTTT
→d
KKK
TTTT
KKK
TTTT
K
T
¬P (a, b); ¬P (c, d)
Fehler
¬P (a, c); ¬P (d, d)
C3
¬P (c, d)
Fehler
C5
Erfolg
7
Tableau Kalkül für P L1
Den aussagenlogischen Tableaukalkül kann man auf PL1 erweitern (siehe [?]). Zu
den α (konjunktiven) und β-Formeln (disjunktiven) kommen noch die Quantorformeltypen γ und δ. Bei den α- und β-Formeltypen brauchte man eine Definition der direkten Unterformeln α1 , α2 (bzw. β1 , β2 ). Bei quantifizierten Formeln
benötigt man Instanzen der Formeln.
All-quantor
γ
γ(t)
∀x : Φ
Φ[t/x]
¬∃x : Φ ¬Φ[t/x]
7.1
Ex-quantor
δ
δ(t)
∃x : Φ
Φ[t/x]
¬∀x : Φ ¬Φ[t/x]
Tableau mit Grundtermen
Zunächst eine Variante des Tableaukalküls, der mit Grundtermen arbeitet.
Im Laufe eines Beweises ist es bei dieser Variante notwendig, neue Konstanten
einzuführen. Diese werden auch Parameter genannt. Mindestens eine Konstante
wird immer automatisch erzeugt, da wir annehmen, dass Domains nichtleer sind.
Die Tableau-Erweiterungsregeln, die für die Prädikatenlogik erster Stufe notwendig werden, sind:
126
Automatische Deduktion, SS 2015, vom 12.05.2015
γ
γ(t)
δ
δ(a)
t ist geschlossener Term
der Parameter enthalten kann
a ist ein neuer Parameter
Die Eingabe und die Schließungsregeln sind wie beim aussagenlogischen Tableau. D.h. ein Tableau ist geschlossen, wenn jeder Pfad geschlossen ist, und
dies wiederum heißt, dass in jedem Pfad ein Paar direkt komplementärer Literale vorkommt
Beispiel 7.1 Im folgenden ein Tableaubeweis der Formel
∀x : (P (x) ∨ Q(x)) =⇒ ((∃x : P (x)) ∨ ∀x : Q(x))
Auch hier wird, wie beim aussagenlogischen Tableau, mit der Negation der Formel gestartet.
¬ ∀x : (P (x) ∨ Q(x)) =⇒ ((∃x : P (x)) ∨ ∀x : Q(x))
∀x : (P (x) ∨ Q(x))
¬((∃x : P (x)) ∨ ∀x : Q(x))
¬(∃x : P (x))
¬(∀x : Q(x))
¬Q(c)
¬P (c)
P (c) ∨ Q(c)
P (c) | Q(c)
δ-Expansion
γ-Expansion mit t = c
γ-Expansion mit t = c
β-Expansion
Diese Beweisprozedur terminiert i.a. nicht, im Gegensatz zum aussagenlogischen
Tableau, da man für die γ-Formeln beliebige Terme einsetzen kann, und es auch
nicht ausreicht, sich auf eine endliche Menge zu beschränken.
In dieser Form entspricht der Tableaukalkül der Resolution ohne Unifikation,
aber mit Raten von Klauselinstanzen. Beim Tableaukalkül bleibt die Struktur
der Formeln erhalten, so dass man ohne Normalform und (zunächst) ohne Skolemisierung auskommt.
Aussage 7.2 Das Grund-Tableau-Verfahren für PL1 ist widerlegungsvollständig.
Im Falle, dass es nicht terminiert, wird in mindestens einem Pfad ein Modell
generiert, sofern Fairnessbedingungen erfüllt sind: Jede Formel muss in jedem
Pfad und mit jeder Regel (insbesondere jede γ-Instanz) expandiert werden.
Beweis. siehe [?] 2
Die Eigenschaft, dass im Falle der Erfüllbarkeit ein Modell erzeugt wird, ist
ein Vorteil gegenüber resolutionsbasierten Methoden. Allerdings ist dies eher
theoretisch zu sehen, denn i.a. ist der Pfad dann unendlich lang.
127
Automatische Deduktion, SS 2015, vom 12.05.2015
Eine einfache Heuristik zum Expandieren des Tableaus ist: zuerst α-Regeln,
dann β-Regeln, dann δ-Regeln und dann erst die γ-Regeln. Es ist auch erlaubt,
Mehrfachexpansion von Formeln auf dem gleichen Pfad zu verhindern.
Es ist möglicherweise ausreichend, die δ-Regel pro Formel und Pfad nur einmal
zu verwenden. Allerdings gibt es dann immer noch eine Quelle der Nichtterminierung: Jede γ-Formel muss im Prinzip mit jedem Parameter einmal instanziiert
werden. Dies kann darauf hinauslaufen, dass man immer mehr Parameter erzeugen muss: Nach Erzeugung eines neuen Parameters d muss eine Formel oben im
Tableau unten neu angehängt werden; Diese ergibt nach einigen Schritten eine
neue δ-Formel, die einen neuen Parameter erzeugt, usw.
7.2
Tableau mit freien Variablen
Um den ausufernden Nichtdeterminismus der γ-Regel zu verhindern, kann man
Unifikation ausnutzen, muss dazu aber die Datenstruktur des Tableaus leicht
verändern, und freie Variablen zulassen.
Gleichzeitig werden statt Parametern Skolemterme bei der Expansion verwendet:
γ
γ(x)
δ
δ(f (x1 , . . . , xn ))
x ist neue freie Variable
f neue Skolemfunktion und
x1 , . . . , x n
sind alle bisher in diesem
Pfad benutzten freien Variablen
Definition 7.3
(Instanziierungsregel) Ein Tableau darf verändert werden,
indem man eine Substitution σ auf das ganze Tableau anwendet. Hierbei muss
die Substitution frei für das Tableau sein. D.h. es werden nur die freien Variablen
ersetzt, und die eingesetzten Terme dürfen keine Variablen enthalten, die in
den Bindungsbereich eines Quantors geraten (von einem Quantor eingefangen
werden).
Die Schlussregel ist auch hier, dass nach der Instanziierung alle Pfade ein Paar
komplementärer Literale enthalten müssen.
Z.B. ist die Substitution {x 7→ f (y)} nicht frei für die Formel ∀y :
P (x, f (x), a, z), da das y in f (y) nach der Einsetzung gebunden wäre.
Die Instanziierungsregel und die Schlussregel kann man ersetzen durch eine mit
Unifikation kombinierte Schlussregel:
Definition 7.4 Das Tableau ist geschlossen, wenn es eine Substitution σ gibt
(frei für das Tableau), die das Tableau nach Instanziierung im herkömmlichen
Sinne schließt.
128
Automatische Deduktion, SS 2015, vom 12.05.2015
D.h. statt einer Instanziierung macht man einen Unifikationsversuch, der einen
Unifikator berechnet, der nach Anwendung alle Pfade gleichzeitig schließt. Dafür
muss der Unifikationsalgorithmus geeignete Kandidatenliterale verwenden, und
diese unifizieren.
D.h. hier ist doch noch ein Nichtdeterminismus verborgen, da man auf sehr viele
Weisen solche Kandidaten auswählen kann.
Beispiel 7.5 Im folgenden ein Tableaubeweis mit freien Variablen für die gleiche Formel wie in Beispiel 7.1
∀x : (P (x) ∨ Q(x)) =⇒ ((∃x : P (x)) ∨ ∀x : Q(x))
¬ ∀x : (P (x) ∨ Q(x)) =⇒ ((∃x : P (x)) ∨ ∀x : Q(x))
∀x : (P (x) ∨ Q(x))
¬((∃x : P (x)) ∨ ∀x : Q(x))
¬(∃x : P (x))
¬(∀x : Q(x))
¬Q(a)
¬P (y1 )
P (y2 ) ∨ Q(y2 )
P (y2 ) | Q(y2 )
Geschlossen mit σ = {y1 7→ a, y2 7→ a}
δ-Expansion
γ-Expansion mit y1
γ-Expansion mit y2
β-Expansion
Folgendes Beispiel zeigt, wie ein Modell erzeugt wird:
Beispiel 7.6 Betrachte die Formel (∃x : P (x)) =⇒ (∀x : P (x)). Diese ist
keine Satz. Versucht man einen Tableaubeweis, so erhält man ein Gegenbeispiel
(bzw. ein Modell für die Negation).
¬((∃x : P (x)) =⇒ (∀x : P (x)))
∃x : P (x)
¬(∀x : P (x)
P (a)
¬P (b)
Das erzeugte Modell hat zwei Elemente: a, b. Die Struktur ist {P (a), ¬P (b)},
und in dieser Struktur ist die obige Formel falsch.
Beispiel 7.7 Beweis der Formel
(∃w : ∀x : R(x, w, f (x, w))) =⇒ (∃w : ∀x : ∃y : R(x, w, y))
Automatische Deduktion, SS 2015, vom 12.05.2015
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
129
¬ (∃w : ∀x : R(x, w, f (x, w))) =⇒ (∃w : ∀x : ∃y : R(x, w, y))
∃w : ∀x : R(x, w, f (x, w))
¬(∃w : ∀x : ∃y : R(x, w, y))
∀x : R(x, a, f (x, a))
aus (2) mit δ
¬(∀x : ∃y : R(x, v1 , y))
aus (3) mit γ
¬(∃y : R(g(v1 ), v1 , y))
aus (3) mit δ
R(v2 , a, f (v2 , a))
aus (4) mit γ
¬(R(g(v1 ), v1 , v3 ))
aus (6) mit γ
geschlossen mit Unifikator σ = {v1 7→ a, v2 7→ g(a), v3 7→ f (g(a), a)}
Die Frage nach der Terminierung und der Anzahl der notwendigen Kopien wird
durch folgendes Beispiel illustriert:
Beispiel 7.8 Widerlege die Formelmenge {{P (a) ∨ P (b)}, {∀x : ¬P (x)}}.
(1) P (a) ∨ P (b)
(2) ∀x : ¬P (x)
(3)
¬P (y)
(4)
P (a)
| P (b)
Dieses Tableau lässt sich nicht schließen, da a 6= b. Erst mit einer weiteren
γ-Expansion der Formel ∀x : ¬P (x) auf dem rechten Pfad ist das Tableau geschlossen.
Eine Umstellung der Expansionen zeigt aber, dass man in diesem Fall mit einer
Expansion pro Pfad auskommt.
Vermutlich gilt somit, dass eine γ-Formel, die keine inneren Disjunktionen
enthält, nur einmal pro Pfad expandiert werden muss.
Beispiel 7.9 Widerlege die Formelmenge
{{P (a)}, {¬P (f (f (a)))}, {∀x : P (x) =⇒ P (f (x))}}
130
Automatische Deduktion, SS 2015, vom 12.05.2015
(1)
P (a)
(2)
¬P (f (f (a)))
(3)
∀x : P (x) =⇒ P (f (x))
(4)
(5)
(6)
(7)
P (y1 ) =⇒ P (f (y1 ))
lll
lll
l
l
ll
lll
¬P (y1 )
P (f (y1 ))
aus (3)
P (y2 ) =⇒ P (f (y2 ))
aus (3)
RRR
RRR
RRR
RRR
RR
¬P (y2 )
P (f (y2 ))
Das Tableau ist geschlossen mit {y1 7→ a, y2 7→ f (a)}.
Man sieht, dass es nicht möglich ist, das Tableau vorher zu schließen bzw. mit
nur einer Kopie der Formel ∀x : P (x) =⇒ P (f (x)) pro Pfad. Eine Erweiterung
dieses Beispiels zeigt auch, dass man die Anzahl der notwendigen γ-Expansionen
pro Pfad im Prinzip nicht begrenzen kann. Aufgrund der Unentscheidbarkeit
kann man durch keinen Trick die Tableau-methode in ein Entscheidungsverfahren verwandeln. D.h. es gibt immer eine Regel, die für das Nichtterminieren
verantwortlich ist.
Die Anzahl der δ-Expansionen kann man auf eine pro Formel und Pfad beschränken. Beschränkt man die Anzahl der erlaubten Kopien pro Formel und
Pfad willkürlich von vorneherein durch die sogenannte Q-Tiefe“, dann termi”
niert das Verfahren.
Die Terminierung kann man wie im aussagenlogischen Fall begründen, wobei
man das verwendete Maß leicht variieren muss:
• Basis ist das Paar (Anzahl der Quantoren, Größe der Formel).
• Pro Pfad die Multimenge der obigen Paare, wobei man für jede Formel
mit Quantoren das Paar sooft in die Multimenge einfügt, wie man die
Formel noch expandieren kann: (Q-Tiefe − wie oft γ-expandiert). Für
α, β, δ-Formeln ist diese Zahl jeweils 1.
• Multimenge der Maße aller Pfade.
Automatische Deduktion, SS 2015, vom 12.05.2015
131
Unter Beschränkung der Q-Tiefe ist das Verfahren nicht mehr vollständig. Allerdings wird es wieder vollständig, wenn man das Verfahren mehrfach ablaufen
lässt mit jeweils größerer Q-Tiefe. Dies ergibt dann ein Semientscheidungsverfahren.
Automatische Deduktion, SS 2015, vom 12.05.2015
8
132
DPLL mit Theorien: SMT: Satisfiability modulo Theories
SMT- Beweiser (Satisfiability Modulo Theories) sind Erweiterungen der DPLLProzedur für Aussagenlogik, die i.a. die gegebene Klauselmenge in zwei Teile
zerlegen: F ∪ T , so dass DPLL auf F arbeitet, und es einen Algorithmus (Solver
für T ) bereits gibt, der von der DPLL-Prozedur ab und zu befragt wird, und
dann mit den Antworten des T -Solvers weiter fortfährt. I.a. ist die Theorie T
und der Solver speziell, so dass man hier effizientere Antworten für den T -Anteil
implementieren kann.
Dieser Anteil kann auch eine nicht-Aussagenlogik sein, z.B. Prädikatenlogik erster Stufe, so dass man hier eine Kombination von Prozeduren und Logiken
hat.
8.1
Algorithmus zu SMT
Im folgenden gehen wir davon aus, dass die Formeln der Prädikatenlogik erster
Stufe entsprechen, wobei das Gleichheitssymbol ebenfalls erlaubt ist. Wenn das
Gleichheitssymbol vorkommt, dann gelten automatisch die Axiome
Reflexivität ∀x.x = x
Symmetrie ∀x, y.x = y =⇒ y = x
Transitivität ∀x, y, z.x = y ∧ y = z =⇒ x = z
Kongruenz Für alle in der Signatur vorkommenden Funktionssymbole f (mit
Stelligkeit n) das Axiom:
∀x1 , . . . , xn , y1 , . . . , yn : x1 = y1 ∧ . . . ∧ xn = yn =⇒ f (x1 , . . . , xn ) =
f (y1 , . . . , yn ).
und für alle in der Signatur vorkommenden Prädikatensymbole P (mit
Stelligkeit n) das Axiom:
∀x1 , . . . , xn , y1 , . . . , yn : x1 = y1 ∧ . . . ∧ xn = yn ∧ P (x1 , . . . , xn ) =⇒
P (y1 , . . . , yn ).
Diese Theorie wird auch EUF (equality with uninterpreted function symbols)
genannt.
Zuerst einige Definitionen:
• Eine Theorie T ist eine Menge von geschlossenen PL1-Formeln. Der deduktive Abschluss von T sind die geschlossenen Formeln F mit T |= F .
Normalerweise nimmt man an, dass T konsistent ist, d.h. T 6|= false.
• Eine Formel F ist T -erfüllbar, gdw. F ∧T erfüllbar (konsistent) ist im Sinne
der PL1. Ansonsten sagt man, dass F T -unerfüllbar ist. Zur Erinnerung:
G ist erfüllbar, gdw. wenn es eine Belegung der freien Variablen in G, und
eine Interpretation der Symbole in G gibt, so dass G wahr wird. (Hier
Automatische Deduktion, SS 2015, vom 12.05.2015
133
wird angenommen, dass es eine endliche Axiomatisierung gibt, bzw. dass
T endlich ist.)
• Eine partielle Interpretation ist eine Menge M aus geschlossenen Literalen. Hier spricht man ebenfalls von T -konsistent und meint damit die
T -Konsistenz der Konjunktion der Literale aus M .
• Eine partielle Interpretation M , die T -konsistent ist, ist ein T -Modell einer Formel F , wenn M |= F gilt. D.h. wenn F eine (aussagenlogische)
Folgerung aus M ist.
• F |=T G gilt gdw. F ∧ ¬G T -unerfüllbar ist.
• Zwei Formeln F, G sind T -äquivalent, gdw. F |=T G und G |=T F gilt.
• Ein T -Satz (oder T -Lemma, T -Tautologie) ist eine Formel F , für die ∅ |=T
F gilt.
Das ist das gleiche wie: ¬F ist T -unerfüllbar, bzw. ¬F ∧ T ist unerfüllbar.
Das SMT-Problem für eine Theorie T ist die Aufgabe, gegeben eine
Formel F , herauszufinden, ob F T -erfüllbar ist bzw. ob F ein T -Modell
hat.
Eine Annahme, die hierbei gemacht wird, ist folgende: nur Grund-Mengen M
werden betrachtet; und nur solche Theorien T , für die die Erfüllbarkeit von
endlichen Mengen M von Grundliteralen entscheidbar ist.
Jeder Algorithmus, der diese Aufgabe löst, heißt ein T -Solver.
8.2
Direkte SMT-Prozeduren
Man kann diese in direkte (eager) und indirekte (lazy) Varianten unterteilen.
Die direkte Variante der SMT-Prozeduren geht im wesentlichen so vor, dass die
eingegebene Formel F direkt in eine aussagenlogische Formel τ (F ) übersetzt
wird, wobei die Theorie in der Übersetzungsmethode implementiert ist. Hierbei
muss die Erfüllbarkeit erhalten bleiben. Diese Formel τ (F ) wird dann mit der
DPLL-Prozedur gelöst.
Vorteil der direkten Methode: Diese kann sofort von verbesserten SAT-Solvern
profitieren.
Nachteile: Man muss sich sehr diffizile Übersetzungstechniken ausdenken, die
normalerweise auch sehr problemspezifisch sind, d.h. nur für eine eng begrenzte
Klasse von Formeln bzw. Problemstellungen funktioniert. Außerdem muss man
sicherstellen, dass die Übersetzung selbst korrekt ist.
Beispiel 8.1 Ein einfaches Beispiel (siehe im Aussagenlogischen Kapitel 2) ist
das n-Damen Problem oder der aussagenlogische Sudoku-Löser. Deren Funktionsweise beruht auf einer Spezialübersetzung, die das Problem in eine aussagenlogische Klauselmenge übersetzt.
Statt z.B. ∀x, y, z.x 6= y =⇒ Dame(x, z) ⇐⇒ ¬Dame(y, z) die Menge der
Grundinstanzen für die Werte x, y, z, in{1, . . . , n} wobei im Standardfall n = 8.
134
Automatische Deduktion, SS 2015, vom 12.05.2015
Dieser Fall ist eine Spezialfall der Methode, aus den Klauseln bzw. Formeln alle
notwendigen Instanzen zu bilden (wenn klar ist, dass es nur endlich viele sind)
und dann die Grundklauseln aussagenlogisch zu behandeln.
Bemerkung 8.2 Historisch gesehen, waren die ersten logischen Beweissysteme alle von dieser direkten (eager) Art: Eine prädikatenlogische Formel (meist
Axiome und die Negation eines zu zeigenden Theorems) wurden systematisch instanziiert, d.h. in Grundklauseln übersetzt, und dann mit der DP-Prozedur auf
Widersprüchlichkeit geprüft. Die Grundlage war das Herbrand-Theorem, das
garantiert, dass man nur endlich viele Grundinstanzen erzeugen muss, wenn
es überhaupt einen Nachweis gibt. Allerdings weiß man vorher nicht, wieviele grundinstanzen, und ob das Theorem gilt. Die Unentscheidbarkeit impliziert,
dass man a-priori keine obere Schranke für Tiefe der Formeln, Anzahl o.ä. angeben kann. Diese Verfahren waren hochgradig ineffizient, da man (in der Tiefe
der Terme) exponentiell viele Instanzen erzeugen musste, von denen mehr als
99% sinnlos waren. Diese Beweismethode wurde dann (ca 1965) abgelöst von
Resolution mit Unifikation, die die unnötige Instanzenbildung vermeidet.
Durch die seit dieser Zeit sehr viel schnelleren Rechner und durch Fortschritte
bei den SAT-Verfahren ist das alte Verfahren wieder (in einigen Anwendungsbereichen) interessant geworden. Aber die Ineffizienzen sind natürlich noch genauso. Das indirekte Verfahren s.u. vermeidet einige dieser Ineffizienzen.
8.3
Indirekte SMT-Prozeduren
Im Folgenden soll die indirekte Methode, die den Weg über eine DPLL(T)Variante geht, genauer beschrieben werden, da diese viel flexibler auf neue
Theorien reagiert und gemeinsame Techniken schon in der DPLL(X)-Methode
implementieren kann.
Beispiel 8.3 Ein Beispiel mit Gleichungen. D.h. T sei die Theorie der Gleichungen, siehe oben. Ungleichungen s 6= t sind eine Abkürzung für ¬(s = t).
Betrachte die Literale:
b = c,
f (b) = c,
a 6= g(b),
g(f (c)) = a
Wenn M (in M || F ) diese vier Literale enthält, dann findet der T -Solver
heraus, dass M T -unerfüllbar ist, denn
b = c,
f (b) = c,
g(f (c)) = a
|=
a = g(b)
(Das zugehörige Theorie-Verfahren ist das sogenannte congruence-closureVerfahren.) Damit muss die zugehörige SMT-Prozedur zurücksetzen.
8.4
Die Regeln der DPLL(T)-Prozedur
Die Erweiterungen zur aussagenlogischen DPLL-Prozedur sind:
Es sind Grundliterale statt aussagenlogischer Variablen zulässig. Diese kann man
Automatische Deduktion, SS 2015, vom 12.05.2015
135
sehen als (kompliziert aufgebaute) Namen von aussagenlogischen Variablen.
Die Regeln Decide, Fail, Restart, UnitPropagate sind unverändert. Folgende Regeln sind die an die Theorie T angepassten:
Bei der Backjump-Regel ist der einzige Unterschied zur aussagenlogischen Variante, dass F, C |= C 0 ∨ l0 durch F, C |=T C 0 ∨ l0 ersetzt wurde.
T-Backjump :
M ld N || F, C
=⇒ M l0 || F, C

M ld N |= ¬C




 Es gibt eine Klausel C 0 ∨ l0 mit
F, C |=T C 0 ∨ l0 und M |= ¬C 0


l0 ist nicht definiert in M


 0
l oder ¬l0 kommen in F oder in M ld N vor
T-Learn :
M || F
=⇒ M || F, C
T-Forget :
M || F, C
=⇒ M || F
Jedes Atom aus C kommt in F oder M vor
F |=T C
wenn F |=T C
Ein gute Erklärung zum Vorgehen bei der Restart- Regel ist:
Wenn man einen Zustand M || F erreicht hat, so dass M alle Literale von F
definiert, und alle Klauseln in F wahr macht, dann gibt es folgende Möglichkeiten:
• M ist T -erfüllbar. In dem Falle hat man ein T -Modell gefunden. Um das
einzusehen, muss man noch argumentieren (siehe [?]).
• M ist T -unerfüllbar. In dem Fall kann man eine möglichst kleine Menge
von Literalen {l1 , . . . , ln } ⊆ M finden, so dass ∅ |= ¬l1 ∨ . . . ∨ ¬ln . Diese
Klausel kann man dann mittels T-Learn zu F hinzufügen und das DPLLVerfahren neu starten mittels Restart.
Eine weitere Regel, die in einigen Implementierungen verwendet wird, und die
die gegebene Theorie ausnutzt, ist die TheoryPropagate-Regel
TheoryPropagate :
M || F
=⇒
M l || F

 M |=T l
l oder ¬l kommt in F vor

l ist nicht definiert in M
Beispiel 8.4 Ein Beispiel zum Zusammenspiel der Regeln zu einer Theorie T :
hier ist es die Gleichheitstheorie (EUF). Sei die Klauselmenge F gegeben. so
dass mindestens folgende Klauseln in F sind:
(1)
(2)
(3)
a=b
∨ g(a) 6= g(b)
h(a) = h(c) ∨ p
g(a) = g(b) ∨ ¬p
Automatische Deduktion, SS 2015, vom 12.05.2015
136
Der Zustand der DPLL-Prozedur sei nach einigen Schritten von der Form
M, c = b, f (a) 6= f (b) || F , wobei die weiteren Schritte der Prozedur sind:
Schritt
Neues Literal in M Grund
Decide
h(a) 6= h(c)
TheoryPropagate a 6= b
da h(a) 6= h(c) ∧ c = b |=T a 6= b
UnitPropagate
g(a) 6= g(b)
da a 6= b und wegen Klausel (1)
p
da h(a) 6= h(c) und wegen Klausel (2)
UnitPropagate
0
Der resultierende Zustand M ist:
M, c = b, f (a) 6= f (b), h(a) 6= h(c), a 6= b, g(a) 6= g(b), p || F ,
In diesem Zustand ist die Klausel (3) ein Konflikt.
Eine Backjump-Klausel C 0 ∨ l0 , die man erzeugen kann, ist c 6= b ∨ h(a) = h(c).
Hierbei ist C 0 = {c 6= b} inkonsistent mit M 0 , und l0 ist h(a) = h(c).
Neuer Zustand: M, c = b, f (a) 6= f (b), h(a) = h(c) || F
Um die Backjump-Regel genauso verwenden zu können wie im Theorie-freien
Fall, muss der T -Solver auch Rechtfertigungen liefern, in dem Sinne, welche
Implikationskette von Literalen und Klauseln (auch modulo T ) zum Widerspruch
bzw. zum Konflikt geführt hat.
137
Automatische Deduktion, SS 2015, vom 13.04.2015
9
Grammatik-basierte Kompression von Termen und zugehörige Algorithmen
Wir betrachten die Methode der Kompression von Termen und als Spezialfall
die Kompression von Strings wobei wir die Sichtweise der grammatikbasierten
Kompression verwenden.
Die Kompressionsmethode auf Strings, die weitverbreitet ist, ist die LempelZiv Kompression. Es gibt Varianten, des Verfahrens bzw der Datenstruktur.
Eine Variante liegt dem GIF-Format zugrunde. Um Kompression auf Termen
zu verstehen, betrachten wir zuerst die String Kompression.
Die Variante Lempel-Ziv-(77) arbeitet auf Strings wie folgt:
9.1
Lempel-Ziv Kompression
Die LZ 77 Kompression versucht bereits gelesene Teilfolgen der Eingabe bei
wiederholtem Auftreten durch eine Referenz auf die ursprüngliche Teilfolge
zu ersetzen. Sei t0 . . . tn der Eingabestring, wobei die Eingabe t0 . . . ti schon
verarbeitet sei, d.h. der Algorithmus muss noch den Rest-String ti+1 . . . tn
komprimieren. Der Algorithmus geht nun wie folgt vor: Sei ti+1 . . . tm der
längste Präfix von ti+1 . . . tn , der bereits als Substring in t0 . . . ti vorkommt.
Nehmen wir an, dies sei der String tk . . . tk+m−(i+1) (wobei tp = tq für alle
(p, q) ∈ {(i + 1, k), (i + 2, k + 1), . . . , (m, k + m − (i − 1))}). Dann ersetzt der
Algorithmus den Präfix ti+1 . . . tm durch das Paar aus Zahlen (k, m − (i + 1)),
d.h. er merkt sich statt des Teilstrings ti+1 . . . tm die Referenz auf die schon
bekannte Eingabe, wobei das Paar die Anfangsposition und die Länge enthält.
Danach fährt er mit der Resteingabe tm+1 . . . tn fort. Für den Fall, dass der
Präfix ti+1 . . . tm leer ist (also ein Präfix der Eingabe nicht bereits zu finden
ist), speichert der Algorithmus das Symbol ti+1 ab und fährt mit der Resteingabe ti+2 . . . tn fort.
Wir betrachten als Beispiel den Text "aabaaabaababaaababbbaabbbbccaaa":
Verarbeitete Eingabe
a
aa
aab
aabaa
aabaaabaa
aabaaabaaba
aabaaabaababaaaba
aabaaabaababaaabab
aabaaabaababaaababb
aabaaabaababaaababbbaab
aabaaabaababaaababbbaabbbb
aabaaabaababaaababbbaabbbbc
aabaaabaababaaababbbaabbbbcc
aabaaabaababaaababbbaabbbbccaaa
Resteingabe
aabaaabaababaaababbbaabbbbccaaa
abaaabaababaaababbbaabbbbccaaa
baaabaababaaababbbaabbbbccaaa
aaabaababaaababbbaabbbbccaaa
abaababaaababbbaabbbbccaaa
babaaababbbaabbbbccaaa
baaababbbaabbbbccaaa
bbbaabbbbccaaa
bbaabbbbccaaa
baabbbbccaaa
bbbccaaa
ccaaa
caaa
aaa
Der komprimierte Text lautet somit
Ausgabe
Erkannter Präfix
a
(0,1)
b
(0,2)
(1,4)
(2,2)
(2,6)
(2,1)
(2,1)
(6,4)
(17,3)
c
(26,1)
(3,3)
ε
a
ε
aa
abaa
ba
baaaba
b
b
baab
bbb
ε
c
aaa
Automatische Deduktion, SS 2015, vom 13.04.2015
138
a(0,1)b(0,2)(1,4)(2,2)(2,6)(2,1)(2,1)(6,4)(17,3)c(26,1)(3,3).
Teilstrings der Länge 1 wurden hierbei auch durch Stringreferenzen dargestellt,
was sich jedoch im Grunde nicht lohnt, da das Zeichen vermutlich weniger Platz
als die Angabe der beiden Zahlen benötigt. D.h. eine bessere Kodierung wäre
vermutlich aab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3). Die Dekomprimierung baut den Text von links nach rechts wieder auf, wobei die bereits erstellte Ausgabe als Suchraum für die noch zu erstellende Ausgabe dient:
Komprimierter Reststring
aab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3)
ab(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3)
b(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3)
(0,2)(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3)
(1,4)(2,2)(2,6)bb(6,4)(17,3)cc(3,3)
(2,2)(2,6)bb(6,4)(17,3)cc(3,3)
(2,6)bb(6,4)(17,3)cc(3,3)
bb(6,4)(17,3)cc(3,3)
b(6,4)(17,3)cc(3,3)
(6,4)(17,3)cc(3,3)
(17,3)cc(3,3)
cc(3,3)
c(3,3)
(3,3)
ε
Ausgabe
ε
a
aa
aab
aabaa
aabaaabaa
aabaaabaaba
aabaaabaababaaaba
aabaaabaababaaabab
aabaaabaababaaababb
aabaaabaababaaababbbaab
aabaaabaababaaababbbaabbbb
aabaaabaababaaababbbaabbbbc
aabaaabaababaaababbbaabbbbcc
aabaaabaababaaababbbaabbbbccaaa
Es gibt andere Varianten der Kompression, die schneller den Eingabestring verarbeiten, wobei Einschränkungen bei der Suche des Präfixes des Reststrings in
bereits verarbeiteten String gemacht werden, zB LZ 78 und LZW.
Ein Vorteil von LZ77 ist, dass eine exponentielle Kompressionsrate möglich ist,
während bei LZ78 und LZW die Kompression maximal einen quadratischen
Kompressionsfaktor hat. Das kann man auch als Generierungsfaktor sehen:
LZ77-Daten können exponentiell große Strings erzeugen.
LZW-Kompression
Nochmal genauer: Das Vorgehen ist folgendermaßen
• Es wird ein Wörterbuch angelegt. Das kann man modellieren als Abbildung Ai → string i , i = 1, . . . , n, wobei Ai ein Abkürzungssymbol für den
String string i ist.
• Genauer: das Dictionary hat auch Querverweise: eigentlich sehen die Einträge so aus: Ai → Aj b, i, j = 1, . . . , n, i > j.
• Alle Einzelsymbole betrachtet man am Anfang der Kompression als bereits
im Dictionary.
• Wenn das Dictionary teilweise aufgebaut ist und r der Reststring ist, der
noch zu komprimieren ist, dann wird nach dem größten Anfangs-string von
r gesucht, der bereits abgekürzt ist. Wenn das Aj ist, und r = val (Aj )br0
(b ein Symbol, r0 der Reststring), dann wird ein neuer Eintrag An → Aj b
erzeugt und dann mit r0 weiter komprimiert.
Automatische Deduktion, SS 2015, vom 13.04.2015
139
Eigenschaften:
• Das Symbol An kann maximal einen String der
p Länge n+1 repräsentieren,
also kann man die Eingabe maximal auf O( (|r|)) komprimieren.
• Das Verfahren komprimiert aber schneller, da die Suche nach einem passenden Anfangs-Dictionary-Eintrag schneller geht durch geeignete Datenstrukturen.
• Das LZ77-Verfahren muss ja im ganzen Anfangsstring nach einem Unterstring suchen. Aber auch das kann man so organisieren, dass es effizient
geht, aber es ist doch langsamer als die anderen Verfahren.
9.2
Straight Line Programs (SLP) und Singleton Context
Free Grammars (SCFG)
Die Kompression mittels LZ77 ist äquivalent zu einer Darstellung des Strings
mit einer (kleinen) kontextfreien Grammatik, die pro Nichtterminal genau eine
Produktion hat und die keine rekursiven Nichtterminale hat; die rechten Seiten
können Aj Ak sein. LZW ist etwas eingeschränkter bei den rechten Seiten: nur
rechte Seiten der Form Aj b,
Definition 9.1 Sei Σ ein Alphabet. Ein straight line program (SLP) G ist eine
kontextfreie Grammatik zu Σ, die zyklenfrei ist, und bei der zu jedem Nichtterminal A genau eine Produktion mit linker Seite A vorhanden ist. Die Produktionen
sind nur von der Form:
• A → a wobei a ∈ Σ.
• A → A1 A2 wobei A, A1 , A2 Nichtterminale
Gegeben ein Nichtterminal A, dann bezeichnet val (A) den von A erzeugten
String über Σ. Mit val (G) bezeichnet man den vom Startsymbol erzeugten String.
Auch hier gibt es Varianten, die weitere Produktionenformate erlauben wie A →
A0 , oder A → A1 . . . An .
Eine Singleton Context Free Grammars (SCFG) ist nur leicht verschieden von
einer SLP: in SCFGs verzichtet man auf ein Startsymbol und betrachtet alle
Nichtterminale als Kompressionen eines Strings.
9.3
Ein Verfahren zur Erzeugung einer SLP aus einer
LZ77-Kompression
Gegeben sei eine Ausgabe des LZ77 Algorithmus (Darstellung wie oben), d.h. ein
komprimierter String bestehend aus Zeichen und Referenzen. Wir beschreiben
ein Verfahren, das aus dem komprimierten String eine SCFG generiert.
Automatische Deduktion, SS 2015, vom 13.04.2015
140
Sei w ein (durch eine Grammatik generiertes) Wort. Wir schreiben w[i] für das
Symbol an Position i (Positionen beginnen mit der 0). Bezeichne v ein Symbol,
so kann man formal definieren:
w[0] =
w[i] =
v, wenn w = vw0 oder w = v
w0 [i − 1], falls i > 0 und w = vw0
Analog schreiben wir w[i, j] für den Substring w[i]w[i + 1] . . . w[j].
Für SCFGs benutzen wir die folgenden Notationen:
Für ein Nichtterminal A bezeichne wA das durch A erzeugte (unkomprimierte)
Wort. Mit wl(A) bezeichnen wir die Wortlänge von wA . Sei S das Startsymbol
der SCFG.
Sei xs der LZ77-String.
Starte mit der Grammatik
G ::= {Aa → a | für alle Zeichen a in xs} ∪ {S → }
Das Startsymbol sei S und bezeichne das leere Wort.
Berechne nun rekursiv mit GenGrammar eine Grammatik G0 , deren
Startsymbol den dekomprimierten String zu xs erzeugt, der Aufruf ist
GenGrammar(S, G, ys).
GenGrammar(S, G, ys)
GenGrammar(S, G, ys)
= (S, G), falls ys der leere String ist
= GenGrammar(S 0 , G0 , ys0 )
falls ys = a ys0 wobei a ein Zeichen ist, und
G0 := G ∪ {S 0 → S Aa }
S 0 ein neues Nichtterminal
GenGrammar(S, G, ys) = GenGrammar(S 0 , G00 , ys0 )
falls ys = (i, j)ys0 , wobei
(A, G0 ) := SubString(i, j, S, G)
G00 := G0 ∪ {S 0 → S A}
S 0 ein neues Nichtterminal
Es fehlt noch die Funktion SubString. Diese erhält neben der Grammatik und
dem Startsymbol der Grammatik zwei Zahlen i und j. Die Aufgabe der Funktion
ist dabei, die Grammatik umzustrukturieren und ein Nichtterminal A für diese
modifizierte Grammatik zu liefern, so dass wA = wS [i]wS [i + 1] . . . wS [i + j − 1]
gilt. D.h. das Nichtterminal A erzeugt den j-Zeichen langen Substring von wS
beginnend ab Position i.
Automatische Deduktion, SS 2015, vom 13.04.2015
SubString(i, j, A, G)
141
= (A, G) falls i = 0 und j = 1 und A → a ∈ G
= (A, G) falls i = 0 und wl(A) = j
= SubString(i − wl(B), j, C, G)
falls wl(B) ≤ i und A → B C ∈ G
= SubString(i, j, B, G)
falls wl(B) ≥ i + j, und A → B C ∈ G
= (A3 , G3 )
falls wl(B) > i und wl(B) < i + j, und A → B C ∈ G
(A1 , G1 ) := SubString(i, wl(B) − i, B, G)
(A2 , G2 ) := SubString(0, j − (wl(B) − i), C, G1 )
G3 := G2 ∪ {A3 → A1 A2 }
A3 neues Nichtterminal
Kurze Erläuterung der vier Fälle:
1. Der erste Fall ist der Basisfall, da ein Terminal durch A erzeugt wird, i
und j müssen dann genau passen, andernfalls ist irgendwas falsch in der
Grammatik, (d.h. i und j haben nicht zur Grammatik gepasst).
2. A erzeugt gerade den gesuchten Substring (eigentlich könnte man Fall 1
und 2 zusammenfassen, da 1 nur ein Spezialfall von 2 ist)
3. A erzeugt wA = wB wC und der gesuchte Substring liegt komplett in wC
4. A erzeugt wA = wB wC und der gesuchte Substring liegt komplett in wB
5. A erzeugt wA = wB wC und der gesuchte Substring liegt in wB und wC :
Der Präfix des gesuchten Substring ist ein Suffix von wB und der Suffix
des gesuchten Strings ist ein Präfix von wC . Nun muss man zunächst
Nichtterminale zu den Teilstrings (am Ende von wB und am Anfang von
wC ) rekursiv berechnen, anschließend erzeugt man ein neues Nichtterminal
das gerade die beiden Substrings aneinander hängt
Anmerkung:
Immer wenn die Grammatik modifiziert wird (neue Nichtterminale erzeugt werden), müssen für die neuen Nichtterminale auch die Wortlängen berechnet und
gespeichert werden.
9.4
Schnelle Algorithmen auf den SLP
Da wir die LZ 77 Variante der Kompression betrachten und damit die SLPs
(und SCFGs), kann eine LZ77-Kodierung bzw eine SLP G der Größe n einen
String der Länge 2n erzeugen. Damit sind folgende Fragestellungen nach einem
schnellen (d.h. polynomiellen) Algorithmus nichttrivial:
1. Gegeben zwei Nichtterminale A1 , A2 in einem SLP. Ist val (A1 ) = val (A2 )?
Automatische Deduktion, SS 2015, vom 13.04.2015
142
2. Gegeben zwei Nichtterminale A1 , A2 in einem SLP. Kommt val (A1 ) als
Substring von val (A2 ) vor?
Gemeint ist hier die Existenz eines Algorithmus, der in polynomieller Zeit in
der Größe des SLP läuft.
Die erste Frage wurde von Plandowski [?] positiv beantwortet:
Es gibt einen solchen Algorithmus, der top-down die Definitionen der beiden Nichtterminale vergleicht. Damit der Algorithmus nur polynomielle Zeit
benötigt, muss man ausnutzen, dass man bei dieser Expansion oft sehr ähnliche
Fragen stellt und dann Periodizitäten in den Strings erkennen kann, die dazu führen, dass man redundante Subfragen eliminieren kann. (der vollständige
Algorithmus ist in der Dissertation von Plandowski beschrieben)
Die zweite Frage ist die sogenannte Matching-Frage. Auch diese ist in polynomieller Zeit entscheidbar. Es ist sogar so, dass man eine (komprimierte) Darstellung
aller Positionen eines solchen Matchings in polynomieller Zeit ausrechnen kann.
Bemerkung 9.2 Hier ein Skizze zum Plandowski-Algorithmus:
• Zuerst überzeugt man sich davon, dass Längen von val (A) zu jedem Nichtterminal A einer SLP schnell berechnet werden können. Genauso Positionen usw.
• Plandowskis Algorithmus startet mit A =? B als Frage und zerlegt die
Nichtterminale sukzessiv, so dass man während des Ablaufs des Algorithmus eine Menge solcher Gleichungsvarianten betrachtet:
Genauer: man hat zwei Arten von Gleichungen, sogenannte Tripel.
1. A startet in B an Position n und ist echt enthalten. (Substring)
2. A startet in B an Position n und geht über das Ende von B hinaus.
(Präfix)
zB A =? B: wenn A → A1 A2 und B → B1 B2 , dann hängt es von den
jeweiligen Längen ab, welche Tripel daraus gemacht werden.
z.B. wenn val (A1 ) kürzer ist als val (B1 ): in(A1 , B1 , p1 ) und in(B2 , A2 , p2 ).
Der Algorithmus erkennt Gleichungen als gelöst, wenn der zu vergleichende Substring die Länge 1 hat, andere Tripel werden weiter zerlegt.
Leider kann die Menge der Tripel exponentiell groß werden. Deshalb hat
der Algorithmus noch eine weitere Komponente:
• Redundanzelimination: Wenn eine Menge von Tripeln ein redundantes Tripel enthält, dann wird das redundante eliminiert. Das passiert,
wenn zu zwei Nichtterminalen A, B mehrere Tripel vorhanden sind: zB
in(A, B, p1 ), in(A, B, p2 ), . . .. Wenn es ausreichend viele gibt, dann kann
man eine Periodizität nachweisen, aus der sich die Redundanz dann berechnen lässt.
Automatische Deduktion, SS 2015, vom 13.04.2015
143
• Das führt insgesamt zu einer maximal polynomiell großen Liste, die man
mit der richtigen Strategie der Expansion auch in polynomieller Zeit komplett abarbeiten kann: Man muss es top-down in der Grammatik machen.
• Als Komplexität findet man O(n4 ) Angaben in der Literatur.
Bemerkung 9.3 Es gibt andere Algorithmen-Varianten (Lifshits) die mit Tabellen arbeiten und gleich das allgemeinere Problem des Matching lösen, und
die eine bessere worst-case Komplexität haben: O(n3 ): Diese bauen Tabellen
von Vorkommen auf, die ebenfalls Periodizitäten ausnutzen.
Es gibt auch weitere Fragestellungen, von denen man zeigen kann, dass diese
in PTIME berechnet werden können, aber auch einige Fragestellungen, die eine
höhere Komplexität als PTIME haben.
Ein Beispiel ist das sogenannt Shuffle von zwei Strings: Shuffle von a1 a2 . . . an
und b1 , b2 . . . bn ist der String a1 b1 a2 b2 . . . an bn . Frage ist, ob man aus einer SLPKompression von a1 a2 . . . an und von b1 , b2 . . . bn eine polynomiell große SLPKompression des shuffles berechnen kann. Dies ist negativ beantwortet worden:
geht nicht immer!
9.5
Kompression von Termen
Da Terme auch Bäume (ranked trees) sind, braucht man eine Baumgrammatik um diese zu komprimieren. Eine erste Form der Term-Kompression ist die
Verwendung gemeinsamer Unterterme (Sharing): Z.B. der volle binäre Term
(Baum) t mit einem zweistelligen Symbol f und einer Konstanten a kann dargestellt werden als: t = f (tn , tn ), tn = f (tn−1 , tn−1 ), . . . t1 = f (t0 , t0 ), t0 = a.
Dieser Term, bzw. Baum hat 2n Blätter und 2 ∗ 2n − 1 Knoten.
Allgemeiner will man auch Teile von Bäumen wiederverwenden: Zum Beispiel
der Term g(g(g(. . . a))) kann durch Verwendung von Teilbäumen komprimiert
dargestellt werden:
n
g 2 (a) kann man als C1 = g([.]), C2 = C1 C1 , . . . Cn = Cn−1 Cn−1 , t = Cn [a]
darstellen. Hierbei sind die Ci Terme, die an einer Stelle ein Loch für weitere Einsetzungen haben: sogenannte Term-Kontexte. Nimmt man die Ci als
Abkürzung, dann hat man einen Term der Tiefe 2n mit einer komprimierten
Darstellung der Größe n.
Man kann auch partielle Terme verwenden, die mehrere Löcher haben. Allerdings verwenden wir hier eine Grammatikform, die nur einfache Kontexte verwendet.
Ein Mechanismus, der beide Formen der Kompression mischt, sind STGs (singleton tree grammars:) Eine STG ist analog zu einer kontextfreien Grammatik;
eigentlich eine kontextfreie Baumgrammatik.
Definition 9.4 Eine STG (singleton tree grammar) über einer Signatur von
Funktionssymbolen Σ hat mehrere Komponenten:
1. Eine Menge von Term-Nichtterminalen (0-stellig). Notation A, A1 , A2 , . . .
144
Automatische Deduktion, SS 2015, vom 13.04.2015
2. Eine Menge von Kontext-Nichtterminalen (ein-stellig), Notation :
C, C1 , C2 , . . .
3. Eine Menge von Produktionen wobei folgende Formen erlaubt sind:
(a) A → f (A1 , . . . , An ) wenn f n-stellig ist.
(b) A → C[A1 ]
(c) C → [·] (der leere Kontext).
(d) C → f (A1 , . . . , Ai−1 , [·], Ai+1 , . . . , An )
(e) C → C1 C2
Die Grammatik hat für jedes Nichtterminal genau eine Produktion, und sie darf
nicht rekursiv sein.
Zu einem Nichtterminal A ist der erzeugte Term val (A) derjenige Term über Σ,
der durch iterierte Einsetzung von linken Seiten von Regeln durch deren rechte
Seite entsteht.
Es gibt auch leicht erweiterte Grammatiken, die weitere Produktionsformate
erlauben, wie C → C 0 , A → A0 , Cf (A1 , . . . , Ai−1 , C 0 , Ai+1 , . . . , An ), oder auch
solche, bei denen rechte Seiten von Produktionen ganze Terme sein dürfen, wobei
auch Nichtterminale vorkommen können.
Wenn man keine Kontext-Nichtterminale erlaubt, dann erhält man den Spezialfall eines gerichteten azyklischen Graphen (DAG). Die Nichtterminale entsprechen den Knoten eines gerichteten Graphen. Z.B. der untere gerichtete Graph
kann mit einer Grammatik dargestellt werden:
Dag-Termdarstellung
Grammatik, graphisch
Grammatik-Produktionen
f
"
|
f
"
#
f
a
{

|
A2
|
f
"
9.5.1
A1

A3

A4
#
a
A1
A2
A3
A4
A5
→
→
→
→
→
f (A2 , A2 )
f (A3 , A3 )
f (A4 , A4 )
f (A5 , A5 )
a
{
Algorithmen auf STG-komprimierten Termen
Da man mit den komprimierten Termen in Deduktionssystemen umgehen
können muss, braucht man handhabbare Algorithmen, d.h. zumindest worstcase polynomielle.
Automatische Deduktion, SS 2015, vom 13.04.2015
145
Erste einfache Algorithmen sind die Berechnung der Tiefe und Größe von Termen anhand der gegebenen Grammatik. Da beides exponentiell groß werden
kann in der Größe der Grammatik, darf der Algorithmus nicht einfach die Termstruktur entlanglaufen. Richtig ist, die Struktur der Grammatik zu benutzen im
Stile des dynamic programming: Die Berechnung der Tiefe z.B. führt man durch,
indem man eine Tabelle berechnet, die jedem Term-Nichtterminal die Tiefe des
dargestellten Terms bzw. jedem Kontext-Nichtterminal zwei Zahlen zuordnet:
die Tiefe ohne das Loch; und die Tiefe des Lochs.
Dann berechnet man:
1. A → a: Tiefe(A) = 0
2. A → f (A1 , . . . , An ): Tiefe(A) = 1 + maxi (Tiefe(Ai )).
3. A → C[A1 ]: Tiefe(A) = max(Tiefe(C), LochTiefe(C) + Tiefe(A1 )).
4. C → [·]: Tiefe(C) = LochTiefe(C) = 0.
5. C → f (A1 , . . . , Ai−1 , [·], Ai+1 , . . . , An ):
Tiefe(C) = maxi (1 + Tiefe(Ai )), LochTiefe(C) = 1.
6. C → C1 C2 : Tiefe(C) = max(Tiefe(C1 ), LochTiefe(C1 ) + Tiefe(C2 ));
LochTiefe(C) = LochTiefe(C1 ) + LochTiefe(C2 ).
Als Zusammenfassung:
Bemerkung 9.5 Einige einfache Tatsachen und Beobachtungen sind:
• Mit einer Dag-Grammatik kann man exponentielle Kompressionsraten erzielen.
Aber die Tiefe eines Terms bleibt erhalten.
• Mit einer STG kann man exponentielle Kompressionsraten erzielen: das
gilt ja schon bei Dags.
Aber auch die Tiefe kann mit exponentieller Rate komprimiert werden.
• Aber es ist klar, dass es auch unkomprimierbare bzw. fast nicht komprimierbare Terme gibt, sowohl bzgl. DAGs, als auch STGs.
• Die Größe und Tiefe von STG-dargestellten Termen lässt sich in Zeit O(n)
berechnen (n ist die Größe der STG). (unter konstantem Kostenmaß).
Korrekt ist das logarithmische Kostenmaß für arithmetische Operationen.
Dann ist die Berechnung in O(n2 ).
• Die Menge der Symbole bzw. Variablen eines STG-dargestellten Terms ist
in Zeit O(n) zu berechnen. Es gilt auch, dass es nur maximal n Symbole
bzw verschiedene Variablen in einem STG-dargestellten Term gibt. Allerdings kann es exponentiell viele Positionen in einem STG-dargestellten
Term geben: genauer bis zu k |G| , wobei k die maximale Stelligkeit der vorkommenden Funktionssymbole ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
9.5.2
146
Gleichheitstest
Gegeben zwei Nichtterminale einer STG. Dann kann der Gleichheitstest in polynomieller Zeit in der Größe der Grammatik durchgeführt werden.
Dies ist eine Anwendung des Plandowski-Algorithmus auf die aus dem Term
erzeugte SLP(s), die die Preorder-Durchläufe (von links nach rechts) der zu
vergleichenden Terme repräsentieren.
Preorder-Durchlauf eines STG-komprimierten Terms
Zu einer gegebenen STG G kann man ein SLP konstruieren, das genau den
Preorder-Durchlauf komprimiert repräsentiert. Als Beispiel sei die STG gegeben durch: A → C[B], B → b, C → C1 C2 , C1 → f [., a], C2 → g[c, .].
Dann ist val (A) = f (f (c, b), a) und der Preorderdurchlauf: “ffcba” Die SLP
ist (nicht in Chomsky NF): AP O → Cl,P O BP O Cr,P O , BP O → b, Cl,P O →
C1,l,P O C2,l,P O , Cr,P O → C1,r,P O C2,r,P O , C1,l,P O → f, C2,l,P O → gc, C1,r,P O →
a, C2,r,P O → ε,
Das allgemeine Vorgehen ist, die STG-Kontext-Nichtterminale in zwei Nichtterminale zu zerlegen: linkes und rechtes.
• A → a ergibt AP O → a
• A → f (A1 , . . . , An ) ergibt AP O → f A1,P O . . . An,P O
• A → C[B] ergibt AP O → Cl,P O BP O Cr,P O
• C → C1 C2 ergibt zwei Regeln: Cl,P O → C1,l,P O C2,l,P O und Cr,P O →
C2,r,P O C1,r,P O
• C → f (A1 , . . . Ai , [.], Ai+1 , . . . , An ) ergibt Cl,P O → f A1,P O . . . Ai,P O , und
Cr,P O → Ai+1,P O . . . An,P O
Man sieht ein, dass die Größe des SLP nur linear abhängig ist von der Größe
des STG und auch schnell konstruiert werden kann.
Beispiel 9.6 Der vollständige binärer Baum mit binärem f und als Blatt nur
die Konstante a, der Tiefe n kann dargestellt werden als:
A0 → f (A1 , A1 ), . . . , An−1 → f (An , An ), An → a.
Der Term selbst hat Größe 2n+1 −1. Das ist eine exponentielle Komressionsrate.
Der vollständige binärer Baum mit binärem f , Konstante a und Tiefe 2n kann
nicht in einer polynomiellen STG dargestellt werden: Ein Argument ist, dass
n
der Term die Größe 22 +1 − 1 hat also doppelt exponentiell, aber STGs haben
maximal eine exponentielle Kompressionsrate.
Das Argument hierzu ist, dass eine STG G maximal einen Term der Größe k |G|
darstellen kann, wobei k das Maximum der Stelligkeiten der Funktionssymbole
ist.
D.h. Kontext-Nichtterminale helfen in dem Falle nicht.
Automatische Deduktion, SS 2015, vom 13.04.2015
9.5.3
147
Matching und Unifikation von komprimierten Termen
Beide Algorithmen (Matching und Unifikation) können in polynomieller Zeit
auf komprimierten Termen durchgeführt werden. Der Algorithmus selbst ist
nicht so schwer zu durchschauen, allerdings ist der Beweis der Polynomialität
etwas komplexer. Für das Skript beschränken wir uns auf Techniken die im
Algorithmus verwendet werden.
Matching: Das ist folgendes Problem:
Gegeben zwei Terme als Term-Nichtterminale A, B einer STG, wobei A auch
Variablen enthält.
Finde eine Substitution σ, so dass σ(val (A)) = val (B).
Das bedeutet, dass auch Variablen in der Grammatik erlaubt sein müssen.
Zum Beispiel der Term t = g(g(. . . g(x) . . .)) mit Tiefe 32 kann komprimiert
dargestellt werden als:
C1 := g([])
C2 := C1 C1
C3 := C2 C2
C4 := C3 C3
C5 := C4 C4
C6 := C5 C5
A1 := x
S
:= C6 (A1 )
Der Match-Algorithmus zu A, B besteht aus drei Komponenten:
1. Finden der Instanziierung einer Variablen: Dazu muss man die Position
einer Variablen in val (A) finden: Da die Position exponentiell groß sein
kann als String, muss man die Position komprimiert darstellen: als SLP.
Man berechnet also in der STG eine Position einer Variablen (sagen wir
mal x), und berechnet direkt eine SLP für diese Position.
Gibt es diese Position nicht, dann gibt es keinen Match.
Zweiter Schritt ist die Ermittlung des gematchten Unterterms von val (B).
Dazu verwendet man die SLP der Position von x und ermittelt einen
Unterterm von val (B). Dazu muss man aber i.a. ein neues Nichtterminal
(und evtl. weitere) berechnen, die diesen Unterm in der STG darstellen.
2. Instanziierung durch Erweiterung der Grammatik: Angenommen man
hat eine Instanziierung x 7→ B1 berechnet, dann kann man val ({x 7→
val (B1 )}t) dadurch darstellen, dass man die Grammatik abändert:
man macht x zum Term-Nichtterminal mit der Produktion x → B1 .
Evtl. muss man die Schritte 1 und 2 mehrfach durchführen. I.a. so oft, wie
es Variablen in val (A) gibt.
3. Der letzte Schritt des Matching-Algorithmus ist eine Anwendung des
Gleichheitstests von Plandowski: Einfach die Termgleichheit von val G0 (A)
und val (B) testen, wobei G0 die STG nach den Instanziierungen ist.
Automatische Deduktion, SS 2015, vom 13.04.2015
148
Wir beschreiben die Einzelheiten des Algorithmus: Hier ist immer gemeint:
Algorithmen die in polynomieller Zeit ablaufen, und auch im Falle, dass
mehrere solche Teilalgorithmen laufen, dass deren Gesamtablauf ebenfalls in
polynomieller Zeit abläuft. Das erfordert etwas Vorsicht und natürlich einen
Beweis, der aber nur angedeutet wird in einigen Fällen.
9.5.3.1
Finden der Position einer Variablen:
1. Für eine fixierte Variable x berechne eine Tabelle zur STG, die zu jedem
Nichtterminal D einen Booleschen Wert enthält, der sagt, ob x in val (D)
enthalten ist oder nicht.
2. Berechne eine SLP GA , die für jedes Kontext-Nichtterminal C ein Nichtterminal AC enthält, so dass val (AC ) die Position des Lochs von val (C)
ist:
(a) Wenn C ::= [·] die Produktion für C ist, dann ist die Produktion
AC ::= ε.
(b) Wenn C ::= f (A1 , . . . , [·]k , . . .]) die Produktion für C ist, dann ist die
Produktion AC ::= k.
(c) Wenn C ::= C1 C2 die Produktion für C ist, dann ist die Produktion
AC ::= AC1 AC2 .
3. Jetzt berechne ein Nichtterminal für eine Position P von x in val (S):
(a) Wenn A ::= f (A1 , . . . , An ) die Produktion für A ist, und x kommt
in val (Ak ) vor, dann ist die Produktion PA ::= kPAk .
(b) Wenn A ::= C[A1 ] die Produktion für A ist, und x kommt in val (A1 )
vor, dann ist die Produktion PA ::= AC PA1 ; wenn x in C vorkommt
und das wird bevorzugt, dann PA ::= PC .
(c) Wenn C ::= f (A1 , . . . , [·]k , . . .]) die Produktion für C ist, und x
kommt in val (Aj ) vor mit j 6= k, dann ist die Produktion PC ::=
jPAj .
(d) Wenn C ::= C1 C2 die Produktion für C ist, und x kommt in C1
vor, dann ist die Produktion PC ::= PC1 . Anderenfalls, wenn x in C2
vorkommt , dann ist die Produktion PC ::= AC1 PC2 .
(e) Wenn die Produktion A ::= x ist, dann ist die Produktion PA ::= ε.
9.5.3.2 Finden bzw. Erzeugen eines Nichtterminals der Position einer Variablen: Das Problem hier ist, dass man unter der Position i.a. kein
zugeordnetes Nichtterminal finden kann, sondern dass eine gegebene Position
auf einen Sub-Term zeigt, der c0 [val (A)] ist, wobei c0 ein Suffix eines Kontexts
val (C) ist. Es kann natürlich auch gar keine solche Position geben.
Aufgabe:
Automatische Deduktion, SS 2015, vom 13.04.2015
149
Gegeben ist eine SLP mit Startsymbol P für die Position und eine STG für den
Targetbaum mit Start-Nichtterminal T . Ausgabe: Eine Erweiterung von GT so
dass es ein Nichtterminal A gibt, so dass val (T ) an der Position val (P ) den
Unterterm val (A) hat. Notation: val (T )|val(P ) = val (A).
Als Unteraufgaben dazu braucht man (Polynomialzeit-Algorithmen):
1. gegeben eine SLP mit Nichtterminal P und eine Zahl n, berechne den
Präfix der Länge n (als Nichtterminal) bzw den Suffix ab Position n, ebenfalls als Nichtterminal.
2. gegeben eine SLP und zwei Nichtterminale P1 , P2 ; berechne den längsten
gemeinsamen Präfix von val (P1 ), val (P2 ) als Nichtterminal. Ebenso berechne die verbleibenden Suffixe, ebenfalls als Nichtterminale.
Der Positionsfinder Algorithmus:
1. Wenn val (P ) = ε, dann ist ein Nichtterminal gefunden worden.
2. Wenn A ::= f (A1 , . . . , An ) die Produktion ist: Wenn val (P ) als erstes
Symbol k hat mit 1 ≤ k ≤ n, dann berechne Nichtterminal P1 mit k ·
val (P1 ) = val (P ), und mache weiter mit P1 und Ak . Wenn k > n, dann
Abbruch: kein Match.
3. Wenn A ::= C[A1 ] die Produktion ist:
• Wenn val (P ) echter Präfix der Lochposition ist: Dann ist eine Position gefunden, allerdings muss der passende Präfixkontext noch als
Kontext-Nichtterminal konstruiert werden, und dann als letztes das
Nichtterminal zum Subterm.
• Wenn die Lochposition AC Präfix von val (P ) ist: Dann berechne P1
als Suffix von P so dass val (AC )val (P1 ) = val (P ) und mache weiter
mit P1 und A1 .
• Wenn weder val (P ) Präfix der Lochposition AC ist, noch umgekehrt,
dann kann man den gemeinsamen Präfix P1 und den passenden Suffix
P2 von P berechnen; ebenso k und P3 mit val (P2 ) = k · val (P3 ).
weiterhin den Kontext C1 an der Position val (P1 ) von val (C). Wenn
C1 = f (A1 , . . . , An ), dann startet die Lochposition nicht mit k.
Mache weiter mit P3 und Ak .
4. Resultat: eine erweiterte SLP und ein Nichtterminal R
5. Die Grammatik wird jetzt um die Instanziierung erweitert: x ::= R wird
hinzugefügt, und somit val (S) abgeändert.
Automatische Deduktion, SS 2015, vom 13.04.2015
150
9.5.3.3 Matching Der Matching- Algorithmus, der ein σ finden soll mit
σ(val (A)) = val (B) führt die Suche nach der Position einer Variablen in val (A)
und die Suche nach dem zugeordneten Term in val (B) und die Abänderung der
Grammatiken solange durch, bis alle Variablen in val (A) instanziiert sind. Als
letzte Operation testet der Algorithmus die Gleichheit von val (A) und val (B)
mittels des Plandowski- bzw Lifshits-Algorithmus.
9.5.3.4
Anmerkungen
Bemerkung 9.7 Das Verfahren vermeidet alle expliziten Expansionen oder
Komplett-Durchläufe über den Term.
Das reicht als Argument noch nicht aus, um zu schließen, dass der Algorithmus
polynomiell ist.
Hierzu ist es notwendig, die Iterationen und das mögliche Größenwachstum der
Grammatik und SLPs zu analysieren. Man kann noch ausnutzen, dass man die
Erweiterungen pro Variable getrennt voneinander machen kann. Die genaue
Analyse wurde in den Artikeln [?, ?] durchgeführt, die zeigen, dass es wirklich
nur polynomielle Zeit benötigt.
Beispiel 9.8 Ein einfaches Beispiel ist f 24 (x) gegen f 32 (a) zu matchen.
C1
C2
C3
C4
C5
C6
A1
T
:=
:=
:=
:=
:=
:=
:=
:=
g([])
C1 C1
C2 C2
C3 C3
C4 C4
C5 C5
a
C6 (A1 )
C7
S
::= C4 C5
::= C7 (x)
Position von x ist eine SLP:
P1
P2
P3
P4
P5
P
:=
:=
:=
:=
:=
::=
1
P1 P1
P2 P2
P3 P3
P4 P4
P4 P5
Die Konstruktion des Subterms von val (T ) an der Stelle val (P ) startet mit P, T .
Man sieht, bzw. man kann mittels Plandowskis Algorithmus ermitteln: val (P ) ist
ein Präfix der Lochposition von val (C7 ). Jetzt muss man unter Benutzung der
Algorithmen den Suffix von val (C7 ) konstruieren. Nach zwei Schritten sieht der
Algorithmus dass C4 das richtige Nichtterminal ist und konstruiert das Nichtterminal R mit Produktion R ::= C4 [a].
Automatische Deduktion, SS 2015, vom 13.04.2015
151
Der nächste Schritt ist eine Erweiterung G0 der STG: um x ::= R.
Danach kann man S (bzgl. der neuen STG G0 gemeint) und T mit dem
Plandowski-Algorithmus vergleichen.
9.5.4
Unifikation unter Kompression
Der Unifikations-Algorithmus ist sehr ähnlich zum Matching-Algorithmus.
Ein Unterschied ist, dass natürlich beide Terme Variablen enthalten können.
Dadurch wird es nötig, manchmal die Seiten zu wechseln und rechts und links
nach Variablenpositionen zu schauen. Ein weiterer Unterschied ist, dass jetzt
occurs-check Fehler auftreten können: man muss beim Instanziierungsschritt
x ::= A prüfen, ob val (A) die Variable x enthält.
Der Beweis der Polynomialität wird komplizierter, da die Instanziierungen sequentiell gemacht werden müssen (im Gegensatz zum Match-Algorithmus). Man
muss noch nachweisen, dass die Größe der erweiterten Grammatik nicht zu
schnell wächst, was ebenfalls in den Artikeln [?, ?] nachgewiesen wurde.
Herunterladen
Explore flashcards