Logik für Informatiker - LS1 - Logik in der Informatik

Logik für Informatiker
Logic for Computer Scientists
Peter Padawitz, TU Dortmund, Germany
21. Juli 2016
(actual version: http://fldit-www.cs.uni-dortmund.de/∼peter/LogikPad.pdf)
Webseite zur LV: + fldit-www.cs.tu-dortmund.de/logik1.html
1
Inhalt
Mit ∗ markierte Abschnitte bzw. Kapitel werden zur Zeit in der LV nicht behandelt.
Zur Navigation auf Titel, nicht auf Seitenzahlen klicken!
1 Vorbemerkungen
6
2 Gemeinsame Grundbegriffe
Logik in der Informatik
8
16
3 Mengen und Funktionen
18
1 Mengen und Relationen
2 Funktionen
3 Isomorphien
4 Highlights
4 (Co)Induktiv Definieren und Beweisen
1 (Co)Induktiv definierte Mengen
2 Induktion über n ∈ N
3 Noethersche Induktion bzgl. R ⊆ A2
4 Ableitungen und Ableitungsrelationen
18
25
33
44
46
46
54
56
60
2
5 Konstruktoren und Destruktoren
68
6 (Co)Induktiv definierte Funktionen
75
7 Highlights
87
5 Gleichungslogik
91
1 Signaturen, Terme und Algebren
91
2 Termauswertung und -substitution
98
3 Termgleichungen
105
4 Normalformen
107
5 Äquivalenzrelationen und Quotienten
109
6 Gleichungskalkül
112
7 Berechnung äquivalenter Normalformen
115
8 Gleichungslogik in anderen Logiken
126
9 Highlights
129
6 Aussagenlogik
132
1 Normalformen
138
2 Schnittkalkül
149
3 * Knotenmarkierte Bäume
155
3
4 * Tableaukalkül
158
5 Highlights
165
7 Modallogik
169
1 Übersetzung modallogischer in aussagenlogische Formeln
174
2 * Tableaukalkül
182
3 Zustandsäquivalenzen
201
4 Minimierungsalgorithmus
216
5 * Verhaltensmodelle und finale Strukturen
220
6 Highlights
235
8 Prädikatenlogik
240
1 Normalformen
257
2 Schnittkalkül
266
3 Prädikatenlogik mit Gleichheit
284
4 Übersetzung modallogischer in prädikatenlogische Formeln
291
5 Highlights
297
9 Logische Programmierung
1 SLD-Kalkül
303
318
4
2 Kleinste und größte Herbrand-Modelle
325
3 Berechnungskalkül
334
4 Highlights
351
10 Literatur
352
11 Index
355
5
1 Vorbemerkungen
Vorläufiger Zeitplan 2016
11.4.
18.4.
25.4.
2.5.
9.5.
16.5.
23.5.
30.5.
6.6.
13.6.
20.6.
27.6.
4.7.
11.7.
18.7.
Bestandteile und Eigenschaften einer Logik
Mengen und Funktionen
dto.
(Co)Induktiv Definieren und Beweisen
dto.
Gleichungslogik
dto.
Aussagenlogik (AL)
Modallogik (ML)
dto.
Prädikatenlogik (PL)
dto.
Logische Programmierung
dto.
(Puffer)
6
1 Vorbemerkungen In Kapitel 2 weist Fettdruck auf die informelle Einführung eines Begriffs hin, in späteren
Kapiteln auf die Textstelle, an der er mathematisch definiert wird. Begriffe sind historisch
gewachsen und daher nicht immer so präzise voneinander abgegrenzt wie Definitionen.
Ein mathematisches Symbol mit einer festgelegten Bedeugung ist an der Stelle, an der
es zum ersten Mal benutzt wird, rot gefärbt. Manchmal weist Rotfärbung allerdings nur
auf entscheidende Teile einer Formel hin.
Interne Links (einschließlich der Seitenzahlen im Index) sind an ihrer braunen Färbung,
externe Links (z.B. zu Wikipedia) an ihrer magenta-Färbung erkennbar. Vor letzteren
steht zusätzlich eine Hand + .
Um aus einem Kapitel heraus zu einem anderen zu springen, klickt man am besten auf
die Kapitelüberschrift rechts oben oder die Seitenzahl rechts unten auf jeder Folie. Damit
gelangt man zum Inhaltsverzeichnis. Von dort aus führt ein Klick auf den Titel des
gewünschten Kapitels zu seinem jeweiligen Anfang.
Die eingestreuten Aufgaben lassen sich ohne besondere Tricks – nur unter Verwendung
hier behandelter Definitionen und Sätze – lösen. Auch wer sie nicht bearbeitet, sollte sie
lesen und sich ihre jeweilige Aussage klarmachen.
7
2 Gemeinsame Grundbegriffe
reale Welt
modellieren
formales
Modell
interpretieren
Kalkül
(rechnen)
formales
Modell
Korrektheit
Vollständigkeit
Syntax
(Beschreibung)
interpretieren
Semantik
(Bedeutung)
8
2 Bestandteile und Eigenschaften einer Logik Syntax
(Beschreibung)
interpretieren
Semantik
(Bedeutung)
Typ
Menge M
Term t
Element(e) von M
Gleichung t≡t’
Wahrheitswert(e)
aussagenlogische
Formel φ
Wahrheitswert
modallogische
Formel φ
Menge der Zustände,
die φ erfüllen
prädikatenlogische
Formel φ
Menge der Variablenbelegungen,
die φ erfüllen
9
2 Bestandteile und Eigenschaften einer Logik Syntax: Formeln der jeweiligen Logik
Semantik:
Bedeutung der Formeln und ihrer Komponenten in einem semantischen Bereich (domain) D, d.i. eine Klasse mathematischer Strukturen, in denen die Formeln als Wahrheitswerte oder von Zuständen abhängige Wahrheitswerte interpretiert werden können.
Umgekehrt werden Elemente des semantischen Bereichs durch Formeln repräsentiert.
Für eine Formel ϕ nennt man ein Element a von D ein Modell von ϕ, wenn a ϕ erfüllt
(oder ϕ in a gültig ist), geschrieben: a |= ϕ. Was das bedeutet, hängt von der jeweiligen
Logik ab. Die Menge aller Modelle von ϕ wird oft mit ϕD bezeichnet.
Auf D und dem jeweiligen Modellbegriff bauen die folgenden Definitionen bzw. Notationen auf:
ϕ ist erfüllbar, wenn ϕ ein Modell in D hat. ϕ ist widersprüchlich, wenn ϕ unerfüllbar
ist. ϕ ist allgemeingültig oder tautologisch, wenn alle Elemente von D Modelle von
ϕ sind. Eine Formel ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch
Modell von ψ ist. Gilt ϕD = ψ D , dann sind ϕ und ψ äquivalent.
10
2 Bestandteile und Eigenschaften einer Logik Werden diese Definitionen für Formelmengen Φ anstelle einzelner Formeln verwendet,
dann ist mit Φ stets die logische Konjunktion der Elemente von Φ gemeint.
Im Gegensatz zum Implikationspfeil ⇒, der zur Syntax vieler Logiken gehört, also
in ihren jeweiligen Formeln vorkommen kann, ist |= stets ein metasprachlicher Operator, der eine semantische Beziehung zwischen Formeln beschreibt, also niemals in diesen
vorkommt.
Die Teilformeln ϕ und ψ einer Implikation(sformel) ϕ ⇒ ψ heißt Prämisse bzw. Konklusion der Implikation.
Gilt ϕ ⇒ ψ bzgl. der jeweiligen Semantik, dann sagt man auch:
• ϕ impliziert (implies) ψ,
• ϕ ist hinreichend (sufficient) für ψ,
• ψ ist notwendig (necessary) für ϕ.
11
2 Bestandteile und Eigenschaften einer Logik Ein Kalkül oder Inferenzsystem ist eine Menge K von (Schluss-)Regeln
Φ1 ` ϕ1, . . . , Φk ` ϕk
Φk+1 ` ϕk+1
Hier stehen Anwendbarkeitsbedingungen
wobei für alle 1 ≤ i ≤ k + 1 Φi eine Menge von Formeln und ϕi eine einzelne Formel der
jeweils zugrundeliegenden Logik ist.
Die Ausdrücke der Form Φ ` ϕ oberhalb bzw. unterhalb des Bruchstrichs nennt man
Antezedenten bzw. Sukzedenten der Regel. Rechts neben dem Bruchstrich stehen
manchmal Eigenschaften der Antezedenten, die diese haben müssen, damit die Regel
anwendbar ist.
Ist k = 0, dann ist der Antezedent leer und der Sukzedent wird Axiom genannt. Ein
weiterer Spezialfall liegt vor, wenn Φi leer ist. Man schreibt dann einfach ϕ anstelle von
Φi ` ϕi.
Der Ausdruck Φ ` ψ heißt K-ableitbar, geschrieben: Φ `K ϕ, wenn, kurz gesagt,
Φ ` ψ das Ergebnis wiederholter Anwendungen von Regeln des Kalküls K ist. Um
das mathematisch zu präzisieren, benötigen wir den Begriff der induktiv definierten
Menge, der in Kapitel 4 eingeführt wird.
12
2 Bestandteile und Eigenschaften einer Logik Je nach Kalkül K und Interpretation der Formeln kann man aus Φ `K ϕ verschiedene
Schlüsse ziehen, z.B.
• ϕ folgt aus Φ,
• Φ ist widersprüchlich,
• ϕ repräsentiert eine Lösung von Φ,
• ϕ repräsentiert eine Normalform von Φ.
Beispiel Jeder Anwendung eines der beiden arithmetischen Distributivgesetze
x0 ∗ (x1 + · · · + xn) ≡ x0 ∗ x1 + · · · + x0 ∗ xn,
(x1 + · · · + xn) ∗ x0 ≡ x1 ∗ x0 + · · · + xn ∗ x0
(1)
(2)
auf einen arithmetischen Ausdruck entspricht eine Anwendung folgender Regel:
Ax ` ϕ[L[t0/x0, . . . , tn/xn]/z]
Ax ` ϕ[R[t0/x0, . . . , tn/xn]/z]
L ≡ R ∈ Ax
(3)
Hierbei ist Ax = {(1), (2)} und e[e1/z1, . . . , ek /zk ] der Ausdruck, der aus dem Ausdruck
e entsteht, wenn für alle 1 ≤ i ≤ k die Variable zi durch den Ausdruck ei ersetzt wird.
13
2 Bestandteile und Eigenschaften einer Logik Da sich bei der Anwendung von (3) nur der Teilausdruck L[t/x, t1/x1, . . . , tn/xn] des
Antezedenten von (3) verändert, nennt man ihn den Redex und den korrespondierenden
Teilausdruck R[t/x, t1/x1, . . . , tn/xn] des Sukzedenten das Redukt der Regel.
Es gibt auch Regeln mit leerem Antezedenten wie z.B.
Ax ` t ≡ t
(4)
Sei K = {(3), (4)}.
+ Hier steht eine Folge von Ausdrücken, die beweist, dass
∅ ` 5 ∗ (6 ∗ (11 ∗ (x + y + z) ∗ 14 + (c + g + b) ∗ 22) + 44 ∗ (gg + hh))
≡ 5 ∗ 6 ∗ 11 ∗ x ∗ 14 + 5 ∗ 6 ∗ 11 ∗ y ∗ 14 + 5 ∗ 6 ∗ 11 ∗ z ∗ 14
+ 5 ∗ 6 ∗ c ∗ 22 + 5 ∗ 6 ∗ g ∗ 22 + 5 ∗ 6 ∗ b ∗ 22 + 5 ∗ 44 ∗ gg + 5 ∗ 44 ∗ hh
K-ableitbar ist.
Die Elemente der Folge sind als Bäume dargestellt. Teilbäume, die Redexe bzw. Redukte
einer Regelanwendung darstellen, sind rot bzw. grün gefärbt.
o
14
2 Bestandteile und Eigenschaften einer Logik Ein Kalkül K ist korrekt (sound), wenn aus Φ `K ϕ stets Φ |= ϕ folgt.
Ein Kalkül K ist vollständig (adequate), wenn aus Φ |= ϕ stets Φ `K ϕ folgt.
Eine Theorie Th ist eine Menge von Formeln.
Th ist vollständig (complete), wenn jede Formel ϕ oder die Negation von ϕ zu Th
gehört.
Th ist konsistent (widerspruchsfrei), wenn keine Formel ϕ und gleichzeitig die Negation
von ϕ zu Th gehört.
Th ist entscheidbar, wenn es einen Algorithmus gibt, der, auf eine Formel angewendet,
feststellt, ob sie zu Th gehört oder nicht, und stets terminiert.
Th ist semi-entscheidbar, wenn es einen Algorithmus gibt, der, auf eine Formel angewendet, feststellt, ob sie zu Th gehört und in diesem Fall terminiert. Andernfalls terminiert er möglicherweise nicht.
Eine Präsentation oder Spezifikation von Th ist eine – i.d.R. endliche – Menge von
Formeln, aus denen alle Formeln von Th mit einem gegebenen Kalkül ableitbar sind.
15
2 Bestandteile und Eigenschaften einer Logik Wo kommt mathematische Logik in der Informatik vor?
Überall! In Hard- und Software gleichermaßen:
• Schaltnetze und Schaltwerke
• Boolesche Ausdrücke (Darstellungen zweiwertiger Funktionen) kommen in jeder Programmier- oder Entwurfssprache vor.
• Programmverifikation als Beweis von Zusicherungen, das sind Formeln, die Eigenschaften beschreiben, die Programmvariablen an bestimmten Positionen im Programm besitzen sollen
• Programmverifikation durch Übersetzung von Programmen in eine geeignete Logik, in der ihre gewünschten Eigenschaften auf abstrakterer Ebene als bei der Zusicherungsmethode überprüft werden können
• Programmtransformation zum Zwecke der Effizienzsteigerung oder Anpassung an
vorgegebene oder veränderte Datenstrukturen (+ refactoring) oder gar zur Synthese
von Programmen aus Formeln, die ihre gewünschten Eigenschaften beschreiben
• Logische Programme lösen Formeln, d.h. (“das heißt”) berechnen Werte logischer
Variablen, die die Formeln erfüllen.
16
2 Bestandteile und Eigenschaften einer Logik • Datenbankprogramme operieren auf Relationen, kombinieren sie und stellen Anfragen (berechnen Teilrelationen). Im Gegensatz zu logischen Programmen sind die
berechneten Werte hier i.d.R. selbst Relationen.
• Automatisches Beweisen befasst sich mit der Implementierung von Inferenzsystemen und ist weniger eine Anwendung der Logik in der Informatik als eine der
Informatik in der Logik.
17
3 Mengen und Funktionen
3.1 Mengen und Relationen
Eine Menge ist eine ungeordnete Kombination von Elementen ohne Wiederholungen,
d.h. ohne mehrfache Vorkommen einzelner Elemente.
Die Elemente einer Menge können selbst Mengen sein, allerdings muss zur Vermeidung
logischer Widersprüche für jede Menge M und jedes Element e gelten, dass e entweder
zu M gehört (in M enthalten ist; geschrieben e ∈ M ) oder nicht (e 6∈ M ). Das schliesst
u.a. Mengen aus, die sich selbst enthalten:
Würde man z.B. die Kombination K aller Mengen, die sich nicht selbst enthalten, als
Menge betrachten und annehmen, dass K zu K gehört, dann gilt K 6∈ K nach Definition
von K. Nehmen wir dagegen an, dass K nicht zu K gehört, dann gilt, wieder nach
Definition von K, K ∈ K. Um solche Widersprüche zu vermeiden, wird manche Menge
von Mengen als Klasse eingeführt. Eine Klasse enthält sich per definitionem niemals
selbst.
• ∅ ist die leere Menge.
• 1 =def {} ist eine einelementige Menge. Das Element wird leeres Wort genannt.
• 2 =def {0, 1} ist eine zweielementige Menge (Bits, Wahrheitswerte, Boolesche Werte).
18
3 Mengen und Funktionen • N =def {0, 1, 2, 3, . . . } ist die Menge der natürlichen Zahlen.
• N>0 =def {1, 2, 3, . . . } ist die Menge der positiven natürlichen Zahlen.
• Z und R bezeichnen die Mengen der ganzen bzw. reellen Zahlen.
Die obige Konvention, dass sich Mengen niemals selbst enthalten, erlaubt uns das Overloading von Bezeichnungen für Elemente einerseits und Mengen andererseits – wie z.B. 1
und 2.
Eine Menge B heißt Teilmenge (subset) einer Menge A oder unäre Relation auf A
(geschrieben: B ⊆ A) und A Obermenge von B, wenn alle Elemente von B Elemente
von A sind. ∅ ist also eine Teilmenge jeder Menge. B ⊆ A ist eine echte Teilmenge von
A, wenn A außer den Elementen von B weitere Elemente enthält. A und B sind gleich
(geschrieben: A = B), wenn A ⊆ B und B ⊆ A gilt.
Durch Komprehension oder die Anwendung von Mengenoperatoren werden aus Mengen
neue Mengen gebildet:
• Komprehension: Sei A eine Menge und ϕ eine Eigenschaft von Elementen von A.
B =def {e ∈ A | e |= ϕ}
und
e ∈ B ⇔def e ∈ A und e |= ϕ
definieren B als Menge aller Elemente von A, die ϕ erfüllen.
19
3 Mengen und Funktionen • Vereinigung von n ∈ N Mengen A1, . . . , An:
e ∈ A1 ∪ · · · ∪ An ⇔def es gibt 1 ≤ i ≤ n mit e ∈ Ai
• Durchschnitt von n Mengen A1, . . . , An:
e ∈ A1 ∩ · · · ∩ An ⇔def für alle 1 ≤ i ≤ n gilt e ∈ Ai
• Differenz zweier Mengen A und B:
e ∈ A \ B ⇔def e ∈ A und e 6∈ B
• (Kartesisches) Produkt von n Mengen A1, . . . , An:
A1 × . . . × An =def {(a1, . . . , an) | ai ∈ Ai, 1 ≤ i ≤ n}
(a1, . . . , an) heißt n-Tupel mit den Komponenten a1, . . . , an. Sind A1, . . . , An dieselben Mengen, dann schreibt man An1 anstelle von A1 × · · · × An.
Die einelementige Menge 1 entspricht dem nullstelligen Produkt.
• Summe oder disjunkte Vereinigung von n Mengen A1, . . . , An:
A1 + · · · + An =def A1 ] · · · ] An =def {(a, i) | a ∈ Ai, 1 ≤ i ≤ n}
Die zweite Komponente eines Paares (a, i) von A1 +· · ·+An dient der Unterscheidung
der Herkunft von a.
Die leere Menge entspricht der nullstelligen Summe.
20
3 Mengen und Funktionen Gibt es a ∈ A1 ∪ · · · ∪ An und 1 ≤ i, j ≤ n mit i 6= j und a ∈ Ai ∩ Aj , dann gibt es
mindestens zwei Kopien von a in A1 + · · · + An, nämlich (a, i) und (a, j).
Gibt es kein solches a, dann heißen A1 . . . , An (paarweise) disjunkt, geschrieben:
A1k . . . kAn.
• Menge der Listen oder Wörter über einer Menge A:
S
n
A∗ =def
n∈N A
A+ =def A∗ \ 1.
Die Elemente von A∗ werden oft ohne Klammern und Kommas geschrieben, also z.B.
abc für das Tupel (a, b, c). Bestehen Elemente von A aus mehreren Zeichen, setzt man
Punkte zwischen die einzelnen Elemente, schreibt also z.B. ab · bz · de für das Tupel
(ab, bz, de).
Listen bilden neben Bäumen und Graphen die wichtigsten Datenstrukturen fast aller
Programmiersprachen. Sie werden dort u.a. zur Implementierung von Mengen benutzt. Da der Begriff der Menge sowohl von der Anordnung als auch der Anzahl
der Vorkommen ihrer jeweiligen Elemente abstrahiert, gibt es für jede Menge M mit
mindestens zwei Elementen mehrere Listen, die A repräsentieren.
• Die Potenzmenge P(A) einer Menge A ist die Menge aller Teilmengen von A:
e ∈ P(A) ⇔def e ⊆ A
21
3 Mengen und Funktionen • Pfin (A) bezeichnet die Menge aller endlichen Teilmengen von A. Pfin (A) ist also eine
Teilmenge von P(A).
Satz 3.1 Seien A, B, C Mengen und A ⊆ C. Dann gilt: A ⊆ B ⇔ A ∩ (C \ B) = ∅.
Beweis. “⇒”: Sei A ⊆ B und a ∈ A ∩ (C \ B). Nach Definition der Mengendifferenz
gehört a nicht zu B. (Widerspruch zu A ⊆ B). Also sind A und C \ B disjunkt.
“⇐”: Seien A und C\B disjunkt und a ∈ A. Dann gehört a nicht zu C\B. Aus a ∈ A ⊆ C
folgt deshalb a ∈ C \ (C \ B) = B ∩ C ⊆ B nach Definition der Mengendifferenz. Damit
ist A eine Teilmenge von B.
o
22
3 Mengen und Funktionen Fortan werden gelegentlich die aussagen- bzw. prädikatenlogischen Symbole ∧, ∨, ∀ und
∃ in ihrer üblichen umgangssprachlichen Bedeutung verwendet (“und”, “oder”, “für alle ...
gilt” bzw. “es gibt ... mit”). Ihre formale Semantik wird in Kapitel 6 bzw. 8 definiert.
Satz 3.2 Für alle C, D ⊆ A und CS ⊆ P(A),
C ⊆ D ⇔ A \ D ⊆ A \ C,
\
[
A\
CS =
{A \ C | C ∈ CS},
\
(∀ C ∈ CS : D ⊆ C) ⇒ D ⊆
CS.
Aufgabe Beweisen Sie Satz 3.2.
(1)
(2)
(3)
o
23
3 Mengen und Funktionen Eine n-stellige Relation R ist eine Teilmenge eines Produktes der Form A1 × · · · × An.
A1, . . . , An sind die Komponenten des Produkts.
Ist n = 2, dann wird R auch binäre Relation genannt. R−1 =def {(b, a) | (a, b) ∈ R}
heißt Inverse von R . R ist eine Relation auf A1, falls A1 mit A2 übereinstimmt.
Wegen A0 = 1 gibt es genau zwei nullstellige Relationen, nämlich 1 und ∅.
Die Menge {1, ..., n} nennt man Indexmenge des Produktes A1 × · · · × An.
Für alle 1 ≤ i ≤ n besteht Ai aus den möglichen Werten eines bestimmten Attributs
der Elemente des Produkts, z.B. seiner Farbe. Man ersetzt dann den Index i häufig
durch das zugehörige Attribut. Im Rahmen vieler Programmiersprachen werden derart
attributierte Mengen als Records bezeichnet. In Datenbanksprachen sind mit Relationen
stets attributierte Relationen gemeint.
Eine Teilmenge Z von P(A) heißt Partition oder Zerlegung von A, wenn die leere
Menge nicht zu Z gehört, je zwei verschiedene Elemente von Z disjunkt sind und Z ganz
S
A abdeckt, d.h. A mit Z übereinstimmt.
Partitionierungen sind Abstraktionen: Elemente von A, die im selben Partitionselement
von Z liegen, werden als gleich angesehen.
24
3 Mengen und Funktionen 3.2 Funktionen
Sei n ∈ N, A1, . . . , An, B Mengen und A = A1 × · · · × An.
Eine n-stellige Funktion oder Abbildung (function, map, mapping) f : A → B von
A nach B ordnet jedem – Argument oder Stelle von f genannten – Element a von A
genau ein Element b von B zu, das Bild von a unter f genannt und mit f (a) bezeichnet
wird. Man sagt auch: f bildet a auf f (a) ab.
Für alle C ⊆ A nennt man die Menge f (C) = {f (c) | c ∈ C} ebenfalls das Bild von C
unter f .
Sei b ∈ B und D ⊆ B. f −1(b) = {a ∈ A | f (a) = b} und f −1(D) = {a ∈ A | f (a) ∈ D}
heißen Urbilder (pre-image) von b bzw. D unter f .
Weitere auf f : A → B bezogene Mengen:
• type(f ) = A → B ist der Typ,
• arity(f ) = n die Stelligkeit,
• dom(f ) = A der Definitionsbereich (domain),
• ran(f ) = B der Wertebereich (range),
25
3 Mengen und Funktionen • img(f ) = f (A) = {f (a) | a ∈ A} das Bild (image),
• ker(f ) = {(a, a0) ∈ A2 | f (a) = f (a0)} der + Kern (+ kernel) und
• graph(f ) = {(a, f (a)) | a ∈ A} der Graph von f .
Der Graph von f ist also eine – im Produkt A × B enthaltene – zweistellige Relation.
a ∈ A heißt Fixpunkt von f : A → A, wenn f (a) = a ist.
Nullstellige Funktionen haben den Definitionsbereich 1 und heißen deshalb auch Konstanten.
f : A → B ist endlich, wenn A endlich ist.
f : A → B ist surjektiv, falls img(f ) = B.
Die Relation ∆A =def {(a, a) | a ∈ A} heißt Diagonale von A2.
f : A → B ist injektiv, falls ker(f ) = ∆A.
26
3 Mengen und Funktionen Aufgabe Zeigen Sie, dass f genau dann injektiv ist, wenn je zwei unterschiedliche Elemente von A verschiedene Bilder unter f haben.
Aufgabe Zeigen Sie, dass f genau dann surjektiv ist, wenn {f −1(b) | b ∈ B} eine
Zerlegung von A ist.
Aufgabe Zeigen Sie, dass {{a0 ∈ A | (a, a0) ∈ ker(f )} | a ∈ A} eine Zerlegung von A
ist.
Aufgabe Zeigen Sie, dass für alle C ⊆ A und D
f (C) ⊆ D
C ⊆ f −1(D)
f surjektiv und f −1(D) ⊆ C
f injektiv und D ⊆ f (C)
⊆ B folgende Implikationen gelten:
⇒ C ⊆ f −1(D),
⇒ f (C) ⊆ D,
⇒ D ⊆ f (C),
⇒ f −1(D) ⊆ C.
Funktionen können auf (mindestens) drei Weisen notiert werden, z.B.:
f :N×N
(m, n)
Für alle m, n ∈ N, f (m, n)
f
→
7→
=def
=def
R
m ∗ n/2
m ∗ n/2
λ(m, n).(m ∗ n/2)
27
3 Mengen und Funktionen Die letzte heißt λ-Notation. Sie macht deutlich, dass jede Funktion f : A → B Element
einer Menge ist, nämlich der Menge B A =def (A → B) aller Funktionen von A nach B.
Demnach bedeutet f ∈ B A dasselbe wie f : A → B.
In klassischer Algebra und Analysis taucht λ bei der Darstellung von Funktionen nicht
auf, wenn Symbole wie x, y, z konventionsgemäß als Variablen betrachtet und daher z.B.
für die Polynomfunktion λx.2 ∗ x3 + 55 ∗ x2 + 33 : R → R einfach nur 2 ∗ x3 + 55 ∗ x2 + 33
oder sogar nur 2x3 + 55x2 + 33 geschrieben wird.
Da in allgemeiner Logik oder Algebra Symbole wie x, y, z, ∗ unterschiedlich interpretiert
werden, können solche Kurzschreibweisen hier zu Missverständnissen führen und sollten
deshalb vermieden werden.
Das Update von f : A → B an Stellen a1, . . . , an ∈ A durch Werte b1, . . . , bn ∈ B ist
eine neue Funktion, die wie folgt definiert ist:
f [b1/a1, . . . , bn/an] : A → B
“f mit bi für ai”
bi
falls a = ai für ein 1 ≤ i ≤ n
a 7→
f (a) sonst
28
3 Mengen und Funktionen Jede binäre Relation R auf B wird wie folgt zu einer Relation auf der Funktionsmenge
B A erweitert: Für alle f, g : A → B,
(f, g) ∈ R ⇔def für alle a ∈ A gilt (f (a), g(a)) ∈ R.
Die (sequentielle) Komposition g ◦ f zweier Funktionen f : A → B und g : B → C ist
eine Funktion von A nach C:
g◦f : A → C
a 7→ g(f (a))
Offenbar ist ◦ assoziativ, d.h. für alle f : A → B, g : B → C und h : C → D gilt
h ◦ (g ◦ f ) = (h ◦ g) ◦ f . Man darf die Klammern deshalb weglassen.
Aufgabe Zeigen Sie, dass f genau dann injektiv ist, wenn je zwei Funktionen
g, h : A0 → A mit f ◦ g = f ◦ h übereinstimmen.
Aufgabe Zeigen Sie, dass f genau dann surjektiv ist, wenn je zwei Funktionen
g, h : B → B 0 mit g ◦ f = h ◦ f übereinstimmen.
29
3 Mengen und Funktionen Zu jeder Menge A gibt es die Identität idA : A → A auf A, die jedem Argument dieses
selbst zuordnet: Für alle a ∈ A, idA(a) = a.
Offenbar sind alle Elemente von A Fixpunkte von idA und alle Funktionen von A in eine
Menge B Fixpunkte von λf.f ◦ idA und λg.idB ◦ g.
Zu jeder Teilmenge B von A gibt es die Inklusion incB : B → A, die ebenfalls jedem
Argument dieses selbst zuordnet: Für alle b ∈ B, incB (b) = b.
Eine Funktion g : B → A heißt Inverse (Umkehrfunktion) von f : A → B, falls gilt:
g ◦ f = idA,
f ◦ g = idB .
Die Elemente eines Produktes A1 × · · · × An werden mit Projektionen
πi : A1 × · · · × An → Ai
(a1, . . . , an) 7→ ai
1≤i≤n
auf ihre n Komponentenmengen A1, . . . , An abgebildet.
30
3 Mengen und Funktionen Die Elemente von n Mengen A1, . . . , An werden mit Injektionen
ιi : Ai → A1 + · · · + An
a 7→ (a, i)
in die Summe A1 + · · · + An eingebettet.
1≤i≤n
Die Summenextension
[f1, . . . , fn] : A1 + · · · + An → B
von n Funktionen f1 : A1 → B, . . . , fn : An → B ist folgendermaßen definiert:
Für alle (a, i) ∈ A1 + · · · + An,
[f1, . . . , fn](a, i) =def fi(a).
Die Produktextension
hg1, . . . , gni : B → A1 × · · · × An
von n Funktionen g1 : B → A1, . . . , gn : B → An ist folgendermaßen definiert:
Für alle b ∈ B,
hg1, . . . , gni(b) =def (g1(b), . . . , gn(b)).
31
3 Mengen und Funktionen [f1, . . . , fn] und hg1, . . . , gni sind die eindeutigen (!) Funktionen derart, dass die folgenden
Funktionsdiagramme kommutieren, d.h. derart, dass die durch die Diagramme repräsentierten Funktionsgleichungen gelten: Sei 1 ≤ i ≤ n.
fi
A1 + · · · + An
A1 × · · ·≺× An
(1)
πi
(2)
[f1, . . . , fn]
Ai
ιi
Ai
hg1, . . . , gni
gi
B≺
B
Man sagt deshalb, dass [f1, . . . , fn] durch (1) und hg1, . . . , gni durch (2) definiert ist.
Dementsprechend sind die Summe
f1 + · · · + fn : A1 + · · · + An → B1 + · · · + Bn
von fi : Ai → Bi, 1 ≤ i ≤ n, und das Produkt
g1 × · · · × gn : A1 × · · · × An → B1 × · · · × Bn
von gi : Bi → Ai, 1 ≤ i ≤ n, durch die folgenden Diagramme definiert:
32
3 Mengen und Funktionen Ai
fi
g
Bi
ιi
A1 + · · · + An
= f1 + · · · + fn
ιi
A1 × · · · × An
f
g1 × · · · × gn
g
B1 + · · · + Bn
B1 × · · · × Bn
πi
=
πi
Ai
f
gi
Bi
Offenbar gilt
f1 + · · · + fn = [ι1 ◦ f1, . . . , ιn ◦ fn] und g1 × · · · × gn = hg1 ◦ π1, . . . , gn ◦ πni.
Für alle n ∈ N bezeichnet f n : A → A die n-fache Komposition f ◦ · · · ◦ f , f 0 : A → A
ist definiert als Identität auf A (s.o.).
Summen, Produkte und ihre Extensionen werden analog für beliebige – auch unendliche
– Indexmengen I definiert. Oben hat I immer die Form {1, . . . , n}.
3.3 Isomorphien
f : A → B ist bijektiv oder eine Bijektion, falls f eine Inverse g hat. In diesem Fall
ist g eindeutig und wird deshalb mit f −1 bezeichnet.
33
3 Mengen und Funktionen Beweis. Seien g und h Inverse von f . Dann gilt:
h = h ◦ idB = h ◦ (f ◦ g) = (h ◦ f ) ◦ g = idA ◦ g = g.
o
Aufgabe Zeigen Sie, dass die Komposition zweier Bijektionen bijektiv ist.
Aufgabe Zeigen Sie, dass eine Funktion genau dann bijektiv ist, wenn sie injektiv und
surjektiv ist.
Aufgabe Zeigen Sie, dass für Funktionen zwischen endlichen Mengen die Begriffe injektiv,
surjektiv und bijektiv zusammenfallen.
Zwei Mengen A und B sind isomorph, geschrieben: A ∼
= B, wenn es eine Bijektion von
A nach B (oder B nach A) gibt.
Sind A und B Algebren, d.h. Mengen mit Operationen, dann verlangt Isomorphie zusätzlich, dass die Bijektion mit den Operationen von A und B verträglich ist. Das wird in
Kapitel 5 näher ausgeführt.
In diesem Fall folgt aus A ∼
= B, dass A und B elementar äquivalent sind, d.h. dieselben – in der jeweils zugrundeliegenden Logik formulierbaren – Eigenschaften haben. Die
Umkehrung: Elementare Äquivalenz impliziert Isomorphie, gilt jedoch nicht immer.
34
3 Mengen und Funktionen Mathematiker betrachten isomorphe Mengen oft als gleich. Informatiker stoßen hingegen
manchmal auf große Unterschiede, wenn sie zwei isomorphe Mengen A und B (als Formate, Datentypen, Klassen o.a.) implementieren und den Aufwand eines bestimmten auf A
operierenden Algorithmus mit dem seines Pendants auf B vergleichen. Um den Algorithmus beschleunigen zu können, sollte man deshalb wissen, welche Datentypen zueinander
isomorph sind, damit man den für ihn geeignetsten auswählen kann.
Hier geht es vor allem um Algorithmen, die Verfahren zum Auswerten, Lösen, oder Beweisen von Formeln implementieren. Ihre Kosten hängen nach dem oben Gesagten von
der Darstellung des semantischen Bereichs ab, in dem die Formeln interpretiert werden.
Wichtige Isomorphien A ∼
= B, jeweils mit der zugehörigen Bijektion f : A → B und
deren Inverser f −1 : B → A
• Seien A und B disjunkt. Dann gilt: A + B ∼
= A ∪ B.
Für alle a ∈ A und b ∈ B, f (a, 1) = a, f (b, 2) = b, f −1(a) = (a, 1) und f −1(b) = (b, 2).
• Kommutativität von + und ×: A × B ∼
(4)
= B × A und A + B ∼
= B + A.
Für alle a ∈ A und b ∈ B, f (a, b) = (b, a) bzw. f (a, 1) = (a, 2) und f (b, 2) = (b, 1).
35
3 Mengen und Funktionen • Die Funktionen χ : P(A) → 2A und χ−1 : 2A → P(A) sind wie folgt definiert:
1 falls a ∈ B,
Für alle B ⊆ A und a ∈ A, χ(B)(a) =
0 sonst.
χ(B) heißt + charakteristische Funktion von B.
Für alle g ∈ 2A, χ−1(g) = {a ∈ A | g(a) = 1}.
Ist A ein binäres Produkt, z.B. A = A1 × A2, dann wird χ(B) auch als Boolesche
Matrix oder Adjazenzmatrix bezeichnet.
χ ist bijektiv. Für alle Mengen A gilt also P(A) ∼
= 2A .
(5)
Beweis. Nach Definition von Bijektivität und Funktionsgleichheit ist zu zeigen:
(i) Für alle B ⊆ A gilt χ−1(χ(B)) = B.
(ii) Für alle g : A → 2 und a ∈ A gilt χ(χ−1(g))(a) = g(a).
Beweis von (i). Sei B ⊆ A. Dann gilt nach Definition von χ−1 bzw. χ:
χ−1(χ(B)) = {a ∈ A | χ(B)(a) = 1} = {a ∈ A | a ∈ B} = B.
36
3 Mengen und Funktionen Beweis von (ii). Sei g : A → 2 und a ∈ A. Dann gilt nach Definition von χ bzw. χ−1:
−1
1
falls
a
∈
χ
(g)
1
falls
g(a)
=
1
χ(χ−1(g))(a) =
=
= g(a).
o
0 sonst
0 sonst
• Die Funktionen
curry : C A×B → C B
A
A
und uncurry : C B → C A×B
sind folgt definiert:
Für alle g : A × B → C, a ∈ A, b ∈ B und h : A → C B ,
curry(g)(a)(b) = g(a, b) und uncurry(h)(a, b) = h(a)(b).
curry(g) : A → C B heißt kaskadierte oder + curryfizierte Version von g.
curry ist bijektiv. Für alle Mengen A, B, C gilt also C A×B ∼
= (C B )A.
(6)
Wie die oben definierten Funktionssummen- und produkte, so sind auch curry und
uncurry die eindeutigen Funktionen derart, dass bestimmte Funktionsdiagramme
kommutieren. Hier lauten sie wie folgt:
37
3 Mengen und Funktionen λ(f, b).f (b)
C≺
λa.λb.(a, b)
A
(A×B)B
≺
CB × B
λ(a, b).(curry(g), b)
h
λf.uncurry(h) ◦ f
A×B
≺
g
CB
• Aus A ∼
= B folgt P(A) ∼
= P(B).
(7)
• Die Funktionen
mkfun : P(A × B) → P(B)A und mkrel : P(B)A → P(A × B)
sind wie folgt definiert: Für alle R ⊆ A × B, a ∈ A und g : A → P(B),
mkfun(R)(a) = {b ∈ B | (a, b) ∈ R} und mkrel (g) = {(a, b) ∈ A × B | b ∈ g(a)}.
mkfun(R) wird auch nichtdeterministische Funktion oder Adjazenzliste genannt.
38
3 Mengen und Funktionen mkfun ist bijektiv. Für alle Mengen A, B gilt also P(A × B) ∼
= P(B)A.
(5)
(6)
(8)
(5),(7)
Beweis. P(A × B) ∼
= 2A×B ∼
= (2B )A ∼
= P(B)A.
Aufgabe Zeigen Sie, wie man aus den obigen Isomorphien die folgende gewinnt:
P(A)B ∼
= P(B)A.
Aufgabe Zeigen Sie die Assoziativität von Summe und Produkt:
A + (B + C) ∼
A × (B × C) ∼
= (A + B) + C,
= (A × B) × C.
Aufgabe Zeigen Sie folgende Distributivitätsgesetze:
A × (B1 + · · · + Bn) ∼
= (A × B1) + · · · + (A × Bn)
B A1+···+An ∼
= B A1 × . . . × B An
(B1 × · · · × Bn)A ∼
= BA × . . . × BA
1
n
(9)
(10)
(11)
Aufgabe Zeigen Sie für alle f : A → C B und g : C → D:
g ◦ uncurry(f ) = uncurry((λh.g ◦ h) ◦ f ).
(12)
Aufgabe Zeigen Sie für alle R ⊆ A × B: curry(χ(R)) = χ ◦ mkfun(R).
39
3 Mengen und Funktionen Aufgabe Zeigen Sie für alle f : A → B: mkfun(graph(f )) = single ◦ f , wobei für alle
b ∈ B, single(b) =def {b}.
Offenbar sind viele zusammengesetzte Mengen zu Funktionsmengen isomorph. Eine endliche Funktion kann durch ein Feld oder + Array oder eine Liste (s.u.) der Elemente
ihres Graphen implementiert werden.
Weitere als Funktionen darstellbare Datenstrukturen:
• Multimengen (bags) sind wie Mengen ungeordnete Kombinationen von Elementen.
Im Gegensatz zu Mengen können sie jedoch Elemente mehrfach enthalten:
Eine Multimenge über einer Menge A, d.h. mit Elementen von A, lässt sich daher
als Funktion f : A → N darstellen: Für alle a ∈ A gibt f (a) als Anzahl der Vorkommen von a in f an. Die Menge B(A) aller Multimengen über A ist daher definiert als
die Funktionsmenge NA.
• Die Menge Ströme oder unendlichen Folgen von Elementen einer Menge A, kurz:
Ströme über A, ist umgekehrt definiert als die Funktionsmenge AN: Für alle s ∈ AN
und n ∈ N liefert s(n) das n-te Element von s.
40
3 Mengen und Funktionen Ist A eine endliche Menge, dann ist die Mächtigkeit oder Kardinalität |A| von A durch
die Anzahl der Elemente von A gegeben. Die Mächtigkeit endlicher Produkte, Summen
bzw. Funktionsmengen Mengen ergibt sich wie folgt aus den Kardinalitäten der jeweiligen
Komponentenmengen:
|A × B| = |A| ∗ |B|,
|A + B| = |A| + |B|,
|AB | = |A||B|.
Hier sieht man, wo die Bezeichnungen dieser Mengenoperatoren herkommen.
Isomorphe Mengen nennt man auch gleichmächtig.
Die Mächtigkeit oder “Größe” einer Menge A wird durch eine + Kardinalzahl beschrieben. Die kleinste unendliche Kardinalzahl wird mit ω oder ℵ0 (aleph, hebräischer
Buchstabe) bezeichnet.
Demgegenüber gibt eine Ordinalzahl die “Position” von A innerhalb der totalen Ordnung
aller Ordinalzahlen an. Ist A endlich, dann stimmen die Kardinal- und die Ordinalzahl
von A miteinander überein. Andernfalls lassen sich A mehrere Ordinalzahlen zuordnen.
Die Kardinalität von A ist die kleinste davon.
41
3 Mengen und Funktionen Lässt sich A z.B. die Ordinalzahl ω + 1 zuordnen, dann hat A dennoch die Kardinalität
ω.
Mengen mit einer Kardinalität, die kleiner oder gleich ω ist, heißen abzählbar. Nicht abzählbare Mengen werden auch überabzählbar genannt. Eine abzählbare Menge A heißt
aufzählbar, wenn es einen – im Falle von |A| ≥ ω möglicherweise nichtterminierenden
– Algorithmus gibt, der die Abzählung der Elemente von A durchführt.
A ist genau dann abzählbar, wenn es eine injektive Funktion f : A → N oder eine
surjektive Funktion g : N → A gibt. Die beiden Bedingungen sind äquivalent zueinander.
Z.B. ist A = N × N abzählbar, weil die folgende Funktion f : A → N injektiv ist: Für
alle m, n ∈ N,
f (m, n) =def (m + n) ∗ (m + n + 1)/2 + m
(siehe [13], §3.2.2). f basiert auf + Cantors erstem Diagonalargument. An der graphischen
Darstellung dieses Arguments erkennt man, dass es sich wie folgt verallgemeinern lässt:
Sind zwei Mengen A und B abzählbar, dann ist auch A × B abzählbar.
42
3 Mengen und Funktionen + Cantors zweites Diagonalargument dient dem Nachweis der Überabzählbarkeit einer
Menge A. Für A = 2N lautet es wie folgt: Wäre A abzählbar, dann gäbe es eine Bijektion
f : A → N. Sei h ∈ 2N wie folgt definiert: Für alle n ∈ N, h(n) = 1 − f −1(n)(n). Daraus
folgt
h(f (h)) = 1 − f −1(f (h))(f (h)) = 1 − h(f (h)). Wieder erkennt man an der graphischen Darstellung des Arguments, dass es sich wie folgt
verallgemeinern lässt:
Ist eine Menge A abzählbar und hat eine Menge B mindestens zwei Elemente, dann ist
B A überabzählbar.
Aufgabe Zeigen Sie unter Verwendung von Cantors erstem Diagonalargument, dass A∗
abzählbar ist, falls A abzählbar ist.
43
3 Mengen und Funktionen Highlights
B ∈ P(A)
e ∈ A1 ∪ · · · ∪ An
e ∈ A1 ∩ · · · ∩ An
e∈A\B
A1 + · · · + An
A1 × . . . × An
BA
∆A
A⊆B
A ∩ (B ∪ C)
A ∪ (B ∩ C)
A \ (B ∪ C)
A \ (B ∩ C)
graph(f : A → B)
img(f : A → B)
ker(f : A → B)
f : A → B injektiv
f : A → B surjektiv
⇔def
⇔def
⇔def
⇔def
=def
=def
=def
=def
⇔
=
=
=
=
=def
=def
=def
⇔def
⇔def
B⊆A
∃ 1 ≤ i ≤ n : e ∈ Ai
∀ 1 ≤ i ≤ n : e ∈ Ai
e ∈ A ∧ e 6∈ B
{(a, i) | a ∈ Ai, 1 ≤ i ≤ n}
{(a1, . . . , an) | ai ∈ Ai, 1 ≤ i ≤ n}
Menge aller Funktionen von A nach B
{(a, a) | a ∈ A}
C \B ⊆C \A
(A ∩ B) ∪ (A ∩ C)
(A ∪ B) ∩ (A ∪ C)
(A \ B) ∩ (A \ C)
(A \ B) ∪ (A \ C)
{(a, f (a)) ∈ A2 | a ∈ A}
{f (a) | a ∈ A}
{(a, a0) ∈ A2 | f (a) = f (a0)}
ker(f ) = ∆A
img(f ) = B
44
3 Mengen und Funktionen A
A∼
=B
A∼
=B ∧ B∼
=C
A+B
A×B
A × (B + C)
C A+B
(B × C)A
A∼
=C ∧ B∼
=D
P(A)
P(A)
A∼
=B
P(A × B)
∼
=
⇒
⇒
∼
=
∼
=
∼
=
∼
=
∼
=
⇒
∼
=
∼
6=
⇒
∼
=
A
B∼
=A
A∼
=C
B+A
B×A
(A × B) + (A × C)
CA × CB
BA × C A
A+B ∼
= C +D ∧ A×B ∼
= C × D ∧ BA ∼
= DC
2A
A
P(A) ∼
= P(B)
P(B)A.
45
4 (Co)Induktiv Definieren und Beweisen
4.1 (Co)Induktiv definierte Mengen
Mit Mengenoperatoren lassen sich aus gegebenen Mengen neue bilden. Weiterhin haben
wir gesehen, wie mit Hilfe der Komprehension eine Teilmenge T einer gegebenen Menge
S beschrieben wird, nämlich indem man T als Menge aller Elemente von S definiert, die
eine logische Formel ϕ erfüllen. Damit ist ϕ eine endliche Beschreibung von T – auch
wenn T selbst unendlich ist.
Weitere endliche oder unendliche Mengen erhält man als Lösungen von Gleichungen der
Form F (X) = X in der Mengenvariablen X, wobei F : P(S) → P(S) eine monotone
Funktion ist, d.h. für alle Teilmengen T, T 0 von S gilt:
T ⊆ T0
⇒
F (T ) ⊆ F (T 0).
Offenbar löst T ⊆ S die Gleichung F (X) = X genau dann, wenn T ein Fixpunkt von F
ist (siehe Kapitel 3).
Die Fixpunkteigenschaft zerfällt in zwei Teile:
T ⊆ S heißt F -abgeschlossen, wenn F (T ) eine Teilmenge von T ist.
T ⊆ S heißt F -dicht, wenn T eine Teilmenge von F (T ) ist.
46
4 (Co)Induktiv Definieren und Beweisen Die Monotonie von F garantiert die Existenz eines kleinsten wie auch eines größten Fixpunkts von F :
Satz 4.1 Fixpunktsatz für (co)induktiv definierte Mengen
Sei F : P(S) → P(S) monoton und ϕ eine mögliche Eigenschaft von Elementen von S.
T
(i) lfp(F ) =def {T ⊆ S | T F -abgeschlossen} ist die kleinste F -abgeschlossene
Teilmenge von S und der kleinste Fixpunkt von F .
S
(ii) gfp(F ) =def {T ⊆ S | T F -dicht} ist die größte F -dichte Teilmenge von S und
der größte Fixpunkt von F .
(iii) F -Induktion:
Jede F -abgeschlossene Teilmenge von S enthält lfp(F ). Inbesondere gilt ϕ für alle Elemente von lfp(F ), falls ϕS = {a ∈ S | a |= ϕ} F -abgeschlossen ist.
(iv) F -Coinduktion:
gfp(F ) enthält jede F -dichte Teilmenge von S.
47
4 (Co)Induktiv Definieren und Beweisen Beweis von (i). Sei T eine F -abgeschlossene Teilmenge von S. Dann gilt:
\
lfp(F ) = {U ⊆ S | F (U ) ⊆ U } ⊆ T.
(1)
Da F monoton und T F -abgeschlossen ist, folgt
F (lfp(F )) ⊆ F (T ) ⊆ T
(2)
aus (1). Da T beliebig gewählt wurde, ist F (lfp(F )) eine Teilmenge jeder F -abgeschlossenen Teilmenge von S. Also gilt
Satz 3.2 (3) \
F (lfp(F ))
⊆
{U ⊆ S | F (U ) ⊆ U } = lfp(F ),
(3)
m.a.W.: lfp(F ) ist selbst F -abgeschlossen, zusammen mit (1) also die kleinste F -abgeschlossene Teilmenge von S.
Da F monoton ist, folgt
F (F (lfp(F ))) ⊆ F (lfp(F ))
aus (3), d.h. auch F (lfp(F )) ist F -abgeschlossen. Also gilt
\
lfp(F ) = {U ⊆ S | F (U ) ⊆ U } ⊆ F (lfp(F )).
(4)
(5)
Aus (3) und (5) folgt F (lfp(F )) = lfp(F ), d.h. lfp(F ) ist ein Fixpunkt von F .
48
4 (Co)Induktiv Definieren und Beweisen Sei T ein beliebiger Fixpunkt von F . Dann ist T F -abgeschlossen. Also gilt lfp(F ) ⊆ T ,
d.h. lfp(F ) ist der kleinste Fixpunkt von F .
Aufgabe Zeigen Sie (ii) analog zu (i).
Beweis von (iii). Sei T eine F -abgeschlossene Teilmenge von S. Aus (i) folgt:
\
lfp(F ) = {U ⊆ S | F (U ) ⊆ U } ⊆ T.
Beweis von (iv). Sei T eine F -dichte Teilmenge von S. Aus (ii) folgt:
[
T ⊆ {U ⊆ S | U ⊆ F (U } = gfp(F ).
o
T ⊆ S heißt induktiv definiert, wenn es eine monotone Funktion F : P(S) → P(S)
mit lfp(F ) = T gibt.
T ⊆ S heißt coinduktiv definiert, wenn es eine monotone Funktion F : P(S) → P(S)
mit gfp(F ) = T gibt.
In beiden Fällen nennen wir F die Schrittfunktion von T .
49
4 (Co)Induktiv Definieren und Beweisen Satz 4.2 N ist induktiv definiert. Eine Schrittfunktion für N lautet wie folgt:
Fnat : P(N) → P(N)
T 7→ {0} ∪ {n + 1 | n ∈ T }
Beweis. Offenbar ist Fnat monoton. N ist Fnat-abgeschlossen:
Fnat(N) = {0} ∪ {n + 1 | n ∈ N} ⊆ N.
Sei T ⊆ N Fnat-abgeschlossen und N 6⊆ T . Dann N \ T nicht leer. Sei n das (bzgl.
der üblichen kleiner-Relation auf N) kleinste Element von N \ T . Nach Satz 3.2 (i) folgt
N \ T ⊆ N \ Fnat(T ) aus Fnat(T ) ⊆ T . Demnach gilt
n ∈ N \ T ⊆ N \ Fnat(T ),
also n 6= 0 sowie n 6= a + 1 und daher n − 1 6= a für alle a ∈ T , d.h. n − 1 ∈
/ T . Das
widerspricht der Definition von n als kleinstem Element von N \ T . Also gilt N ⊆ T .
Demnach ist N die kleinste Fnat-abgeschlossene Teilmenge von N und stimmt daher nach
Satz 4.1 (i) mit lfp(F ) überein.
o
50
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.3 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge evens der
geraden Zahlen induktiv definiert und
Feven : P(N) → P(N)
T 7→ {0} ∪ {n + 2 | n ∈ T }
eine Schrittfunktion für evens ist.
o
Beispiel 4.4 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge A∗ der Listen
über A (siehe Kapitel 3) induktiv definiert und
Flist : P(A∗) → P(A∗)
T 7→ {} ∪ {(a, a1, . . . , an) | a ∈ A, (a1, . . . , an) ∈ T, n ∈ N}
eine Schrittfunktion für A∗ ist.
o
51
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.5 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge sorted aufsteigend sortierter Listen natürlicher Zahlen induktiv definiert und
Fsort : P(N∗) → P(N∗)
T 7→ {} ∪ N ∪ {(a, a1, . . . , an) | a ∈ N, a ≤ a1, (a1, . . . , an) ∈ T, n > 0}
o
eine Schrittfunktion für sorted ist.
Beispiel 4.6 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge
R[x] = {λx.
n
X
ai ∗ xn−i | n ∈ N}
i=0
reellwertiger Polynome induktiv definiert und
Fpoly : P(RR) → P(RR)
T 7→ {λx.a | a ∈ R} ∪ {λx.p(x) ∗ x + a | a ∈ R, p ∈ T }
eine Schrittfunktion für R[x] ist.
o
52
4 (Co)Induktiv Definieren und Beweisen Satz 4.7 T ⊆ S ist genau dann induktiv definiert, wenn S \ T coinduktiv definiert ist.
Beweis. “⇒”: Sei F eine Schrittfunktion für T und G : P(S) → P(S) wie folgt definiert:
Für alle U ⊆ S, G(U ) = S \ F (S \ U ).
Ist F ist monoton, dann auch G: Sei T ⊆ U . Aus Satz 3.2 (1) folgt S \ U ⊆ S \ T , also
F (S \ U ) ⊆ F (S \ T ) und daher
Satz 3.2 (1)
G(T ) = S \ F (S \ T )
⊆
S \ F (S \ U ) = G(U ).
G ist eine Schrittfunktion für S \ T :
Satz 4.1 (ii) S
Def . G S
gfp(G)
=
{T ⊆ S | T ⊆ G(T )} =
{T ⊆ S | T ⊆ S \ F (S \ T )}
Satz 3.2 (1) S
=
{T ⊆ S | F (S \ T ) ⊆ S \ T }
S
= {S \ (S \ T ) ⊆ S | T ⊆ S, F (S \ T ) ⊆ S \ T }
S
T
Satz 3.2 (2)
= {S \ T | T ⊆ S, F (T ) ⊆ T }
=
S \ {T ⊆ S | F (T ) ⊆ T }
Satz 4.2 (i)
=
“⇐”: analog.
S \ lfp(F )
lfp(F )=T
=
S \ T.
o
53
4 (Co)Induktiv Definieren und Beweisen 4.2 Induktion über n ∈ N
Gezeigt werden mit dieser Beweismethode bekanntlich Eigenschaften ϕ aller natürlichen
Zahlen.
Den Beweis von ϕ für n = 0 nennt man Induktionsanfang, während beim Induktionsschritt
aus der – Induktionshypothese (oder -voraussetzung) genannten – Gültigkeit von ϕ für n
die Gültigkeit von ϕ für n + 1 geschlossen wird.
Sei Fnat wie in Satz 4.2 definiert. Wie man leicht sieht, entsprechen Induktionsanfang
und Induktionsschritt einem Beweis, dass die Menge ϕnat aller natürlichen Zahlen, die ϕ
erfüllen, Fnat-abgeschlossen ist.
Die Korrektheit der Induktion über n folgt demnach aus der Monotonie von Fnat, Satz
4.1 (iii) und Satz 4.2: Fnat(ϕN) ⊆ ϕN impliziert N = lfp(Fnat) ⊆ ϕN, d.h. alle natürlichen
Zahlen erfüllen ϕ.
Induktion über n ∈ N ist also Fnat-Induktion.
o
Aufgabe Zeigen Sie durch Induktion über n, dass jede natürliche Zahl gerade oder ungerade ist.
o
54
4 (Co)Induktiv Definieren und Beweisen Induktion über n ∈ N lässt sich verallgemeinern zur Noetherschen Induktion (s.u.), die
anstelle von N eine beliebige Menge mit wohlfundierter Relation voraussetzt:
Sei A eine Menge. Eine Relation R ⊆ A2 heißt wohlfundiert, wenn jede nichtleere
Teilmenge M von A ein bzgl. R minimales Element a enthält, d.h. für alle b ∈ M gilt
(b, a) 6∈ R.
Beachten Sie, dass M mehrere minimale Elemente enthalten kann, während es stets nur
höchstens ein kleinstes Element gibt!
Satz 4.8 Sei R ⊆ A2 eine wohlfundierte Relation. Dann ist A induktiv definiert. Eine
Schrittfunktion für A lautet wie folgt:
FR : P(A) → P(A)
T 7→ {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ T }
Beweis. Offenbar ist FR monoton. A ist FR -abgeschlossen:
FR (A) = {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ A} ⊆ A.
Sei T ⊆ A FR -abgeschlossen.
55
4 (Co)Induktiv Definieren und Beweisen Wir nehmen an, dass A keine Teilmenge von T ist. Dann wäre A \ T nichtleer. Da R
wohlfundiert ist, enthält A \ T ein bzgl. R minimales Element a. Wegen FR (T ) ⊆ T folgt
a∈
/ FR (T ), also b ∈ A \ T für ein (b, a) ∈ R. Das widerspricht der Definition von a als
minimalem Element von A \ T . Also gilt A ⊆ T .
Demnach ist A die kleinste FR -abgeschlossene Teilmenge von A und stimmt daher nach
Satz 4.1 (i) mit lfp(FR ) überein.
o
4.3 Noethersche Induktion bzgl. R ⊆ A2
Gezeigt werden mit dieser Beweismethode Eigenschaften ϕ einer Menge A, für die es eine
wohlfundierte Relation R ⊆ A2 gibt.
Ein Beweis von ϕ durch Noethersche Induktion bzgl. R besteht im Nachweis von ϕ für alle
a ∈ A unter der Voraussetzung, dass ϕ für alle b ∈ A mit (b, a) ∈ R gilt. Das entspricht
einem Beweis, dass die Menge ϕA aller Elemente von A, die ϕ erfüllen, FR -abgeschlossen
ist.
56
4 (Co)Induktiv Definieren und Beweisen Die Korrektheit Noetherscher Induktion bzgl. R folgt demnach aus der Monotonie von
FR , Satz 4.1 (iii) und Satz 4.8: FR (ϕA) ⊆ ϕA impliziert A = lfp(FR ) ⊆ ϕA, d.h. alle
Elemente von A erfüllen ϕ.
Noethersche Induktion bzgl. R ist also FR -Induktion.
Induktion über n ∈ N ist Noethersche Induktion bzgl. R = {(n, n + 1) | n ∈ N}.
o
Da F monoton ist, bilden die Iterationen
F 0(∅), F 1(∅), F 2(∅), . . .
bzw. F 0(S), F 1(S), F 2(S), . . .
von F ∞ bzw. F∞ eine auf- bzw. absteigende Kette, d.h. für alle n ∈ N gilt
F n(∅) ⊆ F n+1(∅) bzw. F n(S) ⊇ F n+1(S).
Aus der Ketteneigenschaft folgt sofort, dass im Fall einer endlichen Obermenge S der
obere bzw. untere Kleene-Abschluss von F mit einer seiner Iterationen übereinstimmt
und damit F -abgeschlossen bzw. F -dicht ist.
[
\
∞
n
F =def
F (∅)
bzw.
F∞ =def
F n(S)
n∈N
n∈N
heißt oberer bzw. unterer Kleene-Abschluss von F .
57
4 (Co)Induktiv Definieren und Beweisen Satz 4.9 Sei F : P(S) → P(S) monoton.
(i)
(ii)
F ∞ ⊆ lfp(F ).
F (F ∞) ⊆ F ∞ ⇒ F ∞ = lfp(F ).
(iii)
gfp(F ) ⊆ F∞.
(iv)
F∞ ⊆ F (F∞)
⇒ F∞ = gfp(F ).
Beweis von (i). Wir zeigen
F n(∅) ⊆ lfp(F )
(1)
für alle n ∈ N durch Induktion über n: Induktionsanfang: F 0(∅) = ∅ ⊆ lfp(F ).
Induktionsschritt: Da F monoton ist und lfp(F ) ein Fixpunkt von F , gilt
(1)
F n+1(∅) = F (F n(∅)) ⊆ F (lfp(F )) = lfp(F ).
Also gilt F
∞
=
S
n∈N F
n
(∅) ⊆ lfp(F ).
Beweis von (ii). Sei F ∞ F -abgeschlossen. Also gilt lfp(F ) ⊆ F ∞ nach Satz 4.1 (iii). Aus
(i) folgt daher F ∞ = lfp(F ).
58
4 (Co)Induktiv Definieren und Beweisen Beweis von (iii). Wir zeigen
gfp(F ) ⊆ F n(S)
(2)
für alle n ∈ N durch Induktion über n: Induktionsanfang: gfp(F ) ⊆ S = F 0(S).
Induktionsschritt: Da F monoton ist und gfp(F ) ein Fixpunkt von F , gilt
(2)
gfp(F ) = F (gfp(F )) ⊆ F (F n(S)) = F n+1(S).
T
Also gilt gfp(F ) ⊆ n∈N F n(S) = F∞.
Beweis von (iv). Sei F∞ F -dicht. Also gilt F∞ ⊆ gfp(F ) nach Satz 4.1 (iv). Aus (iii)
folgt daher F∞ = gfp(F ).
o
Z.B. ist FR (siehe Satz 4.8) nicht FR -abgeschlossen, wenn ein Element a ∈ FR (FR∞)
unendlich viele Vorgänger bzgl. R hat, die in verschiedenen Approximationen von FR∞
n
vorkommen. Dann gibt es zwar für alle (b, a) ∈ R nb ∈ N mit b ∈ FRb (∅), aber kein n ∈ N
mit b ∈ FRn(∅) für alle (b, a) ∈ R, also auch kein n ∈ N mit a ∈ FR (FRn(∅)) = FRn+1(∅),
d.h. a gehört nicht zu FR∞.
59
4 (Co)Induktiv Definieren und Beweisen 4.4 Ableitungen und Ableitungsrelationen
Formeln bilden induktive Mengen. Für deren Schrittfunktionen verweisen wir auf spätere
Kapitel. Hier setzen wir eine beliebige Formelmenge Fo und einen Kalkül K (siehe Kapitel
2) voraus, dessen Regeln
Φ1 ` ϕ1, . . . , Φk ` ϕk
(1)
Φk+1 ` ϕk+1
auf Fo operieren, d.h. für alle 0 ≤ i ≤ k + 1 gilt Φi ⊆ Fo und ϕi ∈ Fo.
Offenbar sind
FK : P(P(Fo) × Fo) → P(P(Fo) × Fo)
T 7→ {a |
a1 ,...,an
a
∈ K, a1, . . . , an ∈ T }
und
FK ∗ : P((P(Fo) × Fo)∗) → P((P(Fo) × Fo)∗)
T 7→ 1 ∪ {(a1, . . . , an, a) | (a1, . . . , an) ∈ T, n ∈ N,
a ∈ FK ({a1, . . . , an})}
monoton.
60
4 (Co)Induktiv Definieren und Beweisen (a1, . . . , an) ∈ FK∞∗ heißt K-Ableitung von Φ ` ϕ, wenn an = (Φ ` ϕ) gilt.
Gibt es eine K-Ableitung von Φ ` ϕ, dann nennen wir den Ausdruck Φ ` ϕ K-ableitbar.
`K =def FK∞ heißt K-Ableitungsrelation.
Offenbar ist Φ ` ϕ genau dann K-ableitbar, wenn (Φ, ϕ) zur K-Ableitungsrelation gehört.
Satz 4.10 Sei K ein Kalkül.
(i) `K = lfp(FK ).
(ii) FK∞∗ = lfp(FK ∗ ).
(iii) Für alle K-Ableitungen (Φ1 ` ϕ1, . . . , Φn ` ϕn) und 1 ≤ i ≤ n gilt Φi `K ϕi.
Beweis von (i).
`K = FK∞ ist FK -abgeschlossen:
n
FK (FK∞) = {a | a1,...,a
∈ K, a1, . . . , an ∈ FK∞}
a
S
S
n+1
n
∞
n
= n∈N{a | a1,...,a
∈
K,
(a
,
.
.
.
,
a
)
∈
F
(∅)}
=
1
n
K
n∈N FK (∅) = FK .
a
Also gilt (i) nach Satz 4.9 (i) und (ii).
61
4 (Co)Induktiv Definieren und Beweisen Beweis von (ii).
FK∞∗ ist FK ∗ -abgeschlossen:
FK ∗ (FK∞∗ ) = 1 ∪ {(a1, . . . , an, a) | (a1, . . . , an) ∈ FK∞∗ , n ∈ N, a ∈ FK ({a1, . . . , an})}
S
= FK ∗ (∅) ∪ n∈N{(a1, . . . , an, a) | (a1, . . . , an) ∈ FKn ∗ (∅), a ∈ FK ({a1, . . . , an})}
S
∞
∗
= FK (∅) ∪ n∈N FKn+1
∗ (∅) = FK ∗ .
Also gilt (ii) nach Satz 4.9 (i) und (ii).
Beweis von (iii) durch F -Induktion. Nach Satz 4.1 (iii) gilt (iii), wenn die Menge L aller
(a1, . . . , an) ∈ S ∗ mit a1, . . . , an ⊆ FK∞ FK ∗ -abgeschlossen ist.
Sei also s ∈ FK ∗ (L). Nach Definition von FK ∗ ist s die leere Ableitung oder es gibt
(a1, . . . , an) ∈ L und a ∈ FK ({a1, . . . , an}) mit s = (a1, . . . , an, a).
Im ersten Fall folgt s ∈ L aus ∅ ⊆ FK∞. Im zweiten Fall gilt {a1, . . . , an} ⊆ FK∞ nach
Definition von L und daher
an+1 ∈ FK ({a1, . . . , an}) ⊆
FK (FK∞)
(i)
⊆ FK∞,
weil FK monoton ist. Insgesamt erhalten wir {a1, . . . , an+1} ⊆ FK∞. Also gehört auch im
zweiten Fall a zu L. Damit ist gezeigt, dass L F -abgeschlossen ist.
o
62
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.11
Ströme über einer Menge A (siehe Kapitel 3) entsprechen Funktionen von N nach A. Zeigen Sie analog zum Beweis von Satz 4.2, dass die Mengen has0 und unsorted der Ströme
natürlicher Zahlen mit mindestens einer Null bzw. der unsortierten Ströme natürlicher
Zahlen induktiv definiert und
F : P(RN) → P(RN)
T 7→ {s ∈ RN | s(0) = 0 ∨ λi.s(i + 1) ∈ T },
G : P(RN) → P(RN)
T 7→ {s ∈ RN | s(0) > s(1) ∨ λi.s(i + 1) ∈ T }
Schrittfunktionen von has0 bzw. unsorted sind.
o
Satz 4.12 Sei sorted die Menge der sortierten Ströme reeller Zahlen, also
sorted = {s ∈ RN | ∀ n ∈ N : s(n) ≤ s(n + 1)}.
sorted ist coinduktiv definiert. Eine Schrittfunktion für sorted lautet wie folgt:
63
4 (Co)Induktiv Definieren und Beweisen Fsorted : P(RN) → P(RN)
T 7→ {s ∈ RN | s(0) ≤ s(1), λi.s(i + 1) ∈ T }.
Beweis. Offenbar ist F = Fsorted monoton. sorted ist F -dicht:
sorted ⊆ {s ∈ RN | s(0) ≤ s(1), λi.s(i + 1) ∈ sorted} = F (sorted).
Sei T ⊆ RN F -dicht und T 6⊆ sorted. Dann gibt es s ∈ T mit s ∈
/ sorted.
Wir zeigen durch Induktion über n, dass für alle n ∈ N Folgendes gilt:
s(n) ≤ s(n + 1) und λi.s(i + n + 1) ∈ T.
(2)
Induktionsanfang: Wegen T ⊆ F (T ) folgt s ∈ F (T ), also (2) für n = 0.
Induktionsschritt: Es gelte (1) für n. Wegen T ⊆ F (T ) folgt λi.s(i + n + 1) ∈ F (T ), also
s(n + 1) = (λi.s(i + n + 1))(0) ≤ (λi.s(i + n + 1))(1) = s(n + 2) und λi.s(i + n + 2) =
λk.(λi.s(i + n + 1))(k + 1) ∈ T . Damit gilt (2) für n + 1.
(2) impliziert s ∈ sorted. Also gilt T ⊆ sorted. Demnach ist sorted die größte Fsorteddichte Teilmenge von sorted und stimmt daher nach Satz 4.1 (ii) mit gfp(F ) überein. o
64
4 (Co)Induktiv Definieren und Beweisen Aufgabe Zeigen Sie analog zum Beweis von Satz 4.12, dass die Menge has∞0 der Ströme
reeller Zahlen mit unendlich vielen Nullen coinduktiv definiert und
Finf0 : P(has0) → P(has0)
T 7→ {s ∈ has0 | λi.s(i + 1) ∈ T }
eine Schrittfunktion für has∞0 ist.
o
Beispiel 4.13 (Beweis durch Finf0 -Coinduktion)
Seien blink, blink 0 ∈ has0 wie folgt definiert: Für alle n ∈ N,
blink(2 ∗ n) = blink 0(2 ∗ n + 1) = 0 und blink(2 ∗ n + 1) = blink 0(2 ∗ n) = 1.
Die Menge BB = {blink, blink 0} ist Finf0 -dicht:
BB ⊆ {s ∈ has0 | λi.s(i + 1) ∈ BB} = Finf0 (BB).
Also gehören blink und blink 0 nach Satz 4.1 (iv) zu gfp(Finf0 ), was wegen gfp(Finf0 ) =
has∞0 bedeutet, dass blink und blink 0 unendlich viele Nullen enthalten.
o
65
4 (Co)Induktiv Definieren und Beweisen Manchmal können n > 1 Teilmengen von S nur wechselseitig (co)induktiv definiert werden. Die zugehörige Schrittfunktion hat dann den Definitions- und Wertebereich P(S)n.
Inklusion und Vereinigung von Teilmengen von S werden wie folgt auf n-Tupel (T1, . . . , Tn)
von Teilmengen von S fortgesetzt:
(T1, . . . , Tn) ⊆ (T10 , . . . , Tn0 )
⇔def
für alle 1 ≤ i ≤ n, Ti ⊆ Ti0,
(T1, . . . , Tn) ∪ (T10 , . . . , Tn0 )
=def
(T1 ∪ T10 , . . . , Tn ∪ Tn0 ).
Aufgabe Zeigen Sie analog zum Beweis von Satz 4.2, dass das Paar (evens, odds) der
Mengen aller geraden bzw. ungeraden Zahlen induktiv definiert und
F : P(N)2 → P(N)2
(T1, T2) 7→ ({0} ∪ {n + 1 | n ∈ T2}, {n + 1 | n ∈ T1})
eine Schrittfunktion für (evens, odds) ist.
o
66
4 (Co)Induktiv Definieren und Beweisen Im Kapitel Logische Programmierung gehen wir noch einen Schritt weiter und definieren
auch n-Tupel mehrstelliger Relationen induktiv. Wie dort gezeigt wird, stimmt das Standardmodell eines logischen Programms LP überein mit dem kleinsten Fixpunkt einer aus
LP gebildeten Schrittfunktion
F : P(S k1 ) × . . . × P(S kn ) → P(S k1 ) × . . . × P(S kn ),
die n ≥ 1 Relationen R1 ⊆ S k1 , . . . , Rn ⊆ S kn simultan schrittweise erweitert.
67
4 (Co)Induktiv Definieren und Beweisen 4.5 Konstruktoren und Destruktoren
Sei A ⊆ S eine Menge und C eine Menge von Funktionen eines Typs der Form An → A.
C heißt Konstruktormenge für A, wenn es für alle a ∈ A genau ein c : An → A ∈ C
und genau ein b ∈ An mit a = c(b) gibt, kurz gesagt: wenn die Summenextension [c]c∈C :
`
c∈C dom(c) → A bijektiv ist.
F : P(S) → P(S) basiert auf C, wenn für alle T ⊆ S Folgendes gilt:
F (T ) = {c(t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ T }.
Lemma 4.14 Wenn F auf einer Konstruktormenge C basiert, dann hat jedes Element
von lfp(F ) genau eine C-Darstellung, d.i. ein Ausdruck, der aus Funktionen von C
zusammengesetzt ist.
Beweis durch F -Induktion. Sei T die Menge aller Elemente von lfp(F ) mit eindeutiger
C-Darstellung. Nach Satz 4.2 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei t ∈ F (T ).
Dann gibt es c ∈ C und t1, . . . , tn ∈ T mit t = c(t1, . . . , tn). Demnach haben t1, . . . , tn
eindeutige C-Darstellungen. Nach Definition einer Konstruktormenge für lfp(F ) ist daher
auch die Termdarstellung von t eindeutig. Also gehört t zu T .
o
68
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.15 Die Schrittfunktionen Fnat, Feven : P(N) → P(N) (s.o.) basieren auf der
Konstruktormenge
Cnat = {0, (+1) : N → N} bzw. Ceven = {0, (+2) : even → even}.
Z.B. repräsentieren die Cnat-Darstellung (+1)((+1)(0)) die natürliche Zahl 2 und die CevenDarstellung (+2)((+2)(0)) die gerade Zahl 4.
o
Beispiel 4.16 Sei A eine Menge, a ∈ A und consa : A∗ → A∗ wie folgt definiert:
Für alle a, a1, . . . , an ∈ A,
consa() = a,
consa(a1, . . . , an) = (a, a1, . . . , an).
Die Schrittfunktion Flist : P(A∗) → P(A∗) (s.o.) basiert auf der Konstruktormenge
Clist = {} ∪ {consa | a ∈ A}.
o
69
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.17 (siehe Beispiel 4.6) Sei a ∈ R und posta : R[x] → R[x] wie folgt definiert:
Für alle p ∈ R[x],
posta(p) = λx.p(x) ∗ x + a.
Fpoly basiert auf der Konstruktormenge
Cpoly = R ∪ {posta | a ∈ R}
Z.B. repräsentiert die Cpoly -Darstellung post5.4(post−33.11(549.32)) das Polynom
λx.549.32 ∗ x2 − 33.11 ∗ x + 5.4.
o
Sei C eine Konstruktormenge für A. T ⊆ A heißt C-invariant oder C-Invariante, wenn
für alle c : A1 × · · · × An → A ∈ C und (a1, . . . , an) ∈ A1 × · · · × An Folgendes gilt:
(∀ 1 ≤ i ≤ n : ai ∈ T ) ⇒ c(a1, . . . , an) ∈ T .
Während Konstruktoren die Synthese von Elementen einer (induktiv definierten) Menge
A beschreiben, werden die Elemente von Destruktoren analysiert. Dual zu einem Konstruktor von A, der A als Wertebereich hat, ist ein Destruktor für A deshalb stets eine
Funktion mit Definitionsbereich A.
70
4 (Co)Induktiv Definieren und Beweisen Der Wertebereich eines Destruktors kann sehr unterschiedlich strukturiert sein. Wir wollen hier nur zwei typische Fälle betrachten: Attribute und Methoden. Beide Begriffe
stammen aus der objektorientierten Programmierung, wo man A als die Menge möglicher
Zustände eines Objekts betrachtet. Ein(e) Attribut(funktion) d : A → Wd für A weist
jedem (Objekt-)Zustand ein Element des mit d assoziierten Wertebereichs Wd zu, z.B.
eine bestimmte Farbe, Größe, etc. Demgegenüber transformiert eine Methode d : A → A
für A jeden Zustand in einen Folgezustand.
Sei A ⊆ S und D eine Menge von Attributen und Methoden für A.
Q
D heißt Destruktormenge für A, wenn es für alle b ∈ d∈D ran(d) genau ein a ∈ A
mit d(a) = πd(b) für alle d ∈ D gibt, kurz gesagt: wenn die Produktextension
Y
hdid∈D : A →
ran(d)
c∈D
bijektiv ist.
F : P(S) → P(S) basiert auf D, wenn für alle T ⊆ S Folgendes gilt:
F (T ) = {t ∈ S | für alle Methoden d ∈ D : d(t) ∈ T }.
71
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.18 (Ströme über A)
Das Attribut head : AN → A und die Methode tail : AN → AN ordnen einem Strom s
sein erstes Element bzw. den Reststrom zu:
head(s) = s(0),
tail(s) = λn.s(n + 1).
Die Schrittfunktion Fsorted : P(AR) → P(AR) (siehe Beispiel 4.12) basiert auf der Destruktormenge Dstream = {head, tail}.
o
Sei D eine Destruktormenge für A. R ⊆ A2 heißt D-Kongruenz, wenn für alle d ∈ D
und a, b ∈ A Folgendes gilt:
(
(d(a), d(a0)) ∈ R falls d eine Methode ist,
0
((a, a ) ∈ R ⇒
d(a) = d(a0)
falls d ein Attribut ist.
72
4 (Co)Induktiv Definieren und Beweisen Satz 4.19
Sei F : P(S) → P(S) monoton, C eine Konstruktormenge für F ∞, D eine Destruktormenge für F∞, ϕ eine mögliche Eigenschaft von Elementen von S und
ϕS = {a ∈ S | a |= ϕ}.
(i) F basiert auf C
⇒
F ∞ = lfp(F ).
(ii) F basiert auf D
⇒
F∞ = gfp(F ).
(iii) Konstruktor-Induktion über C:
Jede C-Invariante von lfp(F ) enthält lfp(F ). Insbesondere gilt a |= ϕ für alle a ∈ lfp(F ),
falls ϕS C-invariant ist.
Beweis von (i). F basiere auf C. Nach Satz 4.9 (ii) genügt es zu zeigen, dass F ∞ F abgeschlossen ist.
Sei also t ∈ F (F ∞). Dann gibt es c ∈ C und t1, . . . , tn ∈ F ∞ mit t = c(t1, . . . , tn). Daher
gibt es für alle 1 ≤ i ≤ n eine natürliche Zahl ni mit ti ∈ F ni (∅). Da F monoton ist,
folgt ti ∈ F m(∅) für m = max{ni | 1 ≤ i ≤ n}.
73
4 (Co)Induktiv Definieren und Beweisen Also gilt:
t ∈ {c(t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ F m(∅)} = F (F m(∅)) = F m+1(∅) ⊆ F ∞.
Beweis von (ii). F basiere auf D. Nach Satz 4.9 (iv) genügt es zu zeigen, dass F∞ F -dicht
ist.
Sei also t ∈ F∞, d.h. für alle n ∈ N gehört t zu
F n+1(S) = F (F n(S)) = {u ∈ S | für alle Methoden d ∈ D : d(u) ∈ F n(S)}.
Demnach gilt d(t) ∈ F n(S) für alle n ∈ N und alle Methoden d ∈ D. Also gehört d(t)
für alle d ∈ D zu F∞. Daraus folgt t ∈ F (F∞).
Beweis von (iii). Sei T eine C-Invariante von lfp(F ). Nach Satz 4.1 (iii) genügt es zu
zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und t1, . . . , tn ∈
T mit t = c(t1, . . . , tn). Da T C-invariant ist, folgt t ∈ T .
o
74
4 (Co)Induktiv Definieren und Beweisen 4.4 (Co)Induktiv definierte Funktionen
Sei C eine Konstruktormenge und F die Schrittfunktion, die auf C basiert.
Eine Funktion f : lfp(F ) → A heißt induktiv definiert bzgl. C, wenn es für alle
c : lfp(F )n → lfp(F ) ∈ C eine aus Konstruktoren und bereits definierten Funktionen
zusammengesetzte Funktion
gc : An × lfp(F )n → A
gibt derart, dass für alle t1, . . . , tn ∈ lfp(F ) folgende Gleichung gilt:
f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn).
Im Fall F = Fnat und C = {0, (+1)} nennt man eine induktiv definierte Funktion auch
primitiv-rekursiv.
Beispiel 4.20 (siehe Beispiel 4.16)
Die Funktionen length : A∗ → N und conc : A∗ → (A∗ → A∗), die jeder Liste von A∗
ihre Länge zuordnet bzw. zwei Listen konkateniert, d.h. zu einer Liste zusammenfügt,
sind wie folgt bzgl. Clist induktiv definiert:
75
4 (Co)Induktiv Definieren und Beweisen Für alle a ∈ A und w ∈ A∗,
length() = 0,
length(consa(w)) = length(w)+1,
conc() = λw.w,
conc(consa(w)) = λw0.consa(conc(w)(w0)).
o
Beispiel 4.21 (siehe Beispiel 4.17)
Die Funktion diff : R[x] → R[x], die jedes Polynom in seine erste Ableitung (im Sinne
der Analysis) übersetzt, ist wie folgt bzgl. Cpoly induktiv definiert: Für alle a ∈ R, n ∈ N
and p ∈ R[x],
diff (a) = λb.0,
diff (posta(p)) = λb.diff (p)(b) ∗ b + p(b).
o
76
4 (Co)Induktiv Definieren und Beweisen Satz 4.22 Sei C eine Konstruktormenge und F die Schrittfunktion, die auf C basiert.
Die Gleichungsmenge
E = {f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ lfp(F )}.
kann als Definition von f bezeichnet werden, weil es genau eine Funktion f : lfp(F ) → A
gibt, die E erfüllt.
Beweis der Existenz von f durch F -Induktion: Sei T die Menge aller t ∈ lfp(F ) derart,
dass f an der Stelle t einen eindeutigen Wert hat und
f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn)
gilt, wobei c und (t1, . . . , tn) die nach Lemma 4.14 eindeutigen Elemente von C bzw.
lfp(F ) mit t = c(t1, . . . , tn) sind. Nach Satz 4.1 (iii) ist zu zeigen, dass T F -abgeschlossen
ist.
Sei also t ∈ F (T ). Dann gibt es c ∈ C und t1, . . . , tn ∈ T für alle 1 ≤ i ≤ n und
t = c(t1, . . . , tn).
77
4 (Co)Induktiv Definieren und Beweisen Folglich hat f an den Stellen t1, . . . , tn eindeutige Werte. Deshalb können wir f an der
Stelle t = c(t1, . . . , tn) durch gc(f (t1), . . . , f (tn), t1, . . . , tn) definieren. Folglich gehört t
zu T .
Beweis der Eindeutigkeit von f durch F -Induktion: Seien f, f 0 : lfp(F ) → A zwei
Funktionen, die E erfüllen, und T die Menge aller t ∈ lfp(F ) mit f (t) = f 0(t). Nach Satz
4.1 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C
und t1, . . . , tn ∈ T und t = c(t1, . . . , tn). Demnach gilt f (ti) = f 0(ti) für alle 1 ≤ i ≤ n.
Daraus folgt
f (t) = f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn)
= gc(f 0(t1), . . . , f 0(tn), t1, . . . , tn) = f 0(c(t1, . . . , tn)) = f 0(t),
also t ∈ T .
o
Beispiel 4.23 (siehe Beispiel 4.20)
Wir zeigen durch Konstruktor-Induktion über Clist = {, cons}, dass für alle v ∈ A∗
folgende Formel ϕ gilt:
∀ w ∈ A∗ : length(conc(v)(w)) = length(v) + length(w).
78
4 (Co)Induktiv Definieren und Beweisen ∗
Wegen A∗ = lfp(Flist) (siehe Beispiel 4.4), gilt ϕ nach Satz 4.19 (iii), falls ϕA Clistinvariant ist, d.h. falls für alle a ∈ A und v, w ∈ A∗ die folgenden Gleicungen gelten:
length(conc()(w)) = length() + length(w),
length(conc(v)(w)) = length(v) + length(w)
(Induktionshypothese)
⇒ length(conc(cons(a, v))(w)) = length(cons(a, v)) + length(w).
(1)
(2)
Beweis von (1).
length(conc()(w)) = length(w) = 0 + length(w) = length() + length(w).
Beweis von (2).
length(conc(cons(a, v))(w)) = length(cons(a, conc(v)(w))) = length(conc(v)(w)) + 1
Induktionshypothese
=
length(v) + length(w) + 1 = length(v) + 1 + length(w)
= length(cons(a, v)) + length(w).
o
79
4 (Co)Induktiv Definieren und Beweisen Wie m > 1 Mengen, so können manchmal auch m > 1 Funktionen nur wechselseitig
induktiv definiert werden:
Ein Funktionstupel (fi : lfp(F ) → Ai)1≤i≤m heißt wechselseitig induktiv definiert,
wenn es für alle 1 ≤ i ≤ m und c : lfp(F )n → lfp(F ) ∈ C eine Funktion
gi,c : An1 × . . . Anm × lfp(F )n → Ai
gibt derart, dass für alle t1, . . . , tni ∈ lfp(F ) folgende Gleichung gilt:
fi(c(t1, . . . , tn)) = gi,c(f1(t1), . . . , f1(tni ), . . . , fm(t1), . . . , fm(t), t1, . . . , tn).
Beispiel 4.24 (Hilbertkurven)
Sei D = {east, west, north, south}. Das folgende Funktionsquadrupel
(goi : N → D∗)1≤i≤4
berechnet Folgen von Himmelsrichtungen, die + Hilbertkurven repräsentieren:
Wird jedes Element d der Folge goi(n) als Befehl interpretiert, in Richtung d eine Linie
zu ziehen, dann liefert die Ausführung der Befehlsfolge eine Hilbertkurve n-ter Ordnung.
80
4 (Co)Induktiv Definieren und Beweisen Im Fall i = 1 und n = 5 entsteht z.B. folgende Kurve:
81
4 (Co)Induktiv Definieren und Beweisen (go1, . . . , go4) ist wie folgt induktiv definiert: Für alle 0 ≤ i ≤ 3 und n ∈ N,
goi(0) = ,
go1(n + 1) = go4(n)·east·go1(n)·south·go1(n)·west·go3(n),
go2(n + 1) = go3(n)·west·go2(n)·north·go2(n)·east·go4(n),
go3(n + 1) = go2(n)·north·go3(n)·west·go3(n)·south·go1(n),
go4(n + 1) = go1(n)·south·go4(n)·east·go4(n)·north·go2(n).
Die Funktion
coords : D∗ → (R2 → (R2)∗)
soll jede Richtungsfolge s ∈ D∗ und jeden Punkt (x, y) in der Ebene in die Folge der
Ecken des durch s repräsentierten Linienzuges überführten, wobei jede einzelne Linie die
Länge 1 hat.
82
4 (Co)Induktiv Definieren und Beweisen coords ist wie folgt induktiv definiert: Für alle s ∈ D∗ und (x, y) ∈ R2,
coords() = λ(x, y).(x, y),
coords(cons(east, s)) = λ(x, y).(x, y)·coords(s)(x + 1, y),
coords(cons(west, s)) = λ(x, y).(x, y)·coords(s)(x − 1, y),
coords(cons(north, s)) = λ(x, y).(x, y)·coords(s)(x, y + 1),
coords(cons(south, s)) = λ(x, y).(x, y)·coords(s)(x, y − 1).
o
Aufgabe Zeigen Sie, dass jede induktiv definierte Funktion einen induktiv definierten
Graphen hat.
o
Es gibt allgemeinere Schemata für induktive Funktionsdefinitionen als das hier behandelte
bis hin zu mehrstelligen Funktionen auf Produkten verschiedener (induktiv definierter)
Mengen.
83
4 (Co)Induktiv Definieren und Beweisen Sei D eine Destruktormenge und F die Schrittfunktion, die auf D basiert.
Eine Funktion f : A → gfp(F ) heißt coinduktiv definiert bzgl. D, wenn es für
alle d ∈ D eine – aus f und bereits definierten Funktionen (inkl. Elementen von D)
zusammengesetzte – Funktion gd : A → ran(d) gibt derart, dass für alle a ∈ A folgende
Gleichung eine eindeutige Lösung in (der Funktionsvariablen) f hat:
d(f (a)) = gd(a).
(1)
Es gibt unterschiedliche Anforderungen an gd, die sicherstellen, dass (1) eine eindeutige Lösung in f hat, m.a.W.: dass es genau eine Funktion f gilt, die (1) erfüllt. Dazu
müssen F zum Funktor, F -dichte Mengen zu F -Coalgebren und gfp(F ) zur finalen
F -Coalgebra erweitert werden, ähnlich dem in Kapitel 7 behandelten Verhaltensmodell
Beh(At). Da die allgemeine Theorie der Coalgebren den Rahmen dieser Einführung in
(Co)Induktion sprengen würde, sollen hier nur einige grundlegende Ideen an folgendem
Beispiel illustriert werden:
Beispiel 4.25 (siehe Beispiele 4.11 und 4.18) Wir zeigen, dass die folgenden Gleichungen
die Funktionen ⊕, zip : (RN)2 → RN, die die Elemente zweier Ströme reeller Zahlen
addieren bzw. mischen, bzgl. Dstream = {head, tail} coinduktiv definieren:
84
4 (Co)Induktiv Definieren und Beweisen Für alle s, s0 ∈ RN,
head(s⊕s0)
tail(s⊕s0)
head(zip(s, s0))
tail(zip(s, s0))
=
=
=
=
head(s) + head(s0),
tail(s)⊕tail(s0),
head(s),
zip(s0, tail(s)).
(1)
(2)
(3)
(4)
Explizite Definitionen von ⊕ bzw. zip lauten wie folgt: Für alle s, s0 ∈ RN und n ∈ N,
(s ⊕ s0)(n)
= s(n) + s0(n),
(
s(n/2)
falls n gerade ist,
zip(s, s0)(n) =
s0(n/2 + 1) sonst.
Aufgabe Zeigen Sie, dass ⊕ und zip die Gleichungen (1)-(4) erfüllen.
Aufgabe Zeigen Sie, dass die Diagonale von (RN)2 eine D-Kongruenz ist und dass RN
das algebraische Coinduktionsprinzip erfüllt, d.h. jede D-Kongruenz auf RN stimmt
mit ∆RN überein.
Zeigen Sie Letzteres, indem Sie die Annahme, dass es eine D-Kongruenz R und zwei
verschiedene Ströme s und s0 mit (s, s0) ∈ R gibt, zum Widerspruch führen.
85
4 (Co)Induktiv Definieren und Beweisen Seien nun ⊕, ⊗ : (RN)2 → RN zwei beliebige Funktionen, die (1) und (2) erfüllen, wenn
man sie dort für ⊕ einsetzt. Wir definieren die Relation ∼ ⊆ (RN)2 als Menge aller Paare
(s ⊕ s0, s ⊗ s0) mit s, s0 ∈ RN.
∼ ist eine D-Kongruenz: Sei s ⊕ s0 ∼ s ⊗ s0. Dann gilt
(1)
(1)
head(s ⊕ s0) = head(s) + head(s0) = head(s ⊗ s0),
(2)
(2)
tail(s ⊕ s0) = tail(s) ⊕ tail(s0) ∼ tail(s) ⊗ tail(s0) = head(s ⊗ s0).
Da ∼ ist eine D-Kongruenz ist, folgt aus dem algebraischen Coinduktionsprinzip, dass ∼
mit der Diagonalen von (RN)2 übereinstimmt, d.h. für alle s, s0 ∈ RN mit s ⊕ s0 ∼ s ⊗ s0
gilt s ⊕ s0 = s ⊗ s0, m.a.W.: ⊕ = ⊗.
Aufgabe Zeigen Sie analog, dass es nur eine Funktion zip gibt, die (3) und (4) erfüllt. o
86
4 (Co)Induktiv Definieren und Beweisen Highlights
F : P(S) → P(S) monoton: Für alle T, T 0 ⊆ S gilt: T ⊆ T ⇒ F (T ) ⊆ F (T 0).
T ⊆ S F -abgeschlossen: F (T ) ⊆ T .
T ⊆ S F -dicht: T ⊆ F (T ).
lfp(F ) =def
T
{T ⊆ S | F (T ) ⊆ T }.
gfp(F ) =def
S
{T ⊆ S | T ⊆ F (T )}.
Ist F : P(S) → P(S) monoton, dann ist lfp(F ) der kleinste und gfp(F ) der größte
Fixpunkt von F .
F -Induktion: Jede F -abgeschlossene Teilmenge von S enthält lfp(F ).
=⇒ Alle Elemente von lfp(F ) erfüllen eine Formel ϕ, wenn die Menge ϕS aller Elemente
von S, die ϕ erfüllen, F -abgeschlossen ist.
F -Coinduktion: gfp(F ) enthält jede F -dichte Teilmenge von S.
=⇒ Stimmt gfp(F ) mit ϕS überein, dann gilt ϕ für jedes Element von S, das in einer
F -dichten Teilmenge von S enthalten ist.
87
4 (Co)Induktiv Definieren und Beweisen Oberer Kleene-Abschluss von F : F ∞ =def
S
Unterer Kleene-Abschluss von F : F∞ =def
T
n∈N F
n
n∈N F
(∅).
n
(S).
F (F ∞) ⊆ F ∞ ⇒ lfp(F ) = F ∞.
F∞ ⊆ F (F∞)
⇒ gfp(F ) = F∞.
Schrittfunktion für N:
Fnat : P(N) → P(N)
T 7→ {0} ∪ {a + 1 | a ∈ T }
Induktion über n ∈ N = Fnat-Induktion.
Schrittfunktion für Menge A bzgl. wohlfundierter Relation R ⊆ A2:
FR : P(A) → P(A)
T 7→ {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ T }
Noethersche Induktion bzgl. R = FR -Induktion.
88
4 (Co)Induktiv Definieren und Beweisen Schrittfunktion für `K :
FK : P(S) → P(S)
T 7→ {(Φ, ϕ) |
Φ1 `ϕ1 ,...,Φk `ϕk
Φ`ϕ
∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ T }
Konstruktormenge C für Menge A: Für alle a ∈ A gibt es genau ein c : An → A ∈ C und
genau ein b ∈ An mit a = c(b).
F : P(S) → P(S) basiert auf C: Für alle T ⊆ S,
F (T ) = {c(t1, . . . , tn) | c ∈ C, t1, . . . , tn ∈ T }.
Konstruktor-Induktion über C: Jede C-Invariante von lfp(F ) enthält lfp(F ).
Bzgl. C induktiv definierte Funktion f : lfp(F ) → A:
Für alle c : lfp(F )n → lfp(F ) ∈ C gibt es gc : An × lfp(F )n → A derart, dass für alle
t1, . . . , tn ∈ lfp(F ) folgende Gleichung gilt:
f (c(t1, . . . , tn)) = gc(f (t1), . . . , f (tn), t1, . . . , tn).
89
4 (Co)Induktiv Definieren und Beweisen Destruktormenge D für Menge A: Für alle b ∈
d(a) = πd(b) für alle d ∈ D.
Q
d∈D
ran(d) gibt es genau ein a ∈ A mit
F : P(S) → P(S) basiert auf D: Für alle T ⊆ S,
F (T ) = {t ∈ S | für alle Methoden d ∈ D : d(t) ∈ T }.
Bzgl. D coinduktiv definierte Funktion f : A → gfp(F ):
Für alle d ∈ D gibt es gd : A → ran(d) derart, dass für alle a ∈ A folgende Gleichung
eine eindeutige Lösung in (der Funktionsvariablen) f hat:
d(f (a)) = gd(a).
(1)
90
5 Gleichungslogik
Im vorangegangenen Kapitel war häufig von Ausdrücken im Sinne zusammengesetzter
Funktionsaufrufe die Rede. Da diese Sprechweise den Unterschied zwischen Syntax und
Semantik (siehe Kapitel 2) verschwimmen lässt, führen wir in diesem Kapitel mathematische Begriffe ein, die eine klare Trennlinie ziehen zwischen syntaktischen Ausdrücken
(Termen), die nichts anderes als Symbolfolgen sind, und deren variierender Bedeutung
als Elemente strukturierter Mengen (Algebren).
5.1 Signaturen, Terme und Algebren
Eine Signatur Σ ist eine Menge von – Operationen genannten – Funktionssymbolen f
mit Stelligkeit n ∈ N. Wir schreiben f : n → 1 für eine Operation mit Stelligkeit n.
Sei X eine Menge von Variablen und S die Menge aller Folgen von runden Klammern,
Kommas und Elementen der Menge Σ ∪ X.
Die Menge TΣ(X) der Σ-Terme über X ist induktiv definiert. Die Schrittfunktion für
TΣ(X) lautet wie folgt:
FΣ : P(S) → P(S)
T 7→ X ∪ {f t | f : n → 1 ∈ Σ, t ∈ T n}
91
5 Gleichungslogik Ist f nullstellig, dann schreiben wir f anstelle von f .
FΣ basiert auf der Konstruktormenge
CΣ = X ∪ {f TΣ(X) : TΣ(X)n → TΣ(X) | f : n → 1 ∈ Σ, n ∈ N},
wobei f TΣ(X) wie folgt definiert ist: Für alle t ∈ TΣ(X), f TΣ(X)(t) = f t.
Die Elemente von X werden als nullstellige Funktionen nach TΣ(X) betrachtet.
Die Elemente von TΣ =def TΣ(∅), also die Terme ohne Variablen, heißen Grundterme.
Σ-Terme werden in Σ-Algebren ausgewertet:
Eine Σ-Algebra besteht aus
• einer – Daten-, Grund- oder Trägermenge – genannten Menge A und
• einer Menge {f A : An → A | f : n → 1 ∈ Σ} von Funktionen, den Interpretationen
von Σ in A.
Falls keine Verwechslungen möglich sind, dann werden eine Algebra und ihre Trägermenge
gleich bezeichnet.
92
5 Gleichungslogik Da ein nullstelliges Produkt mit der Menge 1 = {} gleichgesetzt wird (siehe Kapitel 3),
wird eine Operation f : 0 → 1 in A als Funktion f A : 1 → A interpretiert. Da diese allein
durch ihren Wert an der Stelle bestimmt ist, wird f A meistens mit f A() gleichgesetzt.
AlgΣ bezeichnet die Klasse aller Σ-Algebren.
TΣ(X) ist die Trägermenge der gleichnamigen Σ-Algebra, die f ∈ Σ durch den Konstruktor f TΣ(X) von CΣ (s.o.) interpretiert. Da ihre Trägermenge aus Termen besteht, wird sie
als Termalgebra bezeichnet.
Seien A und B Σ-Algebren. Eine Funktion h : A → B heißt Σ-Homomorphismus,
Σ-homomorph oder mit Σ verträglich, wenn für alle f : n → 1 ∈ Σ das folgende
Funktionsdiagramm kommutiert:
fA
n
A
A
hn
g
Bn
=
fB
h
g
B
93
5 Gleichungslogik Für alle n > 0 bezeichnet hn das n-fache Produkt von h (siehe Abschnitt Funktionen in
Kapitel 3).
Das obige Funktionsdiagramm veranschaulicht die Orthogonalität zwischen Operationen
und Homomorphismen: Erstere transformieren Elemente einer Algebra, letztere stellen
Bezüge zwischen mehreren Algebren her.
Bijektive Σ-Homomorphismen heißen Σ-Isomorphismen.
Die hier behandelten Signaturen Σ sind einsortig, d.h. jede Σ-Algebra hat genau eine
Trägermenge. In realistischen Anwendungen kommen häufig Operationen vor, deren Definitionsbereich aus verschiedenen Mengen zusammengesetzt ist.
Die zugrundeliegende Signatur hat dann für jede dieser Mengen einen Namen, den man
Sorte nennt. Z.B. kann der Konstruktor cons bzw. poly (siehe Beispiel 4.16 bzw. 4.17)
nur als Interpretation einer Operation einer Signatur betrachtet werden, die für A und
A∗ bzw. R und R[x] jeweils eine eigene Sorte hat.
94
5 Gleichungslogik Dementsprechend ist die Trägermenge einer Algebra einer n-sortigen Signatur ein n-Tupel
von Mengen: Jeder Sorte wird eine eigene Menge zugeordnet. Die Menge der Terme setzt
sich aus n wechselseitig induktiv definierten Termmengen zusammen (siehe Abschnitt
Induktiv definierte Mengen in Kapitel 4).
Im Übersetzerbau [28] werden die Terme einer (aus einer kontextfreien Grammatik gebildeten) mehrsortigen Signatur Syntaxbäume genannt. Sie liefern abstrakte Beschreibungen
von Quellprogrammen, auf deren Basis sie ein Compiler in Zielprogramme übersetzt.
Auch logische Formeln sind Terme geeigneter Signaturen. Während die Syntax der aussagenund modallogischer Formeln durch eine feste Signatur gegeben ist, baut dort die Signatur
prädikatenlogischer Formeln auf einer beliebigen Signatur Σ von Operationen auf einem
Datenbereich auf, dessen Eigenschaften durch die Formeln beschrieben werden. Sollen
Bezüge zwischen n > 1 Datenbereichen beschrieben werden, dann muss Σ n-sortig sein.
Fast alle Begriffe und Resultate, die wir hier für einsortige Signaturen formulieren, können
problemlos auf mehrsortige Signaturen übertragen werden.
95
5 Gleichungslogik Beispiel 5.1 Die Bitalgebra
Die in Kapitel 6 behandelte Aussagenlogik ist auf folgender Signatur aufgebaut:
AL = {⊥, > : 0 → 1, ¬ : 1 → 1, ∨, ∧, ⇒: 2 → 1}.
Die AL-Algebra mit Trägermenge 2 = {0, 1} und folgender Interpretation von AL nennen
wir Bitalgebra:
⊥2 = 0,
>2 = 1,
¬2 = λb.1 − b,
∧2 = min,
∨2 = max,
⇒2 = λ(b, c).max(1 − b, c) = χ(≤).
⊥ (bottom) und > (top) werden also durch die Wahrheitswerte 0 bzw. 1 interpretiert.
96
5 Gleichungslogik AL-Terme nennt man üblicherweise Boolesche Ausdrücke.
o
Aufgabe Zeigen Sie: Sind zwei Mengen A und B isomorph und ist A (die Trägermenge)
eine(r) Σ-Algebra, dann ist auch B eine Σ-Algebra.
o
Sei A eine Σ-Algebra und C eine Menge. A lässt sich wie folgt zu einer Σ-Algebra mit
Trägermenge AC liften:
• Für alle f : n → 1 ∈ Σ, g1, . . . , gn ∈ AC und c ∈ C,
C
f A (g1, . . . , gn)(c) =def f A(g1(c), . . . , gn(c)).
Aufgabe Sei h : A → B ein Σ-Homomorphismus und C eine Menge. Zeigen Sie, dass
dann auch λg.(h ◦ g) : AC → B C Σ-homomorph ist, wobei die Σ-Algebren A und B wie
oben zu Σ-Algebren AC bzw. B C geliftet wurden.
o
97
5 Gleichungslogik 5.2 Termauswertung und -substitution
Die induktiv definierte Funktion var : TΣ (X ) → P(X ) liefert die Menge der Variablen
von X, die in t vorkommen:
• Für alle x ∈ X, var (x ) = {x }.
• Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X),
var(f (t1, . . . , tn)) =def
n
[
var (ti ).
i=1
Funktionen von der Variablenmenge X in eine Σ-Algebra A heißen Belegungen (valuations) von X in A.
Gibt man eine Belegung g : X → A vor, dann ist der Wert eines Terms t unter
g definiert als das Bild von t unter der wie folgt induktiv definierten Extension oder
Fortsetzung
g ∗ : TΣ(X) → A
von g auf TΣ(X):
98
5 Gleichungslogik • Für alle x ∈ X, g ∗(x) =def g(x).
• Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X),
g ∗(f (t1, . . . , tn)) =def f A(g ∗(t1), . . . , g ∗(tn)).
Aus dem ersten Teil der Definition von g ∗ folgt die Gleichung g ∗ ◦incX = g, die folgendem
Funktionsdiagramm entspricht:
incX
=
g
TΣ(X)
g∗
≺
X
A
Anschaulich gesprochen, wertet g ∗ einen Term t unter g aus, d.h. nachdem g die Variablen
von t mit Werten aus A belegt hat. Wir nennen g ∗(t) deshalb den Wert von t unter g.
Aufgabe Sei C = X ∪ {f TΣ(X) | f ∈ Σ}. Zeigen Sie durch Konstruktorinduktion über C,
dass g ∗ der einzige Σ-Homomorphismus von TΣ(X) nach A mit g ∗ ◦ incX = g ist.
o
99
5 Gleichungslogik Beispiel 5.2
Sei X = {a, b, c, d} und Σ = {¬ : 1 → 1, ∨, =, +, ∗ : 2 → 1}.
+ Schrittweise Auswertung des Terms
(a ∗ (b + c + d) = a ∗ b + a ∗ c + a ∗ d) ∨ ¬(a ∗ (b + c + d) = a ∗ b + a ∗ c + a ∗ d)
in einer Σ-Algebra mit Trägermenge N unter der Belegung
g = (λx.0)[5/a, 23/b, 45/c, 111/d] : X → N
Man sieht in der Animation, wie g von oben nach unten durch den
o
Da Grundterme keine Variablen enthalten, hängt die Einschränkung von g ∗ auf TΣ nicht
von g ab. Sie wird auch Termfaltung genannt und mit fold A bezeichnet.
Sei g : ∅ → A. Gemäß obiger Aufgabe ist fold A der einzige Σ-Homomorphismus von TΣ
nach A mit fold A ◦ inc∅ = g. Da g eindeutig ist, gilt diese Gleichung für alle Funktionen
von TΣ nach A. Demnach ist fold A der einzige Σ-Homomorphismus von TΣ nach A. Man
nennt TΣ deshalb die initiale Σ-Algebra.
100
5 Gleichungslogik Aufgabe Sei f : TΣ → A eine induktiv definierte Funktion, wobei die Interpretationen der
Operationen von Σ in der Termalgebra TΣ(X) als Konstruktoren von TΣ(X) (siehe Kapitel 4) dienen. Erweitern Sie A so zu einer Σ-Algebra, dass f mit fold A übereinstimmt.o
Belegungen durch Terme heißen Substitutionen.
Belegungen durch Grundterme heißen Grundsubstitutionen.
Aufgabe Sei σ : X → TΣ(X) eine Substitution. Zeigen Sie, dass ihre Extension
σ ∗ : TΣ(X) → TΣ(X)
die folgende induktive Definition hat:
• Für alle x ∈ X, σ ∗(x) = σ(x).
• Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X),
σ ∗(f (t1, . . . , tn)) = f (σ ∗(t1), . . . , σ ∗(tn)).
o
Das Bild eines Terms t unter σ ∗ heißt σ-Instanz von t.
101
5 Gleichungslogik Lemma 5.3 (Substitutionslemma für Terme)
(i) Für alle Σ-Algebren A, g : X → A und Σ-Homomorphismen h : A → B gilt
(h ◦ g)∗ = h ◦ g ∗.
incX
=
g
TΣ(X)
g∗
=
(h ◦ g)∗
≺
X
B
h
(ii) Für alle Σ-Algebren A, g : X → A und Substitutionen σ : X → TΣ(X) gilt
(g ∗ ◦ σ)∗ = g ∗ ◦ σ ∗.
A
Beweis.
(i) Wegen (h ◦ g)∗ ◦ incX = h ◦ g und h ◦ g ∗ ◦ incX = h ◦ g sind (h ◦ g)∗ und h ◦ g ∗
zwei Σ-Homomorphismen h0 : TΣ(X) → B, die h0∗ ◦ incX = h ◦ g erfüllen und deshalb
miteinander übereinstimmen.
(ii) folgt aus (i), weil σ ∗ ein Σ-Homomorphismus ist.
o
102
5 Gleichungslogik t
σ*
t
σ(x)
x
y
σ(x)
σ(y)
z
z
z'
z'
x
g*(σ(x))
g*(σ*(t))
=
(g* o σ)*(t)
(g*
t
g*
g*
σ(y)
o
σ)*
y
g*(σ(y))
103
5 Gleichungslogik Sei x1, . . . , xk ∈ X, t1, . . . , tk , t ∈ TΣ(X) und σ, σ1, . . . , σn : X → TΣ(X). Fortan schreiben wir auch
{t1/x1, . . . , tk /xk } anstelle von incX [t1/x1, . . . , tk /xk ],
(siehe Abschnitt 3.2)
σ1 . . . σn anstelle von σn∗ ◦ · · · ◦ σ2∗ ◦ σ1,
tσ anstelle von σ ∗(t).
σ1 . . . σn bezeichnet man auch als Kleisli-Komposition der Substitutionen σ1, . . . , σn.
Wie die Funktionskomposition ◦, so ist auch die Kleisli-Komposition assoziativ:
Aufgabe
Folgern Sie aus Lemma 5.3 (ii), dass für alle ρ, σ, τ : X → TΣ(X) (ρσ)τ = ρ(στ ) gilt.
Aufgabe Bezeichnen σ{t/x} und σ[t/x] dieselben Substitutionen?
u ∈ TΣ(X) ist ein Teilterm von t ∈ TΣ(X), wenn es einen Term v und x ∈ var(v) gibt
mit v{u/x} = t.
104
5 Gleichungslogik 5.3 Termgleichungen
Sei n ∈ N und t1, . . . , tn, t01, . . . , t0n, t, t0 ∈ TΣ(X). Die Formel
t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0
(1)
heißt Σ-Gleichung über X.
Im Fall n = 0 ist (1) unbedingt, andernfalls bedingt.
Sei e eine Σ-Gleichung.
Eine Σ-Algebra A erfüllt e und e ist gültig in A, geschrieben: A |= e, wenn für alle
Belegungen g : X → A Folgendes gilt:
g ∗(t1) = g ∗(t01)) ∧ · · · ∧ g ∗(tn) = g ∗(t0n) ⇒ g ∗(t) = g ∗(t0).
(2)
In (1) sind ∧ und ⇒ lediglich Symbole, in (2) werden sie in ihrer umgangssprachlichen
Bedeutung (“und” bzw. “impliziert”) verwendet! Nur bei der Gleichheit unterscheiden wir
zwischen dem Symbol (≡) und der Bedeutung als Diagonale (=; siehe Kapitel 3).
105
5 Gleichungslogik Eine Klasse K von Σ-Algebren erfüllt e und e ist gültig in K, geschrieben: K |= e,
wenn (1) in allen Elementen von K gültig ist. A bzw. K erfüllen eine Menge E von ΣGleichungen, geschrieben: A |= E bzw. K |= E, wenn für alle e ∈ E A |= e bzw. K |= e
gilt.
≡A bezeichnet die Menge aller Termpaare (t, t0) und aller Substitutionspaare (σ, τ ) mit
A |= t ≡ t0 bzw. A |= σ(x) ≡ τ (x) für alle x ∈ X.
Lemma 5.4 (Äquivalenzlemma für Terme)
Sei t ∈ TΣ(X), σ, τ : X → TΣ(X) und A eine Σ-Algebra.
σ ≡A τ
⇒
tσ ≡A tτ.
Beweis. Sei g : X → A und σ ≡A τ . Daraus folgt
(g ∗ ◦ σ)(x) = g ∗(σ(x)) = g ∗(τ (x)) = (g ∗ ◦ τ )(x).
(1)
Aus zweimaliger Anwendung von Lemma 5.3 (ii) folgt daher
(1)
g ∗(σ ∗(t)) = (g ∗ ◦ σ)∗(t) = (g ∗ ◦ τ )∗(t) = g ∗(τ ∗(t)),
also tσ = σ ∗(t) ≡A τ ∗(t) = tτ .
o
106
5 Gleichungslogik 5.4 Normalformen
Eine Teilmenge NF von TΣ(X) mit X ⊆ NF ist eine Menge von Normalformen bzgl.
einer Σ-Algebra A, wenn NF für jeden Σ-Term t einen Term u mit t ≡A u enthält. Man
nennt u dann eine Normalform von t bzgl. A.
Idealerweise sind Normalformen eindeutig, m.a.W.: äquivalente Normalformen sind gleich.
In diesem Fall liefert jeder Algorithmus, der Terme in äquivalente Normalformen überführt, ein Entscheidungsverfahren für die Äquivalenz zweier Terme t und t0:
• Berechne Normalformen u und u0 von t bzw. t0.
• Sind u und u0 gleich, dann gilt t ≡A u = u0 ≡A t0. Also sind t und t0 äquivalent. Sind
u und u0 verschieden, dann erhält man t 6≡A t0 durch Kontraposition: Wären t und t0
äquivalent, dann wären auch u und u0 äquivalent. Also wären nach Voraussetzung u
und u0 gleich. Die Eindeutigkeit von Normalformen ist oft weit schwieriger nachzuweisen als ihre Existenz und erfordert Begriffe aus der Termersetzungstheorie (siehe z.B. [14], Kapitel 5).
Hier interessiert uns vor allem, wie äquivalente Normalformen berechnet werden können.
107
5 Gleichungslogik Beispiel 5.5
Sei Σ = {+, ∗ : 2 → 1}, X = {x, y, z, z 0},
E = {x ∗ (y + z) ≡ (x ∗ y) + (x ∗ z), (x + y) ∗ z ≡ (x ∗ z) + (y ∗ z)}
und NF die Menge aller Σ-Terme über X, deren Teilterme der Form t ∗ u keine Teilterme
der Form t + u haben.
Für jede Σ-Algebra A, die E erfüllt, und jeden Σ-Term t gibt es u ∈ NF mit t ≡A u.
Unten werden zwei Verfahren beschrieben, mit deren Hilfe das gezeigt werden kann (siehe
Beispiel 5.8 bzw. 5.10).
Aufgabe Sei A die Σ-Algebra mit Trägermenge N und der üblichen Interpretation von
Σ in N. Zeigen Sie, dass der Σ-Term (x+y)∗(z+z 0) mehrere Normalformen bzgl. A hat. o
Normalisierungen logischer Formeln sind erforderlich, weil logische Ableitungsregeln oft
nur auf Normalformen anwendbar sind. Das verkleinert den Suchraum (die Menge möglicher Regelanwendungen auf eine einzelne Formel), führt aber vielfach zu Ableitungen,
die für Menschen nur schwer nachvollziehbar sind, weil Normalisierungen die intuitive
Verständlichkeit logischer Formeln i.a. verschlechtern.
108
5 Gleichungslogik Das spielt keine Rolle, wenn Ableitungen vollautomatisch erzeugt werden. Sind jedoch
Eingriffe in den Ableitungsprozess notwendig – weil der Suchraum zu groß oder der verwendete Kalkül unvollständig ist (siehe Kapitel 2) –, dann müssen die am Eingriffspunkt
vorliegenden Zwischenergebnisse schnell verstehbar sein, damit entscheiden werden kann,
wie die Ableitung fortgesetzt werden soll.
Im Gegensatz zur rekursiven Auswertung eines Terms t (siehe oben) werden Normalformen von t üblicherweise durch iterative – d.h. wiederholte – Anwendung von Gleichungen
auf t berechnet.
5.5 Äquivalenzrelationen und Quotienten
Um die Korrektheit solcher Ableitungen beweisen zu können, widmen wir uns zunächst
den wichtigen Eigenschaften von ≡A – die z.T. schon im o.g. Entscheidungsverfahren für
Termäquivalenz verwendet wurden.
Sei A eine Menge. Eine Relation R ⊆ A2 heißt
• reflexiv, wenn die Diagonale von A2 eine Teilmenge von R ist;
(1)
• transitiv: Für alle (a, b), (b, c) ∈ R auch (a, c) zu R gehört;
(2)
109
5 Gleichungslogik • symmetrisch, wenn für alle (a, b) ∈ R auch (b, a) zu R gehört;
(3)
• antisymmetrisch, wenn alle a, b ∈ A mit (a, b), (b, a) ∈ R gleich sind;
(4)
Eine reflexive und transitive Relation heißt Prä- oder Quasiordnung.
Eine antisymmetrische Präordnung heißt Halbordnung oder partielle Ordnung.
Eine Halbordnung R heißt totale Ordnung, wenn für alle a, b ∈ R (a, b) oder (b, a) zu
R gehört.
Eine wohlfundierte (siehe Kapitel 4) und totale Ordnung heißt Wohlordnung.
R heißt Äquivalenzrelation, wenn (1)-(3) gelten.
Eine Äquivalenzrelation R zerlegt A in Äquivalenzklassen
[a]R =def {b ∈ A | (a, b) ∈ R}.
Die entstehende Zerlegung heißt Quotient von A (faktorisiert) nach R und wird mit
A/R bezeichnet:
A/R =def {[a]R | a ∈ A}.
Die natürliche Abbildung natR : A → A/R bildet a ∈ A auf [a]R ab.
110
5 Gleichungslogik Umgekehrt liefert jede Zerlegung Z = {A1, . . . , An} von A die Äquivalenzrelation
RZ = {(a, b) ∈ A2 | es gibt 1 ≤ i ≤ n mit a, b ∈ Ai}.
o
Aufgabe Zeigen Sie A/RZ = Z.
Eine Äquivalenzrelation R auf A heißt Σ-Kongruenz, wenn R mit allen f : n → 1 ∈ Σ
verträglich ist, d.h. wenn für alle a1, . . . , an, b1, . . . , bn ∈ An Folgendes gilt:
(a1, b1), . . . , (an, bn) ∈ R
⇒
(f A(a1, . . . , an), f A(b1, . . . , bn)) ∈ R.
(5)
Aufgabe Zeigen Sie, dass für alle Σ-Algebren A ≡A eine Σ-Kongruenz ist, also (1)-(3)
und (5) erfüllt.
o
Sei R eine Σ-Kongruenz. Die Quotientenmenge A/R ist die Trägermenge der gleichnamigen Σ-Algebra, die alle f : n → 1 ∈ Σ wie folgt interpretiert: Für alle a1, . . . , an ∈ An,
f A/R ([a1]R , . . . , [an]R ) = [f A(a1, . . . , an)]R .
Aufgabe Zeigen Sie, dass die natürliche Abbildung (s.o) Σ-homomorph ist.
o
111
5 Gleichungslogik 5.6 Gleichungskalkül
Sei E eine Menge von Σ-Gleichungen.
Der Gleichungskalkül GK besteht aus fünf Regeln:
Reflexivitätsregel
E`t≡t
Symmetrieregel
E ` t ≡ t0
E ` t0 ≡ t
t ∈ TΣ(X)
t, t0 ∈ TΣ(X)
Transitivitätsregel
E ` t ≡ t0, E ` t0 ≡ t00
E ` t0 ≡ t00
t, t0, t00 ∈ TΣ(X)
Kongruenzregel
E ` t1 ≡ t01, . . . , E ` tn ≡ t0n
E ` f (t1, . . . , tn) ≡ f (t01, . . . , t0n)
f : n → 1 ∈ Σ,
t1, . . . , tn, t01, . . . , t0n ∈ TΣ(X)
112
5 Gleichungslogik Modus ponens
E ` t1σ ≡ t01σ, . . . , E ` tnσ ≡ t0nσ
E ` tσ ≡ t0σ
(t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0) ∈ E,
σ : X → TΣ(X)
AlgΣ,E bezeichnet die Klasse aller Σ-Algebren, die E erfüllen:
AlgΣ,E =def {A ∈ AlgΣ | A |= E}.
Σ-Algebren, die E erfüllen, heißen (Σ, E)-Algebren.
Satz 5.6 Korrektheit des Gleichungskalküls
Für alle Mengen E von Σ-Gleichungen und unbedingten Σ-Gleichungen e gilt:
E `GK e ⇒ AlgΣ,E |= e.
Beweis. Nach Satz 4.1 (iii) gilt die Behauptung, wenn die Menge P aller Paare (E, e) ∈
P(TΣ(X)2) × TΣ(X)2 mit AlgΣ,E |= e FGK -abgeschlossen ist (siehe Abschnitt 4.4).
Sei (E, t ≡ t0) ∈ FGK (P ).
113
5 Gleichungslogik Fall 1 (Reflexivitätsregel): t = t0. Dann gilt AlgΣ,E |= t ≡ t0.
Fall 2 (Symmetrieregel): (E, t0 ≡ t) ∈ P . Dann gilt AlgΣ,E |= t0 ≡ t, also auch AlgΣ,E |=
t ≡ t0.
Fall 3 (Transitivitätsregel): Es gibt einen Σ-Term t00 mit (E, t ≡ t00), (E, t00 ≡ t0) ∈ P .
Dann gilt AlgΣ,E |= t ≡ t00 und AlgΣ,E |= t00 ≡ t0, also auch AlgΣ,E |= t ≡ t0.
Fall 4 (Kongruenzregel): Es gibt f : n → 1 ∈ Σ und Σ-Terme t1, . . . , tn, t01, . . . , t0n mit
t = f (t1, . . . , tn), t0 = f (t01, . . . , t0n) und (E, ti ≡ t0i) ∈ P für alle 1 ≤ i ≤ n. Dann gilt
g ∗(ti) = g ∗(t0i) für alle (Σ, E)-Algebren A und g ∈ AX , also auch
g ∗(t) = g ∗(f (t1, . . . , tn)) = f A(g ∗(t1), . . . , g ∗(tn)) = f A(g ∗(t01), . . . , g ∗(t0n))
= g ∗(f (t01, . . . , t0n)) = g ∗(t0).
Daher gilt t ≡ t0 in allen (Σ, E)-Algebren.
Fall 5 (Modus ponens): Es gibt (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ u ≡ u0) ∈ E, Σ-Terme
t1, . . . , tn, t01, . . . , t0n und σ : X → TΣ(X) mit t = uσ, t0 = u0σ und (E, tiσ ≡ t0iσ) ∈ P
für alle 1 ≤ i ≤ n. Dann gilt g ∗(tiσ) = g ∗(t0iσ) für alle (Σ, E)-Algebren A und g ∈ AX ,
also auch
114
5 Gleichungslogik (g ∗ ◦ σ)∗(ti)
Lemma 5.3 (ii)
=
g ∗(tiσ) = g ∗(t0iσ)
Lemma 5.3 (ii)
=
(g ∗ ◦ σ)∗(t0i).
(1)
Da A E erfüllt, folgt
g ∗(t) = g ∗(uσ)
Lemma 5.3 (ii)
=
(g ∗ ◦ σ)∗(u) = (g ∗ ◦ σ)∗(u0)
Lemma 5.3 (ii)
=
g ∗(u0σ) = g ∗(t0)
aus (1). Daher gilt t ≡ t0 in allen (Σ, E)-Algebren.
Demnach gehört (E, t ≡ t0) in allen fünf Fällen zu P .
o
5.7 Berechnung äquivalenter Normalformen
Sei E eine Menge unbedingter (!) Σ-Gleichungen.
Die Menge aller Paare (t, t0) von Σ-Termen mit E `GK t ≡ t0 heißt E-Äquivalenz und
wird mit ≡E bezeichnet.
Aus Satz 5.6 folgt, dass für alle (Σ, E)-Algebren A ≡E in ≡A enthalten ist.
(2)
Die folgende Teilrelation von ≡E erlaubt nur “orientierte” Anwendungen der Gleichungen
von E:
Die E-Reduktionsrelation →E besteht aus allen Paaren (u{tσ/x}, u{t0σ/x}) von ΣTermen mit u ∈ TΣ(X), t ≡ t0 ∈ E und σ : X → TΣ(X).
115
5 Gleichungslogik Erstes Normalisierungsverfahren
Ein Σ-Term t heißt E-irreduzibel, wenn kein t0 mit t →E t0 existiert.
+
Die kleinste transitive Relation auf TΣ(X), die →E enthält, wird mit →E bezeichnet.
+
Aufgabe Zeigen sie, dass →E die kleinste transitive und mit Σ verträgliche Relation ist,
die
Inst(E ) =def {(tσ, t0σ) | (t, t0) ∈ E, σ : X → TΣ(X)}
+
enthält. Folgern Sie daraus, dass →E eine Teilmenge von ≡E ist.
o
Satz 5.7 Sei NF ⊆ TΣ(X)2 und A eine (Σ, E)-Algebra.
Ist →E ist wohlfundiert und gehört jeder E-irreduzible Term zu NF , dann hat jeder
Σ-Term t eine Normalform u in NF , d.h. es gilt t ≡A u.
Beweis. Aus der Wohlfundiertheit von →E folgt die Existenz eines E-irreduziblen Σ+
+
(2)
Terms u mit t →E u. Also gehört u zu NF . Aus →E ⊆ ≡E ⊆ ≡A folgt t ≡A u.
o
116
5 Gleichungslogik Ein Kriterium für Wohlfundiertheit von →E ist die Existenz einer Gewichtsfunktion
weight : TΣ(X) → W,
die Termen Elemente einer Menge W zuordnet, auf der es eine wohlfundierte Halbordnung
< mit folgender Eigenschaft gibt:
• Für alle t, t0 ∈ TΣ(X) mit t →E t0 gilt weight(t) > weight(t0).
(3)
Gäbe es eine unendliche Reduktion t1 →E t2 →E t3 →E . . . , dann gälte
weight(t1) > weight(t2) > weight(t3) > . . . ,
was der Wohlfundiertheit von < widerspricht.
Die einfachste Gewichtsfunktion ordnet einem Term die Anzahl seiner Symbole zu. Sie
erfüllt aber selten Bedingung (3).
Häufig genügt es, natürliche Zahlen als Gewichte und < als die übliche Ordnung auf N
zu wählen. Manchmal wird aber eine komplexere Ordnung benötigt, die z.B. auf Tupeln
oder Multimengen natürlicher Zahlen basiert.
Hierzu zählen die lexikographische bzw. Multimengen-Erweiterung einer wohlfundierten Ordnung < auf einer Menge A:
117
5 Gleichungslogik Für alle n > 1, a = (a1, . . . , an), b = (b1, . . . , bn) ∈ An und f, g ∈ B(A) = NA,
a <lex b ⇔def es gibt 1 ≤ i ≤ n mit ai < bi und aj ≤ bj für alle 1 ≤ j < i.
Für alle f, g ∈ B(A) = NA (siehe Isomorphien),
f <mult g ⇔def f 6= g und für alle a ∈ Af \ Ag gibt es b ∈ Ag \ Af mit a < b,
wobei Af = f −1(N>0) und Ag = g −1(N>0).
Beispiel 5.8 Seien Σ, X, E und NF wie in Beispiel 5.5. Man sieht sofort, dass Eirreduzible Terme zu NF gehören. + Schrittweise E-Reduktion des Terms
dist = 5 ∗ (6 ∗ (11 ∗ (x + y + z) ∗ 14 + (c + g + b) ∗ 22) + 44 ∗ (gg + hh))
zu einer Normalform. + und ∗ treten hier auch als dreistellige Funktionssymbole auf.
Ein Termgewicht, das Bedingung (3) erfüllt, ist die Multimenge der Längen aller Pfade
von einem mit ∗ markierten Knoten zu einem Blatt, wobei sich die Begriffe Pfad, Knoten
und Blatt auf die Baumdarstellung des gewichteten Terms beziehen.
o
118
5 Gleichungslogik Zweites Normalisierungsverfahren
Eine andere Methode, äquivalente Normalformen zu berechnen, besteht in der Definition
von Interpretationen von Σ in NF , also in der Erweiterung von NF zur Σ-Algebra. Hier
kann E auch bedingte Gleichungen enthalten.
Satz 5.9 Sei A eine (Σ, E)-Algebra. Unter folgender Bedingung gilt t ≡A inc∗X (t), ist
inc∗X (t) also eine Normalform von t:
∀ f : n → 1 ∈ Σ, t ∈ NF n : f NF (t) ≡E f t.
incX
X
TΣ(X)
inc∗X
≺
=
incX
(4)
NF
Beweis. Für alle t ∈ TΣ(X) gelte
t ≡E inc∗X (t).
(5)
Aus (5) und (2) folgt t ≡A inc∗X (t).
119
5 Gleichungslogik Beweis von (5) durch FΣ-Induktion.
Sei x ∈ X. Wegen der Reflexivität von ≡E gilt x ≡E x = incX (x) = inc∗X (x).
Sei f : n → 1 ∈ Σ, t1, . . . , tn ∈ TΣ(X) und ti ≡E inc∗X (ti) für alle 1 ≤ i ≤ n. Daraus
folgt
ft
≡E ist mit f verträglich
=
f TΣ(X)(t1, . . . , tn) ≡E f TΣ(X)(inc∗X (t1), . . . , inc∗X (tn))
(4)
= f (inc∗X (t1), . . . , inc∗X (tn)) ≡E f NF (inc∗X (t1), . . . , inc∗X (tn))
inc∗X Σ−hom.
=
inc∗X (f TΣ(X)(t1, . . . , tn)) = inc∗X (f t).
o
Sei T ⊆ TΣ(X)+. Die Relation R = {(t, t0) ∈ T 2 | t0 ist ein echter Teilausdruck von t}
heißt Teiltermrelation bzgl. T und ist wohlfundiert. Noethersche Induktion bzgl. R
wird auch strukturelle Induktion über T genannt.
Beispiel 5.10
Seien Σ, NF und E wie in Beispiel 5.5. + und ∗ werden in NF als induktiv definierte
Funktionen interpretiert:
120
5 Gleichungslogik Für alle t, t0 ∈ NF ,
t +NF t0 = t + t0,

0

t
∗
t



 (u ∗NF t0) + (v ∗NF t0)
t ∗NF t0 =

(t ∗NF u) + (t ∗NF v)




falls t, t0 ∈ T{∗}(X),
falls es u, v ∈ NF gibt mit t = u + v,
falls t ∈ T{∗}(X) und es u, v ∈ NF gibt
mit t0 = u + v.
NF 2 kann wie folgt induktiv definiert werden:
• t, t0 ∈ T{∗}(X) ⇒ (t, t0) ∈ NF 2,
• u, v, t0 ∈ NF
⇒ (u + v, t0) ∈ NF 2,
• t ∈ T{∗}(X) ∧ u, v ∈ NF
⇒ (t, u + v) ∈ NF 2.
Beweis von (4) durch strukturelle Induktion über NF 2. Sei f ∈ Σ und t, t0 ∈ NF .
Fall 1: f = +. Dann gilt (5) nach Definition von f NF .
Fall 2: f = ∗. Ist t, t0 ∈ T{∗}(X), dann gilt (5) nach Definition von ∗NF .
121
5 Gleichungslogik Sonst gibt es u, v ∈ NF mit t = u + v, u ∗NF t0 ≡E u ∗ t0 und v ∗NF t0 ≡E v ∗ t0 oder mit
t0 = u + v, t ∗NF u ≡E t ∗ u und t ∗NF v ≡E t0 ∗ v (Induktionshypothese). Daraus folgt
t ∗NF t0 = (u ∗NF t0) + (v ∗NF t0) ≡E (u ∗ t0) + (v ∗ t0) ≡E (u + v) ∗ t0 = t ∗ t0
bzw.
t ∗NF t0 = (t ∗NF u) + (t ∗NF v) ≡E (t ∗ u) + (t ∗ v) ≡E t ∗ (u + v) = t ∗ t0
wegen x∗(y+z) ≡ (x∗y)+(x∗z) ∈ E sowie wegen der Symmetrie und der Verträglichkeit
von ≡E mit +.
Sei A die Σ-Algebra mit Trägermenge N und der üblichen Interpretation von + und ∗
auf N. Grundschulwissen impliziert die Gültigkeit von E in A.
Nach Satz 5.9 gibt es zu jedem Σ-Term t eine Normalform u mit t ≡A u.
Sei X = {x, y, z, c, g, b, gg, hh}. In der + schrittweisen Auswertung des Terms dist
unter der Belegung nf = incX : X → NF zu einer Normalform bezeichne add und
mul die Interpretationen der Operationen + bzw. ∗ in NF , die hier auch als dreistellige
Funktionssymbole auftreten.
o
122
5 Gleichungslogik Beispiel 5.11 (siehe Beispiel 5.1)
Sei nand = λ(x, y).¬(x∧y) : TAL(X)2 → TAL(X) und NF ⊆ TAL(X) die folgendermaßen
induktiv definierte Menge von Normalformen:
• X ∪ {>} ⊆ NF ,
• t, u ∈ NF
⇒ nand(t, u) ∈ NF .
Die Operationen von AL werden in NF wie folgt interpretiert: Für alle t, u ∈ NF ,
>NF = >,
⊥NF = nand(>, >),
¬NF (t) = nand(t, t),
t ∧NF u = nand(nand(t, u), nand(t, u)),
t ∨NF u = nand(nand(t, t), nand(u, u)),
t ⇒NF u = nand(t, nand(u, u)).
Sei E die Menge folgender AL-Gleichungen:
123
5 Gleichungslogik ¬(¬x ∧ ¬y) ≡ x ∨ y,
x∧x
≡ x,
¬>
≡ ⊥,
¬¬x
≡ x,
¬t ∨ u
≡ t ⇒ u.
Aufgabe Zeigen Sie (4) für Σ = AL. Im Gegensatz zu Beispiel 5.10 wird hier keine
strukturelle Induktion benötigt, weil die Interpretation der Operationen von AL nicht
induktiv definiert ist.
Nach Satz 5.9 hat jeder Σ-Term eine in allen A ∈ AlgΣ,E äquivalente Normalform.
o
Satz 5.12 Vollständigkeit des Gleichungskalküls
Jede unbedingte Σ-Gleichung, die in allen Σ-Algebren, die E erfüllen, gültig ist, gehört
zur E-Äquivalenz.
Beweis. Da ≡E eine Σ-Kongruenz ist, lässt sich die Quotientenmenge TΣ(X)/≡E wie
oben beschrieben zur Σ-Algebra erweitern. Wir zeigen zunächst, dass sie die Gleichungen
von E erfüllt.
124
5 Gleichungslogik Sei ϕ = (t1 ≡ t01 ∧· · ·∧tn ≡ t0n ⇒ t ≡ t0) ∈ E und g : X → TΣ(X)/≡E mit g ∗(ti) = g ∗(t0i)
für alle 1 ≤ i ≤ n. Dann gibt es σ : X → TΣ(X) mit nat≡E ◦ σ = g. Daraus folgt
[tiσ]≡E = nat≡E (tiσ)
= (nat≡E ◦ σ)∗(t0i)
Lemma 5.3 (i)
=
Lemma 5.3 (i)
=
(nat≡E ◦ σ)∗(ti) = g ∗(ti) = g ∗(t0i)
nat≡E (t0iσ) = [t0iσ]≡E ,
also tiσ ≡E t0iσ, d.h. es gibt eine GK-Ableitung von E ` tiσ ≡ t0iσ. Eine Anwendung des
Modus ponens auf die Gleichungen t1σ ≡ t01σ, . . . , tnσ ≡ t0nσ und ϕ liefert die Gleichung
tσ ≡ t0σ. Demnach gilt tσ ≡E t0σ und wir erhalten
g ∗(t) = (nat≡E ◦ σ)∗(t)
Lemma 5.3 (i)
=
Lemma 5.3 (i)
=
nat≡E (tσ) = [tσ]≡E = [t0σ]≡E = nat≡E (t0σ)
(nat≡E ◦ σ)∗(t0) = g ∗(t0).
Also ist ϕ in TΣ(X)/≡E gültig.
Sei nun t ≡ t0 eine Σ-Gleichung, die in allen Σ-Algebren, die E erfüllen, gültig ist. Daher
ist t ≡ t0 in TΣ(X)/≡E gültig, und wir erhalten für alle σ : X → TΣ(X):
nat≡E (σ ∗(t))
Lemma 5.3 (i)
=
Lemma 5.3 (i)
=
(nat≡E ◦ σ)∗(t)
TΣ (X)/≡E erfüllt t≡t0
=
(nat≡E ◦ σ)∗(t0)
nat≡E (σ ∗(t0)),
125
5 Gleichungslogik also insbesondere t = id(t) = inc∗X (t) ≡E inc∗X (t0) = id(t0) = t0.
incX
=
incX
TΣ(X)
inc∗X = idTΣ(X)
≺
X
TΣ(X)
o
5.8 Gleichungslogik in anderen Logiken
Bei allen drei in den nächsten Kapiteln behandelten Logiken folgen Syntax und Semantik
dem gleichen Definitionsschema. Zunächst wird eine Signatur L logischer Operationen
angegeben. Die Formelmenge wird als Menge TL(At) der L-Terme über einer Menge At
von Atomen definiert.
In der Aussagenlogik (L = AL); siehe Beispiel 5.1) und der Modallogik (L = ML) ist At
eine beliebige – i.d.R. endliche – Menge.
126
5 Gleichungslogik In der Prädikatenlogik (L = PL) ist At eine Menge von Ausdrücken der Form p(t1, . . . , tn),
die aus Termen t1, . . . , tn einer beliebigen Signatur Σ und – neben den Operationen ebenfalls zu Σ gehörigen Prädikaten p besteht. Demnach ist eine prädikatenlogische Formel
ein Term mit Symbolen aus zwei Signaturen: PL und Σ.
Während die Bedeutung einer aussagenlogischen Formel durch einen Wahrheitswert (=
Element der Bitalgebra 2) gegeben ist, ist – intuitiv gesprochen – die Semantik einer
modal- oder prädikatenlogischen Formel die Menge aller Zustände (“Welten”), die sie
erfüllen. An die Stelle einer Belegung g : At → 2 durch Wahrheitswerte tritt in der
Modallogik eine Kripke-Struktur
K : State → P(State) × P(At),
die jedem Zustand s seine (direkten) Folgezustände sowie alle atomaren Formeln zuordnet, die im Zustand s gelten (sollen).
In der Prädikatenlogik besteht die Zustandsmenge State aus allen Belegungen von X in
einer Σ-StrukturA, d.i. eine Σ-Algebra, die die Prädikate von Σ als Relationen auf A
interpretiert.
127
5 Gleichungslogik Die jeweilige Kripke-Struktur K bzw. Σ-Struktur A liefert eine Belegung
gK : At → P(State)
bzw.
gA : AtΣ(X) → P(AX )
atomarer Formeln in der ML- bzw. PL-Algebra P(State) bzw. P(AX ), deren Extension
gK∗ : TML(At) → P(State)
bzw.
gA∗ : TPL(AtΣ(X)) → P(AX )
modal- bzw. prädikatenlogischen Formeln ihre jeweilige Bedeutung zuordnet:
incAt
incAt
At
TAL(At)
At
TML(At)
g∗
=
gK
gK∗
P(State)
2
incAtΣ(X)
AtΣ(X)
=
gA
TPL(AtΣ(X))
gA∗
≺
≺
=
≺
g
P(AX )
128
5 Gleichungslogik Highlights
Eine Signatur Σ besteht aus Operation(ssymbol)en der Form f : n → 1 mit n ∈ N.
Induktive Definition der Menge TΣ(X) der Σ-Terme über X:
• X ⊆ TΣ(X),
• Für alle f : n → 1 ∈ Σ und t ∈ TΣ(X)n, f t ∈ TΣ(X).
Strukturelle Induktion über T ⊆ TΣ(X)+ = Noethersche Induktion bzgl. der Teiltermrelation auf T
Eine Σ-Algebra A besteht aus einer – oft ebenfalls mit A bezeichneten – Trägermenge
und für alle f : n → 1 ∈ Σ einer Funktion f A : An → A.
Als Σ-Algebra interpretiert TΣ(X) f wie folgt: f TΣ(X)(t1, . . . , tn) =def f (t1, . . . , tn).
Für Σ-Algebren A und B heißt eine Funktion h : A → B Σ-Homomorphismus, wenn
für alle f ∈ Σ h ◦ f A = f B ◦ h gilt.
Bijektive Σ-Homomorphismen heißen Σ-Isomorphismen.
129
5 Gleichungslogik Die Termfortsetzung g ∗ : TΣ(X) → A einer Belegung g : X → A von X in einer
Σ-Algebra A ist wie folgt induktiv definiert:
• Für alle x ∈ X, g ∗(x) = g(x).
• Für alle f : n → 1 und t1, . . . , tn ∈ TΣ(X),
g ∗(f (t1, . . . , tn)) = f A(g ∗(t1), . . . , g ∗(tn)).
g ∗ ist der einzige Σ-Homomorphismus von TΣ(X) nach A mit g ∗ ◦ incX = g.
Folglich ist die Einschränkung fold A : TΣ → A von g ∗ auf Grundterme der einzige ΣHomomorphismus von TΣ(X) nach A
Belegungen durch Terme heißen Substitutionen.
Substitutionslemma (Lemma 5.3): Für alle Σ-Algebren A, Belegungen g : X → A und
Substitutionen σ : X → TΣ(X) gilt (g ∗ ◦ σ)∗ = g ∗ ◦ σ ∗.
Sei t1, . . . , tn, t01, . . . , t0n, t, t0 ∈ TΣ(X). Die Formel
ϕ = (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0)
heißt (bedingte) Σ-Gleichung.
130
5 Gleichungslogik Eine Σ-Algebra A erfüllt ϕ, falls für alle Belegungen g : X → A mit g ∗(ti) = g ∗(t0i) für
alle 1 ≤ i ≤ n auch g ∗(t) = g ∗(t0) gilt.
Der Gleichungskalkül GK besteht aus den fünf o.g. Regeln. Die Relation
≡E =def {(t, t0) ∈ TΣ(X)2 | E `GK t ≡ t0}
heißt E-Äquivalenz.
Korrektheit von GK (Satz 5.6): Jede Σ-Algebra, die E erfüllt, erfüllt auch alle mit
GK aus E ableitbaren Gleichungen.
Zweites Verfahren zur Normalformkonstruktion:
Sei NF ⊆ TΣ(X) die Trägermenge einer Σ-Algebra, incX die Inklusion von X in NF und
für alle f : n → 1 ∈ Σ und t ∈ NF n gelte f NF (t) ≡E f t. Dann erfüllt jede Σ-Algebra, die
E erfüllt, auch t ≡ inc∗X (t) für alle t ∈ TΣ(X), d.h. inc∗X (t) liefert eine Normalform von t.
Vollständigkeit von GK (Satz 5.12): Jede unbedingte Σ-Gleichung, die in allen ΣAlgebren, die E erfüllen, gültig ist, gehört zur E-Äquivalenz.
131
6 Aussagenlogik (propositional logic)
Aussagenlogische Formeln (propositional formulas) sind logische Verknüpfungen elementarer Sachverhalte, die durch eine Menge At von Atomen gegeben sind.
Die Symbole der Signatur AL (siehe Beispiel 5.1) heißen aussagenlogische Operationen.
Ein AL-Term über At heißt aussagenlogische Formel über At.
Ein AL-Term der Form ¬ϕ, ϕ ∧ ψ, ϕ ∨ ψ oder ϕ ⇒ ψ heißt Negation, Disjunktion,
Konjunktion bzw. Implikation.
ϕ und ψ heißen Faktoren von ϕ ∧ ψ und Summanden von ϕ ∨ ψ.
prem(ϕ ⇒ ψ) =def ϕ heißt Prämisse von ϕ ⇒ ψ.
conc(ϕ ⇒ ψ) =def ψ heißt Konklusion von ϕ ⇒ ψ.
Um Klammern zu sparen, vereinbaren wir die folgenden (üblichen) + Prioritäten aussagenlogischen Operationen: Negation vor Konjunktion, Konjunktion vor Disjunktion,
Disjunktion vor Implikation.
In den verlinkten Ableitungsbeispielen steht false für ⊥, true für > und – wie in Java –
das Ausrufezeichen für ¬.
132
6 Aussagenlogik Sei g : At → 2. Den Wahrheitswert einer aussagenlogischen Formel ϕ unter g erhält man
durch Anwendung der Extension g ∗ : TAL(At) → 2 von g auf ϕ.
incAt
g
=
TAL(At)
g∗
≺
At
2
g ∗ wertet aussagenlogische Formeln in der Bitalgebra aus.
Sei ϕ, ψ ∈ TAL(At) und Φ ⊆ TAL(At).
g : At → 2 erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1
gilt.
Darauf aufbauend sind Erfüllbarkeit, Allgemeingültigkeit, Folgerung und Äquivalenz aussagenlogischer Formeln wie in Kapitel 2 definiert, wobei der zugrundeliegende
semantische Bereich D durch die Menge 2At gegeben ist.
133
6 Aussagenlogik Aufgaben Sei ϕ, ψ, ϑ ∈ TAL(At). Zeigen Sie:
• ϕ ist genau dann allgemeingültig, wenn ϕ aus > folgt.
(1)
• ϕ ist genau dann unerfüllbar, wenn ⊥ aus ϕ folgt.
(2)
• Folgerungssatz: ϕ ∧ ψ |= ϑ gilt genau dann, wenn ϕ |= (ψ ⇒ ϑ) gilt.
(3)
• Für alle Substitutionen σ : At → TAL(At) gilt:
Ist ϕσ erfüllbar, dann ist auch ϕ erfüllbar.
(4)
• ϕ und ψ sind äquivalent, wenn die AL-Gleichung ϕ ≡ ψ in der Bitalgebra gültig ist
(siehe Abschnitt 5.1).
o
Aus (2) und (3) folgt sofort der Unerfüllbarkeitssatz: Sei ϕ, ψ ∈ TAL(At).
ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist.
(5)
134
6 Aussagenlogik Aufgabe Zeigen Sie, dass ϕ und ψ genau dann äquivalent sind, wenn ψ aus ϕ und ϕ aus
ψ folgt.
o
Aufgabe Sei x, y, z ∈ At. Zeigen Sie, dass die Bitalgebra folgende AL-Gleichungen erfüllt:
x ∨ (y ∨ z) ≡ (x ∨ y) ∨ z
x ∧ (y ∧ z) ≡ (x ∧ y) ∧ z
(Assoziativität)
x∨y ≡y∨x
x∧y ≡y∧x
(Kommutativität)
x∨x≡x
x∧x≡x
(Idempotenz)
o
Wegen der Gültigkeit dieser sechs Gleichungen in der Bitalgebra können die Operationen
∨ und ∧ ohne innere Klammerung auf mehr als zwei Formeln wie z.B. hier: ϕ ∨ ψ ∨ ϑ
W
oder auf eine endliche Formelmenge wie z.B hier: {ϕ, ψ, ϑ} angewendet werden.
W
V
W
V
∅ wird mit ⊥ identifiziert, ∅ mit > und {ϕ} und {ϕ} mit ϕ.
135
6 Aussagenlogik Weitere in der Bitalgebra gültige (bedingte) AL-Gleichungen
x∨⊥≡x
x∧>≡x
(Neutralität)
x∨>≡>
x∧⊥≡⊥
(Annihilation oder
Extremalgesetze)
x ∨ (x ∧ y) ≡ x
x ∧ (x ∨ y) ≡ x
(Absorption)
x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z)
x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z)
(Distributivität)
x ∨ ¬x ≡ >
x ∧ ¬x ≡ ⊥
(Auslöschung oder
Komplementarität)
(x ∨ z ≡ y ∨ z) ∧ (x ∧ z ≡ y ∧ z) ⇒ x ≡ y
¬⊥ ≡ >
¬> ≡ ⊥
¬(x ∧ y) ≡ ¬x ∨ ¬y
(Kürzungsregel)
¬¬x ≡ x
¬(x ∨ y) ≡ ¬x ∧ ¬y
¬(x ⇒ y) ≡ x ∧ ¬y
x ⇒ y ≡ ¬x ∨ y
(negAL)
Die Menge der Assoziativitäts-, Kommutativitäts-, Absorptions-, Distributivitäts- und
Auslöschungsgleichungen bezeichnen wir fortan mit BE .
Eine AL-Algebra, die BE erfüllt, heißt Boolesche Algebra.
136
6 Aussagenlogik Aufgabe Zeigen Sie, dass jede Potenzmenge eine Boolesche Algebra ist.
o
Demnach ist die Bitalgebra eine Boolesche Algebra und ϕ ∈ TAL(At) nach Satz 5.6
allgemeingültig bzw. unerfüllbar, wenn ϕ ≡BE > bzw. ϕ ≡BE ⊥ gilt.
Idempotenz, Neutralität, Annihilation und alle Gleichungen von negAL (außer denen mit
⇒) lassen sich aus BE ableiten, d.h. sie gehören zur BE -Äquivalenz.
Umgekehrt gelten alle aus BE ableitbaren Gleichungen nach Satz 5.6 in jeder Booleschen Algebra. Laut Satz 6.2 (s.u.) gilt sogar jede in der Bitalgebra gültige Gleichung
auch in jeder anderen Booleschen Algebra, was nach Satz 5.12 impliziert, dass alle diese
Gleichungen zur BE -Äquivalenz gehören. Letztere ist also nicht nur in der semantischen
Äquivalenz ≡2 enthalten, sie stimmt sogar mit ≡2 überein!
Aufgabe Die folgenden AL-Gleichungen ϕ ≡ ψ werden häufig in Beweisen mathematischer Sätze verwendet, indem ψ an Stelle der zu beweisenden Aussage ϕ gezeigt wird:
Sei x, y, z, x1, . . . , xn ∈ At.
137
6 Aussagenlogik x ≡ ¬x ⇒ ⊥
x ⇒ y ≡ ¬y ⇒ ¬x
x ⇒ (y ⇒ z) ≡ (x ∧ y) ⇒ z
(Ableitung eines Widerspruchs)
(Kontraposition)
(Dekaskadierung)
x ≡ (x1 ⇒ x) ∧ · · · ∧ (xn ⇒ x) ∧ (¬x1 ∧ · · · ∧ ¬xn ⇒ x)
(Fallunterscheidung)
Die Dekaskadierung ähnelt der Isomorphie (6) im Abschnitt Isomorphien auf, wenn man
A, B, C durch Formeln, × durch ∧ und → durch ⇒ ersetzt.
Ersetzt man noch + durch ∨, dann werden auch die Kommutativitäts-, Assoziativitätsund Distributivitätsgesetze im Abschnitt Isomorphien zu gleichnamigen aussagenlogischen Äquivalenzen (s.o).
Diese Analogie zwischen Mengenverknüpfungen einerseits und logischen Operationen andererseits ist unter dem Namen + Curry–Howard Korrespondenz bekannt.
o
6.1 Normalformen
Eine aussagenlogische Formel heißt Negationsnormalform (NNF), wenn ⇒ in ihr
nicht vorkommt und ¬ nur direkt vor Atomen.
138
6 Aussagenlogik Atome nennt man auch positive Literale, während Formeln ¬ϕ mit ϕ ∈ At negative
Literale genannt werden. Für alle x ∈ At heißen x und ¬x komplementär zueinander.
Eine Disjunktion von Konjunktionen paarweise verschiedener Literale heißt disjunktive
Normalform (DNF).
Eine Konjunktion von Disjunktionen paarweise verschiedener Literale heißt konjunktive
Normalform (KNF).
Eine Disjunktion oder Konjunktion von Literalen ϕ1, . . . , ϕn heißt geschlossen, wenn es
1 ≤ i, j ≤ n gibt mit ϕi = ¬ϕj . Andernfalls heißt sie offen.
Eine KNF ϕ ist genau dann allgemeingültig, wenn alle ihre Faktoren geschlossen sind. (6)
Beweis. Da ϕ eine KNF ist, gibt es Literale ϕ11, . . . , ϕ1n1 , . . . , ϕm1, . . . , ϕmnm mit
ϕ =
ni
m _
^
ϕij .
i=1 j=1
0
Sei e = (x ∨ ¬x ≡ >) und e = (x ∧ > ≡ x). Ist
dann gilt
Wni
j=1 ϕij
für alle 1 ≤ i ≤ m geschlossen,
139
6 Aussagenlogik ϕ ≡e > ∧ · · · ∧ > ≡e0 >.
Da die Bitalgebra e und e0 erfüllt, erfüllt sie nach Satz 5.6 auch die Gleichung ϕ ≡ >.
Wni
Sei umgekehrt ϕ allgemeingültig. Gäbe es 1 ≤ i ≤ m derart, dass ψ = j=1 ϕij offen ist,
dann würde g : At → 2 mit g −1(0) = {x ∈ At | ∃ 1 ≤ j ≤ ni : x = ϕij } ψ, also auch ϕ
nicht erfüllen. Beweis von g ∗(ψ) = 0. Sei 1 ≤ j ≤ ni. Für alle Atome x, die in ϕij vorkommen, gilt
g ∗(x) = g(x) = 0. Für alle Literale ¬z, die in ψ vorkommen, gilt
g ∗(¬z) = 1 − g ∗ (z) = 1 − g(z) = 1 − 0 = 1,
o
weil ψ offen ist und deshalb z nicht zu ψ gehört.
Eine DNF ϕ ist genau dann unerfüllbar, wenn alle ihre Summanden geschlossen sind. (7)
Beweis. Da ϕ eine DNF ist, gibt es Literale ϕ11, . . . , ϕ1n1 , . . . , ϕm1, . . . , ϕmnm mit
ni
m ^
_
ϕ =
ϕij .
i=1 j=1
Sei e = (x ∧ ¬x ≡ ⊥) und e0 = (x ∨ ⊥ ≡ x). Ist
ist, dann gilt
Vni
j=1 ϕij
für alle 1 ≤ i ≤ m geschlossen
140
6 Aussagenlogik ϕ ≡e ⊥ ∨ · · · ∨ ⊥ ≡e0 ⊥.
V ni
Sei umgekehrt ϕ unerfüllbar. Gäbe es 1 ≤ i ≤ m derart, dass ψ = j=1 ϕij offen ist,
dann würde g : At → 2 mit g −1(1) = {x ∈ At | ∃ 1 ≤ j ≤ ni : x = ϕij } ψ, also auch ϕ
erfüllen. Beweis von g ∗(ψ) = 1. Sei 1 ≤ j ≤ ni. Für alle Atome x, die in ϕij vorkommen, gilt
g ∗(x) = g(x) = 1. Für alle Literale ¬z, die in ψ vorkommen, gilt
g ∗(¬z) = 1 − g ∗ (z) = 1 − g(z) = 1 − 1 = 0,
weil ψ offen ist und deshalb z nicht zu ψ gehört.
o
> sowie jede Implikation ϕ ⇒ ψ mit folgenden Eigenschaften heißt Gentzenformel
über At (englisch: sequent):
• ϕ = > oder ϕ ist eine Konjunktion paarweise veschiedener Atome,
• ψ = ⊥ oder ψ ist eine Disjunktion paarweise veschiedener Atome.
Bei einer Gentzenformel der Form > ⇒ ϕ wird > ⇒ oftmals weggelassen.
Eine Gentzenformel heißt minimal, wenn in ihr kein Atom zweimal vorkommt.
141
6 Aussagenlogik Aufgabe Jede Gentzenformel ist äquivalent zu > oder einer minimalen Gentzenformel. o
Eine Konjunktion von Gentzenformeln mit Atomen aus X heißt implikative Normalform (INF) über X.
Zwei Gentzenformeln, die sich nur in der Anordnung der Atome der Prämisse oder der
Konklusion voneinander unterscheiden, werden als gleich angesehen. Deshalb werden sie
manchmal als Implikationen zwischen Mengen notiert:
{x1, . . . , xm} ⇒ {y1, . . . , yn} steht dann für (x1 ∧ · · · ∧ xm) ⇒ (y1 ∨ · · · ∨ yn).
Der Vorteil von Gentzenformeln ist ihre “Natürlichkeit” im Sinne der leichten Erfassbarkeit der konkrete Aussage hinter den Formeln. Ebenso entsprechen Anwendungen der
Schnittregel (s.u.), aus denen Beweise der Allgemeingültigkeit oder Erfüllbarbarkeit von
Gentzenformeln bestehen, eher natürlichen Schlüssen als es z.B. Anwendungen von Gleichungen tun.
142
6 Aussagenlogik Beispiel + Schrittweise Transformation der DNF
(¬x ∧ y ∧ z) ∨ (x ∧ ¬y ∧ z) ∨ (x ∧ y ∧ ¬z)
in eine INF.
Satz 6.1 Sei ϕ ∈ TAL(At), ψ eine NNF und ϑ eine KNF.
• ϕ ist zu einer NNF äquivalent.
(8)
• ψ ist zu einer DNF äquivalent.
(9)
• ψ ist zu einer KNF äquivalent.
(10)
• ϑ ist zu einer INF äquivalent.
(11)
Beweis von (8). Da jede Teilformel ¬ϕ einer negAL-irreduziblen Formel ein Literal ist,
sind alle negAL-irreduziblen Formeln Negationsnormalformen.
Ein Gewicht einer Formel ϕ, das Bedingung (10) in Kapitel 5 erfüllt, ist die Summe
der Symbole aller Teilformeln ¬ψ oder ψ ⇒ ϑ von ϕ. Damit ist (8) nach dem ersten
Verfahren, äquivalente Normalformen zu berechnen, bewiesen.
143
6 Aussagenlogik Zur Anwendung des zweiten Verfahrens, äquivalente Normalformen zu berechnen, definieren wir NF als die Menge aller Negationsnormalformen und interpretieren Σ in NF
wie folgt: Für alle c ∈ {⊥, >}, ⊗ ∈ {∨, ∧}, ϕ, ψ ∈ NF und x ∈ At,
cNF
= c,
ϕ ⊗NF ψ
= ϕ ⊗ ψ,
ϕ ⇒NF ψ
= ¬NF (ϕ) ∨ ψ,
¬NF (⊥)
= >,
¬NF (>)
= ⊥,
¬NF (x)
= ¬x,
¬NF (¬ϕ)
= ϕ, ¬NF (ϕ ∨ ψ)
¬NF (ϕ ∧ ψ)
= ¬NF (ϕ) ∨ ¬NF (ψ),
= ¬NF (ϕ) ∧ ¬NF (ψ),
¬NF (ϕ ⇒ ψ) = ϕ ∧ ¬NF (ψ).
Zunächst ist zu zeigen, dass ¬NF induktiv definiert ist. Das folgt sofort aus der induktiven Definition von NF als kleinste Menge aussagenlogischer Formeln mit folgenden
Eigenschaften:
144
6 Aussagenlogik • x ∈ At ⇒ x, ¬x ∈ T ,
• ⊥, > ∈ T ,
• ϕ, ψ ∈ T
⇒ ϕ ∨ ψ, ϕ ∧ ψ ∈ T .
Zu zeigen bleibt f NF (t) ≡negAL f t für alle f : n → 1 ∈ AL und t ∈ NF n.
Aufgabe Zeigen Sie das durch strukturelle Induktion über NF .
Durch Anwendung der Auswertungsfunktion nnf =def id∗At : TAL(At) → NF auf eine
aussagenlogische Formel lässt sich eine äquivalente NNF konstruieren.
Aufgabe Zeigen Sie (9) und (10) mit dem zweiten Verfahren, äquivalente Normalformen
zu berechnen. Folgen Sie dem Vorgehen in Beispiel 5.9 oder im Beweis von (8).
Beweis von (11).
Sei ϑ eine KNF. Für alle Faktoren d von ϑ definieren wir:
neg(d) = {x ∈ At | ¬x kommt in d vor} = {x1, . . . , xm},
pos(d) = {x ∈ At | x kommt in d vor} = {y1, . . . , yn},
145
6 Aussagenlogik 

⊥



 x ∧ ··· ∧ x ⇒ ⊥
1
m
gen(d) =

y1 ∨ · · · ∨ yn



 x ∧ ··· ∧ x ⇒ y ∨ ··· ∨ y
1
m
1
n
falls neg(d) = ∅ = pos(d),
falls neg(d) 6= ∅, pos(d) = ∅,
falls neg(d) = ∅, pos(d) 6= ∅,
sonst.
Kurz gesagt, die negativen Literale von d bilden, konjunktiv verknüpft, die Prämisse
der Gentzenformel gen(d), während die Atome der positiven Literale von d, disjunktiv
verknüpft, die Konklusion von gen(d) bilden.
Aufgabe Zeigen Sie, dass ϑ zu inf (ϑ) äquivalent ist, wobei
^
{gen(d) | d ist Faktor von ϑ}.
inf (ϑ) =def
o
Zusammengefasst erhält man eine zu einer aussagenlogischen Formel ϕ äquivalente
• NNF durch Anwendung der Funktion nnf auf ϕ;
• DNF und KNF durch Anwendung von in der Bitalgebra gültigen Gleichungen auf
nnf (ϕ);
• INF durch Anwendung der Funktion inf auf die KNF.
146
6 Aussagenlogik Sei die Menge At der Atome endlich. Dann können wir ihre Elemente anordnen:
At = {x1, . . . , xn}.
Folglich gibt es für jede aussagenlogische Formel ϕ über At eine eindeutige Normalform,
und zwar in der Menge aller maximalen DNFs:
Eine DNF ϕ ist eine maximale DNF (MDNF), wenn jeder Summand von ϕ die Form
f1(x1) ∧ · · · ∧ fn(xn) hat, wobei für alle 1 ≤ i ≤ n und x ∈ At fi(x) ∈ {x, ¬x} gilt.
Mit Hilfe von Neutralitäts-, Komplementaritäts-, Distributivitäts- und Kommutativitätsgleichungen lässt sich jede DNF in eine BE -äquivalente MDNF überführen. Deren Eindeutigkeit liefert das folgende – bereits oben erwähnte – Theorem:
Satz 6.2 Jede in der Bitalgebra gültige unbedingte Σ-Gleichung ist in jeder Booleschen
Algebra gültig.
Beweis. Nach Satz 5.6 und Satz 5.12 gilt eine AL-Gleichung t ≡ t0 genau dann in allen
Booleschen Algebren, wenn sie zur BE -Äquivalenz gehört. Es genügt also Folgendes zu
zeigen: Für alle t, t0 ∈ TAL(At),
t ≡2 t0
⇒
t ≡BE t0.
(12)
147
6 Aussagenlogik Wir zeigen (12) unter der Annahme, dass für alle MDNFs u, u0 Folgendes gilt:
u ≡2 u0
⇒
u = u0.
(13)
Sei also t ≡2 t0. Dann erhalten wir zwei MDNFs u, u0 mit t ≡BE u und t0 ≡BE u0. Nach
Satz 5.6 folgt t ≡2 u und t0 ≡2 u0, also auch u ≡2 u0 und damit u = u0 wegen (13).
Folglich sind t und t0 BE -äquivalent, womit (12) bewiesen ist.
Den Beweis von (13) führen wir durch Kontraposition:
Seien u und u0 zwei unterschiedliche MDNFs. Dann hat u einen Summanden, den u0
nicht hat (Fall 1), oder u0 hat einen Summanden, den u nicht hat (Fall 2). Sei ϕ =
f1(x1) ∧ · · · ∧ fn(xn) dieser Faktor und g : At → 2 definiert durch
g −1(1) = {x ∈ At | ∃ 1 ≤ i ≤ n : fi = idAt}.
Im Fall 1 gilt g ∗(u) = 1 und g ∗(u0) = 0. Im Fall 2 gilt g ∗(u) = 0 und g ∗(u0) = 1. In beiden
Fällen folgt g ∗(u) 6= g ∗(u0), also u 6≡2 u0.
o
Aufgabe Zeigen Sie unter Verwendung von (13) und Satz 5.6, dass TAL(At) und P(At)
AL-isomorph sind.
o
148
6 Aussagenlogik Zur Größe von Normalformen
Die mit negAL gebildete NNF von ϕ besteht aus höchstens zweimal so vielen Symbolen
wie ϕ. Bei der Transformation einer NNF zur DNF oder KNF mit Hilfe von Distributivitätsgleichungen werden Teilformeln verdoppelt. Finden solche Verdopplungen auf
mehreren Ebenen der Baumdarstellung von ϕ statt, dann werden sie bis zu n-mal geschachtelt, wobei n die Höhe (maximale Pfadlänge) des Baumes ist. Die DNF bzw. KNF
von ϕ besteht daher aus bis zu 2n Symbolen.
Aufgabe Zeigen Sie, dass es genau 3|At| + 1 minimale Gentzenformeln gibt.
o
6.2 Schnittkalkül
Der aussagenlogische Schnittkalkül ASK besteht aus zwei Regeln:
Einführungsregel
Φ`ϕ
ϕ ∈ Φ ⊆ TAL(At)
149
6 Aussagenlogik Aussagenlogische Schnittregel
Φ ` ϕ ⇒ ψ ∨ x,
Φ ` x ∧ ϕ0 ⇒ ψ 0
Φ ` ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0
ϕ, ϕ0, ψ, ψ 0 ∈ TAL(At), x ∈ At
Jede zur Gentzenformel des Sukzedenten der Schnittregel äquivalente Gentzenformel heißt
Resolvente der beiden Gentzenformeln des Antezedenten. Letztere haben ein gemeinsames Atom x, das wegen der Kommutativität von ∨ bzw. ∧ nicht notwendig am Ende
bzw. Anfang steht.
Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung
von Φ ` ⊥.
Beispiel Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3, ϕ4} mit
ϕ1
ϕ2
ϕ3
ϕ4
=
=
=
=
> ⇒ x ∨ y ∨ z,
x ⇒ y ∨ z,
z ⇒ y,
y ⇒ ⊥.
150
Φ
Φ
Φ
Φ
Φ
Φ
Φ
`
`
`
`
`
`
`
>⇒x∨y∨z
y∨z
>⇒y∨z
z⇒y
>⇒y
y⇒⊥
⊥
Einführung von ϕ1
Einführung von ϕ2
Resolvente von ϕ1 und ϕ2
Einführung von ϕ3
Resolvente von > ⇒ y ∨ z und ϕ3
Einführung von ϕ4
Resolvente von > ⇒ y und ϕ4
o
Satz 6.3 (Korrektheit von ASK -Ableitungen) Sei Φ eine endliche Menge von Gentzenformeln.
(i) Aus Φ `ASK ϕ folgt Φ |= ϕ.
(ii) Aus Φ `ASK ⊥ folgt, dass Φ unerfüllbar ist.
Beweis von (i). Nach Satz 4.1 (iii) gilt die Behauptung, wenn die Menge P aller Paare
(Φ, ϕ) einer Menge Φ von Gentzenformeln und einer einzelnen Gentzenformel ϕ mit Φ |=
ϕ FASK -abgeschlossen ist (siehe Abschnitt 4.4), wenn also Folgendes gilt:
Aus ϕ ∈ Φ folgt Φ |= ϕ,
Φ |= ϕ ⇒ ψ ∨ x und Φ |= x ∧ ϕ0 ⇒ ψ 0 folgt Φ |= ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0.
(14)
(15)
151
6 Aussagenlogik (14) gilt, weil jedes Modell einer Formelmenge ein Modell jedes ihrer Elemente ist.
Es gelte also:
Φ |= ϕ ⇒ ψ ∨ x und Φ |= x ∧ ϕ0 ⇒ ψ 0,
g : At → 2 ist ein Modell von Φ,
g ist ein Modell von ϕ ∧ ϕ0.
(16)
(17)
(18)
Zu zeigen ist:
g ist ein Modell von ϕ ∧ ϕ0.
(19)
Beweis von (19).
Fall 1: g(x) = 0. Wegen (18) ist g ein Modell von ϕ. Wegen (16) und (17) ist g ein
Modell von ϕ ⇒ ψ ∨ x. Also ist g ein Modell von ψ ∨ x. Daraus folgt (19):
g ∗(ψ ∨ ψ 0) = g ∗(ψ) ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 0 ∨2 g ∗(ψ 0)
= g ∗(ψ) ∨2 g(x) ∨2 g ∗(ψ 0) = g ∗(ψ ∨ x) ∨2 g ∗(ψ 0) = 1 ∨2 g ∗(ψ 0) = 1.
Fall 2: g(x) = 1. Wegen (18) ist g ein Modell von ϕ0. Wegen (16) und (17) ist g ein
Modell von x ∧ ϕ0 ⇒ ψ 0. Also ist g ein Modell von ψ 0. Daraus folgt (19):
g ∗(ψ ∨ ψ 0) = g ∗(ψ) ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 1 = 1.
152
6 Aussagenlogik Beweis von (ii). Sei Φ `ASK ⊥. Aus (i) folgt Φ |= ⊥, also ist Φ wegen (2) unerfüllbar. o
Aufgabe Zeigen Sie, dass eine Menge von Gentzenformeln ohne ⊥ erfüllbar ist, wenn die
Schnittregel auf keine der Formeln von Φ anwendbar ist.
V
Geben Sie dazu eine Belegung g ∈ 2At mit g ∗( Φ) = 1 an oder schließen Sie die Behauptung aus folgendem Satz:
Satz 6.4 (Vollständigkeit von ASK -Widerlegungen)
Sei Φ eine unerfüllbare endliche Menge von Gentzenformeln. Dann gilt Φ `ASK ⊥.
Beweis. Wir zeigen Φ `ASK ⊥ durch Induktion über die Anzahl n der Atome von Φ. Im
Fall n = 0 ist Φ = {⊥}. Sei x ein in Φ vorkommendes Atom. Da Φ eine unerfüllbar ist,
sind wegen (4) auch
Φ⊥ = {ϕ{⊥/x} | ϕ ∈ Φ, ϕ{⊥/x} 6≡2 >} und
Φ> = {ϕ{>/x} | ϕ ∈ Φ, ϕ{>/x} ≡
6 2 >}
unerfüllbar. Da Φ⊥ und Φ> ein Atom weniger enthalten als Φ, gelten Φ⊥ `ASK ⊥ und
Φ> `ASK ⊥ nach Induktionsvoraussetzung.
153
6 Aussagenlogik Sei nx(Φ) die Mengen aller Gentzenformeln von Φ, die x nicht enthalten. Wie man leicht
sieht, lässt sich Φ⊥ bzw. Φ> wie folgt darstellen:
Φ⊥ = {ϑ ⇒ ϑ0 | ϑ ⇒ ϑ0 ∨ x ∈ Φ} ∪ nx(Φ),
(20)
Φ> = {ϑ ⇒ ϑ0 | x ∧ ϑ ⇒ ϑ0 ∈ Φ} ∪ nx(Φ).
(21)
Aus (20) und Φ⊥ `ASK ⊥ folgt Φ `ASK ⊥ oder Φ `ASK > ⇒ x (siehe folgende Aufgabe).
Analog folgt Φ `ASK ⊥ oder Φ `ASK x ⇒ ⊥ aus (21) und Φ> `ASK ⊥. Zusammengefasst
gilt also Φ `ASK ⊥ oder sowohl Φ `ASK > ⇒ x als auch Φ `ASK x ⇒ ⊥. Da ⊥ die Resolvente von > ⇒ x und x ⇒ ⊥ ist, ist ⊥ auch im zweiten Fall aus Φ ASK -ableitbar. o
Aufgabe Sei Φ⊥ `ASK ϑ ⇒ ϑ0. Zeigen Sie durch Induktion über die Anzahl der Schnittregelanwendungen einer kürzesten Ableitung von Φ⊥ ` ϑ ⇒ ϑ0 und unter Verwendung
von (20), dass Φ ` ϑ ⇒ ϑ0 oder Φ ` ϑ ⇒ ϑ0 ∨ x ASK -ableitbar ist.
o
Die Frage, ob eine endliche Menge Φ von Gentzenformeln unerfüllbar ist. lässt sich mit
V
Hilfe von (7) (siehe Abschnitt 6.1) entscheiden: Man bilde die DNF von Φ und prüfe,
ob alle ihre Summanden geschlossen sind. Einen anderen Algorithmus, der die Unerfüllbarkeit entscheidet, erhält man wie folgt:
154
6 Aussagenlogik Für jede ASK -Ableitung (Φ1 ` ϕ1, . . . , Φn ` ϕn) gilt offenbar Φ1 = Φi für alle 1 < i ≤ n.
Darüberhinaus gibt es nur endlich viele ASK -Ableitungen (Φ1 ` ϕ1, . . . , Φn ` ϕn), wenn
Φ1 endlich ist.
Um zu zeigen, dass Φ unerfüllbar ist, konstruiert man alle diese Ableitungen. Befindet
sich darunter eine mit ϕn = ⊥, dann gilt Φ `ASK ⊥, und wir schließen aus Satz 6.3
(ii), dass Φ unerfüllbar ist. Andernfalls gilt Φ 6`ASK ⊥, und Satz 6.4 impliziert, dass Φ
erfüllbar ist.
6.3 Knotenmarkierte Bäume
Während mit der Schnittregel INFs transformiert werden, die aus KNFs hervorgehen,
werden mit den unten eingeführten Tableauregeln NNFs in Baumdarstellungen (Tableaus) ihrer DNFs überführt. Die Summanden einer DNF entsprechen den Pfaden in der
Baumdarstellung. Demnach folgt aus (7), dass eine NNF genau dann unerfüllbar ist, wenn
das Tableau ihrer DNF aus geschlossenen Pfaden besteht.
Bei der mathematischen Darstellung eines Baumes muss unterschieden werden zwischen
seinen Knoten und deren Markierung, die für mehrere Knoten übereinstimmen kann.
155
6 Aussagenlogik Sei L eine Menge von Markierungen (labels). Eine Funktion t : N∗ → 1 + L heißt Lmarkierter Baum, wenn t() ∈ L und für alle w ∈ N∗ und n ∈ N Folgendes gilt:
w(n + 1) ∈ L ⇒ wn ∈ L,
wn ∈ L ⇒ w ∈ L.
(22)
(23)
w ∈ N∗ heißt Knoten (node) von t, wenn t(w) zu L gehört. heißt Wurzel von t.
Die Menge dom(t) =def {w ∈ N∗ | t(w) ∈ L} heißt Domäne von t. t ist endlich, wenn
dom(t) endlich ist. Beispiel einer Baumdomäne:
Jedes Element von dom(t) identifiziert eindeutig einen Knoten von t. (22) drückt aus,
dass jeder Knoten außer der Wurzel einen Vorgänger in t hat. (23) erlaubt die eindeutige
Identifizierung von Geschwisterknoten.
156
6 Aussagenlogik Tree(L) bezeichnet die Menge aller L-markierten Bäume.
Sei t ∈ Tree(L) und w ∈ N∗ mit t(w) ∈ L.
t0 ∈ Tree(L) mit t0(v) = t(wv) für alle v ∈ N∗ heißt Unterbaum von t mit Wurzel
w. Ist w ∈ N, dann ist t0 ein maximaler Unterbaum von t. w ∈ N∗ heißt Blatt von
t, wenn für alle n > 0 t(wn) = ist.
Die Präfixrelation ≤ auf N∗ ist wie folgt definiert: Für alle v, w ∈ N∗,
v ≤ w ⇔def es gibt u ∈ N∗ mit vu = w,
v < w ⇔def v ≤ w und v 6= w.
Ist v ≤ w, dann heißt w von v aus erreichbar.
Ist v < w, dann heißt v Vorgänger von w und w Nachfolger von v.
leaves(t, w) bezeichnet die Menge aller von w aus erreichbaren Blätter von t.
path(v, w) =def {u ∈ N∗ | v ≤ u ≤ w} heißt Pfad oder Weg von v nach w.
≤ überträgt sich auf Bäume wie folgt und heißt dort Subsumptionsrelation: Für alle
L-markierten Bäume t und t0,
t ≤ t0 ⇔def für alle w ∈ f −1(L), t(w) = t0(w).
157
6 Aussagenlogik 6.4 Tableaukalkül
Ein (aussagenlogisches) Tableau ist ein endlicher Baum t, dessen Knoten mit aussagenlogischen Formeln markiert sind. t repräsentiert die aussagenlogische Formel
_ ^
form(t) =
{ path(, w) | w ist ein Blatt von t}.
Da die Summe der Längen aller Pfade eines Baums t i.d.R. größer ist als die Anzahl aller
Knoten von t, ist die Darstellung einer aussagenlogischen Formel als Tableau platzsparender als die Formel selbst.
Sei ϕ eine NNF. Eine Folge (t1, . . . , tn) von Tableaus heißt (aussagenlogische) TableauAbleitung von tn aus ϕ, wenn
• t1 ein mit ϕ markiertes Blatt ist,
• für alle 1 ≤ i < n ti+1 durch Anwendung einer Tableauregel (siehe unten) aus ti
gebildet ist,
• tn gesättigt (saturated) ist, d.h. auf tn ist keine Tableauregel anwendbar, m.a.W.:
form(tn) ist eine DNF.
158
6 Aussagenlogik Enthält form(tn) eine geschlossene Konjunktion, dann heißt (t1, . . . , tn) Tableau-Widerlegung.
Wir schreiben ϕ `T t, falls es eine Tableau-Ableitung von t aus ϕ gibt.
Aussagenlogische Tableauregeln Sei t ein Tableau und w ein Knoten von t. Wir
nennen ihn den Redex der jeweiligen Regelanwendung, die t in das neue Tableau t0
transformiert.
• ∨-Regel Sei t(w) = ϕ ∨ ψ. Für alle u ∈ N∗,

> falls u = w,



ϕ
falls u = v0 und v ∈ leaves(t, w),
0
t (u) =def

ψ
falls u = v1 und v ∈ leaves(t, w),



t(u) sonst.
• ∧-Regel Sei t(w) = ϕ ∧ ψ. Für alle u ∈ N∗,

> falls u = w,



ϕ
falls u = v0 und v ∈ leaves(t, w),
0
t (u) =def

ψ
falls u = v00 und v ∈ leaves(t, w),



t(u) sonst.
159
6 Aussagenlogik Anschaulich gesprochen, bildet die ∨- bzw. ∧-Regel t0 aus t, indem sie den Knoten w mit
> markiert sowie ϕ und ψ parallel bzw. hintereinander an alle von w aus erreichbaren
Blätter von t anhängt.
Aufgabe Die Gleichungen von negAL legen weitere Tableauregeln nahe, die zusammen
mit den vier obigen nicht nur NNFs, sondern beliebige aussagenlogische Formeln verarbeiten können. Wie lauten die zusätzlichen Regeln?
Satz 6.5 (Korrektheit aussagenlogischer Tableau-Ableitungen)
Sei ϕ `T t.
(i) ϕ ≡2 form(t).
(ii) Alle Summanden von form(t) sind geschlossen. Dann ist ϕ unerfüllbar.
Beweis. (i): Sei (t1, . . . , tn) eine Tableau-Ableitung von t aus ϕ. Dann ist form(t1) = ϕ
und tn = t. Es genügt also zu zeigen, dass für alle 1 ≤ i < n
form(ti) und form(ti+1) in der Bitalgebra äquivalent sind.
(19)
160
6 Aussagenlogik Aufgabe Zeigen Sie (19).
(ii): Da form(t) eine DNF ist, folgt aus (7), dass form(t) unerfüllbar ist. Also ist wegen
(i) auch ϕ unerfüllbar.
o
Satz 6.6 (Vollständigkeit aussagenlogischer Tableau-Widerlegungen)
Eine NNF ϕ sei unerfüllbar. Dann gibt es ein Tableau t mit ϕ `T t und der Eigenschaft,
dass form(t) keine offene Konjunktion von Literalen enthält.
Beweis. Wiederholte Anwendungen der Tableauregeln führen von ϕ (als einknotigem
Tableau t) zu einem gesättigten Tableau t, weil jede Regelanwendung die Knotenanzahl
eines Tableaus zwar erhöht, die Gesamtzahl der Vorkommen von ∨ und ∧ jedoch verkleinert, so dass irgendwann ein Tableau ohne diese Symbole, also ein gesättigtes Tableau t,
erreicht ist.
Sei ϕ unerfüllbar. Aus Satz 6.5 (i) folgt, dass ϕ und t in der Bitalgebra äquivalent sind,
womit sich die Unerfüllbarkeit von ϕ auf form(t) überträgt. Da t gesättigt und form(t)
unerfüllbar ist, folgt aus (7), dass alle Summanden von form(t) geschlossen sind.
o
161
6 Aussagenlogik Erfüllbarkeitstest für aussagenlogische NNFs
Sei ϕ eine NNF. Wende Tableauregeln in beliebiger Reihenfolge auf ϕ an, bis ein gesättigtes Tableau t erreicht ist.
Prüfe, ob form(t) eine offene Konjunktion von Literalen enthält.
Wenn ja, ist form(t) – wegen (6) – erfüllbar. Wenn nein, ist form(t) – ebenfalls wegen
(6) – unerfüllbar. Aus Satz 6.5 (i) folgt, dass sich die Erfüllbarkeit bzw. Unerfüllbarkeit
von form(t) auf ϕ überträgt.
Jede in form(t) enthaltene offene Konjunktion ϕ1 ∧· · ·∧ϕn von Literalen
( liefert eine Bele1 falls ϕi ∈ At,
gung g, die form(t), also auch ϕ erfüllt: Sei 1 ≤ i ≤ n. Setze g(ϕi) =
0 sonst.
Effizienter wird der Test, wenn man nicht erst im gesättigten Tableau nach offenen Konjunktionen sucht, sondern schon vorher Teiltableaus entfernt, deren Pfade komplementäre
Literale enthalten. Dazu muss der Kalkül um folgende Regeln erweitert werden, die alle
Unterbäume t0 von t durch ein Blatt mit der Markierung ⊥ ersetzen, sofern die Wurzel w
von t0 mit einem Literal ϕ und ein Vorgänger von w in t mit dem zu ϕ komplementären
Literal markiert ist:
162
6 Aussagenlogik • Atomregel Sei t(w) = ϕ ∈ At. Für alle u ∈ N∗,


 ⊥ falls u > w und t(u) = ¬ϕ,
t0(u) =def
falls es v > w gibt mit t(v) = ¬ϕ und u > v,

 t(u) sonst.
• Literalregel Sei t(w) = ¬ϕ und ϕ ∈ At. Für alle u ∈ N∗,


 ⊥ falls u > w und t(u) = ϕ,
t0(u) =def
falls es v > w gibt mit t(v) = ϕ und u > v,

 t(u) sonst.
Außerdem ist in der ∨- und der ∧-Regel die Menge leaves(t, w) der von w aus erreichbaren Blätter von t auf diejenigen zu beschränken, die nicht mit ⊥ markiert sind.
Schließlich wird der Erfüllbarkeitstest für NNFs zu einem Erfüllbarkeitstest für beliebige
aussagenlogische Formeln, wenn er die oben erwähnten, aus den Gleichungen von negAL
gebildeten Tableauregeln mitverwendet.
163
6 Aussagenlogik Beispiele
1. Sei At = {x, y, z, x1, y1, z1, x2}. + Erfüllbarkeitstest der Formel
(((x ∧ y) ∨ z) ∧ x1) ∨ y1 ∨ z1 ∨ ¬x2
Die Formel ist allgemeingültig, da das letzte Tableau der Ableitung kein mit false markiertes Blatt enthält.
2. Sei At = {x, y, z}. + Erfüllbarkeitstest der Formel
(¬x ∧ (y ∨ x) ∧ (y ⇒ x)) ∨ (x ∧ ((¬x ∧ y) ∨ ¬y))
Aus den mit false markierten Blättern des letzten Tableaus der Ableitung ergibt sich,
dass g ∈ 2At die Formel genau dann erfüllt, wenn g(x) = 1 und g(y) = 0 ist.
164
6 Aussagenlogik Highlights
Signatur der Aussagenlogik: AL = {⊥, > : 0 → 1, ¬ : 1 → 1, ∨, ∧, ⇒: 2 → 1}
Semantik der Aussagenlogik: AL-Algebra mit Trägermenge 2 = {0, 1} (“Bitalgebra”)
und folgender Interpretation von AL:
⊥2
>2
¬2
∧2
∨2
⇒2
=
=
=
=
=
=
0,
1,
λb.1 − b,
min,
max,
λ(b, c).max(1 − b, c) = χ(≤).
ϕ, ψ ∈ TAL(X) sind äquivalent, wenn die AL-Gleichung ϕ ≡ ψ in der Bitalgebra gültig
ist.
g : At → 2 erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1
gilt.
165
6 Aussagenlogik Unerfüllbarkeitssatz: ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist.
Eine Boolesche Algebra ist eine AL-Algebra, die folgende AL-Gleichungen erfüllt:
x ∨ (y ∨ z) ≡ (x ∨ y) ∨ z
x∨y ≡y∨x
x ∨ (x ∧ y) ≡ x
x ∨ (y ∧ z) ≡ (x ∨ y) ∧ (x ∨ z)
x ∨ ¬x ≡ >
x ∧ (y ∧ z) ≡ (x ∧ y) ∧ z
x∧y ≡y∧x
x ∧ (x ∨ y) ≡ x
x ∧ (y ∨ z) ≡ (x ∧ y) ∨ (x ∧ z)
x ∧ ¬x ≡ ⊥
(Assoziativität)
(Kommutativität)
(Absorption)
(Distributivität)
(Auslöschung)
Atome heißen auch positive Literale, Formeln ¬ϕ mit ϕ ∈ At negative Literale.
Eine Disjunktion von Konjunktionen paarweise verschiedener Literale heißt disjunktive
Normalform (DNF).
Eine Konjunktion von Disjunktionen paarweise verschiedener Literale heißt konjunktive
Normalform (KNF).
166
6 Aussagenlogik Satz 6.1 (9) und (10): Jede aussagenlogische Formel hat äquivalente DNFs und KNFs,
wobei BE die Menge der obigen zehn Gleichungen ist.
Eine Disjunktion oder Konjunktion von Literalen ϕ1, . . . , ϕn heißt geschlossen, wenn es
1 ≤ i, j ≤ n gibt mit ϕi = ¬ϕj .
Eine KNF (DNF) ϕ ist genau dann allgemeingültig (unerfüllbar), wenn alle ihre Faktoren
(Summanden) geschlossen sind.
> sowie jede Implikation ϕ ⇒ ψ mit folgenden Eigenschaften heißt Gentzenformel
über At (englisch: sequent):
• ϕ = > oder ϕ ist eine Konjunktion paarweise verschiedener Atome,
• ψ = ⊥ oder ψ ist eine Disjunktion paarweise verschiedener Atome.
Eine Gentzenformel heißt minimal, wenn in ihr kein Atom zweimal vorkommt.
Eine Konjunktion von Gentzenformeln heißt implikative Normalform (INF).
Satz 6.1 (11): Jede aussagenlogische Formel hat eine BE -äquivalente INF.
167
6 Aussagenlogik Der aussagenlogische Schnittkalkül ASK besteht aus den in Abschnitt 6.2 angegebenen zwei Regeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Resolvente.
Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung
von Φ ` ⊥.
Korrektheit und Vollständigkeit von ASK -Ableitungen bzw. -Widerlegungen
(Sätze 6.3 und 6.4): Sei Φ endlich.
Aus Φ `ASK ψ folgt Φ |= ψ.
Φ `ASK ⊥ gilt genau dann, wenn Φ unerfüllbar ist.
168
7 Modallogik
Während mit Aussagen- und Prädikatenlogik überall dasselbe gemeint ist, gibt es sowohl
von der Syntax her als auch bzgl. der Semantik viele Modallogiken (siehe unten). Allen
gemeinsam ist die Möglichkeit, Formeln in Abhängigkeit von verschiedenen Zuständen,
Situationen, Welten, etc., auszuwerten. Die (Unterschiede zwischen den) Welten sind entweder in der Realität bereits vorhanden oder – und so wird Modallogik am häufigsten in
der Informatik angewendet – werden im Rahmen eines Hardware- oder Softwareentwurfs
entwickelt. Dann beschreiben, anschaulich gesprochen, verschiedene Zustände verschiedene Gedächtnisinhalte.
Nehmen wir eine Zahltaste eines Handys, die je nachdem wie oft sie gedrückt wird, die
Buchstaben A, B oder C anzeigt. Wie funktioniert das? Jeder Druck auf die Taste bringt
das Handy in einen neuen Zustand. Die Gültigkeit elementarer Aussagen wie “A wird
angezeigt” oder “B wird angezeigt” hängt vom aktuellen Zustand ab, der selbst vom
Vorgängerzustand abhängt, usw.
Deshalb wird die Bedeutung einer modallogischen Formel nicht nur von einer zustandsabhängigen Belegung der Atome bestimmt, sondern auch von einer Transitionsfunktion,
die allen im jeweiligen System möglichen Zustandsübergänge definiert.
169
7 Modallogik Die hier behandelte Modallogik baut direkt auf der Aussagenlogik auf und erweitert diese
um die einstelligen modalen Operationen 3 (diamond) und 2 (box), die es erlauben,
Aussagen zu formulieren, deren Gültigkeit im gegenwärtigen Zustand von der Gültigkeit
einer anderen Aussage in zukünftigen Situationen bestimmt wird.
Syntax
Sei ML = AL ∪ {2, 3 : 1 → 1}.
Ein ML-Term über At heißt modallogische Formel über At.
Semantik
Die Bedeutung modallogischen Formeln hängt ab von einer Kripke-Struktur genannten
Funktion
K : State → (P(State) × P(At)),
die jedem – manchmal auch “Welt” genannten – Zustand s ∈ State dessen direkten
Folgezustände sowie die Atome zuordnet, die s erfüllt.
170
7 Modallogik Wegen Isomorphie (14) für n = 2 (siehe Kapitel 3) kann K geschrieben werden als
Produktextension hδ, βi zweier Funktionen
δ : State → P(State) und β : State → P(At).
δ heißt auch Kripke-Rahmen oder Transitionsfunktion von K und bestimmt die Interpretation der modalen Operationen von ML, während β die Belegung gK (s.u.) der
Atome in P(State) festlegt.
Kripke-Strukturen und andere zustandsbasierte Modelle sind – im Gegensatz zu induktiv
definierten Mengen – black-box-Modelle, weil der Aufbau ihrer einzelnen Elemente verborgen bleibt. Die Identität eines Zustands kann nur durch Beobachtung seines Verhaltens
ermittelt werden, das hier durch β und δ bestimmt wird.
An die Stelle der Bitalgebra mit Trägermenge 2, auf der wir die Semantik aussagenlogischer Formeln aufgebaut haben, tritt jetzt eine ML-Algebra mit Trägermenge P(State),
die wir Pow (δ) nennen, weil die Interpretation der Signatur ML in dieser Algebra nicht
nur von State, sondern auch von δ abhängt:
171
7 Modallogik Für alle S, S 0 ⊆ State,
⊥Pow (δ) = ∅,
>Pow (δ) = State,
¬Pow (δ)(S) = State \ S,
∧Pow (δ)(S, S 0) = S ∩ S 0,
∨Pow (δ)(S, S 0) = S ∪ S 0,
⇒Pow (δ) (S, S 0) = (State \ S) ∪ S 0,
2Pow (δ)(S) = {s ∈ State | δ(s) ⊆ S},
3Pow (δ)(S) = {s ∈ State | δ(s) ∩ S 6= ∅}.
β bestimmt die Belegung gK : At → P(State), unter der modallogische Formeln in Pow (δ)
– durch Anwendung der aus gK abgeleiteten Auswertungsfunktion gK∗ (siehe Kapitel 5) –
ausgewertet werden:
Für alle x ∈ At und s ∈ State,
gK (x) =def {s ∈ State | x ∈ β(s)}.
172
7 Modallogik incAt
=
gK
TML(At)
gK∗
≺
At
P(State)
Sei ϕ ∈ TML(At) und s ∈ State. Das Paar (ϕ, s) heißt Zustandsformel.
(K, s) ist ein Modell von ϕ, geschrieben: K |=s ϕ, wenn s zu gK∗ (ϕ) gehört, in Worten:
wenn ϕ im Zustand s gilt.
Darauf aufbauend sind Erfüllbarkeit, Allgemeingültigkeit, Folgerung und Äquivalenz modallogischer Formeln wie in Kapitel 2 definiert, wobei der zugrundeliegende
semantische Bereich D durch die Menge aller Paare gegeben ist, die aus einer KripkeStruktur K : State → (P(State) × P(At)) und einem Zustand s ∈ State bestehen.
Aufgabe Zeigen Sie (1)-(4) aus Kapitel 6 für modallogische Formeln.
o
173
7 Modallogik K = hδ, βi heißt endlich verzweigt (finitely branching), wenn für alle s ∈ State die
Menge δ(s) endlich ist.
7.1 Übersetzung modallogischer in aussagenlogische Formeln
Ist K endlich verzweigt, dann lässt sich die Frage, ob K eine modallogische Formel ϕ
im Zustand s erfüllt, dadurch beantworten, dass man die Zustandsformel (ϕ, s) in eine
aussagenlogische Formel über At × State übersetzt und anschließend in der Bitalgebra
auswertet. Der Übersetzer
ml2al : TML(At) × State → TAL(At × State)
ist wie folgt induktiv definiert:
Für alle x ∈ At, s ∈ State, c ∈ {⊥, >}, ⊗ ∈ {∨, ∧, ⇒} und ϕ, ψ ∈ TML(At),
174
7 Modallogik ml2al (x, s) = (x, s),
ml2al (c, s) = c,
ml2al (¬ϕ, s) = ¬ml2al (ϕ, s),
ml2al (ϕ ⊗ ψ, s) = ml2al (ϕ, s) ⊗ ml2al (ψ, s),
V
ml2al (2ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)},
W
ml2al (3ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)}.
s
ml2al
ML
x1
x2
AL
x3
Zustandsformel über At
= (ML-Term über At, Zustand)
x1
s1
x2
s2
x3
s3
aussagenlogische Formel
(= AL-Term)
über At x State
175
7 Modallogik Auf semantischer Ebene wird eine Kripke-Struktur K in die aussagenlogische Belegung
hK =def uncurry(χ ◦ gK ) : At × State → 2
transformiert.
Satz 7.1 (Korrektheit von ml2al )
Für alle Kripke-Strukturen K mit Zustandsmenge State, s ∈ State und modallogischen
Formeln ϕ gilt:
K |=s ϕ ⇔ hK |= ml2al (ϕ, s),
(1)
in Worten: K erfüllt die modallogische Formel ϕ im Zustand s genau dann, wenn die
aussagenlogische Belegung hK die aussagenlogische Formel ml2al (ϕ, s) erfüllt.
Beweis. Sei s ∈ State. Nach Definition der modal- bzw. aussagenlogischen Erfüllbarkeitsrelation ist (1) äquivalent zu:
s ∈ gK∗ (ϕ) ⇔ h∗K (ml2al (ϕ, s)) = 1.
(2)
Wir zeigen (2) durch strukturelle Induktion über TML(At).
176
7 Modallogik Für alle x ∈ At,
s ∈ gK∗ (x) ⇔ s ∈ gK (x)
⇔ h∗K (ml2al (x, s)) = h∗K (x, s) = uncurry(χ ◦ gK )∗(x, s)
= uncurry(χ ◦ gK )(x, s) = (χ ◦ gK )(x)(s) = χ(gK (x))(s) = 1,
s ∈ gK∗ (⊥) = ∅ ⇔ h∗K (ml2al (⊥, s)) = h∗K (⊥) = 0,
s ∈ gK∗ (>) = State ⇔ h∗K (ml2al (⊥, s)) = h∗K (>) = 1.
Für alle ϕ, ψ ∈ TML(At),
s ∈ gK∗ (¬ϕ) ⇔ s ∈ State \ gK∗ (ϕ)
⇔ h∗K (ml2al (¬ϕ, s)) = h∗K (¬ml2al (ϕ, s)) = 1 − h∗K (ml2al (ϕ, s)))
ind. hyp.
=
1 − 0 = 1,
s ∈ gK∗ (ϕ ∧ ψ) ⇔ s ∈ gK∗ (ϕ) ∩ gK∗ (ψ)
⇔ h∗K (ml2al (ϕ ∧ ψ, s)) = h∗K (ml2al (ϕ, s) ∧ ml2al (ψ, s))
= min{h∗K (ml2al (ϕ, s)), h∗K (ml2al (ψ, s))}
ind. hyp.
=
1,
177
7 Modallogik s ∈ gK∗ (ϕ ∨ ψ) ⇔ s ∈ gK∗ (ϕ) ∪ gK∗ (ψ)
⇔ h∗K (ml2al (ϕ ∨ ψ, s)) = h∗K (ml2al (ϕ, s) ∨ ml2al (ψ, s))
= max{h∗K (ml2al (ϕ, s)), h∗K (ml2al (ψ, s))}
ind. hyp.
=
1,
s ∈ gK∗ (ϕ ⇒ ψ) ⇔ s ∈ (State \ gK∗ (ϕ)) ∪ gK∗ (ψ)
⇔ h∗K (ml2al (ϕ ⇒ ψ, s)) = h∗K (ml2al (ϕ, s) ⇒ ml2al (ψ, s))
= max{1 − h∗K (ml2al (ϕ, s)), h∗K (ml2al (ψ, s))}
ind. hyp.
=
1,
s ∈ gK∗ (2ϕ) ⇔ δ(s) ⊆ gK∗ (ϕ) ⇔ ∀ s0 ∈ δ(s) : s0 ∈ gK∗ (ϕ)
V
∗
∗
⇔ hK (ml2al (2ϕ, s)) = hK ( {ml2al (ϕ, s0) | s0 ∈ δ(s)})
= min{h∗K (ml2al (ϕ, s0)) | s0 ∈ δ(s)}
ind. hyp.
=
min{1, . . . , 1} = 1,
s ∈ gK∗ (3ϕ) ⇔ δ(s) ∩ gK∗ (ϕ) 6= ∅ ⇔ ∃ s0 ∈ δ(s) : s0 ∈ gK∗ (ϕ)
W
⇔ h∗K (ml2al (3ϕ, s)) = h∗K ( {ml2al (ϕ, s0) | s0 ∈ δ(s)})
= max{h∗K (ml2al (ϕ, s0)) | s0 ∈ δ(s)}
ind. hyp.
=
max{. . . , 1, . . . } = 1.
o
178
7 Modallogik Beispiel 7.2 ([34], B 5.1, “Murmelspiel”)
Sei State = 23, At = {x1, x2, x3}, K = hδ, βi : State → P(State) × P(At) mit
δ(001) = {100, 010}, δ(010) = {001, 110}, δ(100) = {110, 010},
δ(110) = {001, 101}, δ(101) = {010, 110}, δ(000) = δ(011) = δ(111) = ∅
und für alle a1a2a3 ∈ State, β(a1a2a3) = {xi | ai = 1, 1 ≤ i ≤ 3}. Dann gilt
ml2al (332x3, 001)
= ml2al (32x3, 100) ∨ ml2al (32x3, 010)
= ml2al (2x3, 110) ∨ ml2al (2x3, 010) ∨ ml2al (2x3, 001) ∨ ml2al (2x3, 110)
= ml2al (2x3, 110) ∨ ml2al (2x3, 010) ∨ ml2al (2x3, 001)
= ml2al (x3, 001) ∧ ml2al (x3, 101) ∨ ml2al (x3, 001) ∧ ml2al (x3, 110)
∨ ml2al (x3, 100) ∧ ml2al (x3, 010)
= (x3, 001) ∧ (x3, 101 ∨ (x3, 001) ∧ (x3, 110) ∨ (x3, 100) ∧ (x3, 010)
(3)
Die o.g. Belegung hK : At × State → 2 (s.o.) hat hier folgende Werte: Für alle 1 ≤ i ≤ 3
und a1a2a3 ∈ State,
179
7 Modallogik hK (xi, a1a2a3) = uncurry(χ ◦ gK )(xi, a1a2a3) = (χ ◦ gK )(xi)(a1a2a3)
= χ(gK (xi))(a1a2a3) = χ({b1b2b3 ∈ State | xi ∈ β(b1b2b3)})(a1a2a3)
= χ({b1b2b3 ∈ State | bi = 1})(a1a2a3) = ai.
(4)
Daraus folgt:
h∗K (ml2al (332x3, 001))
(3)
= h∗K ((x3, 001) ∧ (x3, 101) ∨ (x3, 001) ∧ (x3, 110) ∨ (x3, 100) ∧ (x3, 010)
= h∗K (x3, 001) ∧2 h∗K (x3, 101) ∨2 h∗K (x3, 001) ∧2 h∗K (x3, 110)
∨2 h∗K (x3, 100) ∧2 h∗K (x3, 010)
= hK (x3, 001) ∧2 hK (x3, 101) ∨2 hK (x3, 001) ∧2 hK (x3, 110)
∨2 hK (x3, 100) ∧2 hK (x3, 010)
(4)
= 1 ∧2 1 ∨2 1 ∧2 0 ∨2 0 ∧2 0 = 1.
Also ist nach Satz 7.1 (K, 001) ein Modell von 332x3.
Das Beispiel ist typisch für die Bildung vieler Zustandsmengen: Das konkrete System, das
als Kripke-Struktur modelliert werden soll, hat n veränderliche Attribute. In Beispiel 7.2
bilden die Positionen 1,2,3 der drei Komponenten eines Zustands s ∈ 23 die Attribute. o
180
7 Modallogik Ein Atom steht für die Aussage, dass ein bestimmtes Attribut einen bestimmten Wert
hat. In Beispiel 7.2 hat jedes der drei Attribute den Wert 0 oder 1. Das Atom x2 bedeutet
z.B., dass 1 der aktuelle Wert von Attribut 2 ist. Das Literal ¬x2 drückt aus, dass Attribut
2 den Wert 0 hat.
Gibt es n Attribute at1, . . . , atn und ist für alle 1 ≤ i ≤ n Ai die Menge der Werte, die ati
annehmen kann, dann entspricht das Produkt A1 × · · · × An der Menge der Zustände, in
denen sich das durch die Kripke-Struktur modellierte System befinden kann. So kommt
man in Beispiel 7.2 auf die Zustandsmenge 23.
Darüberhinaus lassen sich als Binärworte, also Elemente von 2∗ (siehe Kapitel 4), repräsentierte Zustände direkt in Hardware “gießen” (siehe Rechnerstrukturen).
Aufgabe Sei K : State → (P(State) × P(At)) eine Kripke-Struktur und x, y ∈ At.
Zeigen Sie, dass die ML-Algebra Pow (δ) alle in der Bitalgebra gültigen AL-Gleichungen
und darüberhinaus folgende ML-Gleichungen erfüllt:
¬3x ≡ 2¬x
3(x ∨ y) ≡ 3x ∨ 3y
¬2x ≡ 3¬x
2(x ∧ y) ≡ 2x ∧ 2y
(negM )
(distDia/distBox )
181
7 Modallogik Eine modallogische Formel heißt Negationsnormalform über At (NNF), wenn ⇒ in
ihr nicht vorkommt und ¬ nur direkt vor Atomen.
Der Beweis von Satz 6.1 (8) lässt sich leicht zu einem Beweis dafür fortsetzen, dass jede
modallogische Formel über At zu einer NNF (BE ∪ negM )-äquivalent ist.
7.2 Tableaukalkül
Fortan nennen wir eine Zustandsformel (ϕ, s) Zustandsatom bzw. Zustandsliteral,
wenn ϕ ein Atom bzw. Literal ist.
K erfüllt eine Transition (s, s0), geschrieben: K |= (s, s0), wenn s0 zu δ(s) gehört.
Die Erweiterung des aussagenlogischen Tableaukalküls um Regeln für die modalen Operationen 3 und 2 dient dem Beweis der Erfüllbarkeit einer gegebenen Zustandsformel.
Eine Transitionsfunktion ist hier nicht vorgegeben, sondern wird schrittweise im Laufe
des Ableitungsprozesses aufgebaut.
Liegt eine Kripke-Struktur K vor, dann verwendet man modallogische Formeln, um Eigenschaften von K zu beschreiben und deren Gültigkeit zu überprüfen (model checking).
182
7 Modallogik In diesem Zusammenhang den Tableaukalkül auf eine Formel ϕ anzusetzen dient dazu
festzustellen, ob es einen Zustand s von K mit K |=s ϕ geben kann. Um diese Frage zu
beantworten, ist es i.d.R. einfacher, gK∗ : TML(At) → P(State) auf ϕ anzuwenden und
das Ergebnis auf Leerheit zu testen.
Den Tableaukalkül wendet man deshalb eher in einem Szenario an, in dem keine KripkeStruktur vorliegt und das Aussehen der vom Kalkül konstruierten keine Rolle spielt. Das
ist z.B. dann der Fall, wenn schon die intuitive Interpretation der modalen Operationen
keine Transitionsfunktion beinhaltet, sondern 3ϕ schlicht als Notwendigkeit der Gültigkeit von ϕ und 2ϕ als deren Möglichkeit interpretiert wird.
Sei State eine mindestens abzählbar unendliche Menge von Zuständen. Für alle Zustandsformeln ϕ nennen wir den Ausdruck box(ϕ) eine besuchte Box-Formel.
Ein (modallogisches) Tableau ist ein endlicher Baum t, dessen Knoten mit >, einer
Transition, einer Zustandsformel oder einer besuchten Box-Formel markiert sind (siehe
Knotenmarkierte Bäume).
Ein Knoten w von t heißt geschlossen, wenn es zwei Knoten u ≤ w und v ≤ w gibt mit
π1(t(u)) ≡2 ¬π1(t(v)) und π2(t(u)) = π2(t(v)). w heißt offen, wenn w nicht geschlossen
ist.
183
7 Modallogik t heißt geschlossen, wenn alle Blätter von t geschlossen sind. t heißt offen, wenn t nicht
geschlossen ist.
Eine Kripke-Struktur K erfüllt t, geschrieben: K |= t, wenn es ein Blatt w von t gibt
mit K |= ϕ für alle Zustandsformeln und Transitionen ϕ ∈ t(path(, w)).
Eine Folge (t1, . . . , tn) von Tableaus heißt (modallogische) Tableau-Ableitung von tn
aus t1, wenn
• t1 ein mit einer Zustandsformel markiertes Blatt ist,
• für alle 1 < i ≤ n ti durch Anwendung einer Tableauregel (siehe unten) aus ti−1
gebildet ist,
• tn gesättigt (saturated) ist, d.h. auf tn ist keine Tableauregel anwendbar, m.a.W.:
alle noch nicht besuchten Zustandsformeln von tn sind Zustandsliterale.
Ist tn geschlossen, dann heißt (t1, . . . , tn) Tableau-Widerlegung.
Wir schreiben t `T t0, falls es eine Tableau-Ableitung von t0 aus t gibt.
184
7 Modallogik Für alle s ∈ State und w ∈ N∗ sei
boxes(s, t, w) = {ϕ ∈ TML(At) | es gibt v ≤ w mit t(v) = box(ϕ, s)},
succs(s, t, w) = {s0 ∈ State | es gibt v ≤ w mit t(v) = (s, s0)}.
• ϕ gehört genau dann zu boxes(s, t, w), wenn box(s, ϕ) einen Vorgänger von w markiert.
• s0 gehört genau dann zu succs(s, t, w), wenn (s, s0) einen Vorgänger von w markiert.
Modallogische Tableauregeln Sei t ein Tableau und w ein Knoten von t. Wir nennen
ihn den Redex der jeweiligen Regelanwendung, die t in das neue Tableau t0 transformiert.
• ∨-Regel Sei t(w) = (ϕ ∨ ψ, s). Für alle u ∈ N∗,


>
falls u = w,



 (ϕ, s) falls u = v0 und v ∈ leaves(t, w),
t0(u) =def

(ψ, s) falls u = v1 und v ∈ leaves(t, w),



 t(u) sonst.
185
7 Modallogik • ∧-Regel Sei t(w) = (ϕ ∧ ψ, s). Für alle u ∈ N∗,


>
falls u = w,



 (ϕ, s) falls u = v0 und v ∈ leaves(t, w),
0
t (u) =def

(ψ, s) falls u = v00 und v ∈ leaves(t, w),



 t(u) sonst.
• 3-Regel Sei t(w) = (3ϕ, s)


>




0

(s,
s
)



 (ϕ, s0)
t0(u) =def
0

(ϕ
,
s
)

i








t(u)
und s0 ∈ State komme in t nicht vor. Für alle u ∈ N∗,
falls u = w,
falls u = v0 und v ∈ leaves(t, w),
falls u = v00 und v ∈ leaves(t, w),
falls u = v000i, v ∈ leaves(t, w),
{ϕ1, . . . , ϕn} = boxes(s, t, v) und 1 ≤ i ≤ n,
sonst.
186
7 Modallogik • 2-Regel Sei t(w) = (2ϕ, s). Für alle u ∈ N∗,


box(ϕ, s) falls u = w,



 (ϕ, s )
falls u = v0i, v ∈ leaves(t, w),
i
0
t (u) =def

{s1, . . . , sn} = succs(s, t, v) und 1 ≤ i ≤ n,



 t(u)
sonst.
Aufgabe Die Gleichungen von negAL und negM legen weitere Tableauregeln nahe, die
zusammen mit den beiden obigen nicht nur NNFs, sondern beliebige modallogische Formeln verarbeiten können. Wie lauten die zusätzlichen Regeln?
Lemma 7.3 Ein gesättigtes Tableau t ist genau dann erfüllbar, wenn es offen ist.
Beweis. Sei t erfüllbar. Dann gibt es eine Kripke-Struktur
K : State → P(State) × P(At)
und ein Blatt w von t, das von K erfüllt wird.
187
7 Modallogik Seien Φ = {(x1, s1), . . . (xm, sm)} und {(¬y1, s01), . . . , (¬yn, s0n)} die Mengen der positiven
bzw. negativen Zustandsliterale von t(path(, w)). Dann gilt für alle 1 ≤ i ≤ m,
gK (xi)(si) = gK∗ (xi)(si) = 1,
und für alle 1 ≤ i ≤ n,
¬2(gK (yi)(s0i)) = ¬2(gK∗ (yi)(s0i)) = gK∗ (¬yi)(s0i) = 1,
also gK (yi)(s0i) = 0. Daraus folgt, dass Φ und {(y1, s01), . . . , (yn, s0n)} disjunkt sind.
Für alle Knoten u ≤ w und v ≤ w, s ∈ State und Literale ϕ, ψ mit t(u) = (ϕ, s) und
t(v) = (ψ, s) gilt demnach ϕ 6= ¬ψ. Also ist t offen.
Sei t offen. Dann gibt es ein Blatt w von t mit der Eigenschaft, dass für je zwei Knoten
u ≤ w und v ≤ w, s ∈ State und ein Literal ϕ mit t(u) = (ϕ, s) und t(v) = (ψ, s)
ϕ 6= ¬ψ gilt.
Seien R1 die Menge der Transitionen und R2 = {(x1, s1), . . . (xm, sm)} und
{(¬y1, s01), . . . , (¬yn, s0n)} die Mengen der positiven bzw. negativen Zustandsliterale von
t(path(, w)).
188
7 Modallogik Sei K = hmkfun(R1), mkfun(R2−1)i (siehe Isomorphien). Wir zeigen, dass K t erfüllt. Da
t offen ist, sind β und {(y1, s01), . . . , (yn, s0n)} disjunkt. Daraus folgt für alle 1 ≤ i ≤ m,
gK∗ (xi)(si) = gK (xi)(si) = 1,
und für alle 1 ≤ i ≤ n,
gK∗ (¬yi)(s0i) = ¬2(gK∗ (yi)(s0i)) = ¬2(gK (yi)(s0i)) = ¬2(0) = 1.
Also erfüllt K alle Formeln von t(path(, w)), d.h. K erfüllt t.
o
Für alle Tableaus t, t0 definieren wir:


falls t(w) Zustandsliteral ist,

 = t(w)
t ≤ t0 ⇔def für alle w ∈ N∗, t0(w) ∈ {t(w), box(ϕ, s)} falls t(w) = (2ϕ, s),


 ∈ {t(w), >}
sonst.
Sei (t1, . . . , tn) eine Tableau-Ableitung. Da jede Anwendung einer Tableauregel keine
Knoten entfernt, sondern höchstens neue Knoten an vorhandene Blätter anhängt, gilt
ti ≤ ti+1 für alle 1 ≤ i < n.
189
7 Modallogik Satz 7.4 (Korrektheit modallogischer Tableau-Ableitungen)
Sei K = hδ, βi eine Kripke-Struktur.
(i) Aus t `T t0 und K |= t folgt K |= t0.
(ii) Sei t0 geschlossen. Dann ist t unerfüllbar.
Beweis. (i): Sei (t1, . . . , tn) eine Tableau-Ableitung von t0 aus t. Wir zeigen, dass für alle
1 ≤ i < n K |= ti+1 aus K |= ti folgt.
Sei K |= ti. Dann gibt es ein Blatt v von ti derart, dass K alle Zustandsformeln und
Transitionen von ti(path(, v)) erfüllt. Ist v auch ein Blatt von ti+1, dann folgt K |= ti+1
aus ti ≤ ti+1.
Andernfalls gilt w ≤ v für den Redex w der Regelanwendung, die von ti zu ti+1 führt,
und es gibt einen Teilbaum tv von ti+1, der das Blatt v von ti ersetzt.
Angenommen,
es gibt ein Blatt v 0 von tv derart, dass K alle Zustandsformeln
0
und Transitionen von tv (path(, v )) erfüllt.
(1)
190
7 Modallogik Dann erfüllt K auch alle Zustandsformeln und Transitionen von ti+1(path(, v 0)).
Also gilt K |= ti+1.
Zu zeigen bleibt (1).
Fall 1: ti+1 wurde durch Anwendung der ∨-Regel aus ti gebildet. Dann gilt für alle
u ∈ N∗ ,



 (ϕ, s) falls u = 0,
tv (u) =def
(ψ, s) falls u = 1,


 ti(u) sonst.
Aus K |= ti(w) = (ϕ ∨ ψ, s) folgt K |= (ϕ, s) = tv (0) oder K |= (ψ, s) = tv (1). Also gilt
(1) für v 0 = 0 oder v 0 = 1.
Fall 2: ti+1 wurde durch Anwendung der ∧-Regel aus ti gebildet. Dann gilt für alle
u ∈ N∗ ,



 (ϕ, s) falls u = 0,
tv (u) =def
(ψ, s) falls u = 00,


 ti(u) sonst.
191
7 Modallogik Aus K |= ti(w) = (ϕ ∧ ψ, s) folgt K |= (ϕ, s) = tv (0) und K |= (ψ, s) = tv (00). Also gilt
(1) für v 0 = 11.
Fall 3: ti+1 wurde durch Anwendung der 3-Regel aus ti gebildet.
Sei {ϕ1, . . . , ϕn} = boxes(s, t, v). Dann

0

(s,
s
)



 (ϕ, s0)
tv (u) =def
0

(ϕ
,
s
)

i


 t (u)
i
gilt für alle u ∈ N∗,
falls u = 0,
falls u = 00,
falls 1 ≤ i ≤ n und u = 000i,
sonst.
Aus K |= ti(w) = (3ϕ, s) folgt, dass es s0 ∈ δ(s) mit K |= (ϕ, s0) gibt. Demnach gilt
K |= (s, s0) = tv (0) und K |= (ϕ, s0) = tv (00).
Sei 1 ≤ i ≤ n. Da es u ≤ v gibt mit ti(u) = (2ϕi, s), gilt K |= (2ϕi, s), also wegen
(s, s0) ∈ δ auch K |= (ϕi, s0) = tv (000i). Demnach gilt (1) für v 0 = 000n.
192
7 Modallogik Fall 4: ti+1 wurde durch Anwendung der 2-Regel aus ti gebildet.
Sei {s1, . . . , sn} = succs(s, t, v). Dann gilt für alle u ∈ N∗,
(
(ϕ, si) falls 1 ≤ i ≤ n und u = 0i,
tv (u) =def
ti(u) sonst.
Aus K |= ti(w) = (2ϕ, s) folgt, dass für alle s0 ∈ δ(s) K |= (ϕ, s0) gilt.
Sei 1 ≤ i ≤ n. Da es u ≤ v gibt mit ti(u) = (s, si), gehört (s, si) zu δ. Daraus folgt
K |= (ϕ, si). Demnach gilt (1) für v 0 = 0n.
(ii): Da t0 geschlossen ist, folgt aus Lemma 7.3, dass t0 unerfüllbar ist. Also ist wegen (i)
auch t unerfüllbar.
o
193
7 Modallogik Satz 7.5 (Vollständigkeit modallogischer Tableau-Ableitungen)
Sei (ϕ, s) eine unerfüllbare Zustandsformel und ein erstes Tableau wie folgt definiert: Für
alle w ∈ N∗,
(
(ϕ, s) falls w = ,
t1(w) =
sonst.
Dann gibt es eine Tableau-Widerlegung (t1, . . . , tn).
Beweis. Wiederholte Anwendungen der Tableauregeln führen von t1 zu einem gesättigten
Tableau t, weil jede Regelanwendung die Knotenanzahl eines Tableaus zwar erhöht, die
Multimenge der Größen aller noch nicht besuchten Zustandsformeln jedoch verkleinert,
so dass irgendwann ein Tableau ohne solche Formeln, also ein gesättigtes Tableau, erreicht ist, m.a.W.: es gibt eine Tableau-Ableitung (t1, . . . , tn). Es bleibt zu zeigen, dass
tn geschlossen ist.
Wir führen den Beweis durch Kontraposition, nehmen also an, dass tn offen ist. Da tn
gesättigt ist, folgt aus Lemma 7.3, dass tn erfüllbar ist, d.h. es gibt eine Kripke-Struktur
K = hδ, βi mit K |= tn, also ein Blatt w von tn derart, dass K alle Zustandsformeln und
Transitionen von tn(path(, w)) erfüllt.
194
7 Modallogik Sei K0 = hδ 0, βi mit δ 0(s) = {s0 ∈ δ(s) | (s, s0) ∈ tn(path(, w))} für alle s ∈ State.
Da jede Zustandsformel von tn ein Zustandsliteral ist, also keine modalen Operationen
enthält, deren Gültigkeit von δ abhängen könnte,
erfüllt auch K0 alle Zustandsformeln und Transitionen von tn(path(, w)).
(2)
Wir zeigen zunächst durch Induktion über k = n − i, dass es für alle 1 ≤ i ≤ n ein Blatt
v ≤ w gibt derart, dass
K0 alle Zustandsformeln und Transitionen von ti(path(, v)) erfüllt.
(3)
Fall 1: k = 0. Dann ist i = n. Also folgt (3) aus (2).
Fall 2: k > 0. Dann ist i < n und nach Induktionsvoraussetzung gibt es ein Blatt v ≤ w
von ti+1 derart, dass K0 alle Zustandsformeln und Transitionen von ti+1(path(, v)) erfüllt.
Nach Konstruktion von ti+1 aus ti gibt es ein Blatt u ≤ v von ti. Es bleibt zu zeigen, dass
K0 alle Zustandsformeln und Transitionen von ti(path(, u)) erfüllt.
(4)
Sei u0 ≤ u und ti(u0) eine Zustandsformel oder Transition.
Fall 2.1: ti(u0) = ti+1(u0). Wegen u0 ∈ path(, v) folgt K0 |= ti(u0).
195
7 Modallogik Fall 2.2: Es gibt ϕ ∈ TML(At) und s ∈ State mit ti(u0) = (ϕ, s) und ti+1(u0) = >.
Fall 2.2.1: ϕ = (ϕ0 ∨ ψ). Dann führt eine Anwendung der ∨-Regel von ti nach ti+1, d.h.
es gibt v 0 > v mit v 0 ≤ w und ti+1(v 0) ∈ {(ϕ0, s), (ψ, s)}. Wegen v 0 ∈ path(, w) folgt
K0 |= (ϕ0, s) oder K0 |= (ψ, s), also K0 |= (ϕ0 ∨ ψ, s) = (ϕ, s).
Fall 2.2.2: ϕ = (ϕ0 ∧ ψ). Dann führt eine Anwendung der ∧-Regel von ti nach ti+1,
d.h. es gibt v 0, v 00 > v mit v 0, v 00 ≤ w, ti+1(v 0) = (ϕ0, s) und ti+1(v 00) = (ψ, s). Wegen
v 0, v 00 ∈ path(, w) folgt K0 |= (ϕ0, s) und K0 |= (ψ, s), also K0 |= (ϕ0 ∧ ψ, s) = (ϕ, s).
Fall 2.2.3: ϕ = 3ψ. Dann gibt es v 0 > v, v 00 > v und s0 ∈ State mit v 0, v 00 ≤ w,
ti+1(v 0) = (s, s0) und ti+1(v 00) = (s0, ψ). Wegen v 0, v 00 ∈ path(, w) folgt s0 ∈ δ(s) und
K0 |= (ψ, s0), also K0 |= (3ψ, s) = (ϕ, s).
Fall 2.3: ϕ = 2ψ und ti+1(u0) = box(ψ, s). Sei δ(s) = {s1, . . . , sk }. Nach Konstruktion
von K0 und (ti+1 . . . , tn) gibt es u1, . . . , uk ∈ tn(path(, w)) mit tn(ui) = (ψ, si) für alle
1 ≤ i ≤ k. Daraus folgt K0 |= (ψ, si) für alle 1 ≤ i ≤ k, also K |= (2ψ, s) = (ϕ, s).
Da u0 ∈ path(, u) beliebig gewählt wurde, haben wir (4) gezeigt, womit der Beweis von
Fall 2 des Induktionsbeweises von (3) beendet ist.
Damit gilt (3) insbesondere für t1. Also erfüllt K0 die Zustandsformel t1() = (ϕ, s). o
196
7 Modallogik Erfüllbarkeitstest für modallogische NNFs
Sei (ϕ, s) eine NNF.
Wende Tableauregeln in beliebiger Reihenfolge auf das durch t1() = (ϕ, s) und t1(w) = für alle w ∈ N∗ \ {} definierte Tableau an, bis ein gesättigtes Tableau t erreicht ist.
Prüfe, ob t offen ist.
Wenn ja, ist t – nach Lemma 7.3 – erfüllbar. Wenn nein, ist t – ebenfalls nach Lemma
7.3 – unerfüllbar. Im ersten Fall folgt aus Satz 7.5, dass (ϕ, s) erfüllbar ist. Im zweiten
Fall folgt aus Satz 7.4 (ii), dass t1, also auch (ϕ, s) unerfüllbar ist.
o
Wie im aussagenlogischen Fall wird der Test effizienter, wenn man nicht erst im gesättigten Tableau nach offenen Blättern sucht, sondern schon vorher Teiltableaus entfernt,
deren Pfade komplementäre Literale enthalten. Dazu muss der Kalkül um folgende Regeln erweitert werden, die alle Unterbäume t0 von t durch ein Blatt mit der Markierung
⊥ ersetzen, sofern die Wurzel w von t0 mit einem Literal ϕ und ein Vorgänger von w in
t mit dem zu ϕ komplementären Literal markiert ist:
197
7 Modallogik • Atomregel Sei t(w) = (ϕ, s) ein Zustandsatom. Für alle u ∈ N∗,



 ⊥ falls u > w und t(u) = (¬ϕ, s),
t0(u) =def
falls es v > w gibt mit t(v) = (¬ϕ, s) und u > v,


 t(u) sonst.
• Literalregel Sei t(w) = (¬ϕ, s) ein Zustandsliteral. Für alle u ∈ N∗,



 ⊥ falls u > w und t(u) = (ϕ, s),
t0(u) =def
falls es v > w gibt mit t(v) = (ϕ, s) und u > v,


 t(u) sonst.
Außerdem ist in den anderen Tableauregeln die Menge leaves(t, w) der von w aus erreichbaren Blätter von t auf diejenigen zu beschränken, die nicht mit ⊥ markiert sind.
Schließlich wird der Erfüllbarkeitstest für NNFs zu einem Erfüllbarkeitstest für beliebige
modallogische Formeln, wenn er die oben erwähnten, aus den Gleichungen von negAL
und negM gebildeten Tableauregeln mitverwendet.
198
7 Modallogik Beispiele ([34], B 6.2) Sei State = {s1, s2, s3, . . . }.
1. Sei At = {x}. + Erfüllbarkeitstest der Zustandsformel
(33x ∧ 2(x ⇒ 2¬x), s1)
Aus dem letzten Tableau der Ableitung ergibt sich, dass die Formel von jeder KripkeStruktur hδ, βi mit δ(s1) = {s2}, δ(s2) = {s3}, δ(s) = ∅ für alle s ∈ State \ {s1, s2} und
x ∈ β(s3) \ β(s2) erfüllt wird.
2. Sei At = {x, y}. + Erfüllbarkeitstest der Zustandsformel
(3x ∧ 2¬y ∧ 3(x ⇒ y), s1)
Aus dem letzten Tableau der Ableitung ergibt sich, dass die Formel von jeder KripkeStruktur hδ, βi mit δ(s1) = {s2}, δ(s1) = {s3}, δ(s) = ∅ für alle s ∈ State \ {s1, s2},
x ∈ β(s2) \ β(s3) und y 6∈ β(s2) ∪ β(s3) erfüllt wird.
3. Sei At = {x, y}. + Erfüllbarkeitstest der Zustandsformel
(2(x ⇒ y) ∧ 3x ∧ 2¬y, s1)
199
7 Modallogik Aus dem letzten Tableau der Ableitung ergibt sich, dass die Formel unerfüllbar ist.
Dementsprechend ist ihre Negation erfüllbar, und zwar – wie ihr + Erfüllbarkeitstest
zeigt – von jeder Kripke-Struktur hδ, βi mit
• δ(s1) = {s2}, x ∈ β(s2) und y 6∈ β(s2), oder
• δ = ∅, oder
• δ(s1) = {s3} und y ∈ β(s3).
Da jedes Tableau höchstens endlich viele Transitionen enthält und jedes Tableau, auf das
eine Regel angewendet wird, die es um eine Transition (s, s0) erweitert, s0 nicht enthält,
schließen wir aus den Sätzen 7.4 (ii) und 7.5, dass jede erfüllbare Zustandsformel ein
endliches Baummodell hat, das ist eine Kripke-Struktur mit endlicher Zustandsmenge,
deren Transitionsfunktion δ folgende Eigenschaft hat:
Für alle s ∈ State, |δ(s)| ≤ 1.
200
7 Modallogik 7.3 Zustandsäquivalenzen
Wie oben schon erwähnt wurde, sind Kripke-Strukturen black-box-Modelle: Ein Zustand
ist nicht wie ein Term aus Konstruktoren zusammengesetzt und lässt sich daher nicht
anhand seines jeweiligen Aufbaus von anderen Zuständen unterscheiden. Stattdessen ist
die Gleichheit oder Ungleichheit von Zuständen nur indirekt erkennbar, indem man mit
ihnen experimentiert, d.h. im Fall von Kripke-Strukturen δ und β solange anwendet,
bis die Ergebnisse der Anwendung das gleiche oder ungleiche Verhalten der getesteten
Zustände offenbart.
Das führt zu einer coinduktiven Definition der K-Verhaltensäquivalenz (behavioral
equivalence, bisimilarity) ∼K von Zuständen der Kripke-Struktur
K = hδ, βi : State → P(State) × P(At)
bzgl. folgender Schrittfunktion FK : P(State 2) → P(State 2) (siehe Kapitel 4):
Für alle R ⊆ State 2,
FK (R) = {(s, s0) ∈ State 2 | β(s) = β(s0),
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : (t, t0) ∈ R,
∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : (t, t0) ∈ R}.
201
7 Modallogik Eine FK -dichte Teilmenge von State 2 heißt K-Bisimulation.
∼K ist definiert als größte K-Bisimulation, m.a.W.: ∼K =def gfp(FK ).
Zwei Zustände s, s0 ∈ State heißen K-verhaltensäquivalent, wenn (s, s0) zu ∼K gehört.
Aufgabe Zeigen Sie, dass die Diagonale von State 2 eine K-Bisimulation ist.
Satz 7.5 ∼K ist eine Äquivalenzrelation (siehe Kapitel 5).
Beweis. Sei ∼eq
K der Äquivalenzabschluss von ∼K , das ist die kleinste Äquivalenzrelation, die ∼K enthält. Wir nehmen an, dass
∼eq
K eine K-Bisimulation ist.
(1)
Da ∼K die größte K-Bisimulation ist, folgt aus (1), dass ∼eq
K in ∼K enthalten ist. Andeeq
eq
rerseits ist ∼K nach Definition von ∼K in ∼K enthalten. Beide Relationen stimmen also
überein, so dass mit ∼eq
K auch ∼K eine Äquivalenzrelation ist.
Zu zeigen bleibt also (1), was bedeutet, dass für alle (s, s0) ∈ State 2 die folgenden drei
Implikationen gelten:
202
7 Modallogik 0
s ∼eq
⇒
K s

0


 β(s) = β(s ),
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼eq
t0,
K


 ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼eq t0.
K
(2)
(3)
(4)
Beweis von (1)-(3). Nach Definition von ∼eq
K stimmt diese Relation mit lfp(G) überein,
wobei G : P(State 2) → P(State 2) wie folgt definiert ist: Für alle R ⊆ State 2,
G(R) = ∼K ∪ ∆State ∪ {(s0, s) | (s, s0) ∈ R} ∪ {(s, s0) | ∃ s00 : (s, s00), (s00, s0) ∈ R}.
Offenbar gelten (2)-(4) genau dann, wenn
R =def {(s, s0) ∈ State 2 | (s, s0) erfüllt (2)-(4)}
eq
∼eq
enthält.
Nach
Satz
4.2
(iii)
ist
lfp(G)
=
∼
K
K in jeder G-abgeschlossenen Teilmenge
von State 2 enthalten. Also gelten (2)-(4), wenn R G-abgeschlossen ist.
Sei (s, s0) ∈ G(R).
Fall 1: s ∼K s0. Daraus folgt (s, s0) ∈ R, weil ∼K eine K-Bisimulation und in ∼eq
K enthalten
ist.
Fall 2: s = s0. Daraus folgt (s, s0) ∈ R, weil die Diagonale von State 2 eine K-Bisimulation
und in ∼eq
K enthalten ist.
203
7 Modallogik eq
0
0
0
0
Fall 3: s0 ∼eq
K s. Dann gelten β(s ) = β(s), ∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼K t und
0
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t0 ∼eq
K t nach Induktionsvoraussetzung. Daraus folgt (s, s ) ∈ R,
weil die Diagonale von P(At)2 und ∼eq
K symmetrisch sind.
eq 0
00
00
00
0
Fall 4: Es gibt s00 ∈ State mit s ∼eq
s
und
s
∼
K
K s . Dann gelten β(s) = β(s ) = β(s ),
eq 00
00
00
00
00
00
0
∀ t ∈ δ(s) ∃ t00 ∈ δ(s00) : t ∼eq
K t , ∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼K t , ∀ t ∈ δ(s ) ∃ t ∈
eq 0
0
0
0
00
00
00
δ(s0) : t00 ∼eq
t
und
∀
t
∈
δ(s
)
∃
t
∈
δ(s
)
:
t
∼
K
K t nach Induktionsvoraussetzung.
Daraus folgt (s, s0) ∈ R, weil die Diagonale von P(At)2 und ∼eq
K transitiv sind.
Damit haben wir gezeigt, dass R G-abgeschlossen ist.
o
K-Bisimulationen setzen Zustände ein und derselben Kripke-Struktur in Beziehung. Eine
allgemeinere Definition erlaubt den Vergleich von Zuständen zweier Kripke-Strukturen
K = hδ, βi : State → (P(State) × P(At)), K0 = hδ 0, β 0i : State 0 → (P(State 0) × P(At))
mit denselben Atomen, aber möglicherweise verschiedenen Zustandsmengen: R ⊆ State ×
State 0 heißt K, K0- Bisimulation, wenn R FK,K0 -dicht ist, wobei
FK,K0 : P(State × State 0) → P(State × State 0)
wie folgt definiert ist:
204
7 Modallogik 0
Für alle R ⊆ State × State ,
FK,K0 (R) = {(s, s0) ∈ State × State 0 | β(s) = β(s0),
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : (t, t0) ∈ R,
∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : (t, t0) ∈ R}.
Eine Funktion h : State → State 0 heißt Kripke-Morphismus, wenn das folgende Diagramm kommutiert:
State
h
g
State 0
K
P(State) × P(At)
=
h × id
g
K0
0
P(State ) × P(At)
In Worten: h ist ein Kripke-Morphismus, wenn h jeden Zustand s ∈ State auf einen
Zustand s0 ∈ State 0 abbildet, der dieselben Atome erfüllt wie s, sowie jeden direkten
Folgezustand von s auf einen direkten Folgezustand von s0.
205
7 Modallogik Kripke-Morphismen sind für Kripke-Strukturen offenbar das, was Σ-Homomorphismen
für Σ-Algebren sind. Dementsprechend sind zwei Kripke-Strukturen K und K0 Kripkeisomorph, wenn es Kripke-Morphismen g : K → K0 und h : K0 → K mit g ◦ h = idState 0
und h ◦ g = idState gibt.
Aufgabe Zeigen Sie, dass h : State → State 0 genau dann ein Kripke-Morphismus ist,
wenn der Graph von h (siehe Abschnitt 3.2) eine K, K0-Bisimulation ist.
o
Die größte K, K0-Bisimulation heißt K, K0-Verhaltensäquivalenz und wird mit ∼K,K0
bezeichnet. Offenbar ist ∼K,K = ∼K .
s ∈ State und s0 ∈ State 0 heißen elementar K, K0-äquivalent, wenn K im Zustand s
dieselben modallogischen Formeln erfüllt wie im Zustand s0.
Die Menge aller Paare elementar K, K0-äquivalenter Zustände bezeichnen wir mit ≈K,K0 ,
im Fall K = K0 mit ≈K .
206
7 Modallogik Satz 7.6 Hennessy-Milner-Theorem
Seien K und K0 endlich verzweigt. Dann gilt ∼K,K0 = ≈K,K0 .
Beweis. Wir zeigen zunächst:
∼K,K0 ⊆ ≈K,K0 .
(1)
(1) folgt aus der Definition elementarer K-Äquivalenz und folgender Eigenschaft:
Für alle ϕ ∈ TML(At) und s, s0 ∈ State gilt:
s ∼K,K0 s0 ⇒ (s ∈ gK∗ (ϕ) ⇔ s0 ∈ gK∗ 0 (ϕ)).
(2)
Beweis von (2) durch strukturelle Induktion über TML(At):
Sei s ∼K,K0 s0. Dann gilt für alle x ∈ At,
s∈
gK∗ (x)
= gK (x) ⇔ x ∈ β(s)
s∼K,K0 s0
=
β 0(s0) ⇔ s0 ∈ gK0 (x) = gK∗ 0 (x).
Für alle ϕ, ψ ∈ TML(At),
s ∈ gK∗ (¬ϕ) = State \ gK∗ (ϕ)
ind. hyp.
⇔
s0 ∈ State 0 \ gK∗ 0 (ϕ) = gK∗ 0 (ϕ)(s0),
s ∈ gK∗ (ϕ ∧ ψ) = gK∗ (ψ) ∩ gK∗ (ϑ)
ind. hyp.
⇔
s0 ∈ gK∗ 0 (ϕ) ∩ gK∗ 0 (ψ) = gK∗ 0 (ϕ ∧ ψ),
s ∈ gK∗ (ϕ ∨ ψ) = gK∗ (ψ) ∪ gK∗ (ϑ)
ind. hyp.
s0 ∈ gK∗ 0 (ϕ) ∪ gK∗ 0 (ψ) = gK∗ 0 (ϕ ∨ ψ).
⇔
207
7 Modallogik Wegen s ∼K,K0 s0 gilt
∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : t ∼K t0 und ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : t ∼K,K0 t0.
(3)
Daraus folgt
s ∈ gK∗ (2ϕ) ⇔ δ(s) ⊆ gK∗ (ϕ)
(3), ind. hyp.
δ 0(s0) ⊆ gK∗ 0 (ϕ) ⇔ s0 ∈ gK∗ 0 (2ϕ),
s ∈ gK∗ (3ϕ) ⇔ δ(s) ∩ gK∗ (ϕ) 6= ∅
(3), ind. hyp.
δ 0(s0) ∩ gK∗ 0 (ϕ) 6= ∅ ⇔ s0 ∈ gK∗ 0 (3ϕ).
⇔
⇔
Zu zeigen bleibt die Umkehrung von (1):
≈K,K0 ⊆ ∼K,K0 .
Da ∼K,K0 die größte K, K0-Bisimulation ist, genügt es zu zeigen, dass ≈K,K0 eine solche
ist, dass also folgende Implikation gilt:

0 0

(4)

 β(s) = β (s ),
s ≈K,K0 s0 ⇒
∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : t ≈K,K0 t0,
(5)


 ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : t ≈ 0 t0.
(6)
K,K
Sei s ≈K,K0 s0. Dann gilt für alle x ∈ At,
x ∈ β(s) ⇔ s ∈ gK (x) = gK∗ 0 (x) ⇔ x ∈ β 0(s0),
208
7 Modallogik also (4).
Ab hier folgen wir dem Beweis von [6], Satz 3.17, und zeigen (5).
Sei t ∈ δ(s) und St = {u ∈ δ 0(s0) | t 6≈K u}. Dann gibt es für alle u ∈ St eine Formel
ϕu ∈ TML(At) mit t ∈ gK∗ (ϕu) und u 6∈ gK∗ 0 (ϕu).
Da K0 endlich verzweigt ist, ist δ 0(s0), also auch St, endlich und damit (K, t) ein Modell
von
^
ϕ =
{ϕu | u ∈ St}.
Aus t ∈ δ(s) folgt s ∈ gK∗ 0 (3ϕ), also wegen s ≈K,K0 s0 auch s0 ∈ gK∗ 0 (3ϕ). Demnach gibt
es t0 ∈ δ 0(s0) ∩ gK∗ 0 (ϕ).
Wäre t0 in St, dann wäre t0 6∈ gK∗ 0 (ϕt0 ), also
\
^
0
∗
∗
t 6∈ {gK0 (ϕu) | u ∈ St} = gK0 ( {ϕu | u ∈ St}) = gK∗ 0 (ϕ). t0 gehört also nicht zu St, d.h. t und t0 sind elementar K, K0-äquivalent.
Analog erhält man (6).
o
209
7 Modallogik Das Hennessy-Milner-Theorem zeigt die Charakterisierung der Verhaltensäquivalenz zweier Zustände s und s0 als deren Ununterscheidbarkeit: s und s0 sind genau dann verhaltensäquivalent, wenn es keine modallogische Formel gibt, die in s einen anderen Wahrheitswert
hat als in s0.
Approximative Konstruktion der Verhaltensäquivalenz
T
Der untere Kleene-Abschluss FK,∞ = n∈N FKn(State 2) von FK stimmt nach Satz 4.9 (iv)
mit ∼K = gfp(FK ) überein, falls er FK -dicht ist.
Um das zu zeigen, definieren wir zunächst die folgenden Approximationen von ∼K induktiv wie folgt: Für alle n ∈ N,
∼0 = ker(β),
(
∼n+1 = {s ∼n s0 |
0
0
0
∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼n t ,
0
0
0
∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼n t
)
}.
210
7 Modallogik Lemma 7.7
Für alle n ∈ N, ∼n = FKn(ker(β)).
Beweis durch Induktion über n. ∼0 = ker(β) = FK0 (ker(β)).
Sei s ∼n+1 s0, t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von s ∼n+1 s0 gilt β(s) = β(s0) und
gibt es u0 ∈ δ(s0) und u ∈ δ(s) mit t ∼n u0 und u ∼n t0. Nach Induktionsvoraussetzung
folgt (t, u0), (u, t0) ∈ FKn(ker(β)) ⊆ ker(β). Nach Definition von FK gehört daher (s, s0)
zu FKn+1(ker(β)).
Sei (s, s0) ∈ FKn+1(ker(β)). Nach Definition von FK gilt
FKn+1(ker(β)) = FKn(FK (ker(β))) ⊆ FKn(ker(β)),
also s ∼n s0 nach Induktionsvoraussetzung. Sei t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von FK gibt es u0 ∈ δ(s0) und u ∈ δ(s) mit (t, u0), (u, t0) ∈ FKn(ker(β)). Nach
Induktionsvoraussetzung folgt t ∼n u0 und u ∼n t0. Nach Definition von ∼n+1 gilt daher
s ∼n+1 s0. o
211
7 Modallogik Satz 7.8
Sei K = hδ, βi eine endlich verzweigte Kripke-Struktur.
T
Dann stimmt die K-Verhaltensäquivalenz mit ∼ω = n∈N ∼n überein.
Beweis. Nach Lemma 7.7 gilt
T
T
FK,∞ = n∈N FKn(State 2) = n∈N FKn+2(State 2)
T
= n∈N FKn+1(FK (ker(β) ∩ {(s, s0) ∈ State 2 | δ(s) = ∅ ⇔ δ(s0) = ∅}))
T
T
T
= n∈N FKn+1(FK (ker(β))) = n∈N FKn+2(ker(β)) = n∈N ∼n+2 = ∼ω .
Wegen ∼K = gfp(FK ) bleibt nach Satz 4.9 (iv) zu zeigen, dass FK,∞ = ∼ω FK -dicht ist.
Sei s ∼ω s0, t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition von ∼ω gibt es für alle n > 0
t0n ∈ δ(s0) und tn ∈ δ(s) mit t ∼n−1 t0n und tn ∼n−1 t0.
Da δ(s) und δ(s0) endlich sind, gibt es u ∈ δ(s) und u0 ∈ δ(s0) derart, dass für alle n > 0
kn, mn ≥ n existieren mit t ∼kn−1 t0kn = u0 und u = tmn ∼mn−1 t0, also t ∼n−1 u0 und
u ∼n−1 t0 wegen ∼m⊆∼n für alle m ≥ n.
Demnach gilt t ∼n u0 und u ∼n t0 für alle n ∈ N. Daraus folgt t ∼ω u0 und u ∼ω t0.
Außerdem gilt β(s) = β(s0) wegen s ∼0 s0. Damit ergibt sich (s, s0) ∈ FK (∼ω ) aus der
Definition von FK . Wir haben gezeigt, dass ∼ω FK -dicht ist.
o
212
Sei K = hδ, βi : State → (P(State) × P(At)) eine Kripke-Struktur.
Die Quotientenmenge State/∼K (siehe Abschnitt 5.5) lässt sich zu folgender KripkeStruktur erweitern:
Kmin = hδmin, βmini : State/∼K → P(State/∼K ) × P(At)
[s] 7→ ({[s0] | s0 ∈ δ(s)}, β(s))
Hier bleibt zu prüfen, ob Kmin([s]) unabhängig vom Repräsentanten s der Äquivalenzklasse [s] stets denselben Wert hat, d.h. ob für alle s ∼K t Folgendes gilt:
δmin([s]) = δmin([t]),
βmin([s]) = βmin([t]).
(1)
(2)
Beweis von (1). Sei [s0] ∈ δmin([s]). Nach Definition von δmin gibt es u ∈ δ(s) mit u ∼K s0.
Da ∼K eine K-Bisimulation ist, existiert v ∈ δ(t) mit u ∼K v. Also folgt [s0] ∈ δmin([t])
aus v ∼K u ∼K s0. Die Umkehrung δmin([t]) ⊆ δmin([s]) erhält man analog.
Beweis von (2). Sei x ∈ βmin([s]). Nach Definition von βmin gilt x ∈ β(s). Da ∼K eine KBisimulation ist, folgt x ∈ β(s) = β(t) = βmin([t]). Die Umkehrung δmin([t]) ⊆ δmin([s])
erhält man analog.
o
213
7 Modallogik Aufgabe Zeigen Sie, dass die natürliche Abbildung nat∼K : State → State/∼K (siehe
Kapitel 5) ein Kripke-Morphismus ist.
o
Demnach ist der Graph von nat∼K eine K, Kmin-Bisimulation (siehe Aufgabe vor Satz
7.6), also in ∼K,K0 enthalten. Folglich ist jeder Zustand s von K nach Satz 7.6 zu seiner
Äquivalenzklasse [s]∼K elementar äquivalent, d.h. erfüllt dieselben modallogischen Formeln wie [s]∼K .
Dass Kmin unter allen Kripke-Strukturen K0, deren Zustandsmenge das Bild eines KripkeMorphismus h : K → K0 ist, bzgl. der Anzahl der Zustände minimal ist, zeigt folgender
Satz:
214
7 Modallogik Satz 7.9 Sei K endlich verzweigt. Kmin-verhaltensäquivalente Zustände sind gleich. Die
Anzahl der Zustände von Kmin kann also nicht weiter verringert werden, ohne dass nicht
verhaltensäquivalente Zustände miteinander verschmolzen werden.
T
Beweis. Nach Satz 7.8 gilt ∼K = ∼ω = FK,∞ = n∈N FKn(State 2). Also genügt es zu
zeigen, dass für alle n ∈ N und s, s0 ∈ State Folgendes gilt:
[s] ∼Kmin [s0]
=⇒
(s, s0) ∈ FKn(State 2).
(3)
Wir zeigen (3) durch Induktion über n. Wegen FK0 (State 2) = State 2 gilt (3) im Fall n = 0.
Sei [s] ∼Kmin [s0]. Dann ist βmin([s]) = βmin([s0]) und für alle [t] ∈ δmin([s]) bzw. [t0] ∈
δmin([s0]) gibt es [u0] ∈ δmin([s0]) bzw. [u] ∈ δmin([s]) mit [t] ∼Kmin [u0] bzw. [u] ∼Kmin [t0].
Also ist β(s) = β(s0) nach Definition von βmin und für alle t ∈ δ(s) bzw. t0 ∈ δ(s0)
gibt es u0 ∈ δ(s0) bzw. u ∈ δ(s) mit (t, u0) ∈ FKn(State 2) bzw. (u, t0) ∈ FKn(State 2)
nach Definition von δmin und Induktionsvoraussetzung. Nach Definition von FK folgt
(s, s0) ∈ FK (FKn(State 2)) = FKn+1(State 2).
o
215
7 Modallogik 7.4 Minimierungsalgorithmus (Paull-Unger-Verfahren)
Sei K = hδ, βi eine Kripke-Struktur mit endlicher Zustandsmenge State und < eine totale
Ordnung auf State (siehe Kapitel 5).
Die Approximation ∼n, n ∈ N, von ∼K wird über die Funktion
Mn : {(s, s0) ∈ State 2 | s < s0} → 1 + P(State)2,
n ∈ N,
berechnet, die folgendermaßen definiert ist: Für alle s, s0 ∈ State mit s < s0,
(
(δ(s), δ(s0)) falls β(s) = β(s0),
0
M0(s, s ) =
sonst,

0
0
0

M
(s,
s
)
falls
für
alle
(S,
S
)
∈
M
(s,
s
) Folgendes gilt:
n
n




∀ t ∈ S ∃ t0 ∈ S 0 : t = t0 ∨ Mn(min{t, t0}, max{t, t0}) 6= ,
0
Mn+1(s, s ) =
0
0
0
0
0

∀
t
∈
S
∃
t
∈
S
:
t
=
t
∨
M
(min{t,
t
},
max{t,
t
}) 6= ,

n



sonst.
Während ∼0 auf β und alle Relationen ∼n mit n > 0 auf δ zugreifen, wird sowohl β als
auch δ nur von M0, aber von keinem Mn mit n > 0 benutzt!
216
7 Modallogik Mn lässt sich als Dreiecksmatrix darstellen (siehe Beispiel unten und [29], Abschnitt 2.3,
wo mit dem gleichen Verfahren deterministische Automaten minimiert werden).
Für alle n ∈ N sei Rn = {(s, s0) ∈ State 2 | s < s0, Mn(s, s0) 6= }. Durch Induktion über
n erhält man:
∼n = ∆State ∪ Rn ∪ Rn−1.
Da State endlich ist, gibt es eine kleinste natürliche Zahl k mit Mk = Mn, also auch
Rk = Rn für alle n ≥ k. Daraus folgt nach Satz 7.8:
∼K = ∼ω = ∆State ∪ Rk ∪ Rk−1.
Beispiel 7.10 (+ http://www.cs.indiana.edu/cmcs/bisimulation.pdf)
b3
a3
a2
b2
1
c3
d3
c2
217
7 Modallogik Der Graph stellt folgende Kripke-Struktur K = hδ, λs.∅i dar:
State = {1, a2, b2, c2, a3, b3, c3, d3},
δ(1) = {b2, b3, c2, c3},
δ(a2) = {a3, c2},
δ(b2) = {a2, b3}, δ(c2) = {b2, c3},
δ(s) = ∅ für alle s ∈ {a3, b3, c3, d3}.
Wir erhalten:
∼0 = State 2,
(
∼1 = {s ∼0 s0 |
0
0
0
∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼0 t ,
∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼0 t0
)
}
= {1, a2, b2, c2}2 ∪ {a3, b3, c3, d3}2,
(
)
0
0
0
∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼1 t ,
∼2 = {s ∼1 s0 |
}
0
0
0
∀ t ∈ δ(s ) ∃ t ∈ δ(s) : t ∼1 t
= ∼1
Also stimmt ∼K mit ∼1 überein. Folglich ist
State/∼K = {{1, a2, b2, c2}, {a3, b3, c3, d3}}
die Zustandsmenge von Kmin.
218
7 Modallogik Die (mit + Expander2 erstellten) ∼0 und ∼1 entsprechenden “Dreiecksmatrizen” M0
bzw. M1 lauten wie folgt:
219
7 Modallogik 7.5 Verhaltensmodelle und finale Strukturen
Die Funktion, die jede Menge A auf ihre Potenzmenge P(A) abbildet, ist ein – mit P
bezeichneter – Funktor, der nicht nur Mengen auf Mengen, sondern auch Funktionen
auf Funktionen abbildet. Dabei ist P wie folgt auf Funktionen f : A → B definiert:
P(f ) : P(A) → P(B)
C 7→ λC.f (C)
P darf sich Funktor nennen, weil für alle f : A → B und g : B → C Folgendes gilt:
P(g ◦ f ) = P(g) ◦ P(f ) und P(idA) = idP(A).
Allgemein bildet ein Funktor jedes Objekt und jeden Morphismus einer Kategorie auf ein
Objekt bzw. einen Morphismus derselben oder einer anderen Kategorie ab. All diese Begriffe entstammen der + Kategorientheorie, die sich mit universellen mathematischen
Konstruktionen und Eigenschaften befasst.
Der Typ eines Funktors ist also immer von der Form K → L, wobei K und L Kategorien
sind. Im Fall des oben definierten Funktors P ist sowohl K als auch L die Kategorie Set
der Mengen (als Objekte) und Funktionen (als Morphismen), also P : Set → Set.
220
7 Modallogik Jeder Funktor F : Set → Set definiert die Kategorie coAlgF der F -Coalgebren mit
allen Funktionen α : A → F (A) (mit irgendeiner Menge A) als Objekten und allen
Funktionen h : A → B, für die folgendes Diagramm für alle F -Coalgebren α : A → F (A)
und β : B → F (B) kommutiert, als Morphismen:
F (A)
A
h
g
B
=
F (h)
g
F (B)
Z.B. sind die endlich verzweigten Kripke-Strukturen mit fester Atommenge At die Objekte der Kategorie der FAt-Coalgebren, wobei FAt : Set → Set wie folgt definiert ist:
Für alle Mengen State, f : State → State 0, S ⊆ State und A ⊆ At,
FAt(State) = Pfin (State) × P(At),
FAt(f )(S, A) = (f (S), A).
Wir nennen FAt den von At induzierten Kripke-Funktor.
221
7 Modallogik Die Morphismen von coAlgFAt sind offenbar Kripke-Morphismen (siehe Abschnitt 7.3).
Die Menge Tree(P(At)) aller P(At)-markierten Bäume t : N∗ → 1 + P(At) (siehe
Abschnitt 6.3) lässt sich zu folgender Kripke-Struktur erweitern:
T (At) = hδ, βi : Tree(P(At)) → Pfin (Tree(P(At))) × P(At)
t 7→ ({λw.t(iw) | i ∈ dom(t)}, t()).
Anschaulich gesprochen, ist δ(t) die Menge der maximalen echten Unterbäume von t und
β(t) die Markierung der Wurzel von t.
Aufgabe Zeigen Sie, dass T (At) in coAlgFAt schwach final ist, d.h. es gibt von jeder
FAt-Coalgebra einen Kripke-Morphismus nach T (At).
o
Nach Definition von T (At) gilt für die Schrittfunktion
FT (At) : P(Tree(P(At))2) → P(Tree(P(At))2)
der Verhaltensäquivalenz ∼T (At) Folgendes:
222
Für alle R ⊆ Tree(P(At))2,
7 Modallogik FT (At)(R) = {(t, t0) ∈ Tree(P(At))2 | t() = t0(),
∀ i ∈ dom(t) ∃ j ∈ dom(t0) : (λw.t(iw), λw.t0(jw)) ∈ R,
∀ j ∈ dom(t0) ∃ i ∈ dom(t) : (λw.t(iw), λw.t0(jw)) ∈ R}.
M.a.W.: Zwei Bäume t, t0 ∈ Tree(P(At)) sind genau dann T (At)-verhaltensäquivalent,
wenn für die maximalen Unterbäume t1, . . . , tm bzw. t01, . . . , t0n von t bzw. t0 Folgendes
gilt: Für alle 1 ≤ i ≤ m gibt es 1 ≤ j ≤ n mit ti ∼T (At) t0j und für alle 1 ≤ j ≤ n gibt es
1 ≤ i ≤ m mit ti ∼T (At) t0j .
Den Quotienten Beh(At) =def T (At)min (siehe Abschnitt 7.3) nennen wir Verhaltensmodell.
Er ist final in coAlgFAt , d.h. von jeder F -Coalgebra gibt es genau einen Kripke-Morphismus nach Beh(At).
Aufgabe Zeigen Sie, dass alle finalen FAt-Coalgebren Kripke-isomorph sind.
o
223
7 Modallogik Ähnlich wie eine Σ-Algebra A durch die Termfaltung
fold A : TΣ → A
mit der Termalgebra TΣ in Beziehung steht (siehe Kapitel 5), so verbindet ein KripkeMorphismus
unfold K : K → Beh(At)
eine F -Coalgebra K mit dem Verhaltensmodell Beh(At).
Während fold A(t) den Term t zu einem Wert in A faltet, entfaltet unfold K (s) den Zustand s in zur ∼T (At)-Äquivalenzklasse aller P(At)-markierten Bäume, deren Pfade alle
möglichen, in s beginnenden Zustandsfolgen repäsentieren.
Die Dualität zwischen fold A und unfold K geht noch weiter:
• fold A ist der einzige Σ-Homomorphismus von TΣ nach A (siehe Kapitel 5);
• unfold K ist der einzige Kripke-Morphismus von K nach Beh(At) (s.o.).
So wie Faltungen für alle Signaturen gleich definiert sind, so sind werden Entfaltungen
für andere Automatentypen als den durch FAt analog zu unfold K definiert. Konsequenzen
der Eindeutigkeit von Entfaltungen wie das folgende Lemma gelten daher auch für andere
Funktoren.
224
7 Modallogik Satz 7.11 Lambeks Lemma (für Kripke-Strukturen)
Sei State = Tree(P(At))/∼T (At). Das oben definierte Verhaltensmodell Beh(At) : State →
FAt(State) ist bijektiv.
Beweis. Zunächst stellen wir fest, dass die Aussage nur gelten kann, weil FAt(State)
Pfin (State) und nicht P(State) enthält. Andernfalls könnte Beh(At) wegen S ∼
6= P(S)
für alle Mengen S (siehe Isomorphien) gar nicht bijektiv sein.
Das folgende kommutative Diagramm zeigt, dass Beh(At) selbst ein Kripke-Morphismus
von Beh(At) in die Kripke-Struktur FAt(Beh(At)) ist:
Beh(At)
State
FAt(State)
Beh(At)
g
FAt(State)
(1)
FAt(Beh(At))
g
FAt(FAt(State))
FAt(Beh(At))
In umgekehrter Richtung gibt es einen weiteren Kripke-Morphismus:
Sei unfold = unfold FAt(Beh(At)).
225
7 Modallogik FAt(State)
FAt(Beh(At))
FAt(FAt(State))
unfold
(2)
FAt(unfold )
g
FAt(State)
g
State
Beh(At)
Aus der Kommutativität von (1) und (2) und der Funktoreigenschaft von FAt folgt, dass
auch die Komposition unfold ◦ Beh(At) ein Kripke-Morphismus ist:
State
Beh(At)
g
FAt(State)
Beh(At)
(1)
FAt(State)
unfold
FAt(Beh(At))
State
(2)
Beh(At)
g
g
FAt(FAt(State))
FAt(State)
FAt(Beh(At))
FAt(unfold )
Da es von jeder Kripke-Struktur (hier: Beh(At)) nach Beh(At) genau einen KripkeMorphismus gibt, stimmt unfold ◦ Beh(At) mit der Identität auf State überein, d.h.
unfold ◦ Beh(At) = idState .
(3)
226
7 Modallogik Damit ist Beh(At) bijektiv, wenn auch die Umkehrung gilt:
Beh(At) ◦ unfold = idFAt(State).
(4)
Beweis von (4).
(2)
Beh(At) ◦ unfold = FAt(unfold ) ◦ FAt(Beh(At)) = FAt(unfold ◦ Beh(At))
(3)
= FAt(idState ) = idFAt(State).
o
Der Beweis von Lambeks Lemma zeigt an einem einfachen Beispiel, wie Eigenschaften
von Modellen mit Hilfe von Funktionsdiagrammen ohne Bezug auf – die manchmal recht
komplexen – konkreten Repräsentationen der Modelle gezeigt werden können. Das ist
durchaus vergleichbar mit der Formulierung von Algorithmen in höheren Programmiersprachen, die gegenüber der Implementierung in maschinenorientierten Sprachen in der
Regel weitaus kompakter und überschaubarer ist.
Modelleigenschaften sollten deshalb stets auf der Basis von allen irrelevanten Details befreiter Repräsentationen ihrer zugrundeliegenden Datenstrukturen verifiziert werden. In
der Folge werden nicht nur die Beweise kürzer, nachvollziehbarer und fehlerfreier, sondern auch die Modelle flexibler, d.h. leichter an neue Anforderungen anpassbar (Stichwort
adaptive und agile Software).
227
7 Modallogik Bezogen auf die oben definierte Baumrepräsentation der Elemente von Beh(At) besagt
Lambeks Lemma, dass sich jeder Baum eindeutig zerlegen lässt in das Paar (T, A), das
aus der Menge T seiner maximalen Unterbäume und seiner Wurzelmarkierung A besteht,
und dass umgekehrt jedes solche Paar eindeutig einem Baum entspricht, dessen Menge
maximaler Unterbäume mit T und dessen Wurzelmarkierung mit A übereinstimmt.
So gesehen, ist die Aussage von Lambeks Lemma trivial. Das Entscheidende ist aber,
dass die Bijektivität von Beh(At) nicht aus der Baumrepräsentation abgeleitet wurde,
sondern allein aus der Charakterisierung von Beh(At) als finale F -Coalgebra (s.o.). Da
alle finalen F -Coalgebren Kripke-isomorph sind, gilt Lambeks Lemma also nicht nur für
Beh(At), sondern auch jede andere finale F -Coalgebra.
Der kategorientheoretische Zugang zu Kripke-Strukturen kann ähnlich auch für Σ-Algebren
(siehe Kapitel 5) gewählt werden, allerdings in dualer Weise:
Eine Signatur Σ entspricht einem Funktor HΣ : Set → Set. Eine Σ-Algebra mit Trägermenge A entspricht keiner HΣ-Coalgebra, sondern einer HΣ-Algebra, d.h. einer Funktion α : HΣ(A) → A. α ist die Summenextension aller Operationen der Σ-Algebra. ΣHomomorphismen zwischen Σ-Algebren entsprechen Morphismen zwischen HΣ-Algebren.
228
7 Modallogik Näheres darüber in [30], Kapitel 14.
Zurück zu Coalgebren: Modallogik, Verhaltensäquivalenz, elementare Äquivalenz und das
Verhaltensmodell lassen sich analog zur Kategorie coAlgFAt endlich verzweigter KripkeStrukturen für andere Klassen von Coalgebren definieren.
Betrachten wir als herausragendes Beispiel Moore-Automaten, die in vielen Bereichen
der Informatik – vom Schaltwerksentwurf bis zum Übersetzerbau – bei der Modellierung
eingesetzt werden.
Ein Moore-Automat mit Eingabemenge In, Ausgabemenge Out ist eine Funktion
M : State → G(State),
wobei der Funktor G wie folgt definiert ist:
Für alle Mengen State, State 0, f : State → State 0, g : In → State und z ∈ Out,
G(State) = State In × Out,
G(f )(g, z) = (f ◦ g, z).
229
7 Modallogik M ordnet also jedem Zustand s ∈ State ein Paar (g, z) zu, wobei g : In → State angibt,
welche im Zustand s an den Automaten übergebene Eingabe zu welchem eindeutigen (!)
Folgezustand führt, und z die im Zustand s erfolgte Ausgabe darstellt.
Im Gegensatz zu Kripke-Strukturen sind Moore-Automaten deterministisch. weil zwar
auch hier jeder Zustand mehrere Nachfolger haben kann. Die jeweilige Eingabe legt aber
fest, welcher davon ausgewählt wird. Außerdem gibt es immer einen Folgezustand.
Um Aussagen über Moore-Automaten zu formulieren, kann man die Operationen von AL
verwenden und anstelle der modalen Operationen 3 und 2 eine Operation hxi für jede
Eingabe x ∈ In. Die Signatur logischer Operationen lautet hier also
Σ = AL ∪ {hxi | x ∈ In}.
Out ist die Menge der atomaren Formeln.
Interpretiert werden alle Formeln in folgender Σ-Algebra Pow (δ) mit Trägermenge
P(State): Für alle x ∈ In, S ⊆ State und s ∈ State,
s ∈ hxiPow (δ)(S) ⇔def δ(s)(x) ∈ S.
230
7 Modallogik Sei M = hδ, βi : State → G(State) ein Moore-Automat. Dann ist gM : Out → P(State)
wie folgt definiert: Für alle z ∈ Out und s ∈ State,
s ∈ gM(z) ⇔def z = β(s).
∗
(ϕ) die Menge der Zustände, die ϕ erfüllen.
Wieder liefert gM
Aufgabe Wie lauten wohl die Definitionen einer M-Bisimulation, der M-Verhaltensäquivalenz und eines Moore-Morphismus?
Aufgabe Wie lautet der Minimierungsalgorithmus für Moore-Automaten?
Das dem Verhaltensmodell Beh(At) für Kripke-Strukturen (s.o.) entsprechende Verhaltensmodell Beh(In, Out) für Moore-Automaten lässt sich als finale G-Coalgebra darstellen, also als diejenige G-Coalgebra, in die es von jeder G-Coalgebra aus genau einen
Moore-Morphismus gibt.
231
7 Modallogik Da Moore-Automaten deterministisch sind, besteht die Zustandsmenge Beh(In, Out)
nicht wie Beh(At) aus (Äquivalenzklassen von) Bäumen, sondern aus der Menge der
Funktionen von In ∗ nach Out. δ und β sind darauf wie folgt definiert:
∗
∗
β : Out In → Out
f 7→ λx.λw.f (xw)
f 7→ f ()
δ : Out In → (In → Out In )
∗
∗
Aufgabe Zeigen Sie, dass Out In im Fall In = 1 isomorph ist zur Menge Out N der Ströme
über Out.
∗
Aufgabe Zeigen Sie, dass Out In im Fall Out = 2 isomorph ist zur Menge P(In ∗) der
Teilmengen von In ∗, die auch als Menge der Sprachen über In bezeichnet wird. MooreAutomaten vom Typ State → State In × 2 heißen folglich auch (Sprach-)erkennende
Automaten.
Mit Formeln der Modallogik für Moore-Automaten kann z.B. die Bedeutung imperativer
(= befehlsorientierter) Programme beschrieben werden. In ist dann die Menge der jeweils
verwendeten Sprache Zuweisungen, Prozeduraufrufe, etc., Out die Menge der Ausgabewerte und State die Menge der Belegungen von Programmvariablen mit Ausgabewerten.
232
7 Modallogik Eine – Zusicherung genannte – Formel ϕ ⇒ hpiψ drückt aus, dass nach Ausführung
des Programms p ψ gilt, falls vorher ϕ galt. Z.B. besagt
(x = a) ⇒ hx := x ∗ 2i(x = a ∗ 2),
dass die Zuweisung x := x ∗ 2 den Wert der Programmvariablen x verdoppelt.
Programme, die nicht auf jeder Eingabe terminieren, lassen sich auf der Basis einer weiteren Klasse von Coalgebren verifizieren, den partiellen Automaten. Der entsprechende
Funktor H wie folgt:
Für alle Mengen State,
H(State) = (1+State)In × Out.
Hier bieten sich zwei modale Operatoren für jede Eingabe an, so dass wir
Σ = AL ∪ {hxi | x ∈ In} ∪ {[x] | x ∈ In}
als Signatur logischer Operationen für partielle Automaten erhalten. Out ist wieder die
Menge der atomaren Formeln.
233
7 Modallogik Interpretiert werden alle Formeln in folgender Σ-Algebra Pow (δ) mit Trägermenge
P(State): Für alle x ∈ In, S ⊆ State und s ∈ State,
s ∈ hxiPow (δ)(S)
⇔def
δ(s)(x) ∈ S,
s ∈ [x]Pow (δ)(S)
⇔def
δ(s)(x) ∈ S oder δ(s)(x) = .
Die Zusicherung ϕ ⇒ [p]ψ bedeutet, dass
• nach Ausführung von p ψ gilt, falls vorher ϕ galt, oder
• p nicht terminiert,
während ϕ ⇒ hpiψ die Termination von p miteinschließt.
234
7 Modallogik Highlights
Signatur der Modallogik: ML = AL ∪ {2, 3 : 1 → 1}
Semantik der Modallogik: ML-Algebra Pow (δ) mit Trägermenge P(State) und – von
einer Kripke-Struktur
K = hδ, βi : State → (P(State) × P(At))
abhängiger – folgender Interpretation von ML: Für alle S, S 0 ⊆ State,
⊥Pow (δ) = ∅,
>Pow (δ) = State,
¬Pow (δ)(S) = State \ S,
∧Pow (δ)(S, S 0) = S ∩ S 0,
∨Pow (δ)(S, S 0) = S ∪ S 0,
⇒Pow (δ) (S, S 0) = (State \ S) ∪ S 0,
2Pow (δ)(S) = {s ∈ State | δ(s) ⊆ S},
3Pow (δ)(S) = {s ∈ State | δ(s) ∩ S 6= ∅}.
Die zweite Komponente von K induziert eine Belegung gK : At → P(State) der Atome:
Für alle x ∈ At und s ∈ State,
gK (x) =def {s ∈ State | x ∈ β(s)}.
235
7 Modallogik (K, s) erfüllt ϕ oder (K, s) ist ein Modell von ϕ, geschrieben: K |=s ϕ, wenn s zu gK∗ (ϕ)
gehört.
K heißt endlich verzweigt, wenn für alle s ∈ State δ(s) endlich ist.
Sei K endlich verzweigt. Die folgende Funktion
ml2al : TML(At) × State → TAL(At × State)
übersetzt modallogische in aussagenlogische Formeln: Für alle x ∈ At, s ∈ State, c ∈
{⊥, >}, ⊗ ∈ {∨, ∧, ⇒} und ϕ, ψ ∈ TML(At),
ml2al (x, s) = (x, s),
ml2al (c, s) = c,
ml2al (¬ϕ, s) = ¬ml2al (ϕ, s),
ml2al (ϕ ⊗ ψ, s) = ml2al (ϕ, s) ⊗ ml2al (ψ, s),
V
ml2al (2ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)},
W
ml2al (3ϕ, s) = {ml2al (ϕ, s0) | s0 ∈ δ(s)}.
Korrektheit der Übersetzung (Satz 7.1):
K |=s ϕ
⇔
uncurry(χ ◦ gK ) |= ml2al (ϕ, s).
236
7 Modallogik Alle in der Bitalgebra gültigen AL-Gleichungen sind auch in Pow (δ) gültig. Darüberhinaus erfüllt Pow (δ) die folgenden AL-Gleichungen:
¬3x ≡ 2¬x
3(x ∨ y) ≡ 3x ∨ 3y
¬2x ≡ 3¬x
2(x ∧ y) ≡ 2x ∧ 2y
(negM )
(distDia/distBox )
Sei K0 = hδ 0, β 0i : State 0 → (P(State 0) × P(At)) eine weitere Kripke-Struktur.
K, K0-Verhaltensäquivalenz: ∼K,K0 =def gfp(FK,K0 ), wobei
FK,K0 : P(State × State 0) → P(State × State 0)
{(s, s0) ∈ State × State 0 | β(s) = β 0(s0),
R 7→
∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : (t, t0) ∈ R,
∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : (t, t0) ∈ R}
Elementare K, K0-Äquivalenz:
≈K,K0 =def {(s, s0) ∈ State 2 | ∀ ϕ ∈ TML(At) : K |=s ϕ ⇔ K |=s0 ϕ}
Hennessy-Milner-Theorem: Sind K und K0 endlich verzweigt, dann gilt ∼K,K0 = ≈K,K0 .
237
7 Modallogik Approximative Konstruktion der K-Verhaltensäquivalenz ∼K =def ∼K,K :
∼0 = ker(β),
(
∼n+1 = {s ∼n s0 |
∼ω =
T
n∈N
0
0
0
∀ t ∈ δ(s) ∃ t ∈ δ(s ) : t ∼n t ,
∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼n t0
)
},
∼n .
Satz 7.8: Ist K endlich verzweigt, dann gilt ∼ω = ∼K .
Minimale Kripke-Struktur:
Kmin = hδmin, βmini : State/∼K → Pfin (State/∼K ) × P(At)
[s] 7→ ({[s0] | s0 ∈ δ(s)}, β(s))
Für alle s ∈ State, s ∼K,Kmin [s].
Satz 7.9: Ist K endlich verzweigt, dann gilt ∼Kmin = ∆State/∼K .
238
7 Modallogik Minimierung nach Paull-Unger durch schrittweise Bildung von Dreiecksmatrizen:
Für alle n ∈ N und s, s0 ∈ State mit s < s0,
(
(δ(s), δ(s0)) falls β(s) = β(s0),
0
M0(s, s ) =
sonst,

0
0
0

M
(s,
s
)
falls
für
alle
(S,
S
)
∈
M
(s,
s
) Folgendes gilt:
n
n




∀ t ∈ S ∃ t0 ∈ S 0 : t = t0 ∨ Mn(min{t, t0}, max{t, t0}) 6= ,
0
Mn+1(s, s ) =
0
0
0
0
0

∀
t
∈
S
∃
t
∈
S
:
t
=
t
∨
M
(min{t,
t
},
max{t,
t
}) 6= ,

n



sonst,
Rn = {(s, s0) ∈ State 2 | s < s0, Mn(s, s0) 6= }.
=⇒
∼n = ∆State ∪ Rn ∪ Rn−1.
(1)
Ist State endlich, dann gibt es eine kleinste natürliche Zahl k mit Mk = Mn, also auch
Rk = Rn für alle n ≥ k. Folglich stimmt die K-Verhaltensäquivalenz wegen (1) und nach
Satz 7.8 mit ∆State ∪ Rk ∪ Rk−1 überein.
239
8 Prädikatenlogik (predicate logic, first-order logic)
In der Prädikatenlogik sind Atome keine Variablen, sondern Ausdrücke der Form
p(t1, . . . , tn)
mit einem Prädikat p und Termen t1, . . . , tn über einer Menge X von Individuenvariablen. Diese stehen nicht für Aussagen, sondern für Elemente der Trägermenge einer
Algebra A, die die Terme interpretiert (siehe Kapitel 5). Die Algebra wird um eine Interpretation der Prädikate als Relationen ergänzt und dann Struktur genannt.
Zu den aussagenlogischen Operationen kommen für jede Individuenvariable x die beiden
einstelligen Operationen ∃x und ∀x (Existenz- bzw. Allquantor) hinzu, die x binden,
was bedeutet, dass der Wert einer Formel ∃xϕ oder ∀xϕ unter einer Belegung g : X → A
nicht von g(x) abhängt.
Modallogisch ausgedrückt, sind die Belegungen von X in A die Zustände, die den Wahrheitswert einer Formel bestimmen. Dementsprechend könnte man Belegungen von At in
2 als aussagenlogische Zustände bezeichnen, was suggeriert, dass – zumindest von der
Semantik her – Aussagenlogik und Prädikatenlogik spezielle Modallogiken sind.
240
8 Prädikatenlogik Was die Parameter der Auswertung einer Formel angeht, so liegt die Prädikatenlogik
jedoch eher zwischen Aussagen- und Modallogik:
• In der Aussagenlogik gibt es nur einen Parameter, nämlich eine Belegung der Atome
durch Wahrheitswerte.
• In der Modallogik hängt der Wert einer Formel von einer Kripke-Struktur ab.
• In der Prädikatenlogik gibt es drei Parameter: eine Belegung der Individuenvariablen
durch Elemente (der Trägermenge) einer Algebra A, eine Interpretation der (nichtlogischen) Operationen, die in den Termen der Formel vorkommen, und eine Interpretation der Prädikate durch Relationen auf A. Die letzten beiden Parameter werden
zu einer Struktur im u.g. Sinne zusammengefasst.
Syntax
Sei X eine Menge von Individuenvariablen.
PL = AL ∪ {(∃x) : 1 → 1 | x ∈ X} ∪ {(∀x) : 1 → 1 | x ∈ X}
ist die Signatur der prädikatenlogischen Operationen.
241
8 Prädikatenlogik Eine Signatur Σ gemäß Kapitel 5 besteht aus Operationen. Zusätzlich kann Σ jetzt auch
– Prädikate genannte – Relationssymbole enthalten, die – wie die Operationen – jeweils
eine feste Stelligkeit haben. Zur Unterscheidung von Operationen f : n → 1 schreiben
wir p : n für ein Prädikat mit Stelligkeit n. Ein-, zwei- bzw. dreistellige Prädikate werden
unär, binär bzw. ternär genannt.
Ein Ausdruck der Form p(t1, . . . , tn) heißt Σ-Atom über X, falls p : n ein Prädikat von
Σ ist und t1, . . . , tn Σ-Terme über X sind. AtΣ(X) bezeichnet die Menge aller Σ-Atome
über X. AtΣ =def AtΣ(∅).
PL
Σ-Atome über Χ
p1
p2
p3
t1
t2
t3
x1 x2
y1 y2
z1 z2
Prädikate von Σ
Σ-Terme über Χ
Variablen von X
prädikatenlogische Formel über X
= PL-Term über AtΣ(Χ)
242
8 Prädikatenlogik Ein PL-Term ϕ über AtΣ(X) heißt (prädikatenlogische) Σ-Formel über X.
Semantik
Eine Σ-Struktur A ist eine Σ-Algebra, die für alle n ∈ N jedem n-stelligen Prädikat
p ∈ Σ eine n-stellige Relation pA ⊆ An zuordnet.
Hat A die Trägermenge TΣ und sind die Operationen von Σ so auf TΣ interpretiert wie
in Kapitel 5, dann heißt A Herbrand-Struktur.
Struct Σ bezeichnet die Klasse aller Σ-Strukturen.
Σ-Homomorphismen h : A → B zwischen Σ-Strukturen A und B sind mit den jeweiligen Interpretationen nicht nur der Operationen, sondern auch der Prädikate von Σ
verträglich, d.h. für alle Prädikate p ∈ Σ ist h(pA) ⊆ pB .
Entsprechendes gilt für Σ-Kongruenzen ∼ auf einer Σ-Struktur A:
Neben der Verträglichkeit von ∼ mit Σ wird gefordert, dass für alle Prädikate p : n ∈ Σ
und a1, . . . , an, b1, . . . , bn ∈ A Folgendes gilt:
a1 ∼ b1 ∧ · · · ∧ an ∼ bn
⇒
(a1, . . . , an) ∈ pA ⇔ (b1, . . . , bn) ∈ pB .
243
8 Prädikatenlogik In der Modallogik trat an die Stelle der Bitalgebra, auf der die Semantik aussagenlogischer Formeln aufbaut, die ML-Algebra Pow (δ), wobei δ die Transitionsfunktion der
jeweils zugrundeliegenden Kripke-Struktur K ist. Hat K die Zustandsmenge State, dann
ist P(State) die Trägermenge von Pow (δ). Wie im Abschnitt Gleichungslogik in anderen Logiken von Kapitel 5 erwähnt wurde, werden Zustände in der Prädikatenlogik als
Belegungen von X in einer Σ-Struktur A dargestellt.
Folglich tritt die Stelle der von Pow (δ) die wie folgt definierte PL-Algebra Pow (A) mit
Trägermenge P(AX ): Für alle Σ-Strukturen A und S, S 0 ⊆ AX ,
⊥Pow (A) = ∅,
>Pow (A) = AX ,
¬Pow (A)(S) = AX \ S,
∧Pow (A)(S, S 0) = S ∩ S 0,
∨Pow (A)(S, S 0) = S ∪ S 0,
⇒Pow (A) (S, S 0) = (AX \ S) ∪ S 0,
(∀x)Pow (A)(S) = {h ∈ AX | ∀ a ∈ A : h[a/x] ∈ S},
(∃x)Pow (A)(S) = {h ∈ AX | ∃ a ∈ A : h[a/x] ∈ S}.
244
Die Σ-Struktur A bestimmt die Belegung gA : AtΣ(X) → P(AX ), unter der prädikatenlogische Formeln in Pow (A) – durch Anwendung der aus gA abgeleiteten Auswertungsfunktion gA∗ (siehe Kapitel 5) – ausgewertet werden:
Für alle p(t1, . . . , tn) ∈ AtΣ(X),
gA(p(t1, . . . , tn)) =def {h ∈ AX | (h∗(t1), . . . , h∗(tn)) ∈ pA}.
incAtΣ(X)
=
gA
TPL(AtΣ(X))
gA∗
≺
AtΣ(X)
(1)
P(AX )
Sei ϕ, ψ ∈ TPL(AtΣ(X)) und h : X → A.
(A, h) erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |=h ϕ, wenn h zu gA∗ (ϕ)
gehört. h heißt dann auch Lösung von ϕ in A.
A erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |= ϕ, wenn A |=h ϕ für alle
h ∈ AX gilt. Eine Herbrand-Struktur, die ϕ erfüllt, heißt Herbrand-Modell von ϕ.
245
8 Prädikatenlogik Darauf aufbauend sind Erfüllbarkeit, Allgemeingültigkeit, Folgerung und Äquivalenz prädikatenlogischer Formeln wie in Kapitel 2 definiert, wobei der zugrundeliegende
semantische Bereich D gegeben ist durch Struct Σ bzw. die Menge aller Paare, die aus
einer Σ-Struktur A und einer Funktion h : X → A bestehen.
Wir schreiben ϕ ⇔A
h ψ, falls (A, h) genau dann ϕ erfüllt, wenn (A, h) ψ erfüllt, und
ϕ ⇔A ψ, falls A genau dann ϕ erfüllt, wenn A ψ erfüllt.
var (ϕ) bezeichnet die Menge aller Variablen von X, die in ϕ vorkommen, aber nicht nur
als Teil einer Operation wie ∃x oder ∀x.
x ∈ var (ϕ) kommt in ϕ gebunden vor, wenn es eine Teilformel ∃xψ oder ∀xψ von ϕ
mit x ∈ var (ψ) gibt.
x ∈ var (ϕ) ist eine freie Variable von ϕ, wenn x mindestens einmal nicht gebunden
in ϕ vorkommt. free(ϕ) bezeichnet die Menge der freien Variablen von ϕ.
ϕ heißt geschlossen, wenn free(ϕ) leer ist.
Sei {x1, . . . , xn} = free(ϕ). all(ϕ) =def ∀x1 . . . ∀xnϕ heißt Allabschluss von ϕ.
any(ϕ) =def ∃x1 . . . ∃xnϕ heißt Existenzabschluss von ϕ.
246
8 Prädikatenlogik Aufgabe Zeigen Sie (1)-(3) von Kapitel 6 für geschlossene prädikatenlogische Formeln.
Aufgabe Zeigen Sie, dass eine Σ-Struktur A eine Σ-Formel ϕ genau dann erfüllt, wenn
sie all(ϕ) erfüllt.
Sei σ : X → TΣ(X) und t ein Term oder eine quantorenfreie Formel.
Anstelle von σ ∗(t) schreiben wir fortan auch kurz tσ.
Lemma 8.1 Jede erfüllbare quantorenfreie Σ-Formel hat ein Herbrand-Modell.
Beweis. Sei A eine Σ-Struktur und H die Herbrand-Struktur mit folgender Interpretation
der Prädikate p : n ∈ Σ: Für alle (t1, . . . , tn) ∈ TΣn,
(t1, . . . , tn) ∈ pH ⇔def (fold A(t1), . . . , fold A(tn)) ∈ pA.
(2)
Durch strukturelle Induktion über TAL(AtΣ(X)) zeigen wir, dass für alle σ : X → TΣ
Folgendes gilt:
∗
gH
(ϕ) = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ)}.
(3)
247
8 Prädikatenlogik Für alle p(t1, . . . , tn) ∈ AtΣ(X),
(1)
∗
gH
(p(t1, . . . , tn)) = gH (p(t1, . . . , tn)) = {σ : X → TΣ | (t1σ, . . . , tnσ) ∈ pH }
(2)
= {σ : X → TΣ | (fold A(t1σ), . . . , fold A(tnσ)) ∈ pA}
Lemma 5.3 (i)
=
{σ : X → TΣ | ((fold A ◦ σ)∗(t1), . . . , (fold A ◦ σ)∗(tn)) ∈ pA}
(3)
= {σ : X → TΣ | fold A ◦ σ ∈ gA(p(t1, . . . , tn))}
= {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (p(t1, . . . , tn))}.
Für alle ϕ, ψ ∈ TAL(AtΣ(X)),
∗
∗
gH
(¬ϕ) = TΣX \ gH
(ϕ)
ind. hyp.
=
TΣX \ {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ)}
= {σ : X → TΣ | fold A ◦ σ ∈ AX \ gA∗ (ϕ)} = {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (¬ϕ)},
∗
∗
∗
gH
(ϕ ∧ ψ) = gH
(ϕ) ∩ gH
(ϕ)
ind. hyp.
=
{σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ) ∩ gA∗ (ψ)}
= {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ ∧ ψ)},
∗
∗
∗
gH
(ϕ ∨ ψ) = gH
(ϕ) ∪ gH
(ϕ)
ind. hyp.
=
{σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ) ∪ gA∗ (ψ)}
= {σ : X → TΣ | fold A ◦ σ ∈ gA∗ (ϕ ∨ ψ)}.
248
8 Prädikatenlogik Damit endet der Beweis von (3).
Sei A ein Modell von ϕ. Dann gilt gA∗ (ϕ) = AX , also insbesondere fold A ◦ σ ∈ gA∗ (ϕ) für
alle σ : X → TΣ. Da TΣ die Trägermenge von H ist, folgt aus (3), dass σ zu g ∗(ϕ) gehört.
Demnach gilt g ∗(ϕ) = TΣX . Also ist H ein Modell von ϕ.
o
Substitution von Variablen durch Terme in einer prädikatenlogischen Formel
Sei ϕ eine prädikatenlogische Σ-Formel über X und σ : X → TΣ(X).
Da TΣ(X) eine Σ-Algebra ist, gibt es laut Kapitel 5 den Σ-Homomorphismus
σ ∗ : TΣ(X) → TΣ(X),
der jedem Term t die Σ-Instanz von t zuordnet, d.h. denjenigen Term, der aus t durch
Ersetzung der Variablen von t durch ihre jeweiligen Bilder unter σ zuordnet.
Wollen wir eine solche Ersetzung in den Termen einer prädikatenlogischen Formel durchführen, müssen wir berücksichtigen, dass Variablen durch Quantoren gebunden sein können. Diese Variablen dürfen nicht ersetzt werden!
249
8 Prädikatenlogik Außerdem würde durch die Ersetzung freier Variablen durch Terme, in denen zufälligerweise Variablen vorkommen, die in der Formel gebunden sind, eine zusätzliche Bindung entstehen, die durch die Umbenennung der gebundenen Variablen verhindert werden
muss. Die Funktion
σ ∗ : TPL(AtΣ(X)) → TPL(AtΣ(X)),
die die Ersetzung durchführt und dabei die Existenz von Quantoren in obiger Weise
berücksichtigt, setzt die gleichnamige Funktion σ ∗ : TΣ(X) → TΣ(X) von Termen auf
Formeln fort. Sie ist wie folgt definiert:
• Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X),
σ ∗(f (t1, . . . , tn) = f (σ ∗(t1), . . . , σ ∗(tn)).
• Für alle p : n ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(p(t1, . . . , tn) = p(σ ∗(t1), . . . , σ ∗(tn)).
• Für alle f : n → 1 ∈ AL und ϕ1, . . . , ϕn ∈ TPL(AtΣ(X)),
σ ∗(f (ϕ1, . . . , ϕn)) = f (σ ∗(ϕ1), . . . , σ ∗(ϕn)).
• Für alle Q ∈ {∃, ∀}, x ∈ X und ϕ ∈ TPL(AtΣ(X)),
(
S
0
0
∗
Qx
σ[x
/x]
(ϕ)
falls
x
∈
V
=
var(σ(free(ϕ) \ {x })),
ϕ,σ,x def
σ ∗(Qxϕ) =
Qxσ[x/x]∗(ϕ) sonst.
250
8 Prädikatenlogik Wegen σ[x/x](x) = x verhindert σ[x/x] die Ersetzung von x durch σ(x).
Qx
σ*
Qx'
φ
φ
x y
z
x'
σ(y)
σ(y)
σ(z)
σ(z)
x
x
Offenbar gehört x genau dann zu Vϕ,σ,x, wenn x in einem Term t vorkommt, der bei
der Anwendung von σ[x/x]∗ auf ϕ eine freie Variable von ϕ substituiert und damit ein
neues gebundenes Vorkommen von x in ϕ einführen würde, wenn wir x nicht durch x0
ersetzen würden. Wie folgendes Beispiel zeigt, kann das bewirken, dass Qxϕ erfüllbar ist,
die σ-Instanz von Qxϕ jedoch nicht!
251
8 Prädikatenlogik Sei ϕ ∈ TPL(AtΣ(X)) und σ, σ1, . . . , σn : X → TΣ(X). Fortan schreiben wir auch
ϕσ anstelle von σ ∗(ϕ),
σ1 . . . σn anstelle von σn∗ ◦ · · · ◦ σ2∗ ◦ σ1.
Beispiel 8.2
Sei ϕ = ∃xp(x, y), A = {a, b}, pA = {(a, b)} und h = λz.b. Dann gilt
h ∈ gA∗ (ϕ) ⇔ {h[a/x], h[b/x]} ∩ gA(p(x, y)) 6= ∅
⇔ {h[a/x], h[b/x]} ∩ {h0 ∈ AX | (h0(x), h0(y)) ∈ pA} =
6 ∅
⇔ {(h[a/x](x), h[a/x](y)), (h[b/x](x), h[b/x](y))} ∩ pA 6= ∅
⇔ {(a, b), (b, b)} ∩ pA 6= ∅,
also A |=h ϕ.
Sei σ = {x/y}. Dann ist Vϕ,σ,x = {x}. Ohne Umbenennung erhält man
!!
h ∈ gA∗ (ϕσ) = gA∗ ((∃xp(x, y))σ) = gA∗ (∃xp(x, y)σ[x/x]) = gA∗ (∃xp(x, x))
⇔ {h[a/x], h[b/x]} ∩ gA(p(x, x)) 6= ∅
⇔ {h[a/x], h[b/x]} ∩ {h0 ∈ AX | (h0(x), h0(x)) ∈ pA} =
6 ∅
252
8 Prädikatenlogik ⇔ {(h[a/x](x), h[a/x](x)), (h[b/x](x), h[b/x](x))} ∩ pA 6= ∅
⇔ {(a, a), (b, b)} ∩ pA 6= ∅,
also A 6|=h ϕσ.
/
Mit Umbenennung wird’s richtig:
!!
h ∈ gA∗ (ϕσ) = gA∗ ((∃xp(x, y))σ) = gA∗ (∃x0p(x, y)σ[x0/x]) = gA∗ (∃x0p(x0, x))
⇔ {h[a/x0], h[b/x0]} ∩ {h0 ∈ AX | (h0(x0), h0(x)) ∈ pA} =
6 ∅
⇔ {(h[a/x0](x0), h[a/x0](x)), (h[b/x0](x0), h[b/x0](x))} ∩ pA 6= ∅
⇔ {(a, b), (b, b)} ∩ pA 6= ∅,
also A |=h ϕσ.
,
o
Lemma 8.3 (Substitutionslemma für prädikatenlogische Formeln)
Für alle Σ-Strukturen A, h : X → A, σ : X → TΣ(X) und ϕ ∈ TPL(AtΣ(X)),
A |=h ϕσ ⇔ A |=h∗◦σ ϕ.
(1)
253
8 Prädikatenlogik Beweis. Wir zeigen zunächst, dass für alle ϕ ∈ TPL(AtΣ(X)), x ∈ X, y ∈ X \ Vϕ,σ,x,
z ∈ free(ϕ) und a ∈ A Folgendes gilt:
(h[a/y]∗ ◦ σ[y/x])(z) = (h∗ ◦ σ)[a/x](z).
(2)
Fall 1: z = x. Wegen
(h[a/y]∗◦σ[y/x])(x) = h[a/y]∗(σ[y/x](x)) = h[a/y]∗(y) = h[a/y](y) = a = (h∗◦σ)[a/x](x)
gilt (2).
Fall 2: z ∈ free(ϕ) \ {x }. Aus var(σ(z)) ⊆ Vϕ,σ,x und y 6∈ Vϕ,σ,x folgt y 6∈ var(σ(z)),
also auch (2):
x6=z
(h[a/y]∗ ◦ σ[y/x])(z) = h[a/y]∗(σ[y/x](z)) = h[a/y]∗(σ(z))
y6∈var(σ(z))
=
h∗(σ(z))
x6=z
= (h∗ ◦ σ)(z) = (h∗ ◦ σ)[a/x](z).
Nun zeigen wir (1) durch strukturelle Induktion über TPL(AtΣ(X)).
Für alle p(t1, . . . , tn) ∈ AtΣ(X),
A |=h p(t1, . . . , tn)σ
⇔ h ∈ gA∗ (p(t1, . . . , tn)σ) = gA∗ (p(t1σ, . . . , tnσ)) = gA(p(t1σ, . . . , tnσ))
254
8 Prädikatenlogik ⇔ ((h∗ ◦ σ)∗(t1), . . . , (h∗ ◦ σ)∗(tn)) = (h∗(t1σ), . . . , h∗(tnσ)) ∈ pA
⇔ h∗ ◦ σ ∈ gA(p(t1, . . . , tn)) = gA∗ (p(t1, . . . , tn))
⇔ A |=h∗◦σ p(t1, . . . , tn).
Für alle ϕ, ψ ∈ TPL(AtΣ(X)),
A |=h ¬ϕσ ⇔ h ∈ gA∗ (¬ϕσ) = AX \ gA∗ (ϕσ)
ind. hyp.
⇔
h∗ ◦ σ ∈ AX \ gA∗ (ϕ) = gA∗ (¬ϕ)
⇔ A |=h∗◦σ ¬ϕ,
A |=h (ϕ ∧ ψ)σ ⇔ h ∈ gA∗ ((ϕ ∧ ψ)σ) = gA∗ (ϕσ) ∩ gA∗ (ψσ)
ind. hyp.
⇔
h∗ ◦ σ ∈ gA∗ (ϕ) ∩ gA∗ (ψ) = gA∗ (ϕ ∧ ψ) ⇔ A |=h∗◦σ ϕ ∧ ψ
und analog A |=h (ϕ ∨ ψ)σ ⇔ A |=h∗◦σ ϕ ∨ ψ.
Sei x ∈ X und ϕ ∈ TPL(AtΣ(X)).
Nach Definition von σ ∗ gibt es eine Variable y ∈ X \ V∀xϕ,σ,x mit (∀xϕ)σ = ∀yϕσ[y/x].
Daraus folgt
A |=h (∀xϕ)σ ⇔ h ∈ gA∗ ((∀xϕ)σ) = gA∗ (∀yϕσ[y/x])
⇔ ∀ a ∈ A : h[a/y] ∈ gA∗ (ϕσ[y/x])
ind. hyp.
⇔
∀ a ∈ A : h[a/y]∗ ◦ σ[y/x] ∈ gA∗ (ϕ)
255
8 Prädikatenlogik (2)
⇔ ∀ a ∈ A : (h∗ ◦ σ)[a/x] ∈ gA∗ (ϕ) ⇔ h∗ ◦ σ ∈ gA∗ (∀xϕ) ⇔ A |=h∗◦σ ∀xϕ.
Analog erhält man A |=h (∃xϕ)σ ⇔ A |=h∗◦σ ∃xϕ.
o
Aus Lemma 8.3 folgt, dass die Kleisli-Komposition von Substitutionen assoziativ bleibt
(siehe Kapitel 5), wenn man sie von Σ-Termen auf Σ-Formeln fortsetzt.
Lemma 8.4 (Äquivalenzlemma für prädikatenlogische Formeln)
Sei ϕ ∈ TPL(AtΣ(X)) und A eine Σ-Struktur.
(i) Für alle σ, τ : X → TΣ(X) mit σ ≡A τ gilt ϕσ ⇔A ϕτ .
(ii) Für alle Σ-Kongruenzen ∼ auf A und h, h0 ∈ AX gilt:
A |=h ϕ ∧ h ∼ h0 ⇒ A |=h0 ϕ.
Beweis. (i): Sei h : X → A. σ ≡A τ impliziert
(h∗ ◦ σ)(x) = h∗(σ(x)) = h∗(τ (x)) = (h∗ ◦ τ )(x)
(3)
für alle x ∈ X. Daraus folgt
256
8 Prädikatenlogik (1)
(3)
(1)
A |=h ϕσ ⇔ A |=h∗◦σ ϕ ⇔ A |=h∗◦τ ϕ ⇔ A |=h ϕτ,
also ϕσ ⇔A ϕτ .
(ii) erhält man durch strukturelle Induktion über TPL(AtΣ(X)). Sei h ∼ h0.
Für alle (p(t1, . . . , tn) ∈ AtΣ(X) und 1 ≤ i ≤ n gilt h∗(ti) ∼ h0∗(ti), also
A |=h p(t1, . . . , tn)) ⇔ h ∈ gA∗ (p(t1, . . . , tn)) = gA(p(t1, . . . , tn))
⇔ (h∗(t1) . . . , h∗(tn)) ∈ pA ⇔ (h0∗(t1) . . . , h0∗(tn)) ∈ pA
⇔ h0 ∈ gA(p(t1, . . . , tn)) = gA(p(t1, . . . , tn)) ⇔ A |=h0 p(t1, . . . , tn).
Die Induktionsschritte ergeben sich analog zum Beweis von (1) oder Lemma 8.1 (3) aus
der induktiven Definition von gA∗ .
o
8.1 Normalformen
Die Normalisierung prädikatenlogischer Formeln zielt darauf ab, sie in erfüllbarkeitsäquivalente aussagenlogische Formeln über AtΣ(X) umzuwandeln, so dass ihre Erfüllbarkeit
mit Hilfe zu prädikatenlogischen Verallgemeinerungen aussagenlogischer Schnitt- oder
Tableau-Ableitungen überprüft werden kann.
257
8 Prädikatenlogik Wir werden hier nur Schnittableitungen verallgemeinern. Tableau-Kalküle für prädikatenlogische Formeln werden in [7], [20] und [36] vorgestellt.
Aufgabe Sei A eine Σ-Struktur, x, y ∈ X, Q ∈ {∃, ∀} und ϕ, ψ, ϑ Σ-Formeln mit
x 6∈ free(ϑ). Zeigen Sie, dass Pow (A) folgende PL-Gleichungen erfüllt:
¬∃xϕ ≡ ∀x¬ϕ
¬∀xϕ ≡ ∃x¬ϕ
∃x(ϕ ∨ ψ) ≡ ∃xϕ ∨ ∃xψ
∃x(ϕ ∧ ϑ) ≡ ∃xϕ ∧ ϑ
∃x(ϑ ∧ ϕ) ≡ ϑ ∧ ∃xϕ
∀x(ϕ ∧ ψ) ≡ ∀xϕ ∧ ∀xψ
∀x(ϕ ∨ ϑ) ≡ ∀xϕ ∨ ϑ
Qxϑ ≡ ϑ
Qxϕ ≡ Qy(ϕ{y/x})
∀x(ϑ ∨ ϕ) ≡ ϑ ∨ ∀xϕ
(negQ)
(distEx )
(distAll )
(removeQ)
(rename)
258
8 Prädikatenlogik Eine Σ-Formel heißt Negationsnormalform über AtΣ(X) (NNF), wenn ⇒ in ihr nicht
vorkommt und ¬ nur direkt vor Atomen.
Seien Σ, Σ0 Signaturen mit Σ ⊆ Σ0 und A eine Σ0-Struktur.
Das Σ-Redukt A|Σ von A ist die Σ-Struktur mit derselben Trägermenge und Interpretation der Symbole von Σ wie A.
Die Normalisierung einer prädikatenlogischen Formel zielt vor allem auf die Eliminierung
ihrer Existenzquantoren ab. Wegen der dazu erforderlichen Einführung zusätzlicher Operationen in die Formel (s.u.) ist die normalisierte zur ursprünglichen nur in folgendem
Sinne äquivalent:
Eine Σ-Formel ϕ und eine Σ0-Formel ψ heißen erfüllbarkeitsäquivalent bzgl. Σ, geschrieben: ϕ ≈Σ ψ, wenn es für alle Σ-Strukturen A und h ∈ AX eine Σ0-Struktur B
gibt, deren Σ-Redukt mit A übereinstimmt und die folgende Äquivalenz erfüllt:
A |=h ϕ ⇔ B |=h ψ.
Aufgabe Zeigen Sie, dass die Erfüllbarkeitsäquivalenz bzgl. Σ0 (!) mit der Äquivalenz in
allen Σ0-Strukturen übereinstimmt.
o
259
8 Prädikatenlogik Satz 8.6
Sei x ∈ X, ϕ ∈ TPL(AtΣ(X)), {x1, . . . , xn} = free(ϕ) \ {x }, f eine – Skolemfunktion
genannte – n-stellige Operation, Σ0 = Σ ] {f } und σ = {f (x1, . . . , xn)/x}.
∃x
≈Σ
φ
x x1
(i) ∃xϕ ≈Σ ϕσ.
...
φ
xn
f x1
x1
...
...
xn
xn
(ii) Sei ϑ ∈ TPL(AtΣ(X)) und z ∈ X. Dann gilt:
ϑ{∃xϕ/z} ≈Σ ϑ{ϕσ/z}.
Beweis von (i).
Sei B eine Σ0-Struktur mit B|Σ = A, h ∈ AX und a = f B (h(x1), . . . , h(xn)).
260
8 Prädikatenlogik Wir zeigen zunächst:
h∗ ◦ σ = h[a/x].
(4)
Nach Definition von h∗ gilt
h∗(σ(x)) = h∗(f (x1, . . . , xn)) = f B (h(x1), . . . , h(xn)) = a = h[a/x](x)
und h∗(σ(y)) = h(y) = h[a/x](y) für alle y ∈ X \ {x}. Also gilt (4). Daraus folgt
(1)
(4)
B |=h ϕσ ⇔ B |=h∗◦σ ϕ ⇔ B |=h[a/x] ϕ.
(5)
Sei nun A |=h ∃xϕ. Dann gibt es a ∈ A mit A |=h[a/x] ϕ. Wir definieren eine Σ0-Struktur
B wie folgt: B|Σ = A und für alle (a1, . . . , an) ∈ An, f B (a1, . . . , an) = a. Da f in ϕ nicht
vorkommt, gilt B |=h[a/x] ϕ, also B |=h ϕσ wegen (5).
Sei B |=h ϕσ und a = f B (h(x1), . . . , h(xn)). (5) impliziert B |=h[a/x] ϕ, also A |=h[a/x] ϕ,
weil f in ϕ nicht vorkommt. Daraus folgt A |=h ∃xϕ.
(ii) folgt aus (i), weil ≈Σ mit PL verträglich ist.
o
Eine prädikatenlogische Formel ∀x1 . . . ∀xnϕ heißt Skolemnormalform (SNF), wenn
ϕ eine implikative Normalform über AtΣ(X) ist (siehe Kapitel 6).
261
8 Prädikatenlogik Satz 8.7 Jede prädikatenlogische Formel ψ hat eine erfüllbarkeitsäquivalente Skolemnormalform.
Beweis. Zunächst wird ψ durch Anwendung von negAL- und negQ-Gleichungen in eine
NNF ψ1 überführt. Dann werden die Quantoren von ψ1 durch Anwendung von distEx -,
distAll -, removeQ- und rename-Gleichungen soweit wie möglich nach rechts geschoben.
Anschließend wird die resultierende Formel ψ2 durch Anwendung von Gleichungen der
Form
ϑ{∃xϕ/z} ≡ ϑ{ϕσ/z},
(6)
deren Komponenten die Bedingungen von Satz 8.6 (ii) erfüllen, in eine zu ψ2 erfüllbarkeitsäquivalente Formel ψ3 ohne Existenzquantoren transformiert.
Durch Anwendung von rename-Gleichungen und Inversen von distAll -Gleichungen werden die Allquantoren von ψ3 nach links geschoben, bis eine äquivalente Formel
∀x1 . . . ∀xnψ4
mit paarweise verschiedenen Variablen x1, . . . , xn und quantorenfreier Formel ψ4 entsteht.
ψ4 wird durch die Anwendung gültiger AL-Gleichungen (siehe Kapitel 6) in eine äquivalente KNF ψ5 transformiert und diese in die INF ψ6 = inf (ψ5) (siehe Satz 6.1 (11)).
262
8 Prädikatenlogik Zusammengefasst ergibt sich folgende Kette von Äquivalenzen, wobei A eine Σ-Struktur,
h ∈ AX , Σ0 die durch die Anwendungen von (6) definierte Erweiterung von Σ und B die
gemäß Satz 8.6 (i) aus (A, h) gebildete Σ0-Struktur ist:
A
B
B
ψ ⇔A
h ψ1 ⇔h ψ2 ≈Σ ψ3 ⇔h ∀x1 . . . ∀xn ψ4 ⇔h ∀x1 . . . ∀xn ψ5
⇔B
h ∀x1 . . . ∀xn ψ6 .
∀x1 . . . ∀xnψ6 ist also die gewünschte Skolemnormalform.
(6) könnte auch an anderer Stelle des Normalisierungsprozesses angewendet werden. Die
hier genannte Schrittfolge stellt jedoch sicher, dass bei jeder Anwendung von (6) die
Teilformel ϕ möglichst klein ist und daher die auf der rechten Seite von (6) eingeführte
Operation f (siehe Satz 8.6 (i)) eine möglichst niedrige Stelligkeit hat.
o
263
8 Prädikatenlogik Satz 8.8
Eine Menge Φ prädikatenlogischer Gentzenformeln ist genau dann erfüllbar, wenn ihre
Herbrand-Expansion
HE (Φ) = {ϕσ | ϕ ∈ Φ, σ : X → TΣ}
(im aussagenlogischen Sinne) erfüllbar ist.
Beweis. Wegen Lemma 8.1 genügt es zu zeigen, dass ϕ genau dann ein Herbrand-Modell
hat, wenn HE (Φ) ein aussagenlogisches Modell hat.
Sei H ein Herbrand-Modell von Φ und σ : X → TΣ. Dann gibt es für alle Gentzenformeln
ϕ ⇒ ψ von Φ ein Atom atϕ,ψ in ϑ oder ϑ0 mit σ 6∈ gH (atϕ,ψ ) bzw. σ ∈ gH (atϕ,ψ ).
Wir bilden daraus folgende (aussagenlogische) Belegung g : AtΣ(X) → 2: Für alle ΣAtome at über X, g(at) =def gH (at)(σ). Dann gilt g(atϕ,ψ ) = 0 bzw. g(atϕ,ψ ) = 1, also
g(ϕ ⇒ ψ) = 1 für alle Gentzenformeln ϕ ⇒ ψ von Φ. Da σ beliebig gewählt wurde, ist
g ist ein aussagenlogisches Modell von HE (Φ).
264
8 Prädikatenlogik Sei umgekehrt g : AtΣ(X) → 2 ein aussagenlogisches Modell von HE (Φ) und H die
Herbrand-Struktur mit folgender Interpretation der Prädikate p ∈ Σ. Sei n = arity(σ).
Für alle t1, . . . , tn ∈ TΣ,
(t1, . . . , tn) ∈ pH ⇔def g(p(t1, . . . , tn)) = 1.
(7)
Sei σ : X → TΣ. Nach Voraussetzung gibt es für alle Gentzenformeln ϕ ⇒ ψ von Φ
• einen Faktor atϑ,ϑ0 von ϑ mit g(atϑ,ϑ0 σ) = 0
• oder einen Summanden atϑ,ϑ0 von ϑ0 mit g(atϑ,ϑ0 σ) = 1.
(*)
(**)
Sei atϑ,ϑ0 = p(t1, . . . , tn). Im Fall (*) erhalten wir
(7)
g(p(t1σ, . . . , tnσ) = g(atϑ,ϑ0 σ) = 0 ⇔ (t1σ, . . . , tnσ) 6∈ pH
∗
∗
⇔ σ 6∈ gH (p(t1, . . . , tn)) = gH (atϑ,ϑ0 ) ⇒ σ 6∈ gH
(ϑ) ⇒ σ ∈ gH
(ϕ ⇒ ψ).
Im Fall (**) erhalten wir
(7)
g(p(t1σ, . . . , tnσ) = g(atϑ,ϑ0 σ) = 1 ⇔ (t1σ, . . . , tnσ) ∈ pH
∗
∗
⇔ σ ∈ gH (p(t1, . . . , tn)) = gH (atϑ,ϑ0 ) ⇒ σ ∈ gH
(ϑ0) ⇒ σ ∈ gH
(ϕ ⇒ ψ).
265
8 Prädikatenlogik Also gilt H |=σ ϕ ⇒ ψ für alle Gentzenformeln ϕ ⇒ ψ von Φ. Da σ beliebig gewählt
wurde, ist H ein Modell von Φ.
o
8.2 Schnittkalkül
Während die aussagenlogische Schnittregel das gleiche Atom aus zwei Gentzenformeln
herausschneidet, ist die unten definierte prädikatenlogische Schnittregel auch auf zwei
verschieden Atome anwendbar, sofern diese unifizierbar sind, d.h. eine gemeinsame Instanz haben (siehe Kapitel 5):
Sei σ, τ : X → TΣ(X). σ subsumiert τ , geschrieben: σ ≤ τ , wenn es ρ : X → TΣ(X)
mit σρ = τ gibt.
Seien t, u Atome oder Terme. σ unifiziert oder ist ein Unifikator von t und u, wenn
tσ = uσ gilt.
Subsumiert ein Unifikator von t und u alle Unifikatoren von t und u, dann nennen wir
ihn einen allgemeinster Unifikator (most general unifier; mgu) von t und u.
266
8 Prädikatenlogik Die folgenden Funktionen
unify : (AtΣ(X) ∪ TΣ(X))2 → 1 + TΣ(X)X ,
0 S
unify : n∈N(TΣ(X)n × TΣ(X)n) → 1 + TΣ(X)X
berechnen einen mgu zweier Atome oder Terme bzw. zweier gleichlanger Termtupel, sofern
diese unifizierbar sind.
Sie liefern den Wert , wenn die zu unifizierenden Ausdrücke an der gleichen Baumposition
mit verschiedenen Operationen oder Prädikaten markiert sind oder der occur check
x ∈ var(f t) (s.u.) erfolgreich ist. Er verhindert, dass eine Variable x durch einen Term t
ersetzt wird, der keine Variable ist, aber x enthält. Wenn sie nicht verhindert wird, würde
sich eine solche Ersetzung unendlich oft wiederholen. M.a.W.: Ein Unifikator von x und
t müsste x und t den unendlichen Term t{t/x}{t/x} . . . zuweisen. Der gehört aber nicht
zu TΣ(X).
unify und unify 0 sind wie folgt definiert:
Für alle f, g ∈ Σ, t, u ∈ TΣ(X), ts, us ∈ TΣ(X)∗ und x ∈ X,
(
unify 0(ts, us) falls f = g,
unify(f (ts), g(us)) =
sonst,
267
8 Prädikatenlogik (
falls x ∈ var(f (ts)),
unify(f (ts), x)
=
unify(x, f (ts))
= unify(f (ts), x),
{f (ts)/x} sonst,
= {x/y},



 στ falls σ = unify(t, u) 6= und
unify 0(cons(t, ts), cons(u, us)) =
τ = unify 0(map(σ)(ts), map(σ(us)) 6= ,


 sonst,
unify(x, y)
unify 0(, )
= incX ,
wobei map(σ)(t1, . . . , tn) =def (t1σ, . . . , tnσ).
Die Funktion cons wurde in Beispiel 4.16 definiert.
Der mögliche Wert von unify oder unify 0 zeigt das Scheitern der Algorithmus. Jeder
von verschiedene Wert ist ein mgu der jeweiligen Parameterterme bzw. -atome. Da die
Argumente von unify nur endlich viele Variablen enthalten, hat jede von unify berechnete
Substitution σ endlichen Support
supp(σ) =def {x ∈ X | xσ 6= x}.
268
8 Prädikatenlogik Außerdem garantiert der – durch die Abfrage x ∈ var(f t) realisierte – o.g. occur check,
dass kein Term von σ(supp(σ)) Variablen von supp(σ) enthält.
Der occur check kann auch dann zum Scheitern von unify(t, t0) führen, wenn keine Variable von t in t0 vorkommt. Z.B. ersetzt unify bei der Unifikation von f (x, x) und f (y, g(y))
zunächst die Variable x durch y, so dass der Algorithmus nun f (y, y) und f (y, g(y)), also u.a. y mit g(y) unifizieren muss. Würde er jetzt nicht abbrechen, sondern y durch
g(y) ersetzen, dann hätte er im nächsten Schritt f (g(y), g(y)) und f (g(y), g(g(y))) zu
unifizieren, usw.
Eine injektive Substitution σ heißt Variablenumbenennung, wenn σ(X) eine Teilmenge von X ist.
Aufgabe Zeigen Sie, dass es für alle t, t0 ∈ TΣ(X) genau dann eine Variablenumbenennung σ mit tσ = t0 gibt, wenn t t0 subsumiert und t0 t subsumiert.
o
Der prädikatenlogische Schnittkalkül PSK besteht aus drei Regeln:
269
8 Prädikatenlogik Einführungsregel
Φ`ϕ
Summandregel
Φ ` ϕ ⇒ ψ ∨ ϑ ∨ ϑ0
Φ ` ϕσ ⇒ ψσ ∨ ϑσ
Faktorregel
Φ ` ϑ ∨ ϑ0 ∧ ϕ ⇒ ψ
Φ ` ϑσ ∧ ϕσ ⇒ ψσ
ϕ ∈ Φ ⊆ TPL(AtΣ(X))
ϕ, ψ ∈ TPL(AtΣ(X)), ϑ, ϑ0 ∈ AtΣ(X), σ = unify(ϑ, ϑ0)
ϕ, ψ ∈ TPL(AtΣ(X)), ϑ, ϑ0 ∈ AtΣ(X), σ = unify(ϑ, ϑ0)
Prädikatenlogische Schnittregel (binäre Resolution)
ϕ, ψ, ϕ0, ψ 0 ∈ TPL(AtΣ(X)), ϑ, ϑ0 ∈ AtΣ(X),
Φ ` ϕ ⇒ ψ ∨ ϑ, Φ ` ϑ0 ∧ ϕ0 ⇒ ψ 0
Φ ` ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ
σ = unify(ϑτ, ϑ0),
τ ist eine Variablenumbenennung mit
var(ϕτ ∨ ψτ ∨ ϑτ ) k var(ϑ0 ∨ ϕ0 ∨ ψ 0)
270
8 Prädikatenlogik Jede zur Gentzenformel des Sukzedenten der Schnittregel äquivalente Gentzenformel heißt
Resolvente der beiden Gentzenformeln des Antezedenten. Letzterer enthält zwei unifizierbare Atome ϑ und ϑ0, die wegen der Kommutativität von ∨ bzw. ∧ nicht notwendig
am Ende bzw. Anfang stehen.
Eine PSK -Widerlegung einer Menge Φ von Gentzenformeln ist eine PSK -Ableitung
von Φ ` ⊥.
Beispiele
Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3} mit
ϕ1 = p(y) ∧ p(f (a)) ⇒ q(x),
ϕ2 = > ⇒ p(x),
ϕ3 = p(g(b, y)) ∧ q(b) ⇒ ⊥.
Φ ` p(y) ∧ p(f (a)) ⇒ q(x) Einführung von ϕ1
Φ ` p(f (a)) ⇒ q(x)
Faktorregelanwendung auf ϕ1 wegen
unify(p(y), p(f (a))) = {f (a)/y}
271
8 Prädikatenlogik Φ ` > ⇒ p(x)
Einführung von ϕ2
Φ ` > ⇒ q(x)
Resolvente von ϕ2 und p(f (a)) ⇒ q(x) wegen
unify(p(x), p(f (a))) = {f (a)/x}
Φ ` p(g(b, y)) ∧ q(b) ⇒ ⊥ Einführung von ϕ3
Φ ` p(g(b, y)) ⇒ ⊥
Resolvente von > ⇒ q(x) und ϕ3 wegen
unify(q(x), q(b)) = {b/x}
Φ ` ⊥
Resolvente von ϕ2 und p(g(b, y)) ⇒ ⊥ wegen
unify(p(x), p(g(b, y))) = {g(b, y)/x}
Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3} mit
ϕ1 = > ⇒ p(f (y)) ∨ q(y),
ϕ2 = p(x) ⇒ ⊥,
ϕ3 = q(x) ∧ q(f (b)) ⇒ ⊥.
Φ ` > ⇒ p(f (y)) ∨ q(y)
Einführung von ϕ1
Φ ` p(x) ⇒ ⊥
Einführung von ϕ2
272
8 Prädikatenlogik Φ ` > ⇒ q(y)
Resolvente von ϕ1 und ϕ2 wegen
unify(p(f (y)), p(x)) = {f (y)/x}
Φ ` q(x) ∧ q(f (b)) ⇒ ⊥ Einführung von ϕ3
Φ ` q(f (b)) ⇒ ⊥
Faktorregelanwendung auf q(x) ∧ q(f (b)) ⇒ ⊥ wegen
unify(q(x), q(f (b)) = {f (b)/x}
Φ ` ⊥
Resolvente von > ⇒ q(y) und q(f (b)) ⇒ ⊥ wegen
unify(q(y), q(f (b))) = {f (b)/y}
Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2} mit
ϕ1 = > ⇒ p(f (x), y) ∨ p(y, f (x)),
ϕ2 = p(f (c), x) ⇒ ⊥.
Φ ` > ⇒ p(f (x), y) ∨ p(y, f (x))
Einführung von ϕ1
Φ ` > ⇒ p(f (x), f (x))
Faktorregelanwendung auf ϕ1 wegen
unify(p(f (x), y), p(y, f (x)))
unify 0((f (x), y), (y, f (x)))
= {f (x)/y}unify(f (x), f (x)) = {f (x)/y}
273
8 Prädikatenlogik Φ ` p(f (c), x) ⇒ ⊥ Einführung von ϕ2
Φ ` ⊥
Resolvente von > ⇒ p(f (x), f (x)) und ϕ2 wegen
unify(p(f (x), f (x)){z/x}, p(f (c), x))
unify(p(f (z), f (z)), p(f (c), x))
unify 0((f (z), f (z)), (f (c), x))
= {c/z}unify(f (c), x)
= {c/z}{f (c)/x}
= {c/z, f (c)/x}
o
Aufgabe Zeigen Sie, dass die Widerlegung der Gentzenformelmenge
{> ⇒ p(x) ∨ p(x0), p(y) ∧ p(y 0) ⇒ ⊥}
eine Summand- oder Faktorregelanwendung benötigt.
o
Satz 8.9 (Korrektheit prädikatenlogischer Schnittableitungen)
Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X) und ψ eine Gentzenformel.
(i) Aus Φ `PSK ψ folgt Φ |= ψ.
274
8 Prädikatenlogik (ii) Aus Φ `PSK ⊥ folgt, dass Φ unerfüllbar ist.
Beweis von (i). Es genügt zu zeigen, dass aus dem Antezendenten der Summand-, Faktorund Schnittregel der jeweilige Sukzedent folgt. Daraus erhält man (i) durch Induktion
über die Anzahl der Summand- bzw. Faktorregelanwendungen und Resolventen einer
PSK -Ableitung von Φ ` ψ.
Fall 1:
ϕ1
ϕ2
ist die Summandregel.
Dann gilt ϕ1 = (ϕ ⇒ ψ ∨ ϑ ∨ ϑ0) und ϕ2 = (ϕσ ⇒ ψσ ∨ ϑσ) für Formeln bzw. Substitutionen ϕ, ϑ, ϑ0, ψ, σ, die die Anwendbarkeitsbedingungen der Summandregel erfüllen.
Sei A |= ϕ1 und h ∈ AX mit A |=h ϕσ. Nach Lemma 8.3 folgt A |=h∗◦σ ϕ, also
A |=h∗◦σ ψ ∨ ϑ ∨ ϑ0
wegen A |= ϕ1. Also gilt A |=h ψσ ∨ ϑσ ∨ ϑ0σ, wieder nach Lemma 8.3. Wegen ϑσ = ϑ0σ
folgt A |=h ψσ ∨ ϑσ. Da h beliebig gewählt wurde, schließen wir A |= ϕ2.
Fall 2:
Fall 3:
ϕ1
ϕ2 ist
ϕ1 ϕ2
ϕ3
die Faktorregel. Der Beweis verläuft analog zu Fall 1.
ist die Schnittregel. Dann gilt ϕ1 = (ϕ ⇒ ψ ∨ ϑ), ϕ2 = (ϑ0 ∧ ϕ0 ⇒ ψ 0) und
ϕ3
=
ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ
275
8 Prädikatenlogik für Formeln bzw. Substitutionen ϕ, ϕ0, ϑ, ϑ0, ψ, ψ 0, τ, σ, die die Anwendbarkeitsbedingungen der Schnittregel erfüllen.
Sei A |= ϕ1 ∧ϕ2 und h ∈ AX mit A |=h ϕτ σ ∧ϕ0σ. Nach Lemma 8.3 folgt A |=h∗◦τ σ ϕ und
A |=h∗◦σ ϕ0, also A |=h∗◦τ σ ψ ∨ ϑ wegen A |= ϕ1. Nach Lemma 8.3 folgt A |=h ψτ σ ∨ ϑτ σ.
Fall 3.1: A |=h ψτ σ. Dann gilt A |=h ψτ σ ∨ ψ 0σ. Da h beliebig gewählt wurde, schließen
wir A |= ϕ3.
Fall 3.2: A |=h ϑτ σ. Dann gilt A |=h ϑ0σ wegen ϑτ σ = ϑ0σ. Nach Lemma 8.3 folgt
A |=h∗◦σ ϑ0.
Wegen A |=h∗◦σ ϕ0 und A |= ϕ2 folgt A |=h∗◦σ ψ 0, also A |=h ψ 0σ wieder nach Lemma 8.3.
Daraus folgt A |=h ψτ σ ∨ ψ 0σ. Da h beliebig gewählt wurde, schließen wir A |= ϕ3.
V
V
Beweis von (ii). Sei Φ `PSK ⊥. Aus (i) folgt Φ |= ⊥, also ist Φ unerfüllbar.
o
Lemma 8.10 (Lifting-Lemma)
Seien ϕ1, ϕ2 Gentzenformeln über AtΣ(X), ψ1 ∈ HE (ϕ1), σ : X → TΣ, und ψ3 eine
aussagenlogische Resolvente von ψ1 und ϕ2σ.
276
8 Prädikatenlogik Dann gibt es eine einer Gentzenformel ϕ3, eine PSK -Ableitung von {ϕ1, ϕ2} ` ϕ3 und
ρ0 : X → TΣ mit ϕ3ρ0 = ψ3 und σ = γ 0ρ0, wobei γ 0 die Komposition der im Laufe der
Ableitung gebildeten mgus ist.
Die aus der aussagenlogischen Resolvente gebildete PSK -Ableitung besteht aus möglicherweise leeren Folgen von Anwendungen der Summand -bzw. Faktorregel auf ϕ1 bzw.
ϕ2 und einer anschließenden Anwendung der Schnittregel:
ψ1 = ϕ1τ σ
ϕ2 σ
ϕ1
ϕ2
..
..
..
..
.
.
aussagenlogischer
Faktorregel - ....
.. Summandregel ..
..
.. anwendungen
..
Schnitt
anwendungen
..
..
..
..
.
.
≺0
g
g
ϕ1τ γ1
ψ3 = ϕ3ρ
ϕ2 γ 2
prädikatenlogischer
Schnitt
≺
ϕ3
Beweis. Wegen ψ1 ∈ HE (ϕ1) gibt es eine Variablenumbenennung τ mit var(ϕ1τ )kvar(ϕ2)
und ψ1 = ϕ1τ σ.
277
8 Prädikatenlogik Da ψ3 eine aussagenlogische Resolvente von ψ1 und ϕ2σ ist, gibt es Formeln ϕ, ϕ0, ψ, ψ 0
und Atome ϑ1, . . . , ϑm, ϑ01, . . . , ϑ0n mit
ϕ1
=
ϕ ⇒ ψ ∨ ϑ1 ∨ · · · ∨ ϑm,
ψ3
=
ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ
ϕ2
=
ϑ01 ∧ · · · ∧ ϑ0n ∧ ϕ0 ⇒ ψ 0,
und ϑiτ σ = ϑ0j σ für alle 1 ≤ i ≤ m und 1 ≤ j ≤ n. Insbesondere werden sowohl die
Atome ϑ1τ, . . . , ϑmτ als auch die Atome ϑ01, . . . , ϑ0n von σ unifiziert.
Also gibt es einen mgu γ1 ≤ σ der Atome ϑ1τ, . . . , ϑmτ und einen mgu γ2 ≤ σ der
Atome ϑ01, . . . , ϑ0n mit var(ϕ1τ γ1)kvar(ϕ2γ2). Folglich ist τ −1γ1 ein mgu von ϑ1, . . . , ϑm,
und wir erhalten durch (m-1)-fache Anwendung der Summandregel auf ϕ1 und (n-1)-fache
Anwendung der Faktorregel auf ϕ2 die Formeln
ϕ1τ γ1 = ϕτ γ1 ⇒ ψτ γ1 ∨ ϑ1τ γ1
bzw.
ϕ2γ2 = ϑ01γ2 ∧ ϕ0γ2 ⇒ ψ 0γ2.
Da ϕ1τ und ϕ2 keine gemeinsamen Variablen haben, lässt sich X als Summe der Mengen
var(ϕ1τ ) und X \ var(ϕ2) darstellen.
Also gilt ϕ1τ γ = ϕ1τ γ1, ϕ2γ = ϕ2γ2 und γ ≤ σ für die Summenextension γ = [γ1, γ2].
278
8 Prädikatenlogik Wegen γ ≤ σ gibt es eine Substitution ρ mit γρ = σ. Wegen ϑiτ σ = ϑ0j σ unifiziert ρ
die Atome ϑ1τ γ und ϑ01γ. Also gibt es einen mgu ξ dieser Atome und eine Substitution
ρ0 mit ξρ0 = ρ. Da var(ϕ1τ γ) = var(ϑ1τ γ1) und var(ϑ01γ) = var(ϑ01γ2) disjunkt sind,
benötigen wir keine weitere Variablenumbenennung, um die Schnittregel auf ϕ1τ γ und
ϕ2γ anzuwenden, was zur Resolvente
ϕ3 = ϕτ γξ ∧ ϕ0γξ ⇒ ψτ γξ ∨ ψ 0γξ
führt.
Also gibt es eine PSK -Ableitung von {ϕ1, ϕ2} ` ϕ3.
Aus σ = γρ = γξρ0 folgt
ψ3 = ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ = ϕτ γξρ0 ∧ ϕ0γξρ0 ⇒ ψτ γξρ0 ∨ ψ 0γξρ0 = ϕ3ρ0.
Demnach gilt die Behauptung des Lemmas für γ 0 = γξ.
o
Das folgende Theorem überträgt Satz 6.4 auf unendliche Mengen aussagenlogischer Gentzenformeln. Es wird in Satz 8.12 auf Herbrand-Expansionen angewendet.
279
8 Prädikatenlogik Satz 8.11 (Vollständigkeit aussagenlogischer Schnittwiderlegungen von Gentzenformelmengen)
Sei Φ eine unerfüllbare Menge von (aussagenlogischen) Gentzenformeln über einer abzählbaren Menge von Atomen. Dann gilt Φ `ASK ⊥.
Zusammen mit Satz 6.3 (i) folgt daraus, dass Φ genau dann unerfüllbar ist, wenn Φ `ASK
⊥ gilt.
Beweis.
Wir folgen dem Beweis von [9], Satz 1.49, und zeigen die Behauptung durch Kontraposition. Sei Φ 6`ASK ⊥ und x1, x2, x3, . . . eine Abzählung der Atome von Φ.
Der konsistente Abschluss von Φ ist die folgendermaßen definierte Menge:
S
closure(Φ) = n∈N Φn,
Φ0 = Φ,
(
Φn+1 =
Φn ∪ {xn ⇒ ⊥} falls Φn ∪ {xn} `ASK ⊥,
Φn ∪ {xn}
falls Φn ∪ {xn} 6`ASK ⊥.
280
8 Prädikatenlogik Durch Induktion über n zeigen wir zunächst, dass Φn 6` ⊥ für alle n ∈ N gilt:
Nach Voraussetzung ist ⊥ nicht aus Φ0 = Φ ableitbar. Sei ⊥ nicht aus Φn ableitbar.
Fall 1: Φn ∪ {xn} 6`ASK ⊥. Dann gilt Φn+1 = Φn ∪ {xn} 6`ASK ⊥.
Fall 2: Φn ∪ {xn} `ASK ⊥. Dann ist Φn+1 = Φn ∪ {xn ⇒ ⊥}. Wäre ⊥ aus Φn+1 ableitbar,
dann müsste ⊥ wegen Φn 6`ASK ⊥ die Resolvente des Schnittes von xn ⇒ ⊥ mit einer
Gentzenformel von Φn sein. Diese kann aber nur xn ⇒ ⊥ sein, d.h. xn müsste zu Φn
gehören. Also würde gelten:
Φn ∪ {xn} = Φn `ASK ⊥. Also gilt Φn 6`ASK ⊥ für alle n ∈ N.
Angenommen, es gilt closure(Φ) `ASK ⊥. Da jede Ableitung aus closure(Φ) nur endlich
viele Formeln von closure(Φ) benutzt und für alle n ∈ N Φn in Φn+1 enthalten ist, gäbe
es n ∈ N derart, dass alle in einer Ableitung von closure(Φ) ` ⊥ vorkommenden Formeln
zu Φn gehören. Also würde Φn `ASK ⊥ gelten. Folglich ist ⊥ nicht aus closure(Φ) ableitbar.
281
8 Prädikatenlogik Nun zeigen wir durch Kontraposition, dass die Belegung
g = χ({x ∈ At | x ∈ closure(Φ)})
von At ein (aussagenlogisches) Modell von Φ ist.
Angenommen, es gibt eine Gentzenformel ϕ = x1 ∧ · · · ∧ xm ⇒ y1 ∨ · · · ∨ yn von Φ, die g
nicht erfüllt. Dann wäre für alle 1 ≤ i ≤ m und 1 ≤ j ≤ n g(xi) = 1 und g(yj ) = 0, d.h.
xi gehört zu closure(Φ), yj jedoch nicht. Also gehört yj ⇒ ⊥ zu closure(Φ). Damit ist
{xi | 1 ≤ i ≤ m} ∪ {ϕ} ∪ {yj ⇒ ⊥ | 1 ≤ j ≤ n}
eine Teilmenge von closure(Φ), aus der sich durch m + n Anwendungen der (aussagenlogischen) Schnittregel ⊥ ableiten lässt. Also würde closure(Φ) `ASK ⊥ gelten. Folglich erfüllt g alle Gentzenformeln von Φ, ist also ein Modell von Φ.
o
Um Satz 8.11 im folgenden Theorem anwenden zu können, setzen wir ab jetzt voraus,
dass Σ, X und damit dass auch AtΣ(X) abzählbar sind.
282
8 Prädikatenlogik Satz 8.12 (Vollständigkeit prädikatenlogischer Schnittwiderlegungen)
Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X).
(i) Aus HE (Φ) `ASK ψ folgt Φ `PSK ϕ für eine Gentzenformel ϕ mit ψ ∈ HE (ϕ).
(ii) Ist Φ unerfüllbar, dann gilt Φ `PSK ⊥.
Beweis von (i) durch Induktion über eine – bzgl. der Anzahl n ihrer Resolventen – minimale ASK -Ableitung von HE (Φ) ` ψ.
Fall 1: n = 0. Dann gibt es ϕ ∈ Φ mit ψ ∈ HE (ϕ). Also ist (Φ ` ϕ) eine PSK -Ableitung
von Φ ` ϕ.
Fall 2: n > 0. Dann ist ψ eine Resolvente zweier Gentzenformeln ψ1 und ψ2 und es gibt
ASK -Ableitungen von HE (Φ) ` ψ1 bzw. HE (Φ) ` ψ1 mit weniger als n Resolventen.
Nach Induktionsvoraussetzung gibt es Gentzenformeln ϕ1, ϕ2 mit Φ `PSK ϕ1, ψ1 ∈
HE (ϕ1), Φ `PSK ϕ2 und ψ2 ∈ HE (ϕ2).
Also liefert Lemma 8.10 eine Gentzenformel ϕ mit {ϕ1, ϕ2} `PSK ϕ und ψ ∈ HE (ϕ).
Zusammengenommen liefern die drei PSK -Ableitungen die gewünschte PSK -Ableitung
von Φ ` ϕ.
283
8 Prädikatenlogik Beweis von (ii). Nach Voraussetzung und Satz 8.8 ist die Herbrand-Expansion von Φ
unerfüllbar. Da sie eine Menge variablenfreier Gentzenformeln über der abzählbaren (!)
Menge AtΣ(X) ist, folgt HE (Φ) `ASK ⊥ aus Satz 8.11 und damit Φ `PSK ⊥ aus (i). o
8.3 Prädikatenlogik mit Gleichheit
Σ enthalte das zweistellige Gleichheitsprädikat ≡ oder das zweistellige Ungleichheitsprädikat 6≡ (siehe Kapitel 5).
Eine Σ-Struktur A heißt Σ-Gleichheitsstruktur ist, wenn ≡ und 6≡ durch die Diagonale
∆A bzw. deren Komplement A2 \ ∆A interpretiert werden.
Ein Modell einer prädikatenlogischen Formel ϕ heißt Gleichheitsmodell von ϕ, wenn
es eine Gleichheitsstruktur ist.
Seien ϕ, ψ ∈ TPL(AtΣ(X)). Wir schreiben ϕ |=EQ ψ, wenn jedes Gleichheitsmodell von
ϕ auch ψ erfüllt.
Seien x, y, x1, . . . , xn, y1, . . . , yn ∈ X, f eine Operation und p ein Prädikat von Σ mit
arity(f ) = arity(p) = n.
284
8 Prädikatenlogik Die Menge congΣ der Σ-Kongruenzaxiome besteht aus folgenden Gentzenformeln:
x≡x
(Reflexivität)
x≡y ⇒ y≡x
(Symmetrie)
x1 ≡ y1 ∧ · · · ∧ xn ≡ yn ⇒ f (x1, . . . , xn) ≡ f (y1, . . . , yn)
(Verträglichkeit mit f )
p(x1, . . . , xn) ∧ x1 ≡ y1 ∧ · · · ∧ xn ≡ yn ⇒ p(y1, . . . , yn)
(Verträglichkeit mit p)
Die Menge disgΣ der Σ-Disgruenzaxiome besteht aus folgenden Gentzenformeln:
x 6≡ x ⇒ ⊥
(Reflexivität)
x 6≡ y ⇒ y 6≡ x
(Symmetrie)
f (x1, . . . , xn) 6≡ f (y1, . . . , yn) ⇒ x1 6≡ y1 ∨ · · · ∨ xn 6≡ yn
(Verträglichkeit mit f )
p(x1, . . . , xn) ⇒ x1 6≡ y1 ∨ · · · ∨ xn 6≡ yn
(Verträglichkeit mit p)
Aufgabe Zeigen Sie, dass aus der Reflexivität und der Verträglichkeit mit Prädikaten die
als Gentzenformel
x≡y∧y ≡z ⇒ x≡z
ausgedrückte Transitivität von ≡ folgt.
bzw.
x 6≡ z ⇒ x 6≡ y ∨ y 6≡ z
o
285
8 Prädikatenlogik Aufgabe Zeigen Sie, dass jede Σ-Gleichheitsstruktur ein Modell von congΣ bzw. disgΣ
ist.
o
Die in Kapitel 5 behandelte Gleichungslogik ist der Spezialfall der Prädikatenlogik, in
dem die Prädikate von Σ auf ≡ und 6≡, Formeln auf Σ-Gleichungen und Σ-Ungleichungen
und Σ-Strukturen auf Gleichheitsstrukturen beschränkt sind.
Aufgabe Sei A ein Modell von
Kongruenz ist.
V
disgΣ. Zeigen Sie, dass ∼A =def A2\ 6≡A eine Σo
Sei ∼ eine beliebige Σ-Kongruenz (siehe Kapitel 5). Die Quotientenalgebra A/∼ wird zur
Σ-Struktur, wenn die Prädikate p von Σ wie folgt interpretiert werden: Sei arity(p) = n.
Für alle a1, . . . , an ∈ An,
([a1], . . . , [an]) ∈ pA/∼ ⇔def (a1, . . . , an) ∈ pA.
286
8 Prädikatenlogik Daraus folgt für alle a, b ∈ A:
A
[a] ≡A/≡ [b] ⇔ a ≡A b ⇔ [a] = [b],
A
[a] 6≡A/∼ [b] ⇔ a 6∼A b ⇔ [a] 6= [b].
Demnach sind A/ ≡A und A/∼A Gleichheitsstrukturen.
Satz 8.13
(i) Sei ϕ ∈ TPL(AtΣ(X)) und A eine Σ-Struktur.
A/≡A |= ϕ
A/∼A |= ϕ
⇔
⇔
A |= ϕ ∧
V
congΣ,
A |= ϕ ∧
V
disgΣ.
(ii) Sei ϕ eine implikative Normalform über AtΣ(X).
V
ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧ congΣ ist unerfüllbar,
V
ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧ disgΣ ist unerfüllbar.
(1)
(2)
287
8 Prädikatenlogik Beweis von (i).
Sei ∼ ∈ {≡A, ∼A} und für alle h ∈ AX gelte folgende Äquivalenz:
A/∼ |=nat◦h ϕ
⇔
A |=h ϕ.
(3)
Da jede Σ-Gleichheitsstruktur, also auch A/∼, die Σ-Kongruenz- bzw. -Disgruenzaxiome
erfüllt und es zu jeder Belegung h0 : X → A/∼ eine Belegung h : X → A mit nat◦h = h0
gibt, folgt (1) aus (3).
Beweis von (3) durch strukturelle Induktion über TPL(AtΣ(X)).
Für alle p(t1, . . . , tn) ∈ AtΣ(X),
∗
A/∼ |=nat◦h p(t1, . . . , tn) ⇔ nat ◦ h ∈ gA/∼
(p(t1, . . . , tn)) = gA/∼(p(t1, . . . , tn))
⇔ ([h∗(t1)], . . . , [h∗(tn)]) = (nat(h∗(t1)), . . . , nat(h∗(tn)))
Lemma 5.3 (i)
=
((nat ◦ h)∗(t1), . . . , (nat ◦ h)∗(tn)) ∈ pA/∼
⇔ (h∗(t1), . . . , h∗(tn)) ∈ pA ⇔ h ∈ gA(p(t1, . . . , tn)) = gA∗ (p(t1, . . . , tn))
⇔ A |=h p(t1, . . . , tn).
288
8 Prädikatenlogik Für alle ϕ, ψ ∈ TPL(AtΣ(X)),
∗
∗
∗
A/∼ |=nat◦h ¬ϕ ⇔ nat ◦ h ∈ gA/∼
(¬ϕ) = ¬Pow (A/∼)(gA/∼
(ϕ)) = (A/∼)X \ gA/∼
(ϕ)
ind. hyp.
⇔
h ∈ AX \ gA∗ (ϕ) = ¬Pow (A)(gA∗ (ϕ)) = gA∗ (¬ϕ) ⇔ A |=h ϕ,
A/∼ |=nat◦h ϕ ∧ ψ
∗
∗
∗
∗
∗
⇔ nat ◦ h ∈ gA/∼
(ϕ ∧ ψ) = gA/∼
(ϕ) ∧Pow (A/∼) gA/∼
(ψ) = gA/∼
(ϕ) ∩ gA/∼
(ψ)
ind. hyp.
⇔
h ∈ gA∗ (ϕ) ∩ gA∗ (ψ) = gA∗ (ϕ) ∧Pow (A) gA∗ (ψ) = gA∗ (ϕ ∧ ψ) ⇔ A |=h ϕ ∧ ψ
und analog A/∼ |=nat◦h ϕ ∨ ψ ⇔ A |=h ϕ ∨ ψ.
Für alle x ∈ X und ϕ ∈ TPL(AtΣ(X)),
∗
∗
A/∼ |=nat◦h ∀xϕ ⇔ nat ◦ h ∈ gA/∼
(∀xϕ) = (∀x)Pow (A/∼)(gA/∼
(ϕ))
∗
⇔ ∀ [a] ∈ A/∼ : nat ◦ h[a/x] = (nat ◦ h)[[a]/x] ∈ gA/∼
(ϕ)
ind. hyp.
⇔
∀ a ∈ A : h[a/x] ∈ gA∗ (ϕ) = (∀x)Pow (A)(gA∗ (ϕ)) = gA∗ (∀xϕ) ⇔ A |=h ∀xϕ
und analog A/∼ |=nat◦h ∃xϕ ⇔ A |=h ∃xϕ.
289
8 Prädikatenlogik Beweis von (ii).
ϕ habe kein Gleichheitsmodell. Dann gilt für alle Σ-Strukturen A, A/∼6|= ϕ, also A 6|=
V
V
V
V
ϕ ∧ congΣ bzw. A 6|= ϕ ∧ disgΣ wegen (i), d.h. ϕ ∧ congΣ bzw. ϕ ∧ disgΣ ist
unerfüllbar.
V
V
Sei umgekehrt ϕ ∧ congΣ bzw. ϕ ∧ disgΣ erfüllbar. Dann gibt es ein Modell A von
V
V
ϕ ∧ congΣ bzw. ϕ ∧ disgΣ und damit wegen (i) das Gleichheitsmodell A/∼ von ϕ. o
Wir fassen zusammen:
Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X).
Aus den Sätzen 8.9 (ii) und 8.12 (ii) folgt:
Φ ist unerfüllbar ⇔ Φ `PSK ⊥.
(4)
Mit Hilfe von Satz 8.13 (ii) lässt sich (4) auf Gleichheitsmodelle übertragen:
290
8 Prädikatenlogik Φ hat kein Gleichheitsmodell
8.13 (ii)
⇔
(4)
⇔
Φ ∪ congΣ ist unerfüllbar
(5)
Φ ∪ congΣ `PSK ⊥.
Φ hat kein Gleichheitsmodell
8.13 (ii)
⇔
(4)
⇔
Φ ∪ disgΣ ist unerfüllbar
(6)
Φ ∪ disgΣ `PSK ⊥.
8.4 Übersetzung modallogischer in prädikatenlogische Formeln
Sei At eine Menge unstrukturierter Atome wie in Kapitel 6 und 7, X = {x1, x2, . . . } eine
abzählbare Menge von Variablen für Zustände und Σ eine Signatur, die das zweistellige
Prädikat trans und jedes Atom von At als einstelliges Prädikat enthält.
291
8 Prädikatenlogik Die im Folgenden induktiv definierte Funktion
ml2pl : TML(At) × X → TPL(AtΣ(X))
übersetzt jede modallogische Formel über At in eine prädikatenlogische Σ-Formel über
Xstate:
Für alle p ∈ At, ⊗ ∈ {∨, ∧, ⇒}, ϕ, ψ ∈ TML(At), x ∈ X und i ∈ N,
ml2pl (p, x) = p(x),
ml2pl (⊥, x) = ⊥,
ml2pl (>, x) = >,
ml2pl (¬ϕ, x) = ¬ml2pl (ϕ, x),
ml2pl (ϕ ⊗ ψ, x) = ml2pl (ϕ, x) ⊗ ml2pl (ψ, x),
ml2pl (2ϕ, xi) = ∀xi+1(trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1)),
ml2pl (3ϕ, xi) = ∃xi+1(trans(xi, xi+1) ∧ ml2pl (ϕ, xi+1)).
Aufgabe Zeigen Sie, dass für alle ϕ ∈ TML(At) und x ∈ X x die einzige freie Variable
von ml2pl (ϕ, x) ist.
o
292
8 Prädikatenlogik Im Gegensatz zum Übersetzer von Zustandsformeln in aussagenlogische Formeln (siehe
Kapitel 7) ist ml2pl nicht von einer Kripke-Struktur
K = hδ, βi : State → (P(State) × P(At))
abhängig. K bestimmt jedoch die Interpretation von trans und At in einer Σ-Struktur: Sei
Σ0 = Σ \ {trans} ∪ At und A eine Σ0-Struktur mit Trägermenge State. Dann bezeichnet
AK die Σ-Struktur mit
transAK = χ−1(δ) = {(s, s0) ∈ State 2 | s0 ∈ δ(s)},
pAK = {s ∈ State | p ∈ β(s)}
für alle p ∈ At.
Satz 8.14 (Korrektheit von ml2pl )
Für alle Kripke-Strukturen K mit Zustandsmenge State, Σ0-Strukturen A mit Trägermenge State, ϕ ∈ TML(At), h ∈ State X und x ∈ X gilt:
K |=h(x) ϕ
⇔
AK |=h ml2pl (ϕ, x).
(1)
293
8 Prädikatenlogik Beweis. Nach Definition der modal- bzw. prädikatenlogischen Erfüllbarkeitsrelation ist
(1) äquivalent zu:
(2)
h(x) ∈ gK∗ (ϕ) ⇔ h ∈ gA∗ K (ml2pl (ϕ, x)).
Wir zeigen (2) durch Induktion über TML(At).
Für alle p ∈ At und x ∈ X,
h(x) ∈ gK∗ (p) = gK (p) ⇔ p ∈ β(h(x)) ⇔ h∗(x) = h(x) ∈ pAK
⇔ h ∈ gA∗ K (ml2pl (p, x)) = gA∗ K (p(x)),
h(x) ∈ gK∗ (⊥) = ∅ ⇔ h ∈ ∅ = gA∗ K (⊥) = gA∗ K (ml2pl (⊥))
h(x) ∈ gK∗ (>) = State ⇔ h ∈ State X = gA∗ K (>) = gA∗ K (ml2pl (>)).
Für alle ϕ, ψ ∈ TML(At) und x ∈ X,
h(x) ∈ gK∗ (¬ϕ) = State \ gK∗ (ϕ)
ind. hyp.
⇔
h ∈ State X \ gA∗ K (ml2pl (ϕ, x)) = gA∗ K (¬(ml2pl (ϕ, x)))
= gA∗ K (ml2pl (¬ϕ, x)),
294
8 Prädikatenlogik h(x) ∈ gK∗ (ϕ ∧ ψ) = gK∗ (ϕ) ∩ gK∗ (ψ)
ind. hyp.
⇔
h ∈ gA∗ K (ml2pl (ϕ, x)) ∩ gA∗ K (ml2pl (ψ, x))
= gA∗ K (ml2pl (ϕ, x) ∧ ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ ∧ ψ, x)),
h(x) ∈ gK∗ (ϕ ∨ ψ) = gK∗ (ϕ) ∪ gK∗ (ψ)
ind. hyp.
⇔
h ∈ gA∗ K (ml2pl (ϕ, x)) ∪ gA∗ K (ml2pl (ψ, x))
= gA∗ K (ml2pl (ϕ, x) ∨ ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ ∨ ψ, x)),
h(x) ∈ gK∗ (ϕ ⇒ ψ) = (State \ gK∗ (ϕ)) ∪ gK∗ (ψ)
ind. hyp.
⇔
h ∈ (State X \ gA∗ K (ml2pl (ϕ, x))) ∪ gA∗ K (ml2pl (ψ, x))
= gA∗ K (ml2pl (ϕ, x) ⇒ ml2pl (ψ, x)) = gA∗ K (ml2pl (ϕ ⇒ ψ, x)).
Für alle ϕ ∈ TML(At) und i ∈ N,
h(xi) ∈ gK∗ (2ϕ) = {s ∈ State | δ(s) ⊆ gK∗ (ϕ)} ⇔ δ(h(xi)) ⊆ gK∗ (ϕ)
⇔ ∀ s ∈ State : s 6∈ δ(h(xi)) oder h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ)
ind. hyp.
⇔
∀ s ∈ State : s 6∈ δ(h(xi)) oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ ∀ s ∈ State : (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) 6∈ transAK
∨ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
295
8 Prädikatenlogik ⇔ ∀ s ∈ State : h[s/xi+1] 6∈ gA∗ K (trans(xi, xi+1)) ∨ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ ∀ s ∈ State : h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1))
⇔ h ∈ gA∗ K (∀xi+1(trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1))) = gA∗ K (ml2pl (2ϕ, xi)),
h(xi) ∈ gK∗ (3ϕ) = {s ∈ State | δ(s) ∩ gK∗ (ϕ) 6= ∅} ⇔ δ(h(xi)) ∩ gK∗ (ϕ) 6= ∅
⇔ ∃ s ∈ δ(h(xi)) : h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ)
ind. hyp.
⇔
∃ s ∈ δ(h(xi)) : h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ ∃ s ∈ State : (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) ∈ transAK
∧ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ ∃ s ∈ State : h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1))
∧ h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ ∃ s ∈ State : h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1))
⇔ h ∈ gA∗ K (∃xi+1(trans(xi, xi+1) ⇒ ml2pl (ϕ, xi+1))) = gA∗ K (ml2pl (3ϕ, xi)).
o
296
8 Prädikatenlogik Eine modallogische Formel ϕ heißt bisimulationsinvariant, wenn für alle Kripke-Strukturen K ∼K zum Kern von gK∗ (ϕ) gehört. Demnach sind laut Satz 7.9 alle modallogischen
Formeln bisimulationsinvariant.
Analog nennen wir eine prädikatenlogische Σ-Formel ϕ bisimulationsinvariant, wenn
für alle Kripke-Strukturen K mit Zustandsmenge State, Σ0-Strukturen A ∼K zum Kern
von gA∗ K (ϕ) gehört.
Satz 10.3 ([3], Theorem 4.18) Eine prädikatenlogische Formel ist genau dann bisimulationsinvariant, wenn sie zum Bild von ml2pl gehört.
o
Highlights
Signatur der Prädikatenlogik: PL = AL ∪ {Qx : 1 → 1 | Q ∈ {∀, ∃}, x ∈ X}
Sei Σ eine Signatur der in prädikatenlogischen Formeln vorkommenden Operationen f :
n → 1 und Prädikate p : n.
Σ-Atome: AtΣ(X) = {p(t1, . . . , tn) | t1, . . . , tn ∈ TΣ(X)}.
297
8 Prädikatenlogik Semantik der Prädikatenlogik:
PL-Algebra Pow (A) mit Trägermenge P(AX ) und – von einer Σ-Struktur (= Interpretation der Operationen und Prädikate von Σ) abhängiger – folgender Interpretation von
PL: Für alle S, S 0 ⊆ AX ,
⊥Pow (A) = ∅,
>Pow (A) = AX ,
¬Pow (A)(S) = AX \ S,
∧Pow (A)(S, S 0) = S ∩ S 0,
∨Pow (A)(S, S 0) = S ∪ S 0,
⇒Pow (A) (S, S 0) = (AX \ S) ∪ S 0,
(∀x)Pow (A)(S) = {h ∈ AX | ∀ a ∈ A : h[a/x] ∈ S},
(∃x)Pow (A)(S) = {h ∈ AX | ∃ a ∈ A : h[a/x] ∈ S}.
Die Σ-Struktur A induziert eine Belegung gA : At → P(State) der Atome: Für alle
p(t1, . . . , tn) ∈ AtΣ(X),
gA(p(t1, . . . , tn)) =def {h ∈ AX | (h∗(t1), . . . , h∗(tn)) ∈ pA}.
298
8 Prädikatenlogik Sei ϕ, ψ ∈ TPL(AtΣ(X)) und h : X → A.
(A, h) erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |=h ϕ, wenn h zu gA∗ (ϕ)
gehört. h heißt dann auch Lösung von ϕ in A.
A erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: A |= ϕ, wenn gA∗ (ϕ) = AX gilt.
Wir schreiben ϕ ⇔A
h ψ, falls (A, h) genau dann ϕ erfüllt, wenn (A, h) ψ erfüllt, und
ϕ ⇔A ψ, falls A genau dann ϕ erfüllt, wenn A ψ erfüllt.
Sei σ : X → TΣ(X). Die Erweiterung σ ∗ : TPL(AtΣ(X)) → TPL(AtΣ(X)) von σ auf
prädikatenlogische Formeln verlangt eine spezielle Behandlung der Quantoren:
• Für alle f : n → 1 ∈ Σ und t1, . . . , tn ∈ TΣ(X),
σ ∗(f (t1, . . . , tn) = f (σ ∗(t1), . . . , σ ∗(tn)).
• Für alle p : n ∈ Σ und t1, . . . , tn ∈ TΣ(X), σ ∗(p(t1, . . . , tn) = p(σ ∗(t1), . . . , σ ∗(tn)).
• Für alle f : n → 1 ∈ AL und ϕ1, . . . , ϕn ∈ TPL(AtΣ(X)),
σ ∗(f (ϕ1, . . . , ϕn)) = f (σ ∗(ϕ1), . . . , σ ∗(ϕn)).
299
8 Prädikatenlogik • Für alle Q ∈ {∃, ∀}, x ∈ X und ϕ ∈ TPL(AtΣ(X)),
(
S
0
0
∗
Qx
σ[x
/x]
(ϕ)
falls
x
∈
V
=
var(σ(free(ϕ) \ {x })),
ϕ,σ,x def
σ ∗(Qxϕ) =
Qxσ[x/x]∗(ϕ) sonst.
Substitutionslemma (Lemma 8.3): Für alle Σ-Strukturen A, h : X → A, σ : X →
TΣ(X) und ϕ ∈ TPL(AtΣ(X)) gilt A |=h ϕσ ⇔ A |=h∗◦σ ϕ.
Alle in der Bitalgebra gültigen AL-Gleichungen sind auch in Pow (A) gültig. Darüberhinaus erfüllt Pow (A) u.a. die folgenden PL-Gleichungen:
¬∃xϕ ≡ ∀x¬ϕ
¬∀xϕ ≡ ∃x¬ϕ
∃x(ϕ ∨ ψ) ≡ ∃xϕ ∨ ∃xψ
∀x(ϕ ∧ ψ) ≡ ∀xϕ ∧ ∀xψ
Seien Σ, Σ0 Signaturen mit Σ ⊆ Σ0 und A eine Σ0-Struktur.
Das Σ-Redukt A|Σ von A ist die Σ-Struktur mit derselben Trägermenge und Interpretation der Symbole von Σ wie A.
300
8 Prädikatenlogik Eine Σ-Formel ϕ und eine Σ0-Formel ψ heißen erfüllbarkeitsäquivalent bzgl. Σ, geschrieben: ϕ ≈Σ ψ, wenn es für alle Σ-Strukturen A und h ∈ AX eine Σ0-Struktur B
gibt, deren Σ-Redukt mit A übereinstimmt und die folgende Äquivalenz erfüllt:
A |=h ϕ ⇔ B |=h ψ.
Eine prädikatenlogische Formel ∀x1 . . . ∀xnϕ heißt Skolemnormalform (SNF), wenn
ϕ eine implikative Normalform über AtΣ(X) ist (siehe Kapitel 6).
Satz 8.7: Jede prädikatenlogische Formel hat eine erfüllbarkeitsäquivalente Skolemnormalform.
Der prädikatenlogische Schnittkalkül PSK besteht aus den in Abschnitt 8.2 angegebenen vier Regeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Resolvente.
Eine PSK -Widerlegung einer Menge Φ von Gentzenformeln ist eine PSK -Ableitung
von Φ ` ⊥.
Satz 8.11: Die Korrektheit und Vollständigkeit von ASK -Ableitungen bzw. -Widerlegungen
gilt auch für unendliche Gentzenformelmengen Φ mit abzählbar vielen Atomen.
301
8 Prädikatenlogik Korrektheit und Vollständigkeit von PSK -Ableitungen bzw. -Widerlegungen
(Sätze 8.9 und 8.12): Sei Φ endlich.
Aus Φ `PSK ψ folgt Φ |= ψ.
Φ `PSK ⊥ gilt genau dann, wenn Φ unerfüllbar ist.
Eine Σ-Struktur A heißt Σ-Gleichheitsstruktur ist, wenn das Gleichheitsprädikat ≡:
2 und das Ungleichheitsprädikat 6≡: 2 durch die Diagonale ∆A bzw. deren Komplement
A2 \ ∆A interpretiert werden.
Ein Modell einer prädikatenlogischen Formel ϕ heißt Gleichheitsmodell von ϕ, wenn
es eine Gleichheitsstruktur ist.
Satz 8.13 (ii): Eine implikative Normalform ϕ über AtΣ(X) hat genau dann kein GleichV
heitsmodell wenn ϕ ∧ congΣ unerfüllbar ist.
=⇒
Korrektheit und Vollständigkeit von PSK -Widerlegungen in Gleichheitsmodellen: Sei Φ endlich.
Φ ∪ congΣ `PSK ⊥ gilt genau dann, wenn Φ kein Gleichheitsmodell hat.
302
9 Logische Programmierung
Im weitesten Sinne ist ein logisches Programm eine Menge LP prädikatenlogischer Formeln. Seine Eingabe ist eine – Anfrage genannte – weitere prädikatenlogische Formel. Es
V
berechnet eine Menge von Lösungen der Anfrage in einem Modell von LP .
Funktionale oder objektorientierte Programme repräsentieren Funktionen, logische Programme sollen Relationen repräsentieren. Das schließt schon mal alle unerfüllbaren Formeln von ihrer Verwendung als logische Programme aus.
Eine Gentzenformel ϕ ⇒ ψ über AtΣ(X) heißt Hornformel bzw. co-Hornformel, wenn
ψ bzw. ϕ ein Atom ist.
Eine Gentzenformel ϕ ⇒ ψ über AtΣ(X) heißt Σ-Goal bzw. Σ-co-Goal, wenn ψ = ⊥
bzw. ϕ = > ist.
Demnach ist > ⇒ ⊥ das einzige Goal, das gleichzeitig ein co-Goal ist.
Eine Menge LP von Hornformeln bzw. co-Hornformeln über AtΣ(X) heißt logisches
bzw. co-logisches Σ-Programm für die Prädikate von Σ, die in Konklusionen bzw.
Prämissen der Formeln von LP vorkommen.
303
9 Logische Programmierung Beispiel 9.1
Die Signatur Σ bestehe aus den nullstelligen Operationen zero und nil (leere Liste), der
unären Operation suc (successor, Nachfolger), den infix-notierten binären Operationen :
und ++, dem unären Prädikat sorted und den binären Prädikaten le, ≡, 6≡, perm und
select.
Sei x, y, s, s0 ∈ X. Die folgenden (co-)Hornformeln bilden ein logisches Programm LP
für die Prädikate von Σ:
(le) le(zero, x)
le(x, y) ⇒ le(suc(x), suc(y))
(gt) gt(zero, x) ⇒ ⊥
gt(suc(x), suc(y)) ⇒ gt(x, y)
(6≡) zero 6≡ suc(x)
suc(x) 6≡ zero
x 6≡ y ⇒ suc(x) 6≡ suc(y)
304
9 Logische Programmierung (sorted)
sorted(nil)
sorted(x : nil)
le(x, y) ∧ sorted(y : s) ⇒ sorted(x : (y : s))
(unsorted) unsorted(nil) ⇒ ⊥
unsorted(x : nil) ⇒ ⊥
unsorted(x : (y : s)) ⇒ gt(x, y) ∨ unsorted(y : s)
(conc)
nil++acts ≡ acts
(act : acts)++acts0 ≡ act : (acts++acts0)
(select)
select(x : s, x : s)
select(s, y : s0) ⇒ select(x : s, y : (x : s0))
(perm)
perm(nil, nil)
select(x : s, y : s0) ∧ perm(s, s0) ⇒ perm(x : s, y : s0)
Die Menge A = N∗ wird mit folgender Interpretation von Σ zur Σ-Struktur:
305
9 Logische Programmierung Für alle a, b, v, w ∈ A,
zeroA = 0,
(
sucA(a) =
nilA = ,
(
a :A w =
v ++ w =
sonst,
aw falls a ∈ N,
(
A
a + 1 falls a ∈ N,
sonst,
vw falls v, w ∈ ({B, C, D}2)∗
sonst,
(a, b) ∈ leA ⇔ a, b ∈ N ∧ a ≤ b,
(a, b) ∈ gtA ⇔ a, b ∈ N ∧ a > b,
(a, b) ∈ ≡A ⇔ a, b ∈ N ∧ a = b,
(a, b) ∈ 6≡A ⇔ a, b ∈ N ∧ a 6= b,
w ∈ sortedA ⇔ ∀ 1 ≤ i < length(w) : ai ≤ ai+1,
(siehe Beispiel 4.16)
w ∈ unsortedA ⇔ ∃ 1 ≤ i < length(w) : ai > ai+1,
306
9 Logische Programmierung (v, aw) ∈ selectA ⇔ ∃ a1, . . . , an : v = a1 . . . an ∧ a = ai ∧ w = a1 . . . ai−1ai+1 . . . an,
(v, w) ∈ permA ⇔ w ist eine + Permutation von v.
V
Aufgabe Zeigen Sie A |= LP .
o
Beispiel 9.2 + Türme von Hanoi
n Bauklötze sind vom Ort B zum Ort D zu transportieren, wobei ein weiterer Ort C als
Zwischenlager dient. Die Klötze dürfen nur mit nach oben abnehmender Größe gestapelt
werden. Jeder während des Transports erreichte Zustand ist ein Tripel von Listen der bei
B, C bzw. D gelagerten Klötze. Z.B. lässt sich die Folge der Zustände, die beim Transport
von fünf Klötzen von B nach D durchlaufen werden, wie folgt graphisch darstellen:
307
9 Logische Programmierung B
C
D
B
C
D
308
9 Logische Programmierung Das logische Programm soll keine Zustandsfolge, sondern die Folge der Ortswechsel, die
erforderlich sind, um n Klötze von B nach D zu transportieren. Wir modellieren die
Aufgabe mit Hilfe einer Signatur Σ, die aus den Operationen von Beispiel 9.1, den nullstelligen Operationen B, C, D, der infix-notierten binären Operationen ;, dem binären
Prädikat ≡ und dem fünfstelligen Prädikat actions besteht. Deren intendierte Bedeutung
ist unten als Σ-Struktur beschrieben.
Sei n, x, y, z, act, acts, acts0 ∈ X.
Zusammen mit den Σ-Kongruenzaxiomen bilden die folgenden Hornformeln bilden ein
logisches Programm LP für die Prädikate von Σ:
actions(zero, x, y, z, nil)
actions(n, x, z, y, acts) ∧ actions(n, y, x, z, acts0)
⇒ actions(suc(n), x, y, z, acts++((x ; z) : acts0))
Das Atom x ; y steht für “Bring den obersten Klotz vom Ort x zum Ort y”.
Das zweite actions-Axiom drückt aus, dass n + 1 Klötze von x über y nach z getragen
werden können, indem zunächst n Klötze von x über z nach y, dann ein Klotz von x
nach z und schließlich n Klötze von y über x nach z transportiert werden.
309
9 Logische Programmierung Die Menge A = N + {B, C, D} + ({B, C, D}2)∗ wird mit folgender Interpretation von Σ
zur Σ-Algebra:
Für alle a, b, c, v, w, n ∈ A,
(
a ;A b =
(a, b) falls a, b ∈ {B, C, D},
sonst,
(n, a, b, c, w) ∈ actionsA ⇔ (a, b, c, w) ∈ actionsn,
wobei actionsn ⊆ {B, C, D}3 × ({B, C, D}2)∗ wie folgt induktiv definiert ist:
(a, b, c, w) ∈ actions0 ⇔ w = ,
(a, b, c, w) ∈ actionsn+1 ⇔ ∃ v, v 0 ∈ ({B, C, D}2)∗ : (a, c, b, v), (b, a, c, v 0) ∈ actionsn
∧ w = v · (a, c) · v 0.
zero, suc, nil, :, ++ und ≡ werden wie in Beispiel 9.1 interpretiert.
Aufgabe Zeigen Sie A |=
V
LP .
o
310
9 Logische Programmierung Beispiel 9.3 + Damenproblem
n Damen auf einem (n × n)-Schachbrett sollen so platziert werden, dass sie sich nach den
Schachregeln nicht schlagen können, also keine zwei Damen auf derselben Diagonalen, Horizontalen oder Vertikalen stehen. Z.B. gibt es für fünf Damen auf einem 5×5-Schachbrett
genau zehn sichere Platzierungen:
Die Platzierung einer Dame in jeder Zeile eines (n×n)-Schachbrettes wird als Permutation
(k1, . . . , kn) von (1, 2, . . . , n) dargestellt: Für alle 1 ≤ i ≤ n ist ki die Spaltenposition der
Dame in der i-ten Zeile.
311
9 Logische Programmierung Wir modellieren die Aufgabe mit Hilfe einer Signatur Σ, die aus den Operationen von
Beispiel 9.1, der unären Operation enum, der binären Operation plus und den binären
Prädikaten ≡, 6≡, queens, board und safe besteht. Deren intendierte Bedeutung ist unten
als Σ-Struktur A beschrieben. A erfüllt folgende Bedingungen:
((1, . . . , n), (k1, . . . , kn)) gehört genau dann zu boardA, wenn (k1, . . . , kn) eine sichere
Platzierung von n Damen repräsentiert, also eine, bei der sich keine zwei Damen schlagen
können.
(1, (k, k1, . . . , kn−1)) gehört genau dann zu safe A, wenn unter der Voraussetzung, dass
(k1, . . . , kn−1) eine sichere Damenplatzierung auf den unteren n − 1 Zeilen repräsentiert,
(k, k1, . . . , kn−1) eine sichere Damenplatzierung auf dem gesamten (n×n)-Brett darstellt.
Sei n, x, y, s, s0, val ∈ X.
Die folgenden Hornformeln bilden ein logisches Programm LP für die Prädikate von Σ:
(queens) board(enum(n), val) ⇒ queens(n, val)
(board)
board(nil, nil)
select(x : s, y : s0) ∧ board(s0, val) ∧ safe(suc(zero), y : val)
⇒ board(x : s, y : val)
312
9 Logische Programmierung (safe)
safe(n, x : nil)
x 6≡ plus(y, n) ∧ y 6≡ plus(x, n) ∧ safe(suc(n), x : s) ⇒ safe(n, x : (y : s))
(plus)
plus(zero, x) ≡ zero
plus(suc(x), y) ≡ suc(plus(x, y))
(enum) enum(zero) ≡ nil
enum(suc(n)) ≡ enum(n)++(suc(n) : nil)
Hornformeln für 6≡, conc und select stehen in Beispiel 9.1.
Die Menge A = N∗ wird mit folgender Interpretation von Σ zur Σ-Struktur:
Für alle a, b, v, v 0, w, w0, i, n ∈ A,
(
plusA(a, b) =
(
enumA(n) =
a + b falls a, b ∈ N,
sonst,
(1, . . . , n) falls n ∈ N,
sonst,
313
9 Logische Programmierung (i, aw) ∈ safe A ⇔ (i, a) ∈ N2 ∧ ∃ a1, . . . , an ∈ N :
(w = a1 . . . an ∧ ∀ i ≤ j ≤ n : (aj − j 6= a 6= aj + j)),
(n, w) ∈ queensA ⇔ (n, w) ∈ N × N∗ ∧ (enumA(n), w) ∈ boardA,
(v, w) ∈ boardA ⇔ ∃ n ∈ N : (v, w) ∈ boardn,
wobei boardn ⊆ N∗ × N∗ wie folgt induktiv definiert ist:
(v, w) ∈ board0 ⇔ v = = w,
(v, w) ∈ boardn+1 ⇔ ∃ v 0, w0, a1, . . . , an+1, 1 ≤ i ≤ n + 1 :
(v = a1 . . . an+1 ∧ (v, aiv 0) ∈ selectA ∧ (v 0, w0) ∈ boardn
∧ (1, aiw0) ∈ safe A.
zero, suc, nil, :, ++, select, ≡ und 6≡ werden wie in Beispiel 9.1 interpretiert.
Aufgabe Zeigen Sie A |=
V
LP .
314
9 Logische Programmierung Die folgenden Hornformeln für queens und board sind semantisch äquivalent zu den obigen. Ihre Anwendung im weiter unten definierten Berechnungskalkül führt aber schneller
zu Lösungen. Das lässt sich darauf zurückführen, dass sie einem iterativen Programm
entsprechen, während die obigen Hornformeln einem linear-rekursiven Schema folgen.
(queensI) board(enum(n), nil, val) ⇒ queens(n, val)
(boardI)
board(nil, val, val)
select(x : s, y : s0) ∧ safe(suc(zero), y : val) ∧ board(s0, y : val, val0)
⇒ board(x : s, val, val0)
Iterativ ist dieses logische Programm, weil es eine Transitionsfunktion im Sinne von Kapitel 7 realisiert, die auf Paaren von Listen natürlicher Zahlen operiert, deren zwei oben
blau bzw. rot gefärbte Komponenten die noch nicht vergebenen bzw. vergebenen Spalten
wiedergeben, in denen Damen sicher platziert werden können.
Aufgabe Transformieren Sie queensI und boardI in eine Kripke-Struktur mit Zustandsmenge N∗ × N∗ und Transitionsfunktion δ, so dass durch wiederholte Anwendung von δ
alle sicheren Platzierungen von n Damen auf einem (n × n)-Schchbrett berechnen werden
können.
o
315
9 Logische Programmierung Vom Schnitt- zum SLD-Kalkül
Für ein Goal ϕ ⇒ ⊥ schreiben wir fortan auch ϕ.
Berechnungen eines logischen Programms LP sind Schnittwiderlegungen von Φ = LP ∪
{ϕ}, wobei ϕ ein Goal ist. Wegen der speziellen Form von LP bzw. ϕ lässt sich der obige
Schnittkalkül vereinfachen, ohne dass seine Vollständigkeit bzgl. Widerlegungen von Φ
verlorengeht.
Dazu betrachten wir zunächst variablenfreie PSK -Ableitungen von Φ ` ψ mit einem
(co-)Goal ψ.
Jede solche Ableitung s lässt sich in eine Ableitung von Φ ` ψ transformieren, die keine
Resolvente zweier Hornformeln ϕ ⇒ pt und pt ∧ ϕ0 ⇒ qu enthält.
Schneidet man eine solche Resolvente nicht irgendwann mit einem Goal von s (das die
Form qu ∧ ϑ haben müsste), dann bleibt s eine Ableitung von Φ ` ψ, auch wenn die
Resolvente aus s entfernt wird.
Auch wenn man die Resolvente mit qu ∧ ϑ schneidet, ist sie überflüssig, weil dieser Schnitt
dieselbe Resolvente liefert wie der Schnitt der ersten Hornformel ϕ ⇒ pt mit der Resolvente pt ∧ ϕ0 ∧ ϑ der zweiten Hornformel pt ∧ ϕ0 ⇒ qu und dem Goal qu ∧ ϑ:
316
9 Logische Programmierung ϕ ⇒ pt
pt ∧ ϕ0 ⇒ qu
≺
ϕ ∧ ϕ0 ⇒ qu
pt ∧ ϕ0 ⇒ qu
qu ∧ ϑ
≺
0
ϕ∧ϕ ∧ϑ
qu ∧ ϑ
≺
pt ∧ ϕ0 ∧ ϑ
ϕ ⇒ pt
≺
0
ϕ∧ϕ ∧ϑ
Demnach gilt Φ `ASK ψ genau dann, wenn es eine Folge (ψ1, . . . , ψn) von Goals gibt
derart, dass ψ1 ∈ Φ, ψn = ψ und für alle 1 < i ≤ n ψi die Resolvente von ψi−1 und einer
Hornformel von Φ ist — und nicht die Resolvente zweier beliebiger Vorgänger von ψi.
Analog kann man alle Resolventen zweier co-Hornformeln aus Schnittableitungen von
Φ = LP ∪ {ϕ} `ASK ψ entfernen, wenn LP eine co-logisches Programm ist und ϕ, ψ
co-Goals sind, so dass Φ `ASK ψ genau dann gilt, wenn es eine Folge (ψ1, . . . , ψn) von
co-Goals gibt derart, dass ψ1 ∈ Φ, ψn = ψ und für alle 1 < i ≤ n ψi die Resolvente von
ψi−1 und einer co-Hornformel von Φ ist.
317
9 Logische Programmierung Aus dieser Beobachtung über variablenfreie Schnittwiderlegung ergibt sich der SLDKalkül zur Widerlegung einer Menge, die aus – nicht nur variablenfreien – (co-)Hornformeln
und einem (co-)Goal besteht:
9.1 SLD-Kalkül
Sei LP ein (co-)logisches Σ-Programm und LP 0 die Menge aller (co-)Hornformeln ϕ0, für
die es ϕ ∈ LP und eine Variablenumbenennung τ mit ϕτ = ϕ0 gibt. Sei ϕ ein Σ-(co-)Goal
mit var(φ)kvar(LP ).
Der SLD-Kalkül besteht aus fünf Regeln:
(Co-)Goal-Einführung
LP ∪ {ϕ} ` ϕ
Faktor- bzw. Summandregel
LP ∪ {ϕ} ` ϑ ∧ ϑ0 ∧ ϕ
LP ∪ {ϕ} ` ϑσ ∧ ϕσ
LP ∪ {ϕ} ` > ⇒ ϕ ∨ ϑ ∨ ϑ0
LP ∪ {ϕ} ` > ⇒ ϕσ ∨ ϑσ
σ = unify(ϑ, ϑ0)
318
9 Logische Programmierung Resolution über LP
LP ∪ {ϕ} ` ϑ0 ∧ ψ
LP ∪ {ϕ} ` ϕσ ∧ ψσ
ϕ ⇒ ϑ ∈ LP 0, σ = unify(ϑ, ϑ0),
var(ϕ ∨ ϑ) k var(ϑ0 ∨ ψ)
co-Resolution über LP
LP ∪ {ϕ} ` ψ ∨ ϑ0
LP ∪ {ϕ} ` ψσ ∨ ϕσ
ϑ ⇒ ϕ ∈ LP 0, σ = unify(ϑ, ϑ0),
var(ϑ ∨ ϕ) k var(ψ ∨ ϑ0)
Eine SLD-Widerlegung LP ∪ {ϕ} ist eine SLD-Ableitung von LP ∪ {ϕ} ` ⊥.
Der Name SLD geht zurück auf selective linear definite clause resolution. Das Adjektiv
selective spielt hier erstmal keine Rolle. Es weist auf eine mögliche Strategie hin, nach
der das Atom ausgewählt wird, das bei einem Schnitt entfernt wird. linear steht für die
Tatsache, dass sich jede Formel einer SLD-Ableitung direkt aus LP und genau einem
ihrer Vorgänger ergibt, dass sie also niemals die Resolvente zweier Resolventen enthält.
319
9 Logische Programmierung Der Begriff clause (deutsch: Klausel) umfasst Hornformeln (definite clauses) und Goals.
Eine SLD-Ableitung heißt aussagenlogisch, wenn sie aus variablenfreien Formeln besteht. Wir schreiben LP ∪ {ϕ} `ASLD ψ, falls es eine aussagenlogische SLD-Ableitung
von LP ∪ {ϕ} ` ψ gibt.
Aufgrund der obigen Bemerkungen über (co-)Hornformel-Resolventen gilt Satz 8.11 auch
für aussagenlogische SLD-Widerlegungen:
Satz 9.4 (Vollständigkeit aussagenlogischer SLD-Widerlegungen)
Sei LP ein abzählbares, variablenfreies (co-)logisches Programm und ϕ ein variablenfreies
(co-)Goal. Ist LP ∪ {ϕ} unerfüllbar, dann gilt LP ∪ {ϕ} `ASLD ⊥.
o
320
9 Logische Programmierung Satz 9.5 (Vollständigkeit von SLD-Widerlegungen)
Sei LP ein (co-)logisches Σ-Programm, ϕ ein Σ-(co-)Goal und σ : X → TΣ.
(i) Aus HE (LP ) ∪ {ϕσ} `ASLD ψ folgt LP ∪ {ϕ} `SLD ϕ0 für ein (co-)Goal ϕ0 und
ρ : X → TΣ mit ϕ0ρ = ψ und γρ = σ, wobei γ die Komposition der im Laufe der
Ableitung von LP ∪ {ϕ} ` ϕ0 gebildeten mgus ist.
(ii) Ist LP ∪ {ϕ} unerfüllbar, dann gilt LP ∪ {ϕ} `SLD ⊥ .
Beweis von (i) durch Induktion über eine – bzgl. der Anzahl n ihrer Resolventen – minimale aussagenlogische SLD-Ableitung von HE (LP ∪ {ϕ}) ` ψ.
Fall 1: n = 0. Dann ist ψ = ϕσ. Also ist (LP ∪ {ϕ} ` ϕ) eine SLD-Ableitung von
LP ∪ {ϕ} ` ϕ, die die Bedingungen von (i) erfüllt, wenn man ρ = σ und γ = idX setzt.
Fall 2: n > 0. Dann ist ψ eine Resolvente einer (co-)Hornformel von HE (LP ) und eines
(co-)Goals ψ1 und es gibt eine aussagenlogische SLD-Ableitung von HE (LP )∪{ϕσ} ` ψ1
mit weniger als n Resolventen. Nach Induktionsvoraussetzung gibt es ein (co-)Goal ϕ1,
eine SLD-Ableitung von LP ∪ {ϕ} ` ϕ1 und ρ : X → TΣ und mit ϕ1ρ = ψ1 und γρ = σ,
wobei γ die Komposition der im Laufe der Ableitung von LP ∪{ϕ} ` ϕ1 gebildeten mgus
ist.
321
9 Logische Programmierung Wegen ϕ1ρ = ψ1 liefert Lemma 8.10 ein (co-)Goal ϕ2, eine SLD-Ableitung von LP ∪
{ϕ1} ` ϕ2 und ρ0 : X → TΣ mit ϕ2ρ0 = ψ und γ 0ρ0 = ρ, wobei γ 0 die Komposition der
im Laufe der Ableitung gebildeten mgus ist.
Zusammengenommen liefern die beiden SLD-Ableitungen eine SLD-Ableitung von LP ∪
{ϕ} ` ϕ2, die die Bedingungen von (i) erfüllt: ϕ2ρ0 = ψ, γγ 0ρ0 = γρ = σ und γ 0γ ist die
Komposition der im Laufe der Ableitung gebildeten mgus.
Beweis von (ii).
Sei σ : X → TΣ. Da LP ∪ {ϕ} unerfüllbar ist und LP und ϕ keine gemeinsamen
Variablen haben, ist auch LP ∪ {ϕσ} unerfüllbar und damit nach Satz 8.8 auch die
Herbrand-Expansion von LP ∪ {ϕσ}. Da diese abzählbar ist und mit HE(LP ) ∪ {ϕσ}
übereinstimmt, gilt HE(LP ) ∪ {ϕσ} `ASLD ⊥ nach Satz 9.4. Aus (i) folgt schließlich
LP ∪ {ϕ} `SLD ⊥.
o
Zusammen mit der Korrektheit von PSK -Ableitungen (Satz 8.9) liefert Satz 9.5 Charakterisierungen der Existenz von Lösungen einer Konjunktion ϕ (bzw. negierten Disjunktion
¬ϕ) von Atomen in jeder Σ-Struktur, die das logische (bzw. co-logische) Programm LP
erfüllt:
322
9 Logische Programmierung Sei LP ein logisches Programm und ϕ eine Konjunktion von Atomen.
LP |= any(ϕ)
⇔
LP ∪ {¬any(ϕ)} ist unerfüllbar
⇔
LP ∪ {all(¬ϕ)} ist unerfüllbar
⇔
LP ∪ {ϕ} ist unerfüllbar
8.9 (ii), 9.5 (ii)
⇔
(1)
LP ∪ {ϕ} `SLD ⊥.
Sei LP ein co-logisches Programm und ϕ eine Disjunktion von Atomen.
LP |= any(¬ϕ)
⇔
LP ∪ {¬any(¬ϕ)} ist unerfüllbar
⇔
LP ∪ {all(ϕ)} ist unerfüllbar
⇔
LP ∪ {ϕ} ist unerfüllbar
8.9 (ii), 9.5 (ii)
⇔
(2)
LP ∪ {ϕ} `SLD ⊥.
323
9 Logische Programmierung Da Kongruenzaxiome Hornformeln und Diskongruenzaxiome co-Hornformeln sind, gelten
(1) und (2) entsprechend modifiziert auch in der Prädikatenlogik mit Gleichheit:
Sei LP ein logisches Programm und ϕ eine Konjunktion von Atomen.
LP |=EQ any(ϕ)
⇔
LP ∪ {¬any(ϕ)} hat kein Gleichheitsmodell
⇔
LP ∪ {all(¬ϕ)} hat kein Gleichheitsmodell
⇔
LP ∪ {ϕ} hat kein Gleichheitsmodell
8.13 (ii)
⇔
8.9 (ii), 9.5 (ii)
⇔
(3)
LP ∪ congΣ ∪ {ϕ} ist unerfüllbar
LP ∪ congΣ ∪ {ϕ} `SLD ⊥.
324
9 Logische Programmierung Sei LP ein co-logisches Programm und ϕ eine Disjunktion von Atomen.
LP |=EQ any(¬ϕ)
⇔
LP ∪ {¬any(¬ϕ)} hat kein Gleichheitsmodell
⇔
LP ∪ {all(ϕ)} hat kein Gleichheitsmodell
⇔
LP ∪ {ϕ} hat kein Gleichheitsmodell
8.13 (ii)
⇔
8.9 (ii), 9.5 (ii)
⇔
(4)
LP ∪ disgΣ ∪ {ϕ} ist unerfüllbar
LP ∪ disgΣ ∪ {ϕ} `SLD ⊥.
9.2 Kleinste und größte Herbrand-Modelle
Sei LP ein (co-)logisches Σ-Programm. Wie man sofort sieht, können Schnitte von (co)Hornformeln niemals zu ⊥ führen, d.h. LP 6`PSK ⊥. Also ist LP nach Satz 8.12 (ii)
erfüllbar. Folglich hat LP nach Lemma 8.1 ein Herbrand-Modell.
**** Wir ordnen Herbrand-Strukturen nach der Mächtigkeit ihrer Relationen:
Für alle Herbrand-Strukturen A, B,
325
9 Logische Programmierung A ≤ B ⇔def
pA ⊆ pB für alle Prädikate p von Σ.
Lemma 9.6
(i) Seien LP ein logisches Σ-Programm, ϕ und ψ Σ-Goals und (ϕ1, . . . , ϕn) eine SLDAbleitung aus Φ ∪ {ϕ}. Dann ist (ϕ1 ∧ ψ, . . . , ϕn ∧ ψ) eine SLD-Ableitung aus LP ∪
{ϕ ∧ ψ}.
(ii) Seien LP ein co-logisches Σ-Programm, ϕ und ψ Σ-co-Goals und (ϕ1, . . . , ϕn) eine
SLD-Ableitung aus Φ ∪ {ϕ}. Dann ist (ϕ1 ∨ ψ, . . . , ϕn ∨ ψ) eine SLD-Ableitung aus
LP ∪ {ϕ ∨ ψ}.
o
Satz 9.7
(i) Sei LP ein logisches Σ-Programm und M (LP ) die Herbrand-Struktur, die jedes
Prädikat p von Σ wie folgt interpretiert:
pM (LP ) = {t ∈ TΣ∗ | LP ∪ {pt} `SLD ⊥}.
V
M (LP ) ist das bzgl. ≤ kleinste Herbrand-Modell von LP .
(ii) Sei LP ein co-logisches Σ-Programm und M (LP ) die Herbrand-Struktur, die jedes
326
Prädikat p von Σ wie folgt interpretiert:
pM (LP ) = {t ∈ TΣ∗ | LP ∪ {pt} 6`SLD ⊥}.
V
M (LP ) ist das bzgl. ≤ größte Herbrand-Modell von LP .
Beweis von (i). Wir zeigen zunächst, dass M (LP ) ein Modell von
V
LP ist.
Sei ϕ ⇒ pt ∈ LP und σ : X → TΣ mit M (LP ) |= ϕσ.
Dann gibt es Atome p1t1, . . . , pntn mit ϕ = p1t1 ∧ · · · ∧ pntn, also
ϕσ = p1t1σ ∧ · · · ∧ pntnσ,
(5)
M (LP )
derart, dass für alle 1 ≤ i ≤ n M (LP ) |= pitiσ gilt, also tiσ ∈ pi
und daher
LP ∪ {pitiσ} `SLD ⊥.
Für alle 1 ≤ i ≤ n sei (pitiσ, ϕi1 . . . , ϕiki , ⊥) eine SLD-Widerlegung von LP ∪ {pitiσ}.
Daraus erhält man durch Anwendung der Resolution, aus (5) und nach Lemma 9.6 (i)
die folgende SLD-Widerlegung von LP ∪ {ptσ}:
327
9 Logische Programmierung (ptσ, ϕσ,
ϕ12 ∧ p2t2σ ∧ · · · ∧ pntnσ, . . . , ϕ1k1 ∧ p2t2σ ∧ · · · ∧ pntnσ,
> ∧ p2t2σ ∧ · · · ∧ pntnσ,
> ∧ ϕ22 ∧ · · · ∧ pntnσ, . . . , > ∧ ϕ2k2 ∧ · · · ∧ pntnσ,
> ∧ > ∧ · · · ∧ pn−1tn−1σ ∧ pntnσ,
...,
> ∧ > ∧ · · · ∧ > ∧ pntnσ,
> ∧ > ∧ · · · ∧ > ∧ ϕn2, . . . , > ∧ > ∧ · · · ∧ > ∧ ϕnkn ,
> ∧ > ∧ · · · ∧ > ∧ >)
Also gilt
LP ∪ {ptσ} `SLD ⊥,
d.h. tσ ∈ pM (LP ), und daher M (LP ) |= ptσ.
Zu zeigen bleibt, dass M (LP ) das bzgl. ≤ kleinste Herbrand-Modell von
V
LP ist.
328
9 Logische Programmierung V
Sei A ein Herbrand-Modell von LP , p ein Prädikat von Σ und t ∈ pM (LP ). Nach
Definition von pM (LP ) gilt LP ∪ {pt} `SLD ⊥, also auch LP ∪ {pt} `ASK ⊥.
V
V
Nach Satz 8.9 (ii) ist LP ∧pt unerfüllbar. Da A ein Modell von LP ist, folgt A |= pt,
also t ∈ pA.
V
Beweis von (ii). Wir zeigen zunächst, dass M (LP ) ein Modell von LP ist.
Sei pt ⇒ ϕ ∈ LP und σ : X → TΣ mit M (LP ) |= ptσ. Dann gilt
^
HE ( LP ) ∪ {ptσ} 6`SLD ⊥.
(6)
Außerdem gibt es Atome p1t1, . . . , pntn mit ϕ = p1t1 ∨ · · · ∨ pntn, also
ϕσ = p1t1σ ∨ · · · ∨ pntnσ.
(7)
Angenommen, für alle 1 ≤ i ≤ n gilt
LP ∪ {pitiσ} `SLD ⊥.
Dann gäbe es für alle 1 ≤ i ≤ n eine SLD-Widerlegung (pitiσ, ϕi1 . . . , ϕiki , ⊥) von
LP ∪ {pitiσ} und man erhielte durch Anwendung der co-Resolution, aus (7) und nach
Lemma 9.6 (ii) die folgende SLD-Widerlegung von LP ∪ {ptσ}:
329
9 Logische Programmierung (ptσ, ϕσ,
ϕ12 ∨ p2t2σ ∨ · · · ∨ pntnσ, . . . , ϕ1k1 ∨ p2t2σ ∨ · · · ∨ pntnσ,
⊥ ∨ p2t2σ ∨ · · · ∨ pntnσ,
⊥ ∨ ϕ22 ∨ · · · ∨ pntnσ, . . . , ⊥ ∨ ϕ2k2 ∨ · · · ∨ pntnσ,
⊥ ∨ ⊥ ∨ · · · ∨ pn−1tn−1σ ∨ pntnσ,
...,
⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ pntnσ,
⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ ϕn2, . . . , ⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ ϕnkn ,
⊥ ∨ ⊥ ∨ · · · ∨ ⊥ ∨ ⊥)
Demnach würde LP ∪ {ptσ} `SLD ⊥ gelten — im Widerspruch zu (6).
M (LP )
Also gibt es 1 ≤ i ≤ n mit LP ∪ {pitiσ} `SLD ⊥, d.h. tiσ ∈ pi
M (LP ) |= pitiσ. Wegen (7) folgt M (LP ) |= ϕσ.
, und daher
V
Zu zeigen bleibt, dass M (LP ) das bzgl. ≤ größte Herbrand-Modell von LP ist.
V
Sei A ein Herbrand-Modell von LP , p ein Prädikat von Σ und t ∈ pA.
330
9 Logische Programmierung Wäre t 6∈ pM (LP ), dann gälte LP ∪ {pt} `SLD ⊥ nach Definition von pM (LP ), also auch
V
LP ∪ {pt} `ASK ⊥. Nach Satz 8.9 (ii) wäre LP ∧ pt unerfüllbar. Da A ein Modell
V
von LP ist, könnte demnach – im Widerspruch zur Annahme – A kein Modell von pt
sein. Also ist t ∈ pM (LP ).
o
Wie die Korrektheit und Vollständigkeit von Schnittwiderlegungungen (8.9 (ii) und 8.12
(ii)), so lässt sich auch Satz 9.7 mit Hilfe von Satz 8.13 (ii) auf Gleichheitsmodelle übertragen:
Satz 9.8 OP bezeichne die Menge der Operationen von Σ.
(i) Sei LP ein logisches Σ-Programm. cM (LP ) =def H(LP ∪ congΣ)/≡H(LP ∪congΣ) ist
V
das bzgl. der Mächtigkeit ihrer Relationen kleinste Modell von LP unter allen ΣStrukturen, deren OP -Redukt mit dem OP -Redukt von cM (LP )|OP übereinstimmt (siehe Kapitel 8).
(ii) Sei LP ein co-logisches Σ-Programm. dM (LP ) =def H(LP ∪ disgΣ)/∼H(LP ∪disgΣ)
V
ist das bzgl. der Mächtigkeit ihrer Relationen größte Modell von LP unter allen ΣStrukturen, deren OP -Redukt mit dem OP -Redukt von dM (LP )|OP übereinstimmt. o
331
9 Logische Programmierung Die Menge disgΣ der Σ-Disgruenzaxiome erhält man durch Kontraposition aus der Menge congΣ der Σ-Kongruenzaxiome und umgekehrt. Für beliebige Gentzenformelmengen
definieren wir deren Kontraposition wie folgt:
Sei Φ eine Menge von Gentzenformeln über AtΣ(X) und CΣ die Menge aller Operationen
von Σ und aller Prädikate p, für die Σ ein Prädikat p enthält. Die Kontraposition C(Φ)
von Φ ist die wie folgt induktiv definierte Menge von Gentzenformeln über AtCΣ(X):
• C(Φ) = {C(ϕ) | ϕ ∈ Φ}.
• Für alle Gentzenformeln ϕ ⇒ ψ über AtΣ(X), C(ϕ ⇒ ψ) = C(ψ) ⇒ C(ϕ).
• Für alle Σ-Atome p1t1, . . . , pntn,
C(p1t1 ∧ · · · ∧ pntn) = p1t1 ∨ · · · ∨ pntn,
C(p1t1 ∨ · · · ∨ pntn) = p1t1 ∧ · · · ∧ pntn.
In Beispiel 9.1 bilden die co-Hornformeln für unsorted die Kontraposition der Hornformeln für sorted und umgekehrt.
332
9 Logische Programmierung Satz 9.9
Sei LP ein (co-)logisches Σ-Programm. Für alle Prädikate p von Σ ist pM (C(LP )) das
Komplement von pM (LP ):
pM (C(LP )) = TΣ∗ \ pM (LP ).
Beweis. O.B.d.A. sei LP ein logisches Σ-Programm und p ein Prädikat von Σ. Dann
ist C(LP ) ein co-logisches CΣ-Programm. Da C(LP ) ∪ {pt} die Kontraposition von
LP ∪ {pt} ist, erhält man (durch Induktion über Ableitungslängen) folgende Äquivalenz:
C(LP ) ∪ {pt} `SLD ⊥
⇔
LP ∪ {pt} `SLD ⊥.
Also gilt:
∗
pM (C(LP )) = {t ∈ TCΣ
| C(LP ) ∪ {pt} 6`SLD ⊥} = {t ∈ TΣ∗ | LP ∪ {pt} 6`SLD ⊥}
= TΣ∗ \ {t ∈ TΣ∗ | LP ∪ {pt} `SLD ⊥} = TΣ∗ \ pM (LP ).
o
333
9 Logische Programmierung Während (1)-(4) Beweismethoden für Eigenschaften aller Modelle eines (co-)logischen
Programms LP liefern, ergeben sich aus der Minimalität bzw. Maximalität von M (LP )
– Satz 4.2 (iii) bzw. (iv) entsprechende – (Co-)Induktionsregeln, mit denen Eigenschaften
von M (LP ) bewiesen werden können.
Häufig stehen gerade diese Eigenschaften bei der Entwicklung eines (co-)logischen Programms im Vordergrund, was die herausragende Bedeutung seines kleinsten bzw. größten
Herbrand-Modells gegenüber beliebigen Modellen unterstreicht.
(Co-)Induktionsregeln werden ausführlich in [27] sowie meinen Lehrveranstaltungen über
logisch-algebraischen Systementwurf behandelt und vom Beweiseditor + Expander2 neben (co-)Resolution in mehreren automatisch bzw. halbautomatisch angewendet.
9.3 Berechnungskalkül
Wie Satz 9.5 (i) zeigt, dient der SLD-Kalkül nicht nur dem Beweis der Existenz von
Lösungen von (co-)Goals, sondern auch der Berechnung der Lösungen selbst in Form der
Komposition der bei den Regelanwendungen erzeugten mgus.
334
9 Logische Programmierung Im Folgenden werden wir die mgus in Gestalt von (Un-)Gleichungen x ≡ xσ bzw. x 6≡ xσ
mit den jeweiligen Regelsukzedenten konjunktiv bzw. disjunktiv verknüpfen. Aus der
Ableitung solcher (Un-)Gleichungen aus einem (co-)Goal ϕ kann dann geschlossen werden,
dass die durch sie repräsentierte Variablenbelegung ϕ in Modellen von LP löst.
Sei LP ein (co-)logisches Σ-Programm. Eine Folge (ϕ1, . . . , ϕn) von Σ-(co-)Goals heißt
LP -Berechnung von ϕn aus ϕ1, wenn für alle 1 < i ≤ n ϕi das Ergebnis der Anwendung einer der folgenden Regeln auf ϕi−1 ist.
Wieder bezeichnen ϑ und ϑ0 einzelne Atome, ϕ, ψ – möglicherweise leere – Konjunktionen
oder Disjunktionen von Atomen und LP 0 die Menge aller (co-)Hornformeln ϕ0, für die es
ϕ ∈ LP und eine Variablenumbenennung τ mit ϕτ = ϕ0 gibt.
Faktorregel
ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥
V
ϑσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥
ϕ, ψ ∈ TPL(AtΣ(X)), σ = unify(ϑ, ϑ0)
Resolution über LP
ϑ0 ∧ ϕ ⇒ ⊥
V
ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥
ψ ⇒ ϑ ∈ LP,0 σ = unify(ϑ, ϑ0),
var(ψ ⇒ ϑ) k var(ϑ0 ∧ ϕ)
335
9 Logische Programmierung Summandregel
ϕ ∨ ϑ ∨ ϑ0
W
ϕσ ∨ ϑσ ∨ {x 6≡ xσ | x ∈ supp(σ)}
σ = unify(ϑ, ϑ0)
co-Resolution über LP
ϕ ∨ ϑ0
W
ϕσ ∨ ψσ ∨ {x 6≡ xσ | x ∈ supp(σ)}
ϑ ⇒ ψ ∈ LP 0, σ = unify(ϑ, ϑ0),
mit var(ϑ ⇒ ψ) k var(ϕ ∨ ϑ0)
Wir schreiben ϕ `LP ψ, falls es eine LP -Berechnung von ψ aus ϕ gibt.
Obgleich auch die so modifizierten SLD-Regeln aus (co-)Goals bestehende Schnittableitungen (ϕ1, . . . , ϕn) erzeugen, sind diese nicht korrekt im Sinne von Satz 8.9 (i). Anstelle
V
der Gültigkeit von ϕn in allen Modellen von LP ∧ϕ1 liefern sie die Gültigkeit der ImpliV
kation ϕ1 ⇒ ϕn in allen Modellen von LP , die die Kongruenz- bzw. Disgruenzaxiome
erfüllen:
336
9 Logische Programmierung Satz 9.10 (Korrektheit von LP -Berechnungen)
(i) Seien LP ein logisches Σ-Programm, das die Σ-Kongruenzaxiome enthält, und ϕ, ψ
V
Σ-Goals mit ϕ `LP ψ. Alle Modelle von LP erfüllen ϕ ⇒ ψ, also auch ψ ⇒ ϕ.
(ii) Seien LP ein co-logisches Σ-Programm, das die Σ-Disgruenzaxiome enthält, und ϕ, ψ
V
Σ-co-Goals mit ϕ `LP ψ. Alle Modelle von LP erfüllen ϕ ⇒ ψ.
V
Beweis von (i). Sei A ein Modell von LP . Wir zeigen, dass für die Faktorregel und
die Resolution, den jeweiligen Antezendenten ϕ1 und den jeweiligen Sukzedenten ϕ2 A
ein Modell von ϕ1 ⇒ ϕ2 ist. Daraus folgt (i) durch Induktion über die Länge einer
LP -Berechnung von ψ aus ϕ.
Da A die Σ-Kongruenzaxiome erfüllt, ist ≡A eine Σ-Kongruenz.
Fall 1:
ϕ1
ϕ2
ist die Faktorregel.
V
Dann gilt ϕ1 = (ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥) und ϕ2 = (ϑσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒
⊥) für Formeln bzw. Substitutionen ϕ, ϑ, ϑ0, σ, die die Anwendbarkeitsbedingungen der
Summandregel erfüllen.
337
9 Logische Programmierung Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden zwei Fälle: (*) h ≡A h∗ ◦ σ oder (**) es gibt
x ∈ supp(σ) mit h(x) 6≡A h∗(xσ). Aus
h ∈ gA∗ (ϑσ ∧ ϕσ ⇒ ⊥)
8.3
ϑσ=ϑ0 σ
=
gA∗ (ϑσ ∧ ϑ0σ ∧ ϕσ ⇒ ⊥)
⇔ h∗ ◦ σ ∈ gA∗ (ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥)
(∗), 8.4 (ii)
⇔
h ∈ gA∗ (ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥) = gA∗ (ϕ1)
und A |=h ϕ1 folgt
A |=h ϑσ ∧ ϕσ ⇒ ⊥
(1)
^
A |=h {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥,
(2)
im Fall (*). Im Fall (**) gilt
weil (**) äquivalent ist zu:
V
V
∗
∗
h ∈ gA( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) = gA(¬ {x ≡ xσ | x ∈ supp(σ)})
W
S
= gA∗ ( {¬ x ≡ xσ | x ∈ supp(σ)}) = {gA∗ (¬ x ≡ xσ) | x ∈ supp(σ)}
S X
T
X
= {A \ gA(x ≡ xσ) | x ∈ supp(σ)} = A \ {gA(x ≡ xσ) | x ∈ supp(σ)}
T
= AX \ {{h0 ∈ AX | h0(x) ≡A h0∗(xσ)} | x ∈ supp(σ)}
= AX \ {h0 ∈ AX | h0(x) ≡A h0∗(xσ), x ∈ supp(σ)}
= {h0 ∈ AX | h0(x) 6≡A h0∗(xσ), x ∈ supp(σ)}.
338
9 Logische Programmierung Also folgt A |= ϕ2 aus
h ∈ gA∗ (ϕ2) = gA∗ (ϑσ ∧ ϕσ ∧
V
{x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥)
V
= gA∗ ((ϑσ ∧ ϕσ ⇒ ⊥) ∨ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥))
V
= gA∗ (ϑσ ∧ ϕσ ⇒ ⊥) ∪ gA∗ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥
⇔ (1) oder (2) ⇐ (*) oder (**).
Fall 2:
ϕ1
ϕ2
ist die Resolution.
V
Dann gilt ϕ1 = (ϑ0 ∧ ψ ⇒ ⊥) und ϕ2 = (ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥) für
ψ ⇒ ϑ ∈ LP 0 sowie Formeln bzw. Substitutionen ϑ0, ϕ, σ, die die Anwendbarkeitsbedingungen der Resolution erfüllen.
Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden wieder die Fälle (*): h ≡A h∗ ◦ σ und (**):
es gibt x ∈ supp(σ) mit h(x) 6≡A h∗(xσ). Aus
h∈
8.3
gA∗ (ϑσ
∧ ϕσ ⇒ ⊥)
ϑσ=ϑ0 σ
=
⇔ h∗ ◦ σ ∈ gA∗ (ϑ0 ∧ ϕ ⇒ ⊥)
gA∗ (ϑ0σ ∧ ϕσ ⇒ ⊥)
(∗), 8.4 (ii)
⇔
h ∈ gA∗ (ϑ0 ∧ ϕ ⇒ ⊥) = gA∗ (ϕ1)
und A |=h ϕ1 folgt A |=h ϑσ ∧ ϕσ ⇒ ⊥ im Fall (*), also wegen ψ ⇒ ϑ ∈ LP und Lemma
8.3:
A |=h ψσ ∧ ϕσ ⇒ ⊥.
(3)
339
9 Logische Programmierung Im Fall (**) gilt wieder (2). Also folgt A |= ϕ2 aus
V
h ∈ gA∗ (ϕ2) = gA∗ (ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥)
V
∗
= gA((ψσ ∧ ϕσ ⇒ ⊥) ∨ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥))
V
= gA∗ (ψσ ∧ ϕσ ⇒ ⊥) ∪ gA∗ ( {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥)
⇔ (3) oder (2) ⇐ (*) oder (**).
V
Beweis von (ii). Sei A ein Modell von LP . Wir zeigen, dass für die Summandregel und
die co-Resolution, dem jeweiligen Antezendenten ϕ1 und dem jeweiligen Sukzedenten ϕ2
A ein Modell von ϕ1 ⇒ ϕ2 ist. Daraus folgt (ii) durch Induktion über die Länge einer
LP -Berechnung von ψ nach ϕ.
Da A die Σ-Disgruenzaxiome erfüllt, ist ∼A = A2\ 6≡A eine Σ-Kongruenz.
Fall 1:
ϕ1
ϕ2
ist die Summandregel.
W
Dann gilt ϕ1 = (ϕ ∨ ϑ ∨ ϑ0) und ϕ2 = (ϕσ ∨ ϑσ ∨ {x 6≡ xσ | x ∈ supp(σ)}) für Formeln
bzw. Substitutionen ϕ, ϑ, ϑ0, σ, die die Anwendbarkeitsbedingungen der Summandregel
erfüllen.
340
9 Logische Programmierung Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden zwei Fälle: (*) h ∼A h∗ ◦ σ oder (**) es gibt
x ∈ supp(σ) mit h(x) 6≡A h∗(xσ). Aus
h ∈ gA∗ (ϕσ ∨ ϑσ)
8.3
ϑσ=ϑ0 σ
=
gA∗ (ϕσ ∨ ϑσ ∨ ϑ0σ)
⇔ h∗ ◦ σ ∈ gA∗ (ϕ ∨ ϑ ∨ ϑ0)
(∗), 8.4 (ii)
⇔
h ∈ gA∗ (ϕ ∨ ϑ ∨ ϑ0) = gA∗ (ϕ1)
und A |=h ϕ1 folgt
A |=h ϕσ ∨ ϑσ
(1)
_
A |=h {x 6≡ xσ | x ∈ supp(σ)},
(2)
im Fall (*). Im Fall (**) gilt
weil (**) äquivalent ist zu:
W
W
h ∈ gA∗ ( {x 6≡ xσ | x ∈ supp(σ)}) = gA∗ ( {x 6≡ xσ | x ∈ supp(σ)})
S
= {gA(x 6≡ xσ) | x ∈ supp(σ)}
S
= {{h0 ∈ AX | h0(x) 6≡A h0∗(xσ)} | x ∈ supp(σ)}
= {h0 ∈ AX | h0(x) 6≡A h0∗(xσ), x ∈ supp(σ)}.
341
9 Logische Programmierung Also folgt A |= ϕ2 aus
h ∈ gA∗ (ϕ2) = gA∗ (ϕσ ∨ ϑσ ∨
W
{x 6≡ xσ | x ∈ supp(σ)})
W
∗
= gA((ϕσ ∨ ϑσ) ∨ ( {x 6≡ xσ | x ∈ supp(σ)}))
W
= gA∗ (ϕσ ∨ ϑσ) ∪ gA∗ ( {x 6≡ xσ | x ∈ supp(σ)})
⇔ (1) oder (2) ⇐ (*) oder (**).
Fall 2:
ϕ1
ϕ2
ist die co-Resolution.
0
W
Dann gilt ϕ1 = (ϕ∧ϑ ) und ϕ2 = (ϕσ∨ψσ∨ {x 6≡ xσ | x ∈ supp(σ)}) für ϑ ⇒ ψ ∈ LP
sowie Formeln bzw. Substitutionen ϑ0, ϕ, , σ, die die Anwendbarkeitsbedingungen der coResolution erfüllen.
Sei A |= ϕ1 und h ∈ AX . Wir unterscheiden wieder die Fälle (*): h ∼A h∗ ◦ σ und (**):
es gibt x ∈ supp(σ) mit h(x) 6∼A h∗(xσ). Aus
h∈
8.3
gA∗ (ϕσ
∨ ϑσ)
ϑσ=ϑ0 σ
=
⇔ h∗ ◦ σ ∈ gA∗ (ϕ ∨ ϑ0)
gA∗ (ϕσ ∨ ϑ0σ)
(∗), 8.4 (ii)
⇔
h ∈ gA∗ (ϕ ∨ ϑ0) = gA∗ (ϕ1)
und A |=h ϕ1 folgt A |=h ϕσ ∨ ϑσ im Fall (*), also wegen ϑ ⇒ ψ ∈ LP und Lemma 8.3:
342
9 Logische Programmierung A |=h ϕσ ∨ ψσ.
(3)
Im Fall (**) gilt wieder (2). Also folgt A |= ϕ2 aus
W
h ∈ gA∗ (ϕ2) = gA∗ (ϕσ ∨ ψσ ∨ {x 6≡ xσ | x ∈ supp(σ)})
W
∗
= gA((ϕσ ∨ ψσ) ∨ ( {x 6≡ xσ | x ∈ supp(σ)}))
W
= gA∗ (ϕσ ∨ ψσ) ∪ gA∗ ( {x 6≡ xσ | x ∈ supp(σ)})
⇔ (3) oder (2) ⇐ (*) oder (**).
o
V
W
Konjunktionen der Form ni=1 xi ≡ ti und Disjunktionen der Form ni=1 xi 6≡ ti heißen
gelöste Σ-Formeln, wenn x1, . . . , xn paarweise verschiedene Variablen sind und für alle
1 ≤ i ≤ n var(ti) und {x1, . . . , xn} disjunkt sind.
Korollar 9.11
Vn
Wn
0
Seien sol = ( i=1 xi ≡ ti) und sol = ( i=1 xi 6≡ ti) gelöste Σ-Formeln und σ =
{t1/x1, . . . , tn/xn}.
Seien LP ein logisches Σ-Programm, das die Σ-Kongruenzaxiome enthält, und ϕ, ψ ΣGoals.
343
9 Logische Programmierung V
(i) Aus ϕ `LP ψ ∧ sol folgt LP |= (ψσ ⇒ ϕσ).
V
(ii) Aus ϕ `LP sol folgt LP |= ϕσ.
Seien LP ein co-logisches Σ-Programm, das die Σ-Disgruenzaxiome enthält, und ϕ, ψ
Σ-co-Goals.
V
(iii) Aus ϕ `LP (ψ ∨ sol0) folgt LP |= (ϕσ ⇒ ψσ).
V
0
(iv) Aus ϕ `LP sol folgt LP ∪ |= any(¬ϕσ).
V
Beweis von (i). Sei A ein Modell von LP und h ∈ AX mit A |=h ψσ. Nach Voraussetzung und Satz 9.10 (i) erfüllt A die Implikation (ψ ∧ sol) ⇒ ϕ. Damit folgt A |=h ϕσ
aus
A |=h solσ.
(1)
Nach Definition von σ erhält man (1) wie folgt:
V
V
T
h ∈ gA∗ (solσ) = gA∗ ( ni=1 xiσ ≡ tiσ) = gA∗ ( ni=1 ti ≡ ti) = ni=1 gA(ti ≡ ti)
T
A |= x≡x
= ni=1{h0 ∈ AX | h0(ti) ≡A h0(ti)} = = AX .
(ii) entspricht (i) für den Fall ψ = >.
344
9 Logische Programmierung V
Beweis von (iii). Sei A ein Modell von LP und h ∈ AX mit A |=h ϕσ. Nach Voraussetzung und Satz 9.10 (ii) erfüllt A die Implikation ϕ ⇒ (ψ ∨ sol0). Damit folgt A |=h ψσ
aus:
A |=h sol0σ.
(2)
Nach Definition von σ erhält man (2) wie folgt:
Wn
Wn
Sn
∗
0
∗
∗
h 6∈ gA(sol σ) = gA( i=1 xiσ 6≡ tiσ) = gA( i=1 ti 6≡ ti) = i=1 gA(ti 6≡ ti)
S
A |= x6≡x
= ni=1{h0 ∈ AX | h0(ti) 6≡A h0(ti)} = ∅.
(iv) entspricht (iii) für den Fall ψ = ⊥.
o
Eine SLD-Ableitung (ϕ1, . . . , ϕn) heißt kanonisch, wenn für alle 1 ≤ i < n der Support
der beim Schritt von ϕi nach ϕi+1 gebildeten Variablenumbenennung keine Variablen von
Si
k=1 ϕk enthält.
Zu jeder SLD-Ableitung (ϕ1, . . . , ϕn) gibt es eine Variablenumbenennung τ derart, dass
(ϕ1, ϕ2τ, . . . , ϕnτ ) kanonisch ist.
345
9 Logische Programmierung Wie man leicht sieht, sind die Supports der im Laufe einer kanonischen SLD-Ableitung
(ϕ, ϕ1, . . . , ϕn) bzw. (ψ, ψ1, . . . , ψn) von (co-)Goals aus LP ∪ {ϕ} bzw. LP ∪ {ψ} konstruierten mgus γ1, . . . , γn und damit auch die Supports der Kompositionen δi = γ1 . . . γi
paarweise disjunkt.
Folglich sind für alle 1 ≤ i ≤ n die Σ-Formeln
^
soli = (
x ≡ xδi) und soli0 = (
x∈supp(δi )
_
x 6≡ xδi)
x∈supp(δi )
gelöst und
(ϕ, ϕ1 ∧ sol1, . . . , ϕn ∧ soln) bzw. (ψ, ψ1 ∨ sol10 , . . . , ψn ∨ soln0 )
LP -Berechnungen.
Für alle 1 ≤ i ≤ n gilt also:
LP ∪ {ϕ} `SLD ϕi
LP ∪ {ψ} `SLD ψi
⇒
⇒
ϕ `LP ϕi ∧ soli,
ψ `LP ψi ∨ soli0 .
(1)
(2)
346
9 Logische Programmierung Satz 9.12 (Vollständigkeit von LP -Berechnungen)
(i) Sei LP ein logisches Σ-Programm, das die Σ-Kongruenzaxiome enthält, ϕ eine KonV
junktion von Σ-Atomen und σ : X → TΣ mit LP |= ϕσ.
V
Dann gibt es eine gelöste Σ-Formel sol = ( ni=1 xi ≡ ti) mit ϕ `LP sol und
{t1/x1, . . . , tn/xn} ≤ σ (siehe Kapitel 8).
(ii) Sei LP ein logisches Σ-Programm, das die Σ-Disgruenzaxiome enthält, ϕ eine DisV
junktion von Σ-Atomen und σ : X → TΣ mit LP |= ¬ϕσ.
Wn
0
Dann gibt es eine gelöste Σ-Formel sol = ( i=1 xi 6≡ ti) mit ϕ `LP sol0 und
{t1/x1, . . . , tn/xn} ≤ σ.
Beweis von (i).
V
V
Nach Voraussetzung ist LP ∧ ¬ϕσ, also auch LP ∧ ϕσ unerfüllbar. Also gibt es nach
Satz 9.5 (ii) eine SLD-Widerlegung von LP ∪ {ϕσ}, die aussagenlogisch ist, weil σ eine
Grundsubstitution ist.
Daher gibt es nach Satz 9.5 (i) eine o.B.d.A. kanonische SLD-Widerlegung von LP ∪ {ϕ}
mit γ ≤ σ, wobei γ die Komposition der im Laufe der Widerlegung gebildeten mgus ist.
347
9 Logische Programmierung V
Wegen (1) gilt also ϕ `LP sol für sol = ( x∈supp(γ) x ≡ xγ).
Beweis von (ii).
V
Nach Voraussetzung ist LP ∧ ϕσ unerfüllbar. Also gibt es nach Satz 9.5 (ii) eine SLDWiderlegung von LP ∪ {ϕσ}, die aussagenlogisch ist, weil σ eine Grundsubstitution ist.
Daher gibt es nach Satz 9.5 (i) eine o.B.d.A. kanonische SLD-Widerlegung von LP ∪ {ϕ}
mit γ ≤ σ, wobei γ die Komposition der im Laufe der Widerlegung gebildeten mgus ist.
W
Wegen (2) gilt also ϕ `LP sol0 für sol0 = ( x∈supp(γ) x 6≡ xγ).
o
Beispiele von Berechnungen logischer Programme
Die folgenden Ableitungen verwenden die logischen Programme der obigen Beispiele 9.19.3 und wurden mit dem Beweiseditor+ Expander2 auf der Grundlage der axiomatischen
Spezifikation + log4 erzeugt.
Jedes Goal ϕ ⇒ ⊥ wird hier nur durch seine Prämisse ϕ dargestellt. Das jeweils ausgewählte Atom eines Goals wird gleichzeitig mit allen (co-)Hornformeln geschnitten, deren
Konklusion mit dem (co-)Atom unifizierbar ist. Deshalb besteht das jeweilige Redukt aus
der Dis- bzw. Konjunktion ihrer jeweiligen Prämissen bzw. Konklusionen.
348
9 Logische Programmierung Variablen, die in der Prämisse bzw. Konklusion, aber nicht der Konklusion bzw. Prämissen einer der benutzten (co-)Hornformeln vorkommen, werden im Redukt existenz- bzw.
allquantifiziert.
True steht dort für >, False für ⊥, & für ∧, | für ∨, Any für ∃, All für ∀, <= für le,
=/= für 6≡, [] für nil, : für cons, - für remove, ++ für conc, + für plus und [1..n] für
enum(n).
Kongruenzaxiome sowie Hornformeln für die eben genannten Operationen bzw. Prädikate
sind in + Expander2 eingebaut und tauchen deshalb in + log4 nicht auf. Stattdessen
folgen auf jede Schnittregelanwendung (hier nicht angezeigte) Simplifikationsschritte, die
Teilausdrücke durch äquivalente Teilausdrücke ersetzen und so die jeweilige Resolvente
in eine äquivalente Normalform überführen.
+
+
+
+
+
+
Beweis von sorted[1,3,4]
Widerlegung von unsorted[1,3,4]
Berechnung der Lösungen von select([1,3,4],x)
Berechnung der Lösungen von perm([1,3,4],s)
Berechnung der Lösungen von actsABC(3,acts)
Berechnung der Lösungen von queens(4,s)
(siehe Beispiel 9.1)
(dto.)
(dto.)
(dto.)
(siehe Beispiel 9.2)
(siehe Beispiel 9.3)
349
9 Logische Programmierung + Expander2 verbindet Gleichungs- mit (co-)Hornlogik, womit die für manche Ableitungen erforderlichen zahlreichen Schnitte von (co-)Goals mit Kongruenzaxiomen zu einigen wenigen Termersetzungen zusammengefasst werden können. In den obigen Beispielberechnungen gehören diese Termersetzungen zu den hier nicht angezeigten Simplifikationsschritten.
350
Highlights
351
Literatur
[1] Pierre Basieux, Die Architektur der Mathematik: Denken in Strukturen, rororo
science, 2000
[2] Mordechai Ben-Ari, Mathematical Logic for Computer Science, Lehrbuch, Springer, 2001
[3] Johan van Benthem, Exploring Logical Dynamics, CSLI Publications, Stanford
University, 1996
[4] Jürgen Dassow, Logik für Informatiker, Lehrbuch, Teubner, 2005
[5] Hartmut Ehrig et al., Mathematisch-strukturelle Grundlagen der Informatik,
Springer 2001
[6] Erich Grädel, Mathematische Logik, Vorlesungsskript, RWTH Aachen, SoSe 2009
[7] Melvin Fitting, First-Order Logic and Automated Theorem Proving, Springer,
1996
[8] Heinz Peter Gumm, Universelle Coalgebra, in: Th. Ihringer, Allgemeine Algebra,
Heldermann Verlag, 2003
[9] Dieter Hofbauer, Ralf-Detlef Kutsche, Grundlagen des maschinellen Beweisens,
Vieweg, 1991
352
[10] Michael Huth, Mark Ryan, Logic in Computer Science, Cambridge University
Press, 2004
[11] Bart Jacobs, Jan Rutten, A Tutorial on (Co)Algebras and (Co)Induction, EATCS
Bulletin 62 (1997) 222-259
[12] Uwe Kastens und Hans Kleine Büning, Modellierung: Grundlagen und formale
Methoden, Hanser 2008; als Buch zur Zeit nicht verfügbar, aber hier sind die
Materialien zur zugehörigen Vorlesung (sehr empfehlenswert!)
[13] Gabriele Kern-Isberner, Bernhard Steffen, Oliver Rüthing, Mathematik für Informatiker 1, Kapitel 1-8, Vorlesungsskript, TU Dortmund, WiSe 2011/12, neues
Buch dazu
[14] Martin Kreuzer, Stefan Kühling, Logik für Informatiker, Pearson 2006; 49 Exemplare in der UB-Lehrbuchsammlung
[15] Alexander Kurz, Coalgebras and Modal Logic, Kurs am CWI Amsterdam, 2001
[16] Zohar Manna, Mathematical Theory of Computation, McGraw-Hill, 1974
[17] Christoph Meinel, Martin Mundhenk, Mathematische Grundlagen der Informatik
- Mathematisches Denken und Beweisen, Springer Vieweg 2011
[18] K. Meinke, J.V. Tucker, Universal Algebra, in: Handbook of Logic in Computer
Science 1 (1992) 189 - 368
353
[19] Faron Moller, Georg Struth, Modelling Computing Systems - Mathematics for
Computer Science, Springer 2013 (sehr empfehlenswert!)
[20] Anil Nerode, Richard A. Shore, Logic for Applications, Lehrbuch, Springer, 1997
[21] Peter Padawitz, Dirk Siefkes, Einführung in die Syntax und Semantik der Prädikatenlogik, Vorlesungsskript, TU Berlin, 1981
[22] Peter Padawitz, Computing in Horn Clause Theories, EATCS Monographs on
Theoretical Computer Science 16, Springer-Verlag, 1988; Freiexemplare gibt es
bei mir.
[23] Peter Padawitz, Deduction and Declarative Programming, Cambridge Tracts in
Theoretical Computer Science 28, Cambridge University Press, 1992
[24] P. Padawitz, Swinging Types = Functions + Relations + Transition Systems,
Theoretical Computer Science 243 (2000) 93-165
[25] Peter Padawitz, Modellieren und Implementieren in Haskell, Folienskript, TU
Dortmund, 2012
[26] Peter Padawitz, Formale Methoden des Systementwurfs, Vorlesungsskript, TU
Dortmund, 2006
[27] Peter Padawitz, From Modal Logic to (Co)Algebraic Reasoning, Folienskript, TU
Dortmund, 2013
354
[28] Peter Padawitz, Übersetzerbau, Folienskript, TU Dortmund, 2015
[29] Peter Padawitz, Übersetzerbau, Vorlesungsskript, TU Dortmund, 2010
[30] Peter Padawitz, Fixpoints, Categories, and (Co)Algebraic Modeling, Folienskript,
TU Dortmund, 2014
[31] Michael Richter, Logikkalküle, Teubner, 1978
[32] Jan Rutten, Universal Coalgebra: A Theory of Systems, Theoretical Computer
Science 249 (2000) 3-80
[33] Uwe Schöning, Logik für Informatiker, Spektrum Akademischer Verlag, 2000
[34] Thomas Schwentick, Logik für Informatiker, Vorlesungsfolien, TU Dortmund, WiSe 2012/13
[35] Walter Vogler, Logik für Informatiker, Vorlesungsskript, Universität Augsburg,
WiSe 2011/12
[36] Hubert Wagner, Logische Systeme der Informatik, Vorlesungsskript, TU Dortmund, WiSe 2000/01
355
Index
(Σ, E)-Algebra, 113
E-Reduktionsrelation, 115
E-Äquivalenz, 115
E-irreduzibel, 116
F basiert auf C, 68
F basiert auf D, 71
F -Coinduktion, 47
F -Induktion, 47
F -abgeschlossen, 46
F -dicht, 46
HΣ-Algebra, 228
K-Ableitung, 61
LP -Berechnung, 335
ASK -Widerlegung, 150
C-Invariante, 70
D-Kongruenz, 72
K, K0-Bisimulation, 204
PSK -Widerlegung, 271
SLD-Widerlegung, 319
Σ-Algebra, 92
Σ-Atom, 242
Σ-Disgruenzaxiome, 285
Σ-Formel, 243
Σ-Gleichung, 105
Σ-Homomorphismus, 93, 243
Σ-Isomorphismus, 94
Σ-Kongruenz, 111, 243
Σ-Kongruenzaxiome, 285
Σ-Struktur, 243
Σ-Term, 91
χ, 36
distAll , 258
distEx , 258
λ-Notation, 28
distBox , 181, 237
distDia, 181, 237
356
negAL, 136
negM , 181, 237
negQ, 258
removeQ, 258
rename, 258
mkfun, 38
mkrel , 38
curry, 37
n-Tupel, 20
uncurry, 37
Äquivalenzabschluss, 202
Äquivalenzlemma, 106, 256
Äquivalenzrelation, 110
überabzählbar, 42
Abbildung, 25
Ableitungsrelation, 61
Absorption, 136
abzählbar, 42
Adjazenzliste, 38
Adjazenzmatrix, 36
algebraisches Coinduktionsprinzip, 85
Allabschluss, 246
allgemeingültig, 10
allgemeinster Unifikator, 266
Anfrage, 303
Annihilation, 136
Antezedent, 12
antisymmetrisch, 110
Argument, 25
Assoziativität, 135
Atom, 132
aufzählbar, 42
Auslöschung, 136
aussagenlogische SLD-Ableitung, 320
aussagenlogische Formel, 132
aussagenlogische Operation, 132
Axiom, 12
Baum, 156
Belegung, 98
besuchte Box-Formel, 183
357
bijektiv, 33
Bild, 26
binär, 242
binäre Relation, 24
Bisimulation, 202
bisimulationsinvariant, 297
Bitalgebra, 96
Blatt eines Baums, 157
Boolesche Algebra, 136
Boolesche Matrix, 36
Boolescher Ausdruck, 97
charakteristische Funktion, 36
co-Goal, 303
co-Hornformel, 303
co-logisches Σ-Programm, 303
co-Resolution, 319, 336
Coalgebra, 221
coinduktiv definierte Menge, 49
curryfiziert, 37
Definitionsbereich, 25
Destruktormenge, 71
deterministischer Automat, 230
Diagonalargument, 42
Diagonale, 26
Differenz, 20
disjunkt, 21
Disjunktion, 132
disjunktive Normalform, 139, 166
Distributivität, 136
DNF, 139, 166
Domäne eines Baums, 156
Durchschnitt, 20
Einführungsregel, 149, 270
elementar K-äquivalent, 206
elementar äquivalent, 34
endlich verzweigt, 174
endliche Funktion, 26
endlicher Baum, 156
entscheidbar, 15
erfüllbar, 10
358
erfüllbarkeitsäquivalent, 259
erkennender Automat, 232
erreichbarer Knoten, 157
Existenzabschluss, 246
Extension einer Funktion, 98
Faktor, 132
Faktorisierung, 110
Faktorregel, 270, 318, 335
final, 223
Fixpunkt, 26
Folgerung, 10
Folgerungssatz, 134
Fortsetzung einer Funktion, 98
freie Variable, 246
Funktion, 25
Funktor, 220
gültig, 10, 105, 106
gebundenes Vorkommen, 246
gelöste Σ-Formel, 343
Gentzenformel, 141, 167
gesättigtes Tableau, 158, 184
geschlossene Formel, 139, 246
geschlossenes Tableau, 184
Gewichtsfunktion, 117
Gleichheitsmodell, 284, 302
Gleichheitsprädikat, 284
Gleichheitsstruktur, 284, 302
Goal, 303
Graph, 26
Grundsubstitution, 101
Grundterm, 92
Halbordnung, 110
Hennessy-Milner-Theorem, 207
Herbrand-Expansion, 264
Herbrand-Modell, 245
Herbrand-Struktur, 243
Hornformel, 303
Idempotenz, 135
Identität, 30
Implikation, 132
359
Implikationspfeil, 11
implikative Normalform, 142, 167
impliziert, 11
Indexmenge, 24
Individuenvariable, 240
induktiv definierte Menge, 49
INF, 142, 167
Inferenzsystem, 12
initiale Σ-Algebra, 100
Injektion, 31
injektiv, 26
Inklusion, 30
Instanz, 101
Interpretation einer Operation, 92
inverse Funktion, 30
inverse Relation, 24
isomorph, 34
Kalkül, 12
kanonische SLD-Ableitung, 345
Kardinalität, 41
kaskadiert, 37
Kern, 26
Kette, 57
Klasse, 18
Kleene-Abschluss, 57
Kleisli-Komposition, 104
KNF, 139, 166
Knoten, 156
Knoten eines Baums, 156
Kommutativität, 135
komplementäre Literale, 139
Komplementarität, 136
Komponente eines Tupels, 20
Komposition, 29
Komprehension, 19
Kongruenzregel, 112
Konjunktion, 132
konjunktive Normalform, 139, 166
Konkatenation, 75
Konklusion, 11
konsistente Theorie, 15
360
konsistenter Abschluss, 280
Konstante, 26
Konstruktor-Induktion, 73
Konstruktormenge, 68
Kontraposition, 107, 138, 332
korrekter Kalkül, 15
Kripke-Funktor, 221
Kripke-isomorph, 206
Kripke-Morphismus, 205
Kripke-Rahmen, 171
Kripke-Struktur, 170
Lösung in einer Struktur, 245, 299
Lambeks Lemma, 225
leaves, 157
leeres Wort, 18
lexikographische Erweiterung, 117
Lifting einer Algebra, 97
Lifting-Lemma, 276
Liste, 21
Literal, 139, 166
logisches Programm, 303
Mächtigkeit, 41
maximale DNF, 147
Menge, 18
Mengenoperator, 19
mgu, 266
modale Operation, 170
modallogische Formel, 170
Modell, 10, 133, 173, 245, 299
Modus ponens, 113
monotone Funktion, 46
Moore-Automat, 229
Multimenge, 40
Multimengen-Erweiterung, 117
Nachfolger eines Knotens, 157
natürliche Abbildung, 110
Negation, 132
Negationsnormalform, 138, 182, 259
Neutralität, 136
nichtdeterministische Funktion von A nach
361
B, 38
NNF, 138, 182, 259
Normalform bzgl. einer Σ-Algebra, 107
Obermenge, 19
occur check, 267
offene Formel, 139
offenes Tableau, 184
Operation, 91
partielle Ordnung, 110
partieller Automat, 233
Partition, 24
Pfad eines Baumes, 157
Potenzmenge, 21
Prädikat, 242
prädikatenlogische Formel, 243
prädikatenlogische Operation, 241
Präfixrelation, 157
Prämisse, 11
Präordnung, 110
primitiv-rekursive Funktion, 75
Produkt, 20
Produkt von Funktionen, 32
Produktextension, 31
Projektion, 30
Quantor, 240
Quasiordnung, 110
Quotient, 110
Record, 24
Redex, 14
Redukt, 14
Redukt einer Struktur, 259
reflexiv, 109
Reflexivitätsregel, 112
Relation, 24
Relation auf, 24
Resolution, 319, 335
Resolvente, 150, 271
Schnittregel, 150, 270
Schrittfunktion, 49
schwach final, 222
362
Semantik, 10
semantischer Bereich, 10
semi-entscheidbar, 15
Signatur, 91
Skolemfunktion, 260
Skolemnormalform, 261
Sprache, 232
Stelle, 25
Stelligkeit, 25
Strom, 40
Struktur, 240
strukturelle Induktion über einer Termmenge, 120
Substitution, 101
Substitutionslemma, 102, 253
subsumieren, 266
Subsumptionsrelation, 157
Suchraum, 108
Sukzedent, 12
Summand, 132
Summandregel, 270, 318, 336
Summe, 20
Summe von Funktionen, 32
Summenextension, 31
Support, 268
surjektiv, 26
Symmetrieregel, 112
symmetrisch, 110
Syntax, 10
Tableau, 158, 183
Tableau-Ableitung, 158, 184
Tableau-Widerlegung, 159, 184
tautologisch, 10
Teilmenge, 19
Teilterm, 104
Teiltermrelation, 120
Termersetzungstheorie, 107
Termfaltung, 100
ternär, 242
totale Ordnung, 110
Trägermenge, 92
363
Transitionsfunktion, 171
transitiv, 109
Transitivitätsregel, 112
Typ, 25
unär, 242
unäre Relation, 19
Unerfüllbarkeitssatz, 134
Ungleichheitsprädikat, 284
Unifikator, 266
Update einer Funktion, 28
Urbild, 25
Vereinigung, 20
verhaltensäquivalent, 202
Verhaltensäquivalenz, 201
Verhaltensmodell, 223
vollständige Theorie, 15
vollständiger Kalkül, 15
Vorgänger eines Knotens, 157
Weg eines Baums, 157
Wert eines Terms, 99
Wert eines Terms unter einer Belegung, 98
Wertebereich, 25
widersprüchlich, 10
Widerspruchsbeweis, 138
wohlfundierte Relation, 55
Wohlordnung, 110
Wort, 21
Wurzel eines Baums, 156
Zerlegung, 24
Zusicherung, 16, 233
Zustandsatom, 182
Zustandsformel, 173
Zustandsliteral, 182
wechselseitig induktiv definierte Funktion bzgl.
C, 80
364