Logik für Informatiker - fldit

Logik für Informatiker
Logic for Computer Scientists
Peter Padawitz, TU Dortmund, Germany
Webseite zur LV: + fldit-www.cs.tu-dortmund.de/logik1.html
Monday 11th April, 2016 17:00
1
Inhalt
Die mit einem Stern (*) versehenen Abschnitte werden in der laufenden Vorlesung nicht
behandelt.
Zur Navigation auf Titel, nicht auf Seitenzahlen klicken!
1 Vorbemerkungen
6
2 Bestandteile und Eigenschaften einer Logik
8
1 Logik in der Informatik
3 Mengen und Funktionen
16
18
1 Mengen und Relationen
18
2 Funktionen
24
3 Isomorphien
32
4 Highlights
43
4 (Co)Induktiv Definieren und Beweisen
45
1 (Co)Induktiv definierte Mengen
45
2 Induktion über n ∈ N
52
2
3 Noethersche Induktion bzgl. R ⊆ A2
55
4 Ableitungen und Ableitungsrelationen
58
5 Konstruktoren und Destruktoren
66
6 (Co)Induktiv definierte Funktionen
72
7 Highlights
84
5 Gleichungslogik
88
1 Signaturen, Terme und Algebren
88
2 Termauswertung und -substitution
95
3 Termgleichungen
102
4 Normalformen
104
5 Äquivalenzrelationen und Quotienten
106
6 Gleichungskalkül
109
7 Berechnung äquivalenter Normalformen
112
8 Gleichungslogik in anderen Logiken
122
9 Highlights
125
6 Aussagenlogik
1 Normalformen
128
134
3
2 Schnittkalkül
145
3 Knotenmarkierte Bäume*
151
4 Tableaukalkül*
155
5 Highlights
162
7 Modallogik
165
1 Übersetzung von Modal- in Aussagenlogik
170
2 Tableaukalkül*
178
3 Zustandsäquivalenz
197
4 Minimierungsalgorithmus
211
5 Verhaltensmodelle und finale Strukturen*
215
6 Highlights
229
8 Prädikatenlogik
230
1 Normalformen
248
2 Schnittkalkül
260
3 Prädikatenlogik mit Gleichheit
275
4 Übersetzung von Modal- in Prädikatenlogik
283
5 Highlights
289
4
9 Logische Programmierung
290
1 SLD-Kalkül
305
2 Kleinste und größte Herbrand-Modelle
313
3 Berechnungskalkül
322
4 Highlights
339
10 Literatur
340
11 Index
343
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 Bestandteile und Eigenschaften einer Logik
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 (im Sinne bestimmter symbolischer Ausdrücke)
Semantik:
Bedeutung, Interpretation der Formeln und ihrer Komponenten in einem semantischen
Bereich (domain)
Umgekehrt werden Elemente des semantischen Bereichs durch Formeln repräsentiert.
Zwei Formeln sind äquivalent bzgl. einer Semantik, wenn sie dieselbe Bedeutung haben.
Modell oder Lösung einer Formel ϕ:
Element des semantischen Bereichs, das ϕ bzgl. der jeweiligen Semantik erfüllt (satisfies),
für das ϕ gilt (gültig ist; is valid; holds true).
ϕ folgt aus einer Menge Φ von Formeln, kurz: Φ |= ϕ, wenn jedes Modell (aller Formeln)
von Φ ein Modell von ϕ ist.
Zwei Formeln heißen äquivalent, wenn sie dieselben Modelle haben.
10
2 Bestandteile und Eigenschaften einer Logik 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
wobei für alle 0 ≤ i ≤ k + 1 Φi eine Menge von Formeln und ϕi eine einzelne Formel der
jeweils zugrundeliegenden Logik ist.
Die Ausdrücke oberhalb des Bruchstrichs nennt man Antezedenten und den Ausdruck
darunter Sukzedenten der Regel. Rechts neben dem Bruchstrich stehen manchmal zusätzliche Bedingungen an die Antezedenten.
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.
ϕ heißt aus Φ K-ableitbar, geschrieben: Φ `K ϕ, wenn der Ausdruck Φ ` ψ das
Ergebnis wiederholter Anwendungen von Regeln des Kalküls K ist. Intuitiv ist vermutlich
klar, was damit gemeint ist. Um es 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 ϕ unterschiedliche
Schlüsse ziehen, z.B.
• ϕ folgt aus Φ,
• Φ ist widersprüchlich,
• ϕ repräsentiert eine Lösung von Φ,
• ϕ repräsentiert eine Normalform von Φ.
Beispiel
Anwendungen der bekannten Distributivgesetze
x ∗ (y1 + · · · + yn) = x ∗ y1 + · · · + x ∗ yn,
(x1 + · · · + xn) ∗ y = x1 ∗ y + · · · + xn ∗ y
(1)
(2)
in einem Beweis entsprechen Anwendungen von Regeln der Form
c[(t ∗ (u1 + · · · + un)/z]
c[t ∗ u1 + · · · + t ∗ un/z]
bzw.
c[(t1 + · · · + tn) ∗ u/z]
,
c[t1 ∗ u + · · · + tn ∗ u/z]
(3)
13
2 Bestandteile und Eigenschaften einer Logik wobei c, t1, . . . , tn, u1, . . . , un beliebige arithmetische Ausdrücke sind und z eine Variable
von c ist.
c[t/x] bezeichnet die t-Instanz von c, d.h. denjenigen Ausdruck, der aus c entsteht, wenn
dort x durch t ersetzt wird.
Da sich nur der Teilausdruck t ∗ (u1 + · · · + un bzw. (t1 + · · · + tn) ∗ u des Antezedenten
der ersten bzw. zweiten Regel von (3) bei deren Anwendung verändert, nennt man ihn
Redex und den korrespondierenden Teilausdruck t∗u1 +· · ·+t∗un bzw. t1 ∗u+· · ·+tn ∗u
des Sukzedenten Redukt der Regel.
+ Hier steht eine Folge von Ausdrücken, die beweist, dass aus
5 ∗ (6 ∗ (11 ∗ (x + y + z) ∗ 14 + (c + g + b) ∗ 22) + 44 ∗ (gg + hh))
(4)
mit den beiden Regeln von (3)
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
(5)
ableitbar ist, dass also (4) `(3) (5) gilt.
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
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 erfüllt ϕ}
und
e ∈ B ⇔def e ∈ A und e erfüllt ϕ
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 nach Definition der Mengendifferenz.
Damit ist A eine Teilmenge von B.
o
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}.
Aufgabe Beweisen Sie Satz 3.2.
(1)
(2)
o
22
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.
23
3 Mengen und Funktionen 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),
24
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.
25
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)
26
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
27
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.
28
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.
29
3 Mengen und Funktionen Die Elemente von n Mengen A1, . . . , An werden mit Injektionen
ιi : Ai → A1 + · · · + An
a 7→ (a, i)
1≤i≤n
in die Summe A1 + · · · + An eingebettet.
Seien n Funktionen
fi : Ai → B bzw. gi : B → Ai,
1 ≤ i ≤ n,
gegeben. Die Summenextension
[f1, . . . , fn] : A1 + · · · + An → B
von fi : Ai → B, 1 ≤ i ≤ n, und die Produktextension
hg1, . . . , gni : A1 × · · · × An → B
von gi : B → Ai, 1 ≤ i ≤ n, sind folgendermaßen definiert: Für alle (a, i) ∈ A1 + · · · + An
und b ∈ B,
[f1, . . . , fn](a, i) =def fi(a),
hg1, . . . , gni(b) =def (g1(b), . . . , gn(b)).
30
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:
31
3 Mengen und Funktionen ιi
Ai
A1 + · · · + An
= f1 + · · · + fn
fi
g
Bi
ιi
A1 × · · · × An
f
g1 × · · · × gn
g
B1 + · · · + Bn
B1 × · · · × Bn
πi
Ai
f
=
gi
πi
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.).
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.
Beweis. Seien g und h Inverse von f . Dann gilt:
h = h ◦ idB = h ◦ (f ◦ g) = (h ◦ f ) ◦ g = idA ◦ g = g.
o
32
3 Mengen und Funktionen 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.
33
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 hier 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 ∼
(3)
= A ∪ B.
−1
−1
Für alle a ∈ A und b ∈ B, f (a, 1) = a, f (b, 2) = b, f (a) = (a, 1) und f (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) = (a, 1).
34
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)) = {b ∈ A | χ(B)(b) = 1} = {b ∈ A | a ∈ B} = B.
35
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:
36
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
• 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.
37
3 Mengen und Funktionen mkfun ist bijektiv. Für alle Mengen A, B gilt also P(A × B) ∼
= P(B)A.
(7) folgt auch aus (5) und (6): P(A × B) ∼
= P(B)A.
= 2A×B ∼
= (2B )A ∼
(7)
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
(8)
(9)
(10)
Aufgabe Zeigen Sie für alle f : A → C B und g : C → D:
g ◦ uncurry(f ) = uncurry((λh.g ◦ h) ◦ f ).
(11)
Aufgabe Zeigen Sie für alle R ⊆ A × B: curry(χ(R)) = χ−1 ◦ mkfun(R).
38
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.
39
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.
40
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.
41
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.
42
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
43
3 Mengen und Funktionen A+B
A×B
A × (B + C)
C A+B
(B × C)A
A∼
=C ∧ B∼
=D
P(A)
P(A)
∼
=
∼
=
∼
=
∼
=
∼
=
⇒
∼
=
∼
6=
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
44
4 (Co)Induktiv Definieren und Beweisen
(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.
45
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.
T
(i) lfp(F ) =def {T ⊆ S | F (T ) ⊆ T } ist die kleinste F -abgeschlossene Teilmenge
von S und der kleinste Fixpunkt von F .
S
(ii) gfp(F ) =def {T ⊆ S | T ⊆ F (T )} 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 ).
(iv) F -Coinduktion
gfp(F ) enthält jede F -dichte Teilmenge von S.
46
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
\
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 -abgeschlosse
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 .
47
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 .
48
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 ⊆ R Fnat-abgeschlossen und N 6⊆ T . Dann gibt es n ∈ N \ T . Sei n das (bzgl.
der üblichen kleiner-Relation auf N) kleinste Element von N \ T . Wegen Fnat(T ) ⊆ T
folgt 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
Beispiel 4.3 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge evens der
geraden Zahlen induktiv definiert und
49
4 (Co)Induktiv Definieren und Beweisen 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
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→ {} ∪ R ∪ {(a, a1, . . . , an) | a ∈ R, a ≤ a1, (a1, . . . , an) ∈ T, n > 0}
eine Schrittfunktion für sorted ist.
o
50
4 (Co)Induktiv Definieren und Beweisen Beispiel 4.6 Zeigen Sie analog zum Beweis von Satz 4.2, dass die Menge
n
X
R[x] = {λ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 }
o
eine Schrittfunktion für R[x] ist.
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 :
51
4 (Co)Induktiv Definieren und Beweisen Satz 4.1 (ii)
S
Def . G S
=
{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 }
gfp(G)
Satz 4.2 (i)
=
S \ lfp(F )
“⇐”: analog.
lfp(F )=T
=
S \ T.
o
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 Tϕ aller natürlichen Zahlen, die ϕ
erfüllen, Fnat-abgeschlossen ist.
52
4 (Co)Induktiv Definieren und Beweisen Die Korrektheit der Induktion über n folgt demnach aus der Monotonie von Fnat, Satz
4.1 (iii) und Satz 4.2: Fnat(Tϕ) ⊆ Tϕ impliziert N = lfp(Fnat) ⊆ Tϕ, 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
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!
53
4 (Co)Induktiv Definieren und Beweisen 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. 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
54
4 (Co)Induktiv Definieren und Beweisen 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 Tϕ FR -abgeschlossen ist.
Die Korrektheit Noetherscher Induktion bzgl. R folgt demnach aus der Monotonie von
FR , Satz 4.1 (iii) und Satz 4.8: FR (Tϕ) ⊆ Tϕ impliziert A = lfp(FR ) ⊆ Tϕ, 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
55
4 (Co)Induktiv Definieren und Beweisen 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 n(S)
F =def
F (∅)
bzw.
F∞ =def
n∈N
n∈N
heißt oberer bzw. unterer Kleene-Abschluss von F .
Satz 4.9 Sei F : P(S) → P(S) monoton.
(i)
(ii)
(iii)
F ∞ ⊆ lfp(F ).
F (F ∞) ⊆ F ∞ ⇒ F ∞ = lfp(F ).
gfp(F ) ⊆ F∞.
56
4 (Co)Induktiv Definieren und Beweisen (iv)
F∞ ⊆ F (F∞)
⇒ F∞ = gfp(F ).
Beweis von (i). Wir zeigen
F n(∅) ⊆ lfp(F )
für alle n ∈ N durch Induktion über n: Induktionsanfang: F 0(∅) = ∅ ⊆ lfp(F ).
(1)
Induktionsschritt: Da F monoton ist und lfp(F ) ein Fixpunkt von F , gilt
F
Also gilt F ∞ =
S
n∈N F
n+1
n
n
(1)
(∅) = F (F (∅)) ⊆ F (lfp(F )) = lfp(F ).
(∅) ⊆ 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 ).
Beweis von (iii). Wir zeigen
gfp(F ) ⊆ F n(S)
für alle n ∈ N durch Induktion über n: Induktionsanfang: gfp(F ) ⊆ S = F 0(S).
(2)
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).
57
4 (Co)Induktiv Definieren und Beweisen Also gilt gfp(F ) ⊆
T
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∞.
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.
58
4 (Co)Induktiv Definieren und Beweisen Offenbar sind
FK : P(P(Fo) × Fo) → P(P(Fo) × Fo)
T 7→ {(Φ, ϕ) |
Φ1 `ϕ1 ,...,Φk `ϕk
Φ`ϕ
∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ T }
und
FK ∗ : P((P(Fo) × Fo)∗) → P((P(Fo) × Fo)∗)
T 7→ 1 ∪ {(a1, . . . , an+1) | (a1, . . . , an) ∈ T,
an+1 ∈ FK ({a1, . . . , an})}
monoton.
Der obere Kleene-Abschluss von FK heißt K-Ableitungsrelation und wird mit `K
bezeichnet.
ψ ∈ Fo heißt aus Φ ⊆ Fo K-ableitbar, wenn (Φ, ψ) zu `K gehört, wofür man auch
Φ `K ψ schreibt und `K ψ, falls Φ leer ist, bzw. ϕ `K ψ, falls Φ aus genau einem Element
ϕ besteht.
Ein (im Fall n = 0 leeres) Tupel (t1, . . . , tn) ∈ FK∞∗ heißt K-Ableitung von ϕ aus Φ,
wenn tn = (Φ ` ϕ) gilt.
o
59
4 (Co)Induktiv Definieren und Beweisen 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 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:
,...,Φk `ϕk
∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ FK∞}
FK (FK∞) = {(Φ, ϕ) | Φ1`ϕ1Φ`ϕ
S
,...,Φk `ϕk
= n∈N{(Φ, ϕ) | Φ1`ϕ1Φ`ϕ
∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ FKn (∅)}
S
= n∈N FKn+1(∅) = FK∞.
Also gilt (i) nach Satz 4.9 (i) und (ii).
60
4 (Co)Induktiv Definieren und Beweisen Beweis von (ii). FK∞∗ ist FK ∗ -abgeschlossen:
FK ∗ (FK∞∗ ) = 1 ∪ {(a1, . . . , an+1) | (a1, . . . , an) ∈ FK∞∗ , an+1 ∈ FK ({a1, . . . , an})}
S
= FK ∗ (∅) ∪ n∈N{(a1, . . . , an+1) | (a1, . . . , an) ∈ FKn ∗ (∅), an+1 ∈ 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 Tϕ aller
(a1, . . . , an) ∈ S ∗ mit a1, . . . , an ⊆ FK∞ FK ∗ -abgeschlossen ist.
Sei also s ∈ FK ∗ (Tϕ). Nach Definition von FK ∗ ist s die leere Ableitung oder es gibt
(a1, . . . , an) ∈ Tϕ und an+1 ∈ FK ({a1, . . . , an}) mit s = (a1, . . . , an+1).
Im ersten Fall folgt s ∈ Tϕ aus ∅ ⊆ FK∞. Im zweiten Fall gilt {a1, . . . , an} ⊆ FK∞ nach
Definition von Tϕ 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 Tϕ.
61
4 (Co)Induktiv Definieren und Beweisen Damit ist gezeigt, dass Tϕ F -abgeschlossen ist.
o
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(AN) → P(AN)
T 7→ {s ∈ AN | s(0) = 0 ∨ λi.s(i + 1) ∈ T },
G : P(AN) → P(AN)
T 7→ {s ∈ AN | 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:
62
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 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
63
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
64
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
65
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.
Konstruktoren und Destruktoren
Sei A eine Menge und C eine Menge von Funktionen mit Wertebereich A.
Für alle c : A1 × · · · × An → A ∈ C bezeichne Ic die Menge der Indizes 1 ≤ i ≤ n mit
Ai = A.
C heißt Konstruktormenge für A, wenn es für alle a ∈ A genau ein c ∈ C und genau
ein b ∈ dom(c) mit a = c(b) gibt.
T ⊆ A heißt C-Invariante, wenn für alle c : A1 × · · · × An → A ∈ C und (a1, . . . , an) ∈
A1 × · · · × An Folgendes gilt:
(∀ i ∈ Ic : ai ∈ T ) ⇒ c(a1, . . . , an) ∈ T .
66
4 (Co)Induktiv Definieren und Beweisen F : P(S) → P(S) basiert auf C, wenn für alle T ⊆ S Folgendes gilt:
F (T ) = {c(t) | c ∈ C, t ∈ dom(c), ∀ i ∈ Ic : πi(t) ∈ 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 u ∈ dom(c) mit t = c(u). Demnach haben die Ic-Komponenten von u
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
Beispiel 4.15 Die Schrittfunktionen Fnat, Feven : P(N) → P(N) (s.o.) basieren auf der
Konstruktormenge
Cnat = {λx.0, (+1) : N → N} bzw. Ceven = {λx.0, (+2) : even → even}.
67
4 (Co)Induktiv Definieren und Beweisen 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 und cons : A × A∗ → A∗ wie folgt definiert:
Für alle a, a1, . . . , an ∈ A,
cons(a, ) = a,
cons(a, (a1, . . . , an)) = (a, a1, . . . , an).
Die Schrittfunktion Flist : P(A∗) → P(A∗) (s.o.) basiert auf der Konstruktormenge
Clist = {λx., cons}.
o
Beispiel 4.17 (siehe Beispiel 4.3) Sei post : R[x] × R → R[x] wie folgt definiert: Für
alle a ∈ R und p ∈ R[x],
post(p, a) = λx.p(x) ∗ x + a.
Fpoly basiert auf der Konstruktormenge
Cpoly = {λx.a | a ∈ R} ∪ {post}
68
4 (Co)Induktiv Definieren und Beweisen Z.B. repräsentiert die Cpoly -Darstellung post(post(549.32, −33.11), 5.4) das Polynom
λx.549.32 ∗ x2 − 33.11 ∗ x + 5.4.
o
Während Konstruktoren die Synthese von Daten beschreiben, dienen Destruktoren ihrer
Analyse durch Transformation und Beobachtung:
Sei D eine Menge von Funktionen mit Definitionsbereich A.
Für alle d : A → A1 + · · · + An ∈ D bezeichne Id die Menge der Indizes 1 ≤ i ≤ n mit
Ai = 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.
R ⊆ A2 heißt D-Kongruenz, wenn für alle d : A → A1 + · · · + An ∈ D, a, a0 ∈ A und
(b, i), (b0, j) ∈ A1 + · · · + An Folgendes gilt:
(
(b, b0) ∈ R ∧ i = j falls i ∈ Id,
0
0
0
((a, a ) ∈ R ∧ d(a) = (b, i) ∧ d(a ) = (b , j)) ⇒ i = j ∧
b = b0
sonst.
69
4 (Co)Induktiv Definieren und Beweisen F : P(S) → P(S) basiert auf D, wenn für alle T ⊆ S Folgendes gilt:
F (T ) = {t ∈ S | ∀ d ∈ D, (u, i) ∈ ran(d) : d(t) = ((u, i) ∧ i ∈ Id) ⇒ u ∈ T }.
Beispiel 4.18 (Ströme über A) Die Funktionen head : AN → A und 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 Fstream : P(AN) → P(AN) (siehe Beispiel 4.11) basiert auf der Destruktormenge
Dstream = {head, tail}.
o
Lemma 4.19
Sei F : P(S) → P(S) monoton, C eine Menge von Funktionen mit Wertebereich F ∞ und
D eine Menge von Funktionen mit Definitionsbereich F∞.
(i) F basiert auf C
⇒
F ∞ = lfp(F ).
(ii) F basiert auf D
⇒
F∞ = gfp(F ).
70
4 (Co)Induktiv Definieren und Beweisen (iii) Strukturelle Induktion über lfp(F )
Jede C-Invariante von lfp(F ) enthält lfp(F ).
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 t ∈ dom(c) derart, dass t mit c(u)
übereinstimmt und für alle i ∈ Ic πi(u) zu F ∞ gehört. Daher gibt es für alle i ∈ Ic
eine natürliche Zahl ni mit πi(u) ∈ F ni (∅). Da Ic endlich und F monoton ist, folgt
πi(u) ∈ F m(∅) für m = max{ni | i ∈ Ic}. Also gibt es n ∈ N derart, dass t zu
{c(u) | c ∈ C, u ∈ dom(c), ∀ i ∈ Ic : πi(u) ∈ F n(∅)} = F (F n(∅)) = F n+1(∅)
gehört. Daraus folgt t ∈ 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)) = {t0 ∈ S | ∀ d ∈ D, i ∈ Id : d(t0) = (u, i) ⇒ u ∈ F n(S)}.
71
4 (Co)Induktiv Definieren und Beweisen Demnach gilt u ∈ F n(S) für alle n ∈ N, d ∈ D und (u, i) ∈ ran(d) mit d(t) = (u, i) und
i ∈ Id. Also gehört u für alle d ∈ D und (u, i) ∈ ran(d) mit d(t) = (u, i) und i ∈ Id zu
F∞. Daraus folgt t ∈ F (F∞).
Beweis von (iii). Sei T eine C-Invariante von lfp(F ). Nach Satz 4.5 (iii) genügt es zu
zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C und t ∈ dom(c)
derart, dass t mit c(u) übereinstimmt und für alle i ∈ Ic πi(u) zu T gehört. Da T eine
C-Invariante von lfp(F ) ist, folgt t ∈ T .
o
(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 ∈ C
eine aus Konstruktoren und bereits definierten Funktionen zusammengesetzte Funktion
gc : A|Ic| × lfp(F )n → A
gibt derart, dass für {i1, . . . , ik } = Ic und alle (t1, . . . , tn) ∈ dom(c)
f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn)
gilt.
72
4 (Co)Induktiv Definieren und Beweisen 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:
Für alle a ∈ A und w ∈ A∗,
length() = 0,
length(cons(a, w)) = length(w)+1,
conc() = λw.w,
conc(cons(a, w)) = λw0.cons(a,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 (post(p, a)) = λb.diff (p)(b) ∗ b + p(b).
o
73
4 (Co)Induktiv Definieren und Beweisen Im Fall F = Fnat und C = {0, (+1)} nennt man eine induktiv definierte Funktion auch
primitiv-rekursiv.
Satz 4.22 Sei C eine Konstruktormenge und F die Schrittfunktion, die auf C basiert.
Die Gleichungsmenge
E = {f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn) | c ∈ C, (t1, . . . , tn) ∈ dom(c)}.
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 Induktion über F : 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 (ti1 ), . . . , f (tik ), t1, . . . , tn)
gilt, wobei c und (t1, . . . , tn) die nach Lemma 4.14 eindeutigen Elemente von C bzw.
dom(c) mit t = c(t1, . . . , tn) sind. Nach Satz 4.5 (iii) ist zu zeigen, dass T F -abgeschlossen
ist.
Sei also t ∈ F (T ), d.h. es gibt c ∈ C und (t1, . . . , tn) ∈ dom(c) mit ti ∈ T für alle
i ∈ Ic = {i1, . . . , ik } und t = c(t1, . . . , tn).
74
4 (Co)Induktiv Definieren und Beweisen Folglich hat f an den Stellen ti1 , . . . , tik eindeutige Werte. Deshalb können wir f an der
Stelle t = c(t1, . . . , tn) durch gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn) definieren. Folglich gehört t
zu T .
Beweis der Eindeutigkeit von f durch Induktion über F : 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.5 (iii) ist zu zeigen, dass T F -abgeschlossen ist. Sei also t ∈ F (T ). Dann gibt es c ∈ C
und (t1, . . . , tn) ∈ dom(c) mit ti ∈ T für alle i ∈ Ic = {i1, . . . , ik } und t = c(t1, . . . , tn).
Demnach gilt f (ti) = f 0(ti) für alle i ∈ Ic. Daraus folgt
f (t) = f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn)
= gc(f 0(ti1 ), . . . , f 0(tik ), t1, . . . , tn) = f 0(c(t1, . . . , tn)) = f 0(t),
also t ∈ T .
o
Beispiel 4.23 (Beweis durch Induktion über Flist; siehe Beispiele 4.16 und 4.18) Sei
Tϕ = {v ∈ A∗ | ∀ w ∈ A∗: length(conc(v)(w)) = length(v) + length(w)}.
Nach Definition von length und conc gelten folgende Gleichungen für alle v, w ∈ A∗:
75
4 (Co)Induktiv Definieren und Beweisen length(conc()(v)) = length(v) = 0 + length(v) = length() + length(v),
(1)
length(conc(cons(a, v))(w)) = length(cons(a, conc(v)(w)))
= length(conc(v)(w)) + 1
length(cons(a, v)) + length(w) = length(v) + length(w) + 1
(2)
(3)
Tϕ ist Flist-abgeschlossen:
Flist(Tϕ) = 1 ∪ {(cons(a, v) | a ∈ A, v ∈ Tϕ}
= 1 ∪ {cons(a, v) | a ∈ A, ∀ w ∈ A∗ : length(conc(v)(w)) = length(v) + length(w)}
= 1 ∪ {cons(a, v) | a ∈ A,
∀ w ∈ A∗ : length(conc(v)(w)) + 1 = length(v) + length(w) + 1
(2),(3)
= 1 ∪ {cons(a, v) | a ∈ A,
∀ w ∈ A∗ : length(conc(cons(a, v))(w)) = length(cons(a, v)) + length(w)}
(1)
= {v ∈ A∗ | ∀ w ∈ A∗ : length(conc(v)(w)) = length(v) + length(w)} = Tϕ.
o
76
4 (Co)Induktiv Definieren und Beweisen Wie mehrere Mengen, so können manchmal auch m > 1 Funktionen nur wechselseitig
induktiv definiert werden:
Ein Funktionstupel (f1 : lfp(F ) → A1, . . . , fm : lfp(F ) → Am) heißt wechselseitig
induktiv definiert, wenn es für alle 1 ≤ i ≤ m und c ∈ C eine Funktion
gi,c : Am∗|Ic| × lfp(F )n → Ai
gibt derart, dass für {i1, . . . , ik } = Ic und alle (t1, . . . , tn) ∈ dom(c) folgende Gleichung
gilt:
fi(c(t1, . . . , tn)) = gi,c(f1(ti1 ), . . . , f1(tik ), . . . , fm(ti1 ), . . . , fm(tik ), t1, . . . , tn).
Beispiel 4.24 (Hilbertkurven)
Sei D = {east, west, north, south}. Das folgende Funktionsquadrupel
(go1 : N → D∗, . . . , go4 : N → D∗)
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.
77
4 (Co)Induktiv Definieren und Beweisen Im Fall i = 1 und n = 5 entsteht z.B. folgende Kurve:
78
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.
79
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, die z.B. auch mehrstellige Funktionen f : lfp(F )n → A abdecken, so dass z.B. die
Listenkonkatenation von Beispiel 4.18 als unkaskadiert definiert werden kann.
80
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 Beispiel 4.11) 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 coinduktiv definieren:
81
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.
Eine Relation R ⊆ (RN)2 heißt D-Kongruenz, wenn für alle s, s0 ∈ RN Folgendes gilt:
(s, s0) ∈ R ⇒ head(s) = head(s0) und (tail(s), tail(s0)) ∈ R.
(5)
82
4 (Co)Induktiv Definieren und Beweisen Aufgabe Zeigen Sie, dass die Diagonale von (RN)2 eine D-Kongruenz ist und dass RN
das algebraische Coinduktionsprinzip erfüllt, d.h. dass jede D-Kongruenz mit ∆RN
übereinstimmt. 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.
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
83
4 (Co)Induktiv Definieren und Beweisen Highlights
T ⊆ S induktiv definiert: Es gibt F : P(S) → P(S) mit T = F ∞ =def
S
T ⊆ S coinduktiv definiert: Es gibt F : P(S) → P(S) mit T = F∞ =def
n∈N F
T
n
(∅).
n∈N F
n
(S).
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 ).
Sei F : P(S) → P(S) monoton.
T
Satz 4.5 (i): lfp(F ) =def
{T ⊆ S | F (T ) ⊆ T } ist die kleinste F -abgeschlossene
Teilmenge von S und der kleinste Fixpunkt von F .
S
Satz 4.5 (ii): gfp(F ) =def {T ⊆ S | T ⊆ F (T )} ist die größte F -dichte Teilmenge von
S und der größte Fixpunkt von F .
Induktion über F (Satz 4.5 (iii)): Jede F -abgeschlossene Teilmenge von S enthält lfp(F ).
Coinduktion über F (Satz 4.5 (iv)): gfp(F ) enthält jede F -dichte Teilmenge von S.
84
4 (Co)Induktiv Definieren und Beweisen Sei Tϕ die die Menge der Elemente von S, die ϕ erfüllen.
Satz 4.5 (iii) ⇒ Jedes Element von lfp(F ) erfüllt ϕ, wenn Tϕ F -abgeschlossen ist.
Satz 4.5 (iv) ⇒ Jedes Element von S, das ϕ erfüllt, gehört zu gfp(F ), wenn Tϕ F -dicht
ist.
Schrittfunktion für N:
Fnat : P(N) → P(N)
T 7→ {0} ∪ {a + 1 | a ∈ T }
Induktion über n ∈ N = Induktion über Fnat.
Schrittfunktion für `K :
FK : P(S) → P(S)
T 7→ {(Φ, ϕ) |
Φ1 `ϕ1 ,...,Φk `ϕk
Φ`ϕ
∈ K, (Φ1, ϕ1), . . . , (Φk ϕk ) ∈ T }
Satz 4.9 (i): F (F ∞) ⊆ F ∞ ⇒ lfp(F ) = F ∞.
Satz 4.9 (ii): F∞ ⊆ F (F∞)
⇒ gfp(F ) = F∞.
85
4 (Co)Induktiv Definieren und Beweisen Schrittfunktion einer Menge A mit wohlfundierter Relation R:
FR : P(A) → P(A)
T 7→ {a ∈ A | ∀ b ∈ A : (b, a) ∈ R ⇒ b ∈ T }
Noethersche Induktion bzgl. R = FR -Induktion.
Schrittfunktion für AN:
Fstream : P(AN) → P(AN)
T 7→ {s ∈ AN | λi.s(i + 1) ∈ T }
Konstruktormenge C für A: Für alle a ∈ A gibt es genau ein c ∈ C und genau ein
b ∈ dom(c) mit a = c(b).
Für alle c : A1 × · · · × An → A ∈ C sei Ic die Menge der Indizes 1 ≤ i ≤ n mit Ai = A.
F : P(S) → P(S) basiert auf C: Für alle T ⊆ S,
F (T ) = {c(t) | c ∈ C, t ∈ dom(c), ∀ i ∈ Ic : i ∈ Ic}.
86
4 (Co)Induktiv Definieren und Beweisen Strukturelle Induktion über lfp(F ): Jede C-Invariante von lfp(F ) enthält lfp(F ).
Bzgl. C induktiv definierte Funktion f : lfp(F ) → A:
Für alle c ∈ C gibt es gc : A|Ic| × lfp(F )n → A derart, dass für {i1, . . . , ik } = Ic und alle
(t1, . . . , tn) ∈ dom(c) folgende Gleichung gilt:
f (c(t1, . . . , tn)) = gc(f (ti1 ), . . . , f (tik ), t1, . . . , tn).
Q
Destruktormenge D für A: Für alle b ∈ d∈D ran(d) gibt es genau ein a ∈ A mit
d(a) = πd(b) für alle d ∈ D.
Für alle d : A → A1 + · · · + An ∈ D sei Id die Menge der Indizes 1 ≤ i ≤ n mit Ai = A.
F : P(S) → P(S) basiert auf D: Für alle T ⊆ S,
F (T ) = {t ∈ S | ∀ d ∈ D, i ∈ Id : d(t) = (u, i) ⇒ u ∈ T }.
Bzgl. D coinduktiv definierte Funktion g : A → gfp(F ):
Für alle c ∈ C 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)
87
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).
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}
88
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 hier 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.
89
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 meistens mit f () 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
90
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.
91
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.
92
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.
93
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
94
5 Gleichungslogik 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):
95
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 Zeigen Sie durch strukturelle Induktion über TΣ(X), dass g ∗ der einzige ΣHomomorphismus von TΣ(X) nach A mit g ∗ ◦ incX = g ist.
o
96
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.
97
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.
98
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
99
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))
100
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 ],
σ1 . . . σn anstelle von σn∗ ◦ · · · ◦ σ2∗ ◦ σ1.
σ1 . . . σn bezeichnet man auch als Kleisli-Komposition der Belegungen σ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] immer 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.
101
5 Gleichungslogik 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).
102
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) mit A |= t ≡ t0.
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
103
5 Gleichungslogik 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.
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.
104
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.
Aufgabe Zeigen Sie, dass es für jede Σ-Algebra A, die E erfüllt, mehrere Terme t ∈ NF
gibt mit (x + y) ∗ (z + z 0) ≡A t.
Unten werden zwei Verfahren zur Berechnung äquivalenter Normalformen beschrieben
und in Beispiel 5.7 bzw. 5.9 auf NF und E angewendet.
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.
105
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.
Ä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)
106
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.
107
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
108
5 Gleichungslogik 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)
109
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.5 (iii) und Satz 4.7 (i) 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
Beispiel 4.4).
Sei (E, t ≡ t0) ∈ FGK (P ).
110
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
111
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
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).
112
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
113
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:
114
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
115
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 eine bedingte Gleichungen enthalten.
Satz 5.9 Sei incX : X → NF die Inklusion von X in NF (siehe Kapitel 3) und 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.
(4)
Beweis. Für alle t ∈ TΣ(X) gelte
t ≡E inc∗X (t).
(5)
Aus (5) und (2) folgt t ≡A inc∗X (t).
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.
116
5 Gleichungslogik 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
Beispiel 5.10
Seien Σ, NF und E wie in Beispiel 5.5.
NF 2 kann wie folgt induktiv definiert werden:
• t, t0 ∈ T{∗}(X) ⇒ (t, t0) ∈ NF ,
• u, v, t0 ∈ NF
⇒ (u + v, t0) ∈ NF 2,
• t ∈ T{∗}(X) ∧ u, v ∈ NF
⇒ (t, u + v) ∈ NF 2.
+ und ∗ werden in NF als induktiv definierte Funktionen interpretiert:
Für alle t, t0 ∈ NF ,
117
5 Gleichungslogik t +NF t0 = t + t0,

