Logik für Informatiker

Werbung
Logik für Informatiker
Wintersemester 2012/13
Logik für Informatiker
im Wintersemester 2012/13
Prof. Dr. Dietmar Seipel
Prof. Dr. Dietmar Seipel
Logik für Informatiker
Wintersemester 2012/13
Inhaltsverzeichnis
Vorwort
v
1 Aussagenlogik
1
1.1
Grundbegriffe der Aussagenlogik . . . . . . . . . . . . . . .
1
1.2
Äquivalenz und Normalformen . . . . . . . . . . . . . . . .
34
1.3
Hornformeln . . . . . . . . . . . . . . . . . . . . . . . . .
71
1.4
Minimale Modelle für Klauselmengen . . . . . . . . . . . .
86
1.5
Der Endlichkeitssatz (Kompaktheitssatz) . . . . . . . . . . . 107
1.6
Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Prof. Dr. Dietmar Seipel
ii
Logik für Informatiker
Wintersemester 2012/13
2 Prädikatenlogik
145
2.1
Grundbegriffe der Prädikatenlogik . . . . . . . . . . . . . . 146
2.2
Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . 174
2.3
Unentscheidbarkeit . . . . . . . . . . . . . . . . . . . . . . 204
2.4
Herbrand–Theorie . . . . . . . . . . . . . . . . . . . . . . . 209
2.5
Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
2.6
Hyperresolution für Hornformeln . . . . . . . . . . . . . . . 274
Prof. Dr. Dietmar Seipel
iii
Logik für Informatiker
Wintersemester 2012/13
3 Logikprogrammierung
298
3.1
Grundlagen von P ROLOG . . . . . . . . . . . . . . . . . . . 299
3.2
SLD– und SLDNF–Resolution . . . . . . . . . . . . . . . . 336
3.3
Suche in Graphen . . . . . . . . . . . . . . . . . . . . . . . 379
3.4
Sortieren und Suchbäume . . . . . . . . . . . . . . . . . . . 390
Literatur
Prof. Dr. Dietmar Seipel
408
iv
Logik für Informatiker
Wintersemester 2012/13
Vorwort
Anwendungen:
• Zermelo und Fraenkel: Axiome der Mengenlehre
• Formulierung von Theoremen: Fermat
• Theorembeweisen
• Boolesche Schaltkreise: Analyse und Optimierung
• Datenbanken: S QL
• Logikprogrammierung: P ROLOG
• Semantic Web: Beschreibungslogiken, OWL, S WRL
• ...
Prof. Dr. Dietmar Seipel
v
Logik für Informatiker
Wintersemester 2012/13
Mathematische Axiome und Theoreme
Die Russellsche Antinomie ist ein von Bertrand Russell und Ernst Zermelo
entdecktes Paradoxon der naiven Mengenlehre, das Russell 1903
publizierte. Dies führte zur Entwicklung der axiomatischen Mengenlehre.
Die Logik bietet einen exakten Formalismus zur Repräsentation und
Verarbeitung von mathematischem Wissen in Form von
• Axiomen und
• Theoremen.
Beim Theorembeweisen können mit Hilfe von Kalkülen automatisch neue
Theoreme aus den Axiomen und den bereits bekannten Theoremen
hergeleitet werden.
Durch die steigende Rechnerleistung ist zu erwarten, daß zukünftig verstärkt
Theoreme automatisch oder semi–automatisch bewiesen werden können.
Prof. Dr. Dietmar Seipel
vi
Logik für Informatiker
Wintersemester 2012/13
Zermelo und Fraenkel: Axiome der Mengenlehre (vgl. Wikipedia)
ZF hat unendlich viele Axiome, da zwei Axiomenschemata (8. und 9.)
verwendet werden, die zu jedem Prädikat mit bestimmten Eigenschaften je
ein Axiom angeben.
Als logische Grundlage dient die Prädikatenlogik der ersten Stufe mit
Identität und dem undefinierten Elementprädikat ∈.
Die Infix–Notation A ∈ B ist gleichbedeutend mit der Präfix–Notation
∈ (A, B).
1. Extensionalitätsaxiom oder Axiom der Bestimmtheit:
Zwei Mengen sind genau dann gleich, wenn sie dieselben Elemente
enthalten.
∀A ∀B (A = B ←→ ∀C (C ∈ A ←→ C ∈ B))
Prof. Dr. Dietmar Seipel
vii
Logik für Informatiker
Wintersemester 2012/13
2. Leermengenaxiom oder Nullmengenaxiom:
Es gibt eine Menge ohne Elemente.
∃B ∀A ¬(A ∈ B)
Aus dem Extensionalitätsaxiom folgt unmittelbar die Eindeutigkeit
dieser Menge B, das heißt, daß es auch nicht mehr als eine solche
Menge gibt.
Diese wird meist als ∅ geschrieben und leere Menge genannt.
Das bedeutet: Die leere Menge ist in ZF das einzige Urelement.
Andere Urelemente sind nur beim allgemeineren originalen Axiom der
Bestimmtheit von Zermelo möglich.
Prof. Dr. Dietmar Seipel
viii
Logik für Informatiker
Wintersemester 2012/13
3. Paarmengenaxiom:
Für alle A und B gibt es eine Menge C, die genau A und B als
Elemente hat.
∀A ∀B ∃C ∀D (D ∈ C ←→ (D = A ∨ D = B))
Auch diese Menge C ist eindeutig bestimmt. Sie wird geschrieben als
{A, B}. Die Menge {A, A} wird üblicherweise als {A} geschrieben.
4. Vereinigungsaxiom:
Für jede Menge A gibt es eine Menge B, die genau die Elemente der
Elemente von A als Elemente enthält.
∀A ∃B ∀C (C ∈ B ←→ ∃D (D ∈ A ∧ C ∈ D))
Auch die Menge B ist eindeutig bestimmt und heißt die Vereinigung
S
der Elemente von A, geschrieben als A. Zusammen mit dem
S
Paarmengenaxiom lässt sich die Vereinigung A ∪ B := {A, B}
definieren.
Prof. Dr. Dietmar Seipel
ix
Logik für Informatiker
Wintersemester 2012/13
5. Unendlichkeitsaxiom:
Es gibt eine (induktive) Menge A, die
• die leere Menge ∅ und
• mit jedem Element x auch die Menge x ∪ {x} enthält.
∃A ( ∃ X ∈ A ∀ Y ∈ A ¬(Y ∈ X) ∧
∀X (X ∈ A → X ∪ {X} ∈ A) )
Es gibt viele derartige Mengen. Der Schnitt aller dieser Mengen ist die
kleinste Menge mit diesen Eigenschaften und bildet die Menge der
natürlichen Zahlen; die Bildung der Schnittmenge erfolgt durch
Anwendung des Aussonderungsaxioms (s.u.).
Die natürlichen Zahlen werden also dargestellt durch
IN := {∅, {∅}, {∅, {∅}}, {∅, {∅}, {∅, {∅}}} , . . . }.
Prof. Dr. Dietmar Seipel
x
Logik für Informatiker
Wintersemester 2012/13
Die weiteren Axiome (6. bis 10.) führen wir ohne prädikatenlogische
Definition der Vollständigkeit halber auf:
6. Potenzmengenaxiom,
7. Fundierungsaxiom oder Regularitätsaxiom,
8. Aussonderungsaxiom,
9. Ersetzungsaxiom (Fraenkel),
10. Auswahlaxiom.
Prof. Dr. Dietmar Seipel
xi
Logik für Informatiker
Wintersemester 2012/13
6. Potenzmengenaxiom:
Für jede Menge A gibt es eine Menge P , deren Elemente genau die
Teilmengen von A sind.
7. Fundierungsaxiom oder Regularitätsaxiom:
Jede nichtleere Menge A enthält ein Element B, so dass A und B
disjunkt sind.
Das Element B, welches zu A disjunkt ist, ist im allgemeinen nicht
eindeutig bestimmt.
Das Fundierungsaxiom verhindert, dass es unendliche oder zyklische
Folgen von Mengen gibt, bei denen jeweils eine in der nächsten
enthalten ist, x1 ∋ x2 ∋ x3 ∋ . . . , denn dann könnte man eine Menge
A = {x1 , x2 , x3 , . . . } bilden, die dem Axiom widerspricht: Für jedes
xi ∈ A ist xi+1 ∈ xi ∩ A, die beiden Mengen sind also nicht disjunkt.
Prof. Dr. Dietmar Seipel
xii
Logik für Informatiker
Wintersemester 2012/13
8. Aussonderungsaxiom:
Hier handelt es sich um ein Axiomenschema mit je einem Axiom zu
jedem einstelligen Prädikat P :
Zu jeder Menge A existiert eine Teilmenge B von A, die genau die
Elemente C von A enthält, für die P (C) wahr ist.
Aus dem Extensionalitätsaxiom ergibt sich sofort, daß es genau eine
solche Menge gibt. Diese wird mit { C ∈ A | P (C) } notiert.
9. Ersetzungsaxiom (Fraenkel):
Ist A eine Menge und wird jedes Element von A eindeutig durch eine
beliebige Menge ersetzt, so geht A in eine Menge B über.
Die Ersetzung wird präzisiert durch zweistellige Prädikate mit
ähnlichen Eigenschaften wie eine Funktion, und zwar als
Axiomenschema für jedes zweistellige Prädikat F : Die Menge B ist
eindeutig bestimmt und wird als { Y | D ∈ A ∧ F (D, Y ) } notiert.
Prof. Dr. Dietmar Seipel
xiii
Logik für Informatiker
Wintersemester 2012/13
10. Auswahlaxiom:
Ist A eine Menge von paarweise disjunkten nichtleeren Mengen, dann
gibt es eine Menge, die genau ein Element aus jedem Element von A
enthält.
Dieses Axiom hat eine komplizierte Formel, die mit dem
Eindeutigkeitsquantor ∃! etwas vereinfacht werden kann:
Eine andere übliche verbale Formulierung des Auswahlaxioms lautet:
Ist A eine Menge nichtleerer Mengen, dann gibt es eine Funktion f
(von A in seine Vereinigung), die jedem Element B von A ein Element
von B zuordnet (ein Element von B auswählt).
In der Mathematik wird häufig auch das Auswahlaxiom benutzt,
das ZF zu ZFC erweitert.
Prof. Dr. Dietmar Seipel
xiv
Logik für Informatiker
Wintersemester 2012/13
Theorem von Fermat
Sei n > 2 eine beliebige ganze Zahl.
Dann erfüllen keine 3 positiven ganzen Zahlen a, b und c die Gleichung
an + b n = c n .
Für n = 2 findet man leicht solche Zahlen (vgl. auch Satz von Pythagoras).
∀ n ∈ IN ( n > 2 −→
¬ (∃ a ∈ IN+ ∃ b ∈ IN+ ∃ c ∈ IN+ (an + bn = cn )) ).
Dieses Theorem wurde schon im Jahre 1637 von Pierre de Fermat postuliert,
es konnte aber erst 1995 von Andrew Wiles vollständig bewiesen werden.
Komplexitätstheorie
Eine bislang immer noch unbeantwortete Frage der theoretischen
Informatik ist, ob die beiden Komplexitätsklassen P und N P gleich sind.
Prof. Dr. Dietmar Seipel
xv
Logik für Informatiker
Wintersemester 2012/13
Logische Schaltkreise: Analyse und Optimierung
Prof. Dr. Dietmar Seipel
xvi
Logik für Informatiker
Wintersemester 2012/13
Datenbanken und Logikprogrammierung
Relationen in einer Familien–Datenbank:
PARENT
NAME
PARENT
Elizabeth
George
Charles
Elizabeth
William
Charles
G RANDPARENT
NAME
G RANDPARENT
Charles
George
William
Elizabeth
Die Menge aller logischen Fakten zu einem n–stelligen Prädikat – hier
parent und grandparent – entspricht einer n–stelligen Relation:
parent(’Elizabeth’, ’George’),
parent(’Charles’, ’Elizabeth’),
parent(’William’, ’Charles’).
Analog: 3 Fakten für grandparent.
Prof. Dr. Dietmar Seipel
xvii
Logik für Informatiker
Wintersemester 2012/13
Familienstammbaum:
-
Charles
Diana
George
- Elizabeth
Philip
-
- William
-
Harry
Anne
- Andrew
-
Edward
Der Familienstammbaum umfaßt hier 4 Generationen; Frauen sind in Rot,
Männer in Blau angezeigt.
Prof. Dr. Dietmar Seipel
xviii
Logik für Informatiker
Wintersemester 2012/13
Berechnung der Großeltern:
• in Datenbanken: Tupelkalkül
{ p1 .name, p2 .parent |
parent(p1 ) ∧ parent(p2 ) ∧ p1 .parent = p2 .name }
• in der Logikprogrammierung: Bereichskalkül
{ X, Z |
parent(X, Y ) ∧ parent(Y, Z) }
Tupelvariablen p1 und p2 ; Bereichsvariablen X, Y und Z.
Im Tupelkalkül werden Verbundbedingungen explizit angegeben,
wogegen ein Verbund im Bereichskalkül durch gleichbenannte Variablen
gebildet wird.
Prof. Dr. Dietmar Seipel
xix
Logik für Informatiker
Wintersemester 2012/13
Logikprogrammierung: P ROLOG
Prädikatensymbole: parent, grandparent, ancestor , alle 2–stellig
Regeln: Kopf ← Rumpf , man sagt “ Kopf falls Rumpf ”
Rumpf ist Konjunktion von Atomen oder deren Negation
grandparent(X , Z ) ← parent(X , Y ) ∧ parent(Y , Z )
ancestor (X , Y ) ← parent(X , Y )
ancestor (X , Z ) ← ancestor (X , Y ) ∧ parent(Y , Z )
Bedeutung:
∀X, Y, Z : ((ancestor(X, Y ) ∧ parent(Y, Z)) → ancestor(X, Z))
Fakten: parent(’Elizabeth’, ’George’)
parent(’Charles’, ’Elizabeth’)
parent(’William’, ’Charles’)
Prof. Dr. Dietmar Seipel
xx
Logik für Informatiker
Wintersemester 2012/13
Z
Man kann mittels der Regel
grandparent(X , Z ) ← parent(X , Y ) ∧ parent(Y , Z )
z.B. folgende neuen Fakten ableiten.
I
parent 6
Y grandparent
parent 6
X
Dazu ersetzt man in der Regel die Variablen wie folgt:
• Für { X 7→ ’Charles’, Y 7→ ’Elizabeth’, Z 7→ ’George’ } erhalten wir
grandparent(’Charles’, ’George’) ←
parent(’Charles’, ’Elizabeth’) ∧ parent(’Elizabeth’, ’George’).
Mit Hilfe der entsprechenden Fakten aus dem Regelrumpf kann man
dann grandparent(’Charles’, ’George’) ableiten.
• Für { X 7→ ’William’, Y 7→ ’Charles’, Z 7→ ’Elizabeth’ } kann man
grandparent(’William’, ’Elizabeth’) ableiten.
Prof. Dr. Dietmar Seipel
xxi
Logik für Informatiker
Wintersemester 2012/13
Datenbanken: S QL
Falls parent als zweispaltige Relation PARENT realisiert wäre,
so könnte man die Relation G RANDPARENT zu grandparent wie folgt in
S QL berechnen:
C REATE V IEW G RANDPARENT (NAME , G RANDPARENT ) A S
S ELECT P1.NAME , P2.PARENT
F ROM PARENT P1, PARENT P2
W HERE P1.PARENT = P2.NAME
In der entsprechenden Regel wird die Bedingung P1.PARENT = P2.NAME
durch die zweimalige Verwendung der Variablen Y ausgedrückt:
grandparent(X , Z ) ← parent(X , Y ) ∧ parent(Y , Z )
Prof. Dr. Dietmar Seipel
xxii
Logik für Informatiker
Wintersemester 2012/13
Vergleich: Transformiert man ein S ELECT–Statement nach P ROLOG, so
ergibt sich folgendes:
• der S ELECT–Teil entspricht dem Regelkopf,
• der F ROM–Teil entspricht den Prädikaten im Regelrumpf,
• Gleicheitsbedingungen aus dem W HERE–Teil können direkt durch
gleiche P ROLOG–Variablen ausgedrückt oder wie alle weiteren
arithmetischen Bedingungen in den Regelrumpf übernommen werden.
In P ROLOG erfolgt die Selektion nicht über Attribute, sondern über die
Argumentposition.
Die Relation A NCESTOR kann man in S QL im allgemeinen nicht
berechnen, da man nicht weis wieviele Stufen die zugrunde liegende
Relation PARENT hat.
Prof. Dr. Dietmar Seipel
xxiii
Zugehörige Unterlagen
Herunterladen