0

t
∗
t



 (u ∗NF t0) + (v ∗NF t0)
t ∗NF t0 =
NF
NF

(t
∗
u)
+
(t
∗
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.
Beweis von (5) 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 . 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 +.
118
5 Gleichungslogik 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
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 ,
119
5 Gleichungslogik >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:
¬(¬x ∧ ¬y) ≡ x ∨ y,
x∧x
≡ x,
¬>
≡ ⊥,
¬¬x
≡ x,
¬t ∨ u
≡ t ⇒ u.
Aufgabe Zeigen Sie (5) 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
120
5 Gleichungslogik 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.
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 tiσ ≡ t0iσ aus E. 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).
121
5 Gleichungslogik 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
∗
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))
für alle σ : X → TΣ(X), also insbesondere t = id(t) = inc∗X (t) ≡E inc∗X (t0) = id(t0) = t0.
o
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.
122
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 die Semantik einer modal- oder prädikatenlogischen Formel eine Funktion des Typs State → 2, wobei State eine Zustandsmenge
ist, die in der Modallogik zu einer Kripke-Struktur K : State → P(State) × P(At)
gehört, die jedem Zustand s seine (direkten) Folgezustände sowie alle atomaren Formeln
zuordnet, die im Zustand s gelten.
In der Prädikatenlogik besteht State aus allen Belegungen von X in einer Σ-StrukturA,
d.i. eine Σ-Algebra, die die Prädikate von Σ als Relationen auf A interpretiert.
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 )
123
5 Gleichungslogik modal- bzw. prädikatenlogischen Formeln ihre jeweilige Bedeutung zuordnet.
Die Auswertung aussagen-, modal- bzw. prädikatenlogischer Formeln zu Wahrheitswerten
erfolgt demnach stets durch Anwendung der Extension g ∗ einer Belegung g von Atomen
im jeweiligen semantischen Bereich (2, P(State) bzw. P(AX )):
=
incAt
At
g∗
=
gK
TML(At)
gK∗
P(State)
2
incAtΣ(X)
AtΣ(X)
=
gA
TPL(AtΣ(X))
gA∗
≺
≺
g
TAL(At)
≺
incAt
At
P(AX )
124
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Σ(X): Eine Eigenschaft ϕ gilt genau dann für alle ΣTerme über X, wenn für alle f : n → 1 ∈ Σ aus der Gültigkeit von ϕ für Terme t1, . . . , tn
(Induktionshypothese) die Gültigkeit von ϕ für f (t1, . . . , tn) folgt.
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.
125
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 Σ-Homomorphismen h : A → B gilt (h ◦ g)∗ = h ◦ g ∗ und damit insbesondere
(g ∗ ◦ σ)∗ = g ∗ ◦ σ ∗ für alle Substitutionen σ : X → TΣ(X).
Sei t1, . . . , tn, t01, . . . , t0n, t, t0 ∈ TΣ(X). Dann nennen wir die Formel
ϕ = (t1 ≡ t01 ∧ · · · ∧ tn ≡ t0n ⇒ t ≡ t0)
eine (bedingte) Σ-Gleichung.
126
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.
127
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 ¬.
128
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 erfüllt ϕ oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn g ∗(ϕ) = 1 gilt.
ϕ ist erfüllbar, wenn es ein Modell von ϕ gibt, wenn also ϕ ≡2 ⊥ nicht gilt. Andernfalls
ist ϕ unerfüllbar oder widersprüchlich. Φ ist (un)erfüllbar, wenn es (kein) g mit
g |= ϕ für alle ϕ ∈ Φ gibt.
ϕ ist allgemeingültig oder tautologisch, wenn alle g : At → 2 Modelle von ϕ sind,
wenn also ϕ ≡2 > gilt.
129
6 Aussagenlogik ψ folgt aus ϕ oder Φ, geschrieben: ϕ |= ψ bzw. Φ |= ψ, wenn jedes Modell von ϕ bzw.
aller Elemente von Φ auch ψ erfüllt. Ist Φ leer, dann schreiben wir auch |= ψ anstelle von
Φ |= ψ.
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)
o
Aus (2) und (3) folgt sofort der Unerfüllbarkeitssatz: Sei ϕ, ψ ∈ TAL(At).
ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist.
(5)
130
6 Aussagenlogik ϕ und ψ sind äquivalent, wenn die Bitalgebra (siehe Beispiel 5.1) die AL-Gleichung
ϕ ≡ ψ erfüllt, m.a.W.: wenn für alle g : At → 2 g ∗(ϕ) = g ∗(ψ) gilt, kurz: ϕ ≡2 ψ (siehe
Kapitel 5).
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 ϕ.
131
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.
132
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.1 A (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.
133
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
Normalformen
Eine aussagenlogische Formel heißt Negationsnormalform (NNF), wenn ⇒ in ihr
nicht vorkommt und ¬ nur direkt vor Atomen.
134
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 paarweise verschiedener Konjunktionen paarweise verschiedener Literale
heißt disjunktive Normalform (DNF).
Eine Konjunktion paarweise verschiedener 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,
135
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
136
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 verschiedener Atome,
• ψ = ⊥ oder ψ ist eine Disjunktion paarweise verschiedener Atome,
• kein Atom kommt sowohl in ϕ als auch in ψ vor.
Eine Konjunktion von Gentzenformeln nennen wir implikative Normalform (INF).
137
6 Aussagenlogik 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.
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 BE -äquivalent.
(8)
138
6 Aussagenlogik • ψ ist zu einer DNF BE -äquivalent.
(9)
• ψ ist zu einer KNF BE -äquivalent.
(10)
• ϑ ist zu einer INF BE -ä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.
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 (⊥)
= >,
139
6 Aussagenlogik ¬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:
• 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.
140
6 Aussagenlogik 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},

>⇒⊥
falls neg(d) = ∅ = pos(d),





falls neg(d) 6= ∅, pos(d) = ∅,

 x1 ∧ · · · ∧ xm ⇒ ⊥
gen(d) =
> ⇒ y1 ∨ · · · ∨ yn
falls neg(d) = ∅, pos(d) 6= ∅,




x1 ∧ · · · ∧ xm ⇒ y1 ∨ · · · ∨ yn falls neg(d) 6= ∅ =
6 pos(d), pos(d)kneg(d),



>
sonst.
Kurz gesagt, die positiven Literale von d bilden, konjunktiv verknüpft, die Prämisse
der Gentzenformel gen(d), während die Atome der negativen Literale von d, disjunktiv
verknüpft, die Konklusion von gen(d) bilden.
Aufgabe Zeigen Sie
ϑ ≡BE inf (ϑ) =def
^
{gen(d) | d ist Faktor von ϑ, gen(d) 6= >}.
o
141
6 Aussagenlogik Zusammengefasst erhält man eine zu einer aussagenlogischen Formel ϕ BE -äquivalente
• NNF durch Anwendung von nnf auf ϕ;
• DNF und KNF durch Anwendung von aus BE ableitbaren Gleichungen auf nnf (ϕ);
• INF durch Anwendung von inf auf die KNF.
Sei die Menge At der Atome endlich. Dann können wir ihre Elemente anordnen:
At = {x1, . . . , xn}.
Dann gibt es für jede aussagenlogische Formel ϕ über At sogar 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. M.a.W.: Eine DNF ist
eine MDNF, wenn jeder ihrer Summanden n Faktoren hat und für alle 1 ≤ j ≤ n der
j-te Faktor das Atom xj enthält.
142
6 Aussagenlogik 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.1 A 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)
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.
143
6 Aussagenlogik 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
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.
144
6 Aussagenlogik |At|
Aufgabe Zeigen Sie, dass es genau 3|At| Gentzenformeln und 23
INFs mit denselben Gentzenformeln nur einfach gezählt werden.
INFs gibt, wobei alle
o
Schnittkalkül
Der aussagenlogische Schnittkalkül ASK besteht aus zwei Regeln:
Einführungsregel
Φ`ψ
ψ∈Φ
Aussagenlogische Schnittregel
Φ ` ϕ ⇒ ψ ∨ x,
Φ ` x ∧ ϕ0 ⇒ ψ 0
Φ ` ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0
ϕ, ϕ0, ψ, ψ 0 ∈ TAL(At), x ∈ At
Jede zur Gentzenformel des Sukzedenten der Schnittregel BE -ä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.
145
6 Aussagenlogik Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung
von > ⇒ ⊥ aus Φ.
Beispiel Schnittwiderlegung der Gentzenformelmenge Φ = {ϕ1, ϕ2, ϕ3, ϕ4} mit
ϕ1
ϕ2
ϕ3
ϕ4
Φ
Φ
Φ
Φ
Φ
Φ
Φ
`
`
`
`
`
`
`
ϕ1
ϕ2
>⇒y∨z
ϕ3
>⇒y
ϕ4
>⇒⊥
=
=
=
=
> ⇒ x ∨ y ∨ z,
x ⇒ y ∨ z,
z ⇒ y,
y ⇒ ⊥.
Resolvente von ϕ1 und ϕ2
Resolvente von > ⇒ y ∨ z und ϕ3
Resolvente von > ⇒ y und ϕ4
o
146
6 Aussagenlogik Für eine Gentzenformel der Form > ⇒ ϕ oder ψ ⇒ ⊥ schreiben wir fortan auch ϕ bzw.
ψ.
Satz 6.2 (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). Es genügt zu zeigen, dass aus der Konjunktion der Antezedenten ϕ ⇒
ψ ∨ x und x ∧ ϕ0 ⇒ ψ 0 der Schnittregel der Sukzedent ϕ ∧ ϕ0 ⇒ ψ ∨ ψ 0 folgt. Daraus
erhält man (i) durch Induktion über die Anzahl der Resolventen einer Schnittableitung
von ψ aus Φ.
Sei also g : At → 2 ein Modell der Antezedenten. Dann gilt
g ∗(ϕ ⇒ ψ ∨ x) = 1 = g ∗(x ∧ ϕ0 ⇒ ψ 0).
Sei g ein Modell der Prämisse des Sukzedenten, d.h. g ∗(ϕ ∧ ϕ0) = 1. Daraus folgt
g ∗(ϕ) = 1 = g ∗(ϕ0).
(14)
147
6 Aussagenlogik Zu zeigen bleibt, dass g auch die Konklusion des Sukzedenten erfüllt, d.h.
g ∗(ψ ∨ ψ 0) = 1.
(15)
Fall 1: g(x) = 0. Wegen (14) gilt g ∗(ϕ) = 1. Wegen g ∗(ϕ ⇒ ψ ∨ x) = 1 folgt daraus
g ∗(ψ ∨ x) = 1 , also auch (15):
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 (14) gilt g ∗(x ∧ ϕ0) = g(x) ∧2 g ∗(ϕ0) = 1 ∧2 g ∗(ϕ0) = g ∗(ϕ0) = 1.
Wegen g ∗(x ∧ ϕ0 ⇒ ψ 0) = 1 folgt daraus g ∗(ψ 0) = 1, also auch (15):
g ∗(ψ ∨ ψ 0) = g ∗(ψ) ∨2 g ∗(ψ 0) = g ∗(ψ) ∨2 1 = 1.
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:
148
6 Aussagenlogik Satz 6.3 (Vollständigkeit von ASK -Widerlegungen)
Sei Φ eine unerfüllbar 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 Φ = {⊥}.
Seien n > 0 und x ein in ϕ vorkommendes Atom.
Seien px(Φ) und nx(Φ) die Mengen aller Gentzenformeln von Φ, die x enthalten bzw.
nicht enthalten,
Φ⊥ = {ϑ ⇒ ϑ0 | ϑ ⇒ ϑ0 ∨ x ∈ px(Φ)} ∪ nx(Φ),
Φ> = {ϑ ⇒ ϑ0 | x ∧ ϑ ⇒ ϑ0 ∈ px(Φ)} ∪ nx(Φ).
Für alle ϕ ∈ Φ⊥ und ψ ∈ Φ> gilt
ϕ ≡2 {⊥/x}∗(ϕ) bzw. ψ ≡2 {>/x}∗(ψ).
(16)
Da Φ unerfüllbar ist, sind wegen (4) auch {⊥/x}∗(ϕ) und {>/x}∗(ψ), also wegen (16)
auch Φ⊥ und Φ> unerfüllbar.
149
6 Aussagenlogik Da Φ⊥ und Φ> ein Atom weniger enthalten als Φ, folgt Φ⊥ `ASK ⊥ und Φ> `ASK ⊥ nach
Induktionsvoraussetzung. Lemma 6.4 (s.u.) impliziert Φ `ASK ⊥.
o
Aufgabe
Sei Φ⊥ `ASK ψ = (ϑ ⇒ ϑ0). Zeigen Sie durch Induktion über die Anzahl der Schnittregelanwendungen einer kürzesten Ableitung von ψ aus Φ⊥, dass Φ `ASK ψ oder Φ `ASK
ϑ ⇒ ϑ0 ∨ x gilt.
Sei Φ> `ASK ψ = (ϑ ⇒ ϑ0). Zeigen Sie durch Induktion über die Anzahl der Schnittregelanwendungen einer kürzesten Ableitung von ψ aus Φ>, dass Φ `ASK ψ oder Φ `ASK
x ∧ ϑ ⇒ ϑ0 gilt.
o
Lemma 6.4 (Verallgemeinerung von [9], Lemma 1.50)
Seien Φ eine Menge von Gentzenformeln, x ∈ At, Φ⊥ und Φ> wie im Beweis von Satz
6.3, Φ⊥ `ASK ⊥ und Φ> `ASK ⊥. Dann gilt Φ `ASK ⊥.
Beweis. Laut obiger Aufgabe gilt Φ `ASK ⊥ oder sowohl Φ `ASK x als auch Φ `ASK x.
Da ⊥ die Resolvente von x und x ⇒ ⊥ ist, gilt auch im zweiten Fall Φ `ASK ⊥ gilt. o
150
6 Aussagenlogik Die inverse Relation von `ASK ist nicht wohlfundiert, m.a.W.: es gibt unendliche Schnittableitungen. Wegen der endlichen Anzahl aussagenlogischer Resolventen, die man aus
einer endlichen Menge Φ von Gentzenformeln bilden kann, muss aber in jeder unendlichen Schnittableitung aus Φ mindestens eine Gentzenformel mehrfach vorkommen. Wir
können also auf die weitere Verwendung jeder abgeleiteten Formel verzichten, die schon
früher abgeleitet wurde oder ein Element von Φ ist.
Damit wird nicht nur jede einzelne Schnittableitung aus Φ, sondern auch die Menge aller
dieser Ableitungen endlich, so dass die Frage “Ist Φ erfüllbar?” entschieden, d.h. stets mit
ja oder nein beantwortet werden kann. Aus den Sätzen 6.2 (ii) und 6.3 folgt nämlich, dass
Φ genau dann erfüllbar ist, wenn mindestens eine dieser Ableitungen mit ⊥ endet.
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.
151
6 Aussagenlogik Bei der mathematischen Darstellung eines Baumes und seiner Knoten muss unterschieden
werden zwischen den Knoten selbst und deren jeweiliger Markierung, die für mehrere
Knoten dieselbe sein kann.
Sei L eine Menge von Markierungen (labels). Eine Funktion t : N∗>0 → 1 + L heißt Lmarkierter Baum, wenn t() ∈ L und für alle w ∈ N∗ und i > 0 folgende Implikationen
gelten:
w(i + 1) ∈ L ⇒ wi ∈ L,
(17)
wi ∈ L ⇒ w ∈ L.
(18)
w ∈ N∗>0 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∗>0 | t(w) ∈ L}
ist die Domäne von t. t ist endlich, wenn dom(t) endlich ist.
Jedes Element von dom(t) identifiziert eindeutig einen Knoten von t. (17) drückt aus,
dass jeder Knoten außer der Wurzel einen Vorgänger in t hat. (18) erlaubt die eindeutige
Identifizierung von Geschwisterknoten.
152
6 Aussagenlogik Eine Baumdomäne
Tree(L) bezeichnet die Menge aller L-markierten Bäume.
Sei t ∈ Tree(L) und w ∈ N∗>0 mit t(w) ∈ L.
Der Baum t0 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.
153
6 Aussagenlogik Die wie folgt definierte Präfixrelation ≤ ist eine partielle Ordnung auf N∗>0 (siehe Kapitel 5): Für alle v, w ∈ N∗>0,
v ≤ w ⇔def es gibt u ∈ N∗>0 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.
w heißt Blatt von t, wenn für alle n > 0 t(wn) = ist.
leaves(t, w) bezeichnet die Menge aller von w aus erreichbaren Blätter von t.
path(v, w) =def {u ∈ N∗>0 | v ≤ u ≤ w} heißt Pfad oder Weg von v nach w.
Die Präfixrelation ≤ überträgt sich auf Bäume: Für alle L-markierten Bäume t und t0,
t ≤ t0 ⇔def für alle w ∈ f −1(L), t(w) = t0(w).
Diese partielle Ordnung auf N∗ → 1 + L heißt Subsumptionsrelation.
154
6 Aussagenlogik 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.
155
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∗>0,

> falls u = w,



ϕ
falls u = v1 und v ∈ leaves(t, w),
0
t (u) =def

ψ
falls u = v2 und v ∈ leaves(t, w),



t(u) sonst.
• ∧-Regel Sei t(w) = ϕ ∧ ψ. Für alle u ∈ N∗>0,

> falls u = w,



ϕ
falls u = v1 und v ∈ leaves(t, w),
0
t (u) =def

ψ
falls u = v11 und v ∈ leaves(t, w),



t(u) sonst.
156
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)
157
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
158
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:
159
6 Aussagenlogik • Atomregel Sei t(w) = ϕ ∈ At. Für alle u ∈ N∗>0,


 ⊥ 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∗>0,


 ⊥ 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.
160
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.
161
6 Aussagenlogik Highlights
g : At → 2 erfüllt ϕ ∈ TAL(X) oder ist ein Modell von ϕ, geschrieben: g |= ϕ, wenn
g ∗(ϕ) = 1 gilt.
ϕ ist erfüllbar, wenn ϕ ein Modell hat. Φ ⊆ TAL(At) ist erfüllbar, wenn es g mit g |= ϕ
für alle ϕ ∈ Φ gibt.
ϕ ist allgemeingültig, wenn alle g : At → 2 Modelle von ϕ sind.
ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch ψ erfüllt.
Unerfüllbarkeitssatz: ψ folgt genau dann aus ϕ, wenn ϕ ∧ ¬ψ unerfüllbar ist.
AL-Algebren, die die folgenden AL-Gleichungen über {x, y, z} erfüllen, heißen Boolesche Algebren:
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)
162
6 Aussagenlogik Atome heißen auch positive Literale, Formeln ¬ϕ mit ϕ ∈ At negative Literale.
Eine Disjunktion paarweise verschiedener Konjunktionen paarweise verschiedener Literale
heißt disjunktive Normalform (DNF).
Eine Konjunktion paarweise verschiedener Disjunktionen paarweise verschiedener Literale
heißt konjunktive Normalform (KNF).
Satz 6.1 (9) und (10): Jede aussagenlogische Formel hat BE -ä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): Kein Atom kommt sowohl in ϕ als auch in ψ vor,
• ϕ = > oder ϕ ist eine Konjunktion paarweise verschiedener Atome,
• ψ = ⊥ oder ψ ist eine Disjunktion paarweise verschiedener Atome.
163
6 Aussagenlogik Eine Konjunktion von Gentzenformeln nennen wir implikative Normalform (INF).
Satz 6.1 (11): Jede aussagenlogische Formel hat eine BE -äquivalente INF.
Der aussagenlogische Schnittkalkül ASK besteht aus den o.g. zwei Regeln. Die Gentzenformel des Sukzedenten der Schnittregel heißt Resolvente.
Eine ASK -Widerlegung einer Menge Φ von Gentzenformeln ist eine ASK -Ableitung
von > ⇒ ⊥ aus Φ.
Korrektheit und Vollständigkeit von ASK -Ableitungen bzw. -Widerlegungen
(Sätze 6.2 und 6.3):
Sei Φ endlich.
Aus Φ `ASK ψ folgt Φ |= ψ.
Φ `ASK ⊥ gilt genau dann, wenn Φ unerfüllbar ist.
164
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.
165
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.
166
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:
167
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)}.
168
7 Modallogik incAt
=
gK
TML(At)
gK∗
≺
At
P(State)
Sei ϕ ∈ TML(At) und s ∈ State. Das Paar (ϕ, s) heißt Zustandsformel.
K erfüllt ϕ in s oder (K, s) ist ein Modell von ϕ, geschrieben: K |=s ϕ, wenn s zu
gK∗ (ϕ) gehört, in Worten: wenn ϕ im Zustand s gilt.
ϕ ist erfüllbar, wenn es ein Modell von ϕ gibt. Andernfalls ist ϕ unerfüllbar oder
widersprüchlich.
ϕ ist allgemeingültig oder eine Tautologie, wenn alle Paare, die aus einer KripkeStruktur K und einem Zustand von K bestehen, ϕ erfüllen.
ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch ψ erfüllt.
169
7 Modallogik Aufgabe Zeigen Sie (1)-(3) aus Kapitel 6 für modallogische Formeln.
Zwei modallogische Formeln ϕ und ψ sind äquivalent in K, geschrieben: ϕ ⇔K ψ, wenn
gK∗ (ϕ) mit gK∗ (ψ) übereinstimmt.
K heißt endlich verzweigt (finitely branching), wenn für alle s ∈ State die Menge δ(s)
endlich ist.
Übersetzung von Modal- in Aussagenlogik
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:
170
7 Modallogik Für alle x ∈ At, ⊗ ∈ {∨, ∧, ⇒}, ϕ, ψ ∈ TML(At) und s ∈ State,
ml2al (x, s) = (x, s),
ml2al (⊥, s) = ⊥,
ml2al (>, s) = >,
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
171
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).
172
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,
173
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
174
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 Belegung hK : At × State → 2 lautet hier wie folgt:
175
7 Modallogik Für alle 1 ≤ i ≤ 3 und (a1, a2, a3) ∈ State, f (xi, (a1, a2, a3)) = ai. Also gilt:
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)
= 1 ∧2 1 ∨2 1 ∧2 0 ∨2 0 ∧2 0 = 1.
Wir schließen aus Satz 7.1, dass (K, 001) ein Modell von 332x3 ist.
o
Beispiel 7.2 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.
176
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 (δ) folgende ML-Gleichungen erfüllt:
¬3x ≡ 2¬x
3(x ∨ y) ≡ 3x ∨ 3y
2(x ∧ y) ≡ 2x ∧ 2y
¬2x ≡ 3¬x
(negM )
(distDia)
(distBox )
177
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.
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).
178
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.
179
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.
180
7 Modallogik Für alle s ∈ State und w ∈ N∗>0 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∗>0,


>
falls u = w,



 (ϕ, s) falls u = v1 und v ∈ leaves(t, w),
0
t (u) =def

(ψ, s) falls u = v2 und v ∈ leaves(t, w),



 t(u) sonst.
181
7 Modallogik • ∧-Regel Sei t(w) = (ϕ ∧ ψ, s). Für alle u ∈ N∗>0,


>
falls u = w,



 (ϕ, s) falls u = v1 und v ∈ leaves(t, w),
0
t (u) =def

(ψ, s) falls u = v11 und v ∈ leaves(t, w),



 t(u) sonst.
• 3-Regel Sei t(w) = (3ϕ, s) und s0 ∈ State komme in t nicht vor. Für alle u ∈ N∗>0,


>
falls u = w,




0

(s,
s
) falls u = v1 und v ∈ leaves(t, w),



 (ϕ, s0) falls u = v11 und v ∈ leaves(t, w),
0
t (u) =def
0
i

(ϕ
,
s
)
falls
u
=
v111
, v ∈ leaves(t, w),

i




{ϕ1, . . . , ϕn} = boxes(s, t, v) und 1 ≤ i ≤ n,




t(u)
sonst.
182
7 Modallogik • 2-Regel Sei t(w) = (2ϕ, s). Für alle u ∈ N∗>0,


box(ϕ, s) falls u = w,



 (ϕ, s )
falls u = v1i, 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.
183
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)).
184
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:
t ≤ t0 ⇔def für alle w ∈ N∗>0, t0(w)



 = t(w)
falls t(w) Zustandsliteral ist,
∈ {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.
185
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)
186
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∗>0,



 (ϕ, s) falls u = 1,
tv (u) =def
(ψ, s) falls u = 11,


 ti(u) sonst.
187
7 Modallogik Aus K |= ti(w) = (ϕ ∧ ψ, s) folgt K |= (ϕ, s) = tv (0) und K |= (ψ, s) = tv (11). 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∗>0,
falls u = 1,
falls u = 11,
falls 1 ≤ i ≤ n und u = 111i,
sonst.
Aus K |= ti(w) = (3ϕ, s) folgt, dass es s0 ∈ δ(s) mit K |= (ϕ, s0) gibt. Demnach gilt
K |= (s, s0) = tv (1) und K |= (ϕ, s0) = tv (11).
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 (111i). Demnach gilt (1) für v 0 = 111n.
188
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∗>0,
(
(ϕ, si) falls 1 ≤ i ≤ n und u = 1i,
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 = 1n.
(ii): Da t0 geschlossen ist, folgt aus Lemma 7.3, dass t0 unerfüllbar ist. Also ist wegen (i)
auch t unerfüllbar.
o
189
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∗>0,
(
(ϕ, 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.
190
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).
191
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
192
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∗>0 \ {} 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:
193
7 Modallogik • Atomregel Sei t(w) = (ϕ, s) ein Zustandsatom. Für alle u ∈ N∗>0,



 ⊥ 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∗>0,



 ⊥ 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.
194
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)
195
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.
196
7 Modallogik Zustandsäquivalenz
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).
∼K ist definiert als größte Relation ∼ ⊆ State 2 mit folgender Eigenschaft:

0

(1)

 β(s) = β(s ),
s ∼ s0 ⇒
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼ t0,
(2)


 ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼ t0.
(3)
s, s0 ∈ State heißen K-verhaltensäquivalent, wenn (s, s0) zu ∼K gehört.
197
7 Modallogik Demnach ist die Schrittfunktion F : P(State 2) → P(State 2) von ∼K wie folgt definiert:
Für alle ∼ ⊆ State 2,
F (∼) = {(s, s0) ∈ State 2 | β(s) = β(s0),
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼ t0,
∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼ t0}.
Eine K-Bisimulation ist eine F -dichte Teilmenge von State 2.
Demnach ist ∼K ist die größte F -dichte Teilmenge von State 2.
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. ∼K is definiert als größte K-Bisimulation. Folglich ist ∼eq
K in ∼K
eq
enthalten, falls auch ∼eq
K eine K-Bisimulation ist. Andererseits ist ∼K in ∼K enthalten.
Beide Relationen würden also miteinander übereinstimmen. Damit wäre nicht nur ∼eq
K,
sondern auch ∼K eine Äquivalenzrelation.
198
7 Modallogik 2
0
Zu zeigen bleibt also, dass ∼eq
K eine K-Bisimulation ist, dass also für alle (s, s ) ∈ State
folgende Implikation gilt:

0

(1)

 β(s) = β(s ),
0
s ∼eq
⇒
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼eq
t0,
(2)
K s
K


 ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼eq t0.
(3)
K
Beweis. Die Schrittfunktion G : P(State 2) → P(State 2) von ∼eq
K ist wie folgt definiert:
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 (1)-(3) genau dann, wenn
R =def {(s, s0) ∈ State 2 | (s, s0) erfüllt (1)-(3)}
eq
∼eq
enthält.
Nach
Satz
4.2
(iii)
ist
lfp(G)
=
∼
K
K in jeder G-abgeschlossenen Teilmenge
2
von State enthalten. Also gelten (1)-(3), 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.
199
7 Modallogik Fall 2: s = s0. Daraus folgt (s, s0) ∈ R, weil die Diagonale von State 2 eine K-Bisimulation
und in ∼eq
K enthalten ist.
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
Manchmal werden Bisimulationen zwischen zwei Kripke-Strukturen
K = hδ, βi : State → (P(State) × P(At))
und
K0 = hδ 0, β 0i : State 0 → (P(State 0) × P(At))
mit möglicherweise verschiedenen Zustandsmengen betrachtet:
200
7 Modallogik ∼ ⊆ State × State 0 heißt Bisimulation zwischen K und K0, wenn für alle s ∈ State
und s0 ∈ State 0 die folgende Implikation gilt:

0 0

(1)

 β(s) = β (s ),
s ∼ s0 ⇒
∀ t ∈ δ(s) ∃ t0 ∈ δ 0(s0) : t ∼ t0,
(2)


 ∀ t0 ∈ δ 0(s0) ∃ t ∈ δ(s) : t ∼ t0.
(3)
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.
201
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 Kapitel 2) eine Bisimulation zwischen K und K0 ist.
o
s, s0 ∈ State heißen elementar K-äquivalent, wenn K im Zustand s dieselben modallogischen Formeln erfüllt wie im Zustand s0.
Die Menge aller elementaren K-äquivalenten Zustände bezeichnen wir mit ≈K .
Satz 7.6 Hennessy-Milner-Theorem
Sei K = hδ, βi eine endlich verzweigte Kripke-Struktur. Dann gilt ∼K = ≈K .
Beweis. Wir zeigen zunächst:
∼K ⊆ ≈K .
(1)
202
7 Modallogik (1) folgt aus der Definition elementarer K-Äquivalenz und folgender Eigenschaft:
Für alle ϕ ∈ TML(At) gilt:
∀ s, s0 ∈ State : (s ∼K s0 ⇒ (s ∈ gK∗ (ϕ) ⇔ s0 ∈ gK∗ (ϕ))).
(2)
Beweis von (2) durch strukturelle Induktion über TML(At):
Sei s ∼K s0. Dann gilt für alle x ∈ At,
s∈
gK∗ (x)
s∼K s0
= gK (x) ⇔ x ∈ β(s) = β(s0) ⇔ x ∈ β(s0) ⇔ s0 ∈ gK (x) = gK∗ (x).
Für alle ϕ, ψ ∈ TML(At),
s ∈ gK∗ (¬ϕ) = State \ gK∗ (ϕ)
ind. hyp.
⇔
s0 ∈ State \ gK∗ (ϕ) = gK∗ (ϕ)(s0),
s ∈ gK∗ (ϕ ∧ ψ) = gK∗ (ψ) ∩ gK∗ (ϑ)
ind. hyp.
⇔
s0 ∈ gK∗ (ϕ) ∩ gK∗ (ψ) = gK∗ (ϕ ∧ ψ),
s ∈ gK∗ (ϕ ∨ ψ) = gK∗ (ψ) ∪ gK∗ (ϑ)
ind. hyp.
s0 ∈ gK∗ (ϕ) ∪ gK∗ (ψ) = gK∗ (ϕ ∨ ψ).
⇔
Wegen s ∼K s0 gilt
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ∼K t0 und ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ∼K t0.
(3)
203
7 Modallogik Daraus folgt
s ∈ gK∗ (2ϕ) ⇔ δ(s) ⊆ gK∗ (ϕ)
(3), ind. hyp.
δ(s0) ⊆ gK∗ (ϕ) ⇔ s0 ∈ gK∗ (2ϕ),
s ∈ gK∗ (3ϕ) ⇔ δ(s) ∩ gK∗ (ϕ) 6= ∅
(3), ind. hyp.
δ(s) ∩ gK∗ (ϕ) 6= ∅ ⇔ s0 ∈ gK∗ (3ϕ).
⇔
⇔
Zu zeigen bleibt die Umkehrung von (1):
≈K ⊆ ∼K .
Da ∼K die größte K-Bisimulation ist, genügt es zu zeigen, dass ≈K eine solche ist, dass
also folgende Implikation gilt:

0

(4)

 β(s) = β(s ),
s ≈K s0 ⇒
∀ t ∈ δ(s) ∃ t0 ∈ δ(s0) : t ≈K t0,
(5)


 ∀ t0 ∈ δ(s0) ∃ t ∈ δ(s) : t ≈K t0.
(6)
Sei s ≈K s0. Dann gilt für alle x ∈ At,
x ∈ β(s) ⇔ s ∈ gK (x) = gK∗ (x) ⇔ s0 ∈ gK∗ (x) = gK (x) ⇔ x ∈ β(s0),
also (4).
Ab hier folgen wir dem Beweis von [6], Satz 3.17, und zeigen (5).
204
7 Modallogik Sei t ∈ δ(s) und St = {u ∈ δ(s0) | t 6≈K u}. Dann gibt es für alle u ∈ St eine Formel
6 gK∗ (ϕu).
ϕu ∈ TML(At) mit t ∈ gK∗ (ϕu) und u ∈
Da K endlich verzweigt ist, ist δ(s0), also auch St endlich und damit (K, t) ein Modell
von
^
ϕ =
{ϕu | u ∈ St}.
Aus t ∈ δ(s) folgt s ∈ gK∗ (3ϕ), also wegen s ≈K s0 auch s0 ∈ gK∗ (3ϕ). Demnach gibt es
t0 ∈ δ(s0) ∩ gK∗ (ϕ).
Wäre t0 in St, dann wäre t0 6∈ gK∗ (ϕt0 ), also
^
\
0
∗
∗
t 6∈ {gK (ϕu) | u ∈ St} = gK ( {ϕu | u ∈ St}) = gK∗ (ϕ). t0 gehört also nicht zu St, d.h. t und t0 sind elementar K-äquivalent.
Analog erhält man (6).
o
Das Hennessy-Milner-Theorem begründet einmal mehr 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.
205
7 Modallogik Sei F die Schrittfunktion für ∼K (s.o.). Nach Satz 4.5 (ii) stimmt ∼K mit gfp(F ) überein.
T
Ist F∞ = n∈N F n(State 2) F -dicht ist, dann gilt gfp(F ) = F∞ nach Satz 4.3 (ii).
Um zu zeigen, das F∞ F -dicht ist, 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
)
}.
Lemma 7.7 Für alle n ∈ N, ∼n = F n(ker(β)).
Beweis durch Induktion über n. ∼0 = ker(β) = F 0(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) ∈ F n(ker(β)) ⊆ ker(β). Nach Definition von F gehört daher (s, s0) zu
F n+1(ker(β)).
Sei (s, s0) ∈ F n+1(ker(β)). Nach Definition von F gilt
F n+1(ker(β)) = F n(F (ker(β))) ⊆ F n(ker(β)),
206
7 Modallogik also s ∼n s0 nach Induktionsvoraussetzung. Sei t ∈ δ(s) und t0 ∈ δ(s0). Nach Definition
von F gibt es u0 ∈ δ(s0) und u ∈ δ(s) mit (t, u0), (u, t0) ∈ F n(ker(β)). Nach Induktionsvoraussetzung folgt t ∼n u0 und u ∼n t0. Nach Definition von ∼n+1 gilt daher s ∼n+1 s0.o
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
F∞ = n∈N F n(State 2) = n∈N F n+2(State 2)
T
= n∈N F n+1(F (ker(β) ∩ {(s, s0) ∈ State 2 | δ(s) = ∅ ⇔ δ(s0) = ∅}))
T
T
T
= n∈N F n+1(F (ker(β))) = n∈N F n+2(ker(β)) = n∈N ∼n+2 = ∼ω .
Wegen ∼K = gfp(F ) bleibt nach Satz 4.3 (ii) zu zeigen, dass ∼ω F -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.
207
7 Modallogik 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) ∈ F (∼ω ) aus der
Definition von F . Wir haben gezeigt, dass ∼ω F -dicht ist.
o
Sei K = hδ, βi : State → (P(State) × P(At)) eine Kripke-Struktur.
Der Quotient State/∼K von State nach der K-Verhaltensäquivalenz (siehe Kapitel 5) ist
die Zustandsmenge der Kripke-Struktur Kmin mit minimaler Zustandsmenge:
Kmin = hδmin, βmini : State/∼K → Pfin (State/∼K ) × P(At)
[s] 7→ ({[s0] | s0 ∈ δ(s)}, β(s))
Hier ist 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)
208
7 Modallogik 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
Aufgabe Zeigen Sie, dass die natürliche Abbildung nat∼K : State → State/∼K (siehe
Kapitel 5) ein Kripke-Morphismus ist.
Demnach ist der Graph von nat∼K eine Bisimulation zwischen K und Kmin (siehe Aufgabe
vor Satz 7.6), kurz gesagt: Kmin hat das gleiche Verhalten wie K. Dass die Zustandsmenge
von Kmin bzgl. dieses Verhaltens minimal ist, zeigt folgender Satz:
Satz 7.9 Sei K endlich verzweigt. Kmin-verhaltensäquivalente Zustände sind gleich.
209
7 Modallogik T
Beweis. Nach Satz 7.8 gilt ∼K = ∼ω = F∞ = n∈N F n(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) ∈ F n(State 2).
(3)
Wir beweisen (3) durch Induktion über n. Wegen F 0(State 2) = State 2 gilt (3) im Fall
n = 0.
Es gelte (3) (Induktionshypothese). Induktionsschritt: 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) ∈ F n(State 2) bzw. (u, t0) ∈ F n(State 2) nach Definition von δmin und Induktionsvoraussetzung. Nach Definition von F folgt (s, s0) ∈ F (F n(State 2)) = F n+1(State 2).
Demnach gilt (3) für alle n ∈ N.
o
210
7 Modallogik 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.
Mn lässt sich als Dreiecksmatrix darstellen (siehe Beispiel unten und [29], Abschnitt 2.3,
wo mit dem gleichen Verfahren deterministische Automaten minimiert werden).
211
7 Modallogik 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 = Mk+1. Also gilt
nach Satz 7.8:
∼K = ∼ω = ∆State ∪ Rk ∪ Rk−1.
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!
Beispiel 7.10 (+ http://www.cs.indiana.edu/cmcs/bisimulation.pdf)
b3
a3
a2
b2
1
c3
d3
c2
212
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.
213
7 Modallogik Die entsprechenden “Dreiecksmatrizen” M0 bzw. M1 lauten wie folgt:
Die Matrizen und ihre graphische Darstellung wurden mit + Expander2 erstellt (mit
den Befehlen load Expander2/Examples/kripke1, build Kripke model und simplify bisimI
stepwise in Painter).
214
7 Modallogik 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.
215
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.
216
7 Modallogik Die Morphismen von coAlgFAt sind offenbar Kripke-Morphismen (siehe Abschnitt Zustandsäquivalenz).
Die Menge M =def Tree(P(At)) aller P(At)-markierten Bäume t : N∗>0 → 1 + P(At)
(siehe Abschnitt Knotenmarkierte Bäume in Kapitel 6) bildet die Zustandsmenge der
Kripke-Struktur
T (At) =def hδ : M → Pfin (M ), β : M → P(At)i.
δ und β sind hier wie folgt definiert: Für alle t ∈ M ,
δ(t) = {λw.t(iw) | i ∈ dom(t)} und β(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
217
7 Modallogik Zwei Bäume t, t0 ∈ M sind genau dann T (At)-verhaltensäquivalent, wenn es Unterbäume t1, . . . , tn von t gibt, so dass man für alle 1 ≤ i ≤ n durch Vertauschungen oder
Entfernungen maximaler Unterbäume von ti von t zu t0 gelangt.
Den Quotienten Beh(At) =def T (At)min (s.o.) 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
Ä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).
218
7 Modallogik 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 Pfin (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 eine Faltung für jede Signatur in gleicher Weise definiert ist, so ist eine Entfaltung
nicht nur für den Kripke-Funktor FAt, sondern in ähnlicher Weise für viele weitere Funktoren definiert (s.u.). Konsequenzen der Eindeutigkeit von Entfaltungen wie das folgende
Lemma gelten daher auch für andere Funktoren.
Satz 7.11 Lambeks Lemma (für Kripke-Strukturen) Sei State = Tree(P(At))/∼T (At)
und F = FAt. Beh(At) : State → F (State) ist bijektiv.
Beweis. Zunächst stellen wir fest, dass die Aussage nur gelten kann, weil im Wertebereich
von Beh(At) Pfin (State) und nicht P(State) steht. Andernfalls könnte Beh(At) wegen
S∼
6= P(S) für alle Mengen S (siehe Isomorphien) gar nicht bijektiv sein.
219
7 Modallogik Das folgende kommutative Diagramm zeigt, dass Beh(At) selbst ein Kripke-Morphismus
von Beh(At) in die Kripke-Struktur F (Beh(At)) ist:
State
Beh(At)
g
F (State)
Beh(At)
(1)
F (State)
F (Beh(At))
g
F (F (State))
F (Beh(At))
In umgekehrter Richtung gibt es einen weiteren Kripke-Morphismus:
F (State)
unfold F (Beh(At))
g
State
F (Beh(At))
(2)
Beh(At)
F (F (State))
F (unfold F (Beh(At)))
g
F (State)
220
7 Modallogik Aus der Kommutativität von (1) und (2) und der Funktoreigenschaft von F folgt, dass
auch die Komposition unfold ◦ Beh(At) ein Kripke-Morphismus ist:
Beh(At)
unfold
State
F (State)
State
Beh(At)
(1)
F (Beh(At))
(2)
Beh(At)
g
F (State)
g
g
F (F (State))
F (State)
F (Beh(At))
F (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)
Damit ist Beh(At) bijektiv, wenn auch die Umkehrung gilt:
Beh(At) ◦ unfold = idF (State).
(4)
Beweis von (4).
(2)
(3)
Beh(At) ◦ unfold = F (unfold ) ◦ F (Beh(At)) = F (unfold ◦ Beh(At)) = F (idState )
= idF (State).
o
221
7 Modallogik 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).
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.
222
7 Modallogik 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.
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.
223
7 Modallogik 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).
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.
224
7 Modallogik 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.
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).
∗
Wieder liefert gM
(ϕ) die Menge der Zustände, die ϕ erfüllen.
225
7 Modallogik 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.
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.
226
7 Modallogik ∗
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.
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:
227
7 Modallogik 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.
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.
228
7 Modallogik Highlights
229
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.
230
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.
231
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Σ(Χ)
232
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, . . . , b
A Folgendes gilt:
a1 ∼ b1 ∧ · · · ∧ an ∼ bn
⇒
(a1, . . . , an) ∈ pA ⇔ (b1, . . . , bn) ∈ pB .
233
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 Σ-Algebra A dargestellt.
Folglich tritt die Stelle der ML-Algebra Pow (δ) mit Trägermenge P(State) die wie folgt
definierte PL-Algebra Pow (A) mit Trägermenge P(AX ): Für alle Σ-Algebren 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,
234
(∀x)Pow (A)(S) = {h ∈ AX | {h[a/x] | a ∈ A} ⊆ S}
= {h ∈ AX | ∀ a ∈ A : h[a/x] ∈ S},
(∃x)Pow (A)(S) = {h ∈ AX | {h[a/x] | a ∈ A} ∩ S 6= ∅}
= {h ∈ AX | ∃ a ∈ A : h[a/x] ∈ S}.
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) und h : X → A,
gA(p(t1, . . . , tn)) =def {h ∈ AX | (h∗(t1), . . . , h∗(tn)) ∈ pA}.
incAtΣ(X)
=
gA
TPL(AtΣ(X))
gA∗
≺
AtΣ(X)
(1)
P(AX )
235
8 Prädikatenlogik Sei ϕ ∈ TPL(AtΣ(X)) und h : X → A.
(A, h) erfüllt ϕ, 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.
Eine Herbrand-Struktur, die ϕ erfüllt, heißt Herbrand-Modell von ϕ.
ϕ ist erfüllbar, wenn es ein Modell von ϕ gibt. Andernfalls ist ϕ unerfüllbar oder
widersprüchlich.
ϕ ist allgemeingültig oder eine Tautologie, wenn alle Σ-Strukturen ϕ erfüllen.
ψ folgt aus ϕ, geschrieben: ϕ |= ψ, wenn jedes Modell von ϕ auch ψ erfüllt.
Zwei prädikatenlogische Formeln ϕ und ψ sind äquivalent in (A, h), geschrieben: ϕ ⇔A
h
∗
∗
ψ, wenn h genau dann zu gA(ϕ) gehört, wenn h zu gA(ψ) gehört.
ϕ und ψ sind äquivalent in A, geschrieben: ϕ ⇔A ψ, wenn gA∗ (ϕ) mit gA∗ (ψ) übereinstimmt.
236
8 Prädikatenlogik 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 ϕ.
Offenbar hängt der Wahrheitswert einer Formel nur von der Belegung ihrer freien Variablen ab. Deshalb fallen die Einschränkungen der Relationen |=h und ⇔A
h auf geschlossenen
Formeln mit |= bzw. ⇔A zusammen.
237
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)
238
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∗ (ϕ ∨ ψ)}.
239
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!
240
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 ∈ AL und ϕ1, . . . , ϕn ∈ TPL(AtΣ(X)),
σ ∗(f (ϕ1, . . . , ϕn)) = f (σ ∗(ϕ1), . . . , σ ∗(ϕn)).
• Für alle p(t1, . . . , tn) ∈ AtΣ(X), σ ∗(p(t1, . . . , tn) = p(σ ∗(t1), . . . , σ ∗(tn)).
• 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.
241
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!
242
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 ∅
243
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)
244
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σ))
245
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∗ (ϕ)
246
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
247
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
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.
248
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)
249
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
250
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)).
251
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 (INF) ist (siehe Kapitel 6).
252
8 Prädikatenlogik Satz 8.7 Jede Σ-Formel ψ über X 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 -, removeQund 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)).
253
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
Eine Menge von Formeln heißt erfüllbar, wenn mindestens eine ihrer Formeln erfüllbar
ist. Andernfalls ist sie unerfüllbar.
254
8 Prädikatenlogik Satz 8.8
Eine INF ϕ 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 gilt H |=σ ϕ(σ). Da ϕ eine
INF ist, gibt es für alle Gentzenformeln ϑ ⇒ ϑ0 von ϕ ein Atom atϑ,ϑ0 in ϑ oder ϑ0 mit
σ 6∈ gH (atϑ,ϑ0 ) bzw. σ ∈ gH (atϑ,ϑ0 ).
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 ) = 0 bzw. g(atϑ,ϑ0 ) = 1 für
alle Gentzenformeln ϑ ⇒ ϑ0 von ϕ. Daraus folgt g(ϕ) = 1. Da σ beliebig gewählt wurde,
ist g ist ein aussagenlogisches Modell von HE (ϕ).
255
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 ist g ∗(ϕσ) = 1. Also gibt es für alle Gentzenformeln
ϑ ⇒ ϑ0 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
(ϑ ⇒ ϑ0).
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
(ϑ ⇒ ϑ0).
256
8 Prädikatenlogik Also gilt H |=σ ϑ ⇒ ϑ0 für alle Gentzenformeln ϑ ⇒ ϑ0 von ϕ. Da σ beliebig gewählt
wurde, ist H ein Modell von ϕ.
o
Das folgende Theorem überträgt Satz 6.3 auf beliebige Mengen von Gentzenformeln. Es
wird später auf Herbrand-Expansionen angewendet.
Satz 8.9 (Vollständigkeit aussagenlogischer Schnittwiderlegungen von Gentzenformelmengen)
Sei At abzählbar und Φ eine unerfüllbare Menge von Gentzenformeln über At.
Dann gilt Φ `ASK ⊥.
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 Elemente von At.
Der konsistente Abschluss von Φ ist die folgendermaßen definierte Menge:
257
8 Prädikatenlogik closure(Φ) =
S
n∈N Φn ,
Φ0 = Φ,
(
Φn+1 =
Φn ∪ {xn ⇒ ⊥} falls Φn ∪ {xn} `ASK ⊥,
Φn ∪ {xn}
falls Φn ∪ {xn} 6`ASK ⊥.
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.
258
8 Prädikatenlogik 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 der angenommenen Ableitung von ⊥ vorkommenden Formeln
von closure(Φ) zu Φn gehören. Also würde Φn `ASK ⊥ gelten. Folglich ist ⊥ nicht aus closure(Φ) ableitbar.
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
259
8 Prädikatenlogik Schnittkalkül
Zurück zur Prädikatenlogik mit einer Signatur Σ von Funktions- und Relationssymbolen
und einer Menge X von Individuenvariablen. Wir setzen ab jetzt voraus, dass Σ und X
abzählbar sind, so dass auch die Menge der Σ-Atome über X abzählbar ist und wir später
Satz 8.9 auf AtΣ(X) anwenden können.
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.
260
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,
261
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}.
262
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
263
8 Prädikatenlogik Sei Φ eine Menge von Gentzenformeln über AtΣ(X). Eine Folge (ϕ1, . . . , ϕn) von Gentzenformeln heißt prädikatenlogische Schnittableitung von ϕn aus Φ, wenn für alle
1 ≤ i ≤ n ϕi in Φ enthalten ist oder j < i bzw. j, k < i existieren derart, dass ϕi das
Ergebnis der Anwendung einer der folgenden Regeln auf ϕj und ϕk ist.
Ist ϕn = ⊥, dann heißt (ϕ1, . . . , ϕn) Schnittwiderlegung von Φ.
ϑ und ϑ0 bezeichnen einzelne Atome und ϕ, ϕ0, ψ, ψ 0 – möglicherweise leere – Konjunktionen oder Disjunktionen von Atomen.
Summand- bzw. Faktorregel
ϕ ⇒ ψ ∨ ϑ ∨ ϑ0
ϕσ ⇒ ψσ ∨ ϑσ
ϑ ∧ ϑ0 ∧ ϕ ⇒ ψ
ϑσ ∧ ϕσ ⇒ ψσ
σ = unify(ϑ, ϑ0)
Prädikatenlogische Schnittregel (binäre Resolution)
0
0
ϕ ⇒ ψ∨ϑ
ϑ ∧ϕ ⇒ ψ
ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ
0
σ = unify(ϑτ, ϑ0),
τ ist eine Variablenumbenennung mit
var(ϕτ ∨ ψτ ∨ ϑτ ) k var(ϑ0 ∨ ϕ0 ∨ ψ 0)
264
8 Prädikatenlogik Wir schreiben Φ `ASK ψ, wenn es eine Schnittableitung von ψ aus Φ gibt.
Ist der Antezedent der Summand- bzw. Faktorregel variablenfrei, dann ist ϑ = ϑ0, so dass
er mit dem Sukzedenten zusammenfällt, während die prädikatenlogische Schnittregel mit
der aussagenlogischen (siehe Kapitel 6) übereinstimmt.
Summand- und Faktorregelanwendungen können also aus prädikatenlogischen Schnittableitungen variablenfreier Formeln entfernt werden, weshalb solche Ableitungen nichts anderes sind als aussagenlogische Schnittableitungen.
Die Bemerkungen zur Anwendbarkeit der aussagenlogischen Schnittregel und zur Transformation der Resolvente in eine Gentzenformel (siehe Kapitel 6) gelten hier entsprechend.
Beispiele
Schnittwiderlegung der Gentzenformelmenge
Φ = {p(x), p(y) ∧ p(f (a)) ⇒ q(x), p(g(b, y)) ∧ q(b) ⇒ ⊥}
265
8 Prädikatenlogik ϕ1
=
p(y) ∧ p(f (a)) ⇒ q(x)
Element von Φ
ϕ2
=
p(f (a)) ⇒ q(x)
Faktorregelanwendung auf ϕ1 wegen
unify(p(y), p(f (a))) = {f (a)/y}
ϕ3
=
p(x)
Element von Φ
ϕ4
=
q(x)
Resolvente von ϕ3 und ϕ2 wegen
unify(p(x), p(f (a))) = {f (a)/x}
ϕ5
=
p(g(b, y)) ∧ q(b) ⇒ ⊥
Element von Φ
ϕ6
=
p(g(b, y)) ⇒ ⊥
Resolvente von ϕ4 und ϕ5 wegen
unify(q(x), q(b)) = {b/x}
ϕ7
=
p(x)
Element von Φ
ϕ8
=
⊥
Resolvente von ϕ7 und ϕ6 wegen
unify(p(x), p(g(b, y))) = {g(b, y)/x}
266
8 Prädikatenlogik Schnittwiderlegung der Gentzenformelmenge
Φ = {p(x) ⇒ ⊥, p(f (y)) ∨ q(y), q(x) ∧ q(f (b)) ⇒ ⊥}
ϕ1
=
p(f (y)) ∨ q(y)
Element von Φ
ϕ2
=
p(x) ⇒ ⊥
Element von Φ
ϕ3
=
q(y)
Resolvente von ϕ1 und ϕ2 wegen
unify(p(f (y)), p(x)) = {f (y)/x}
ϕ4
=
q(x) ∧ q(f (b)) ⇒ ⊥
Element von Φ
ϕ5
=
q(f (b)) ⇒ ⊥
Faktorregelanwendung auf ϕ4 wegen
unify(q(x), q(f (b)) = {f (b)/x}
ϕ6
=
⊥
Resolvente von ϕ3 und ϕ5 wegen
unify(q(y), q(f (b))) = {f (b)/y}
267
8 Prädikatenlogik Schnittwiderlegung der Gentzenformelmenge
Φ = {p(f (c), x) ⇒ ⊥, p(f (x), y) ∨ p(y, f (x))}
ϕ1
=
p(f (x), y) ∨ p(y, f (x))
Element von Φ
ϕ2
=
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}
ϕ2 τ
=
p(f (z), f (z))
Variablenumbenennung τ = {z/x}
ϕ3
=
p(f (c), x) ⇒ ⊥
Element von Φ
ϕ4
=
⊥
Resolvente von ϕ2τ und ϕ3 wegen
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
268
8 Prädikatenlogik 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.10 (Korrektheit prädikatenlogischer Schnittableitungen)
Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X) und ψ eine Gentzenformel.
V
(i) Aus Φ `ASK ψ folgt Φ |= ψ.
V
(ii) Aus Φ `ASK ⊥ folgt, dass Φ unerfüllbar ist.
Beweis von (i). Es genügt zu zeigen, dass für die drei o.g. Regeln aus den jeweiligen
Antezendenten der jeweilige Sukzedent folgt. Daraus erhält man (i) durch Induktion
über die Anzahl der Summand- bzw. Faktorregelanwendungen und Resolventen einer
Schnittableitung von ψ aus Φ.
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.
269
8 Prädikatenlogik 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σ
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.
270
8 Prädikatenlogik 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 Φ `ASK ⊥. Aus (i) folgt Φ |= ⊥, also ist Φ unerfüllbar.
o
Lemma 8.11 (Lifting-Lemma)
Seien ϕ1, ϕ2 Gentzenformeln über AtΣ(X), ψ1 ∈ HE (ϕ1), σ : X → TΣ, und ψ3 eine
aussagenlogische Resolvente von ψ1 und ϕ2σ.
Dann gibt es eine prädikatenlogische Schnittableitung einer Gentzenformel ϕ3 aus {ϕ1, ϕ2}
und ρ0 : X → TΣ mit ϕ3ρ0 = ψm und σ = γ 0ρ0, wobei γ 0 die Komposition der im Laufe
der Ableitung gebildeten mgus ist.
Die aus der aussagenlogischen Resolvente gebildete prädikatenlogische Ableitung besteht
aus möglicherweise leeren Folgen von Anwendungen der Summand -bzw. Faktorregel auf
ϕ1 bzw. ϕ2 und einer anschließenden Anwendung der Schnittregel:
271
8 Prädikatenlogik ψ1 = ϕ1τ σ
ϕ2 σ
aussagenlogischer
Schnitt
≺
ψ3 = ϕ3ρ0
ϕ1
..
..
.. Summandregel ..
..
.. anwendungen
..
..
.
g
ϕ1τ γ1
ϕ2
..
..
Faktorregel - ....
..
anwendungen ....
..
.
g
ϕ2 γ 2
prädikatenlogischer
Schnitt
≺
ϕ3
Beweis. Wegen ψ1 ∈ HE (ϕ1) gibt es eine Variablenumbenennung τ mit var(ϕ1τ )kvar(ϕ2)
und ψ1 = ϕ1τ σ.
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.
272
8 Prädikatenlogik 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].
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.
273
8 Prädikatenlogik Also gibt es eine prädikatenlogische Schnittableitung einer Gentzenformel ϕ3 aus {ϕ1, ϕ2}.
Aus σ = γρ = γξρ0 folgt
ψ3 = ϕτ σ ∧ ϕ0σ ⇒ ψτ σ ∨ ψ 0σ = ϕτ γξρ0 ∧ ϕ0γξρ0 ⇒ ψτ γξρ0 ∨ ψ 0γξρ0 = ϕ3ρ0.
Demnach gilt die Behauptung des Lemmas für γ 0 = γξ.
o
Satz 8.12 (Vollständigkeit prädikatenlogischer Schnittwiderlegungen)
Sei Φ eine endliche Menge von Gentzenformeln über AtΣ(X).
V
(i) Sei (ψ1, . . . , ψm) eine aussagenlogische Schnittableitung aus HE ( Φ). Dann gibt es
eine prädikatenlogische Schnittableitung (ϕ1, . . . , ϕn) aus Φ mit ψm ∈ HE (ϕn).
V
(ii) Ist Φ unerfüllbar, dann gilt Φ `ASK ⊥.
Beweis von (i) durch Induktion über die Anzahl der Resolventen unter ψ1, . . . , ψm.
Fall 1: Es gibt ϑ ∈ Φ mit ψm ∈ HE (ϑ). Dann ist (ϑ) eine Schnittableitung, die (i) erfüllt.
Fall 2: ψm ist die aussagenlogische Resolvente zweier Gentzenformeln ψr und ψs mit
r, s < m. Nach Induktionsvoraussetzung gibt es Gentzenformeln ϕ1, ϕ2 mit Φ `ASK ϕ1,
ψr ∈ HE (ϕ1), Φ `ASK ϕ2 und ψs ∈ HE (ϕ2).
274
8 Prädikatenlogik Also liefert Lemma 8.11 eine Gentzenformel ϕ3 mit {ϕ1, ϕ2} `ASK ϕ3 und ψm ∈ HE (ϕ3).
Fügt man die drei Ableitungen aneinander, so erhält man eine prädikatenlogische Schnittableitung, die (i) erfüllt.
V
Beweis von (ii). Nach Voraussetzung und Satz 8.8 ist die Herbrand-Expansion von Φ
im aussagenlogischen Sinne unerfüllbar. Da sie eine Menge variablenfreier GentzenforV
meln über der abzählbaren Menge AtΣ(X) ist, folgt HE ( Φ) `ASK ⊥ aus Satz 8.9 und
damit Φ `ASK ⊥ aus (i).
o
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 ≡ bzw. 6≡ durch die charakteristische Funktion von ∆A bzw. A2 \ ∆A interpretiert wird.
Ein Modell A einer prädikatenlogischen Formel heißt Gleichheitsmodell, wenn A eine
Gleichheitsstruktur ist.
275
8 Prädikatenlogik 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.
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)
276
8 Prädikatenlogik 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
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
277
8 Prädikatenlogik 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.
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Σ.
(1)
278
8 Prädikatenlogik (ii) Sei ϕ eine INF über AtΣ(X).
ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧
V
ϕ hat kein Gleichheitsmodell ⇔ ϕ ∧
V
congΣ ist unerfüllbar,
disgΣ ist unerfüllbar.
(2)
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/∼
279
8 Prädikatenlogik ⇔ (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/∼ |=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ϕ.
280
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 Satz 8.10 (ii) und Satz 8.12 (ii) folgt:
V
Φ ist unerfüllbar ⇔ Φ `ASK ⊥.
(4)
281
8 Prädikatenlogik Mit Hilfe von Satz 8.13 (ii) lässt sich (4) auf Gleichheitsmodelle übertragen:
V
8.13 (ii)
⇔
(4)
⇔
Φ hat kein Gleichheitsmodell
V
V
Φ ∧ congΣ ist unerfüllbar
(5)
Φ ∪ congΣ `ASK ⊥.
V
8.13 (ii)
⇔
(4)
⇔
Φ hat kein Gleichheitsmodell
V
V
Φ ∧ disgΣ ist unerfüllbar
(6)
Φ ∪ disgΣ `ASK ⊥.
282
8 Prädikatenlogik Übersetzung von Modal- in Prädikatenlogik
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. 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)),
283
8 Prädikatenlogik 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
Im Gegensatz zum Compiler ml2al 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.
284
8 Prädikatenlogik 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)
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 (>)).
285
8 Prädikatenlogik 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)),
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)).
286
8 Prädikatenlogik Für alle ϕ ∈ TML(At) und i ∈ N,
h(xi) ∈ gK∗ (2ϕ) = {s ∈ State | δ(s) ⊆ gK∗ (ϕ)} ⇔ δ(h(xi)) ⊆ gK∗ (ϕ)
⇔ für alle s ∈ State, s 6∈ δ(h(xi)) oder h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ)
ind. hyp.
⇔
für alle s ∈ State, s 6∈ δ(h(xi)) oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ für alle s ∈ State,
(h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) 6∈ transAK
oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ für alle s ∈ State,
h[s/xi+1] 6∈ gA∗ K (trans(xi, xi+1)) oder h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ für alle 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= ∅
⇔ es gibt s ∈ δ(h(xi)) mit h[s/xi+1](xi+1) = s ∈ gK∗ (ϕ)
ind. hyp.
⇔
es gibt s ∈ δ(h(xi)) mit h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
287
8 Prädikatenlogik ⇔ es gibt s ∈ State mit (h[s/xi+1](xi), h[s/xi+1](xi+1)) = (h(xi), s) ∈ transAK
und h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ es gibt s ∈ State mit h[s/xi+1] ∈ gA∗ K (trans(xi, xi+1))
und h[s/xi+1] ∈ gA∗ K (ml2pl (ϕ, xi+1))
⇔ es gibt s ∈ State mit 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
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
288
Highlights
289
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.
290
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)
291
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:
292
9 Logische Programmierung Für alle a, b, v, w ∈ A,
zeroA = 0,
(
A
suc (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,
293
(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.
Aufgabe Zeigen Sie A |=
V
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:
294
9 Logische Programmierung B
C
D
B
C
D
295
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.
296
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
297
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.
298
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)
299
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,
300
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 .
301
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
302
9 Logische Programmierung Vom Schnitt- zum SLD-Kalkül
Für ein Goal ϕ ⇒ ⊥ schreiben wir fortan auch ϕ, während ϕ (wie schon in früheren
Kapiteln) für das co-Goal > ⇒ ϕ steht.
Berechnungen eines (co-)logischen Programms LP sind Schnittwiderlegungen von LP ∪
{ϕ}, wobei ϕ ein (co-)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
LP ∪ {ϕ} verlorengeht.
Dazu betrachten wir zunächst Schnittableitungen eines (co-)Goals aus einer Menge Φ
variablenfreier (co-)Hornformeln und einem (co-)Goal.
Jede Schnittableitung s eines Goals ψ aus Φ lässt sich in eine Ableitung von ψ aus Φ
transformieren, die keine Resolvente zweier Hornformeln ϕ ⇒ pt und pt ∧ ϕ0 ⇒ qu
enthält.
Wird eine solche Resolvente nicht irgendwann mit einem Goal von s (das die Form qu ∧ ϑ
haben müsste) geschnitten, dann bleibt s eine Ableitung von ψ aus Φ, wenn man die
Resolvente aus s entfernt.
303
9 Logische Programmierung Aber selbst dann, wenn sie mit qu ∧ ϑ geschnitten wird, 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 qu ∧ ϑ:
ϕ ⇒ 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.
304
9 Logische Programmierung Analog kann man alle Resolventen zweier co-Hornformeln aus Schnittableitungen von
co-Goals entfernen, 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.
Aus dieser Beobachtung über variablenfreie Schnittwiderlegung ergibt sich der SLDKalkül zur Widerlegung einer Menge — nicht nur variablenfreier — (co-)Hornformeln
und einem (co-)Goal:
Sei LP ein (co-)logisches Σ-Programm. Eine Folge (ϕ1, . . . , ϕn) von Σ-(co-)Goals heißt
SLD-Ableitung von ϕn aus LP ∪ {ϕ1}, wenn für alle 1 < i ≤ n ϕi das Ergebnis der
Anwendung einer der folgenden Regeln auf ϕi−1 ist.
Ist ϕn = ⊥, dann heißt (ϕ1, . . . , ϕn) SLD-Widerlegung von LP ∪ {ϕ1}.
Wieder bezeichnen ϑ und ϑ0 einzelne Atome und ϕ, ψ – möglicherweise leere – Konjunktionen oder Disjunktionen von Atomen.
LP 0 bezeichne die Menge aller (co-)Hornformeln ϕ0, für die es ϕ ∈ LP und eine Variablenumbenennung τ mit ϕτ = ϕ0 gibt.
305
9 Logische Programmierung Faktor- bzw. Summandregel
ϑ ∧ ϑ0 ∧ ϕ ⇒ ⊥
ϑσ ∧ ϕσ ⇒ ⊥
> ⇒ ϕ ∨ ϑ ∨ ϑ0
> ⇒ ϕσ ∨ ϑσ
σ = unify(ϑ, ϑ0)
Resolution über LP
ϑ0 ∧ ψ ⇒ ⊥
ϕσ ∧ ψσ ⇒ ⊥
ϕ ⇒ ϑ ∈ LP 0, σ = unify(ϑ, ϑ0),
var(ϕ ∨ ϑ) k var(ϑ0 ∨ ψ)
co-Resolution über LP
> ⇒ ψ ∨ ϑ0
> ⇒ ψσ ∨ ϕσ
ϑ ⇒ ϕ ∈ LP 0, σ = unify(ϑ, ϑ0),
var(ϑ ∨ ϕ) k var(ψ ∨ ϑ0)
Wir schreiben LP ∪ {ϕ} `SLD ψ, falls es eine SLD-Ableitung von ψ aus LP ∪ {ϕ} gibt.
306
9 Logische Programmierung SLD-Resolution bedeutet 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 Φ und genau einem ihrer
Vorgänger ergibt, dass sie also niemals die Resolvente zweier Resolventen enthält. Der
Begriff Klausel umfasst Hornformeln sowie Goals. Dann entsprechen unsere Hornformeln
sog. definiten Klauseln.
Eine SLD-Ableitung heißt aussagenlogisch, wenn sie aus variablenfreien Formeln besteht. Aufgrund der obigen Bemerkungen über (co-)Hornformel-Resolventen gilt Satz 8.9
auch für aussagenlogische SLD-Widerlegungen:
Satz 9.4 (Vollständigkeit aussagenlogischer SLD-Widerlegungen)
Sei Φ eine unerfüllbare Menge variablenfreier Gentzenformeln über AtΣ(X), die aus (co-)
Hornformeln und einem (co-)Goal besteht. Dann gibt es eine aussagenlogische SLDWiderlegung von Φ.
o
307
9 Logische Programmierung Satz 9.5 (Vollständigkeit von SLD-Widerlegungen)
Sei LP ein (co-)logisches Σ-Programm und ϕ ein Σ-(co-)Goal.
(i) Seien ϕ eine Gentzenformel, σ : X → TΣ und (ψ1, . . . , ψm) eine aussagenlogische SLDAbleitung aus LP ∪ {ϕσ}. Dann gibt es eine SLD-Ableitung (ϕ1, . . . , ϕn) aus LP ∪ {ϕ}
und ρ : X → TΣ mit ϕnρ = ψm und σ = γρ, wobei γ die Komposition der im Laufe der
Ableitung gebildeten mgus ist. Zusammengefasst:
LP ∪ {ϕσ} `SLD ϕnρ
(ii) Ist
V
⇒ LP ∪ {ϕ} `SLD ϕn.
LP ∧ ϕ unerfüllbar, dann gibt es eine SLD-Widerlegung von LP ∪ {ϕ} .
Beweis von (i) durch Induktion über m − 1.
Im Fall m = 1 ist ψm = ϕσ. Also ist (ϕ) eine SLD-Ableitung, die (i) erfüllt: Setze ρ = σ
und γ = idX .
Sei m > 1. Dann ist ψ2 eine Resolvente von ψ1 = ϕσ und einer (co-)Hornformel ϕ0 von
LP und damit eine aussagenlogische Resolvente von ϕσ und einer (co-)Hornformel der
Herbrand-Expansion von LP .
308
9 Logische Programmierung Nach Lemma 8.11 gibt es eine prädikatenlogische Schnittableitung einer Gentzenformel
ϕ2 aus {ϕ, ϕ0} sowie ρ0 : X → TΣ mit ϕ2ρ0 = ψ2 und σ = γ 0ρ0, wobei γ 0 die Komposition
der im Laufe der Ableitung gebildeten mgus ist. Diese Ableitung entspricht einer SLDAbleitung (ϕ01, . . . , ϕ0k ) von ϕ2 aus LP ∪ {ϕ}, weil ϕ ein (co-)Goal und ϕ0 eine (co-)
Hornformel ist.
Nach Induktionsvoraussetzung gibt es eine SLD-Ableitung (ϕ2, . . . , ϕn) aus LP ∪ {ϕ2}
und ρ : X → TΣ mit ϕnρ = ψm und ρ0 = γρ, wobei γ die Komposition der im Laufe der
Ableitung gebildeten mgus ist. Folglich ist (ϕ01, . . . , ϕ0k , ϕ3, . . . , ϕn) eine SLD-Ableitung
von ϕn aus LP ∪{ϕ} mit σ = γ 0ρ0 = γ 0γρ. Wegen ϕnρ = ψm und da γ 0γ die Komposition
der im Laufe dieser Ableitung gebildeten mgus ist, gilt (i).
Beweis von (ii).
Sei σ : X → TΣ und (ψ1, . . . , ψm). Nach Voraussetzung und Satz 8.8 ist die HerbrandV
Expansion von LP ∧ ϕ im aussagenlogischen Sinne unerfüllbar.
V
Da HE ( LP ∧ ϕ) eine Menge variablenfreier Gentzenformeln über der abzählbaren
Menge AtΣ(X) ist, gibt es nach Satz 9.4 eine aussagenlogische SLD-Widerlegung von
V
V
HE ( LP ∧ ϕ), also auch von HE ( LP ∧ ϕσ).
309
9 Logische Programmierung V
Da jede aussagenlogische SLD-Widerlegung von HE ( LP ∧ ϕσ) eine aussagenlogische
SLD-Widerlegung von LP ∪ {ϕσ} ist, gibt es wegen (i) eine (prädikaten)logische SLDWiderlegung s von LP ∪ {ϕ}.
o
Demnach beweisen SLD-Widerlegungen die Existenz von Lösungen (= erfüllenden Belegungen; siehe Kapitel 8) von Konjunktionen ϕ bzw. negierten Disjunktionen ψ von
Atomen in Modellen eines logischen bzw. co-logischen Programms LP bzw. cLP :
310
9 Logische Programmierung V
LP |= any(ϕ)
⇔
V
LP ∧ ¬any(ϕ) ist unerfüllbar
⇔
V
LP ∧ all(¬ϕ) ist unerfüllbar
⇔
V
LP ∧ ϕ ist unerfüllbar
8.10 (ii), 9.5 (ii)
⇔
LP ∪ {ϕ} `SLD ⊥.
V
cLP |= any(¬ψ)
⇔
V
cLP ∧ ¬any(¬ψ) ist unerfüllbar
⇔
V
cLP ∧ all(ψ) ist unerfüllbar
⇔
V
cLP ∧ ψ ist unerfüllbar
8.10 (ii), 9.5 (ii)
⇔
(1)
(2)
cLP ∪ {ψ} `SLD ⊥.
Da Kongruenzaxiome Hornformeln und Diskongruenzaxiome co-Hornformeln sind, gelten
(1) und (2) entsprechend modifiziert auch in der Prädikatenlogik mit Gleichheit:
311
9 Logische Programmierung V
LP |=EQ any(ϕ)
⇔
V
LP ∧ ¬any(ϕ) hat kein Gleichheitsmodell
⇔
V
LP ∧ all(¬ϕ) hat kein Gleichheitsmodell
⇔
V
8.13 (ii)
⇔
8.10 (ii), 9.5 (ii)
⇔
LP ∧ ϕ hat kein Gleichheitsmodell
V
V
LP ∧ congΣ ∧ ϕ ist unerfüllbar
LP ∪ congΣ ∪ {ϕ} `SLD ⊥.
V
cLP |=EQ any(¬ψ)
⇔
V
cLP ∧ ¬any(¬ψ) hat kein Gleichheitsmodell
⇔
V
cLP ∧ all(ψ) hat kein Gleichheitsmodell
⇔
V
8.13 (ii)
⇔
8.10 (ii), 9.5 (ii)
⇔
(3)
cLP ∧ ψ hat kein Gleichheitsmodell
V
V
cLP ∧ disgΣ ∧ ψ ist unerfüllbar
(4)
cLP ∪ disgΣ ∪ {ψ} `SLD ⊥.
312
9 Logische Programmierung Kleinste und größte Herbrand-Modelle
Aufgabe Sei LP ein (co-)logisches Σ-Programm. Zeigen Sie unter Verwendung von Satz
V
8.12 (ii), dass LP erfüllbar ist.
o
Folglich gibt es nach Lemma 8.1 ein Herbrand-Modell von
V
LP .
Ordnet man die Menge der Herbrand-Σ-Strukturen nach der Mächtigkeit ihrer jeweiligen
Interpretationen der Prädikate von Σ, dann hat – wie wir im Folgenden zeigen werden –
die Menge der Herbrand-Modelle von LP ein kleinstes bzw. größtes Element, je nachdem,
ob LP ein logisches oder ein co-logisches Programm ist.
Für alle Herbrand-Σ-Strukturen A, B,
A ≤ B ⇔def
pA ⊆ pB für alle Prädikate p von Σ.
313
9 Logische Programmierung 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
Prädikat p von Σ wie folgt interpretiert:
pM (LP ) = {t ∈ TΣ∗ | LP ∪ {pt} 6`SLD ⊥}.
314
9 Logische Programmierung M (LP ) ist das bzgl. ≤ größte Herbrand-Modell von
V
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σ}:
315
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.
316
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.10 (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σ}:
317
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.
318
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.10 (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.10 (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
319
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.
320
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
321
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.
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.
322
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(σ)} ⇒ ⊥
Resolution über LP
ϑ0 ∧ ϕ ⇒ ⊥
V
ψσ ∧ ϕσ ∧ {x ≡ xσ | x ∈ supp(σ)} ⇒ ⊥
σ = unify(ϑ, ϑ0)
ψ ⇒ ϑ ∈ LP,0 σ = unify(ϑ, ϑ0),
var(ψ ⇒ ϑ) k var(ϑ0 ∧ ϕ)
323
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.10 (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:
324
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.
325
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(σ)}.
326
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)
327
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.
328
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∗ (> ⇒ ϕσ ∨ ϑσ)
ϑσ=ϑ0 σ
=
gA∗ (> ⇒ ϕσ ∨ ϑσ ∨ ϑ0σ)
8.3
⇔ h∗ ◦ σ ∈ gA∗ (> ⇒ ϕ ∨ ϑ ∨ ϑ0)
(∗), 8.4 (ii)
⇔
h ∈ gA∗ (> ⇒ ϕ ∨ ϑ ∨ ϑ0) = gA∗ (ϕ1)
und A |=h ϕ1 folgt
A |=h > ⇒ ϕσ ∨ ϑσ
(1)
im Fall (*). Im Fall (**) gilt
A |=h > ⇒
_
{x 6≡ xσ | x ∈ supp(σ)},
(2)
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(σ)}.
329
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.
W
Dann gilt ϕ1 = (> ⇒ ϕ ∧ ϑ0) und ϕ2 = (> ⇒ ϕσ ∨ ψσ ∨ {x 6≡ xσ | x ∈ supp(σ)})
für ϑ ⇒ ψ ∈ LP sowie Formeln bzw. Substitutionen ϑ0, ϕ, , σ, die die Anwendbarkeitsbedingungen der co-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:
330
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.
331
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 ψ = >.
332
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.
333
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)
334
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.
335
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.
336
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)
337
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.
338
Highlights
339
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
340
[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
341
[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
342
[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
343
Index
(Σ, E)-Algebra, 110
E-Reduktionsrelation, 112
E-Äquivalenz, 112
E-irreduzibel, 113
F basiert auf C, 67
F basiert auf D, 70
F -Coinduktion, 46
F -Induktion, 46
F -abgeschlossen, 45
F -dicht, 45
HΣ-Algebra, 223
K-Ableitung, 59
LP -Berechnung, 323
C-Invariante, 66
D-Kongruenz, 69
Σ-Algebra, 89
Σ-Atom, 232
Σ-Disgruenzaxiome, 276
Σ-Formel, 233
Σ-Gleichung, 102
Σ-Homomorphismus, 90, 233
Σ-Isomorphismus, 91
Σ-Kongruenz, 108, 233
Σ-Kongruenzaxiome, 276
Σ-Struktur, 233
Σ-Term, 88
χ, 35
distAll , 249
distEx , 249
λ-Notation, 27
distBox , 177
distDia, 177
negAL, 132
negM , 177
negQ, 249
removeQ, 249
344
rename, 249
mkfun, 37
mkrel , 37
curry, 36
n-Tupel, 20
uncurry, 36
Äquivalenzabschluss, 198
Äquivalenzlemma, 103, 247
Äquivalenzrelation, 107
äquivalent, 10, 131, 170, 236
überabzählbar, 41
Abbildung, 24
Ableitungsrelation, 59
Absorption, 132
abzählbar, 41
Adjazenzliste, 37
Adjazenzmatrix, 35
algebraisches Coinduktionsprinzip, 83
Allabschluss, 237
allgemeingültig, 129, 169, 236
allgemeinster Unifikator, 260
Anfrage, 290
Annihilation, 132
Antezedent, 12
antisymmetrisch, 107
Argument, 24
Assoziativität, 131
Atom, 128
aufzählbar, 41
Auslöschung, 132
aussagenlogische Formel, 128
aussagenlogische Operation, 128
aussagenlogische SLD-Ableitung, 307
Axiom, 12
Baum, 152
Belegung, 95
besuchte Box-Formel, 179
bijektiv, 32
Bild, 25
binär, 232
345
binäre Relation, 23
Bisimulation, 198
Bisimulation zwischen K und K0, 201
bisimulationsinvariant, 288
Bitalgebra, 93
Blatt eines Baums, 154
Boolesche Algebra, 132
Boolesche Matrix, 35
Boolescher Ausdruck, 94
charakteristische Funktion, 35
co-Goal, 290
co-Hornformel, 290
co-logisches Σ-Programm, 290
co-Resolution, 306, 324
Coalgebra, 216
coinduktiv definierte Menge, 48
curryfiziert, 36
definite Klausel, 307
Definitionsbereich, 24
Destruktormenge, 69
deterministischer Automat, 225
Diagonalargument, 41
Diagonale, 25
Differenz, 20
disjunkt, 21
Disjunktion, 128
disjunktive Normalform, 135, 163
Distributivität, 132
DNF, 135, 163
Domäne eines Baums, 152
Durchschnitt, 20
Einführungsregel, 145
elementar K-äquivalent, 202
elementar äquivalent, 33
endlich verzweigt, 170
endliche Funktion, 25
endlicher Baum, 152
entscheidbar, 15
erfüllbar, 129, 169, 236, 254
erfüllbarkeitsäquivalent, 250
346
erkennender Automat, 227
erreichbarer Knoten, 154
Existenzabschluss, 237
Extension einer Funktion, 95
Faktor, 128
Faktorisierung, 107
Faktorregel, 264, 306, 323
final, 218
Fixpunkt, 25
Folgerung, 10, 130, 169, 236
Folgerungssatz, 130
Fortsetzung einer Funktion, 95
freie Variable, 237
Funktion, 24
Funktor, 215
gültig, 102, 103
gebundenes Vorkommen, 237
gelöste Σ-Formel, 331
Gentzenformel, 137, 163
gesättigtes Tableau, 155, 180
geschlossene Formel, 135, 237
geschlossenes Tableau, 180
Gewichtsfunktion, 114
Gleichheitsmodell, 275
Gleichheitsprädikat, 275
Gleichheitsstruktur, 275
Goal, 290
Graph, 25
Grundsubstitution, 98
Grundterm, 89
Halbordnung, 107
Hennessy-Milner-Theorem, 202
Herbrand-Expansion, 255
Herbrand-Modell, 236
Herbrand-Struktur, 233
Hornformel, 290
Idempotenz, 131
Identität, 29
Implikation, 128
Implikationspfeil, 11
347
implikative Normalform, 137, 164
impliziert, 11
Indexmenge, 23
Individuenvariable, 230
induktiv definierte Menge, 48
INF, 137, 164
Inferenzsystem, 12
initiale Σ-Algebra, 97
Injektion, 30
injektiv, 25
Inklusion, 29
Instanz, 98
Interpretation einer Operation, 89
inverse Funktion, 29
inverse Relation, 23
isomorph, 33
Kalkül, 12
kanonische SLD-Ableitung, 333
Kardinalität, 40
kaskadiert, 36
Kern, 25
Kette, 56
Klasse, 18
Kleene-Abschluss, 56
Kleisli-Komposition, 101
KNF, 135, 163
Knoten, 152
Knoten eines Baums, 152
Kommutativität, 131
komplementäre Literale, 135
Komplementarität, 132
Komponente eines Tupels, 20
Komposition, 28
Komprehension, 19
Kongruenzregel, 109
Konjunktion, 128
konjunktive Normalform, 135, 163
Konkatenation, 73
Konklusion, 11
konsistente Theorie, 15
konsistenter Abschluss, 257
348
Konstante, 25
Konstruktormenge, 66
Kontraposition, 104, 134, 320
korrekter Kalkül, 15
Kripke-Funktor, 216
Kripke-isomorph, 202
Kripke-Morphismus, 201
Kripke-Rahmen, 167
Kripke-Struktur, 166
Lösung einer Formel, 10
Lösung in einer Struktur, 236
Lambeks Lemma, 219
leaves, 154
leeres Wort, 18
lexikographische Erweiterung, 114
Lifting einer Algebra, 94
Lifting-Lemma, 271
Liste, 21
Literal, 135, 163
logisches Programm, 290
Mächtigkeit, 40
maximale DNF, 142
Menge, 18
Mengenoperator, 19
mgu, 260
modale Operation, 166
modallogische Formel, 166
Modell, 129, 169, 236
Modell einer Formel, 10
Modus ponens, 110
monotone Funktion, 45
Moore-Automat, 224
Multimenge, 39
Multimengen-Erweiterung, 114
Nachfolger eines Knotens, 154
natürliche Abbildung, 107
Negation, 128
Negationsnormalform, 134, 178, 250
Neutralität, 132
nichtdeterministische Funktion von A nach
349
B, 37
NNF, 134, 178, 250
Normalform bzgl. einer Σ-Algebra, 104
Obermenge, 19
occur check, 261
offene Formel, 135
offenes Tableau, 180
Operation, 88
partielle Ordnung, 107
partieller Automat, 227
Partition, 23
Pfad eines Baumes, 154
Potenzmenge, 21
Prädikat, 232
prädikatenlogische Formel, 233
prädikatenlogische Operation, 231
Präfixrelation, 154
Prämisse, 11
Präordnung, 107
primitiv-rekursive Funktion, 74
Produkt, 20
Produkt von Funktionen, 31
Produktextension, 30
Projektion, 29
Quantor, 230
Quasiordnung, 107
Quotient, 107
Record, 23
Redex, 14
Redukt, 14
Redukt einer Struktur, 250
reflexiv, 106
Reflexivitätsregel, 109
Relation, 23
Relation auf, 23
Resolution, 306, 323
Resolvente, 145
Schnittableitung, 264
Schnittregel, 145, 164, 264
Schnittwiderlegung, 146, 164, 264
350
Schrittfunktion, 48
schwach final, 217
Semantik, 10
semantischer Bereich, 10
semi-entscheidbar, 15
Signatur, 88
Skolemfunktion, 251
Skolemnormalform, 252
SLD-Ableitung, 305
SLD-Widerlegung, 305
Sprache, 227
Stelle, 24
Stelligkeit, 24
Strom, 39
Struktur, 230
Strukturelle Induktion über lfp(F ), 71
Substitution, 98
Substitutionslemma, 99, 244
subsumieren, 260
Subsumptionsrelation, 154
Suchraum, 105
Sukzedent, 12
Summand, 128
Summandregel, 264, 306, 324
Summe, 20
Summe von Funktionen, 31
Summenextension, 30
Support, 262
surjektiv, 25
Symmetrieregel, 109
symmetrisch, 107
Syntax, 10
Tableau, 155, 179
Tableau-Ableitung, 155, 180
Tableau-Widerlegung, 156, 180
Tautologie, 169, 236
tautologisch, 129
Teilmenge, 19
Teilterm, 101
Termersetzungstheorie, 104
Termfaltung, 97
351
ternär, 232
totale Ordnung, 107
Trägermenge, 89
Transitionsfunktion, 167
transitiv, 106
Transitivitätsregel, 109
Typ, 24
unär, 232
unäre Relation, 19
unerfüllbar, 129, 169, 236, 254
Unerfüllbarkeitssatz, 130
Ungleichheitsprädikat, 275
Unifikator, 260
Update einer Funktion, 27
Urbild, 24
Vereinigung, 20
verhaltensäquivalent, 197
Verhaltensäquivalenz, 197
Verhaltensmodell, 218
vollständige Theorie, 15
vollständiger Kalkül, 15
Vorgänger eines Knotens, 154
wechselseitig induktiv definierte Funktion bzgl.
C, 77
Weg eines Baums, 154
Wert eines Terms, 96
Wert eines Terms unter einer Belegung, 95
Wertebereich, 24
widersprüchlich, 129, 169, 236
Widerspruchsbeweis, 134
wohlfundierte Relation, 53
Wohlordnung, 107
Wort, 21
Wurzel eines Baums, 152
Zerlegung, 23
Zusicherung, 16, 227
Zustandsatom, 178
Zustandsformel, 169
Zustandsliteral, 178
352