Folien zur Vorlesung: Logik für Informatiker, Rev: 261

Werbung
Aussagenlogik
Einführung
David Hilbert und Wilhelm Ackermann
Kurt Gödel
Terminologie zu aussagenlogischen Formeln
Syntax und Semantik
Erinnerung: Induktive Mengendefinitionen
Erinnerung: Induktive Mengendefinitionen
Erinnerung: Definitionen über induktiv definierten Mengen
Erinnerung: Definitionen über induktiv definierten Mengen
Boolesche Operationen
Modellierung
Ungerichtete Graphen
Ungerichtete Graphen
Sudoku
Sudoku
Sudokuformel
Superhirn
Formeln in Scheme
Formeln in Scheme
Variablenbelegungen in Scheme
Auswertung von Formeln in Scheme
Eindeutige Konstruktion von Formeln
Erinnerung: Das Beweisprinzip der vollständigen Induktion
Erinnerung: Das Beweisprinzip der vollständigen Induktion
Aussagenlogische Gesetze
Erinnerung: Beweisprinzip der Induktion
Äquivalenz und Normalformen
Negationsnormalform
Umwandlung in NNF
Umwandlung in KNF
Erfüllbarkeitstests
Naiver Erfüllbarkeitstest
Ein Dreieck ist nicht bipartit
DPLL-Algorithmus
DPLL-Algorithmus mit erfüllender Belegung
DP-Algorithmus
Semi-Unerfüllbarkeitstest für unendliche Formelmengen
Ein Dreieck ist nicht bipartit
Erinnerung: Definition durch vollständige Induktion
Erinnerung: Definition durch vollständige Induktion
Das Dominoproblem
Mathematische Modellierung des Dominoproblems
Logische Modellierung des Dominoproblems
Negativer Semi-Entscheidungsalgorithmus für das Dominoproblem
Die Folgerungsbeziehung
Ripple-Carry-Addiernetz (8 Bit)
Beweissysteme
Ein Dreieck ist nicht bipartit
(Semi-)Entscheidungsverfahren
Schaltelemente
Semi-Entscheidungsverfahren für die Folgerungsbeziehung
Ein Beweis im Hilbert-System
Ein Beweis im Hilbert-System
Ein natürlicher Beweis
Ein natürlicher Beweis in natürlicher Form
Korrektheit- und Vollständigkeit
Das Resolutionssystem in Kurzform
Das Hilbert-System in Kurzform
Der Markierungsalgorithmus für Horn-Formeln
Der Markierungsalgorithmus für Horn-Formeln
Das natürliche Beweissystem in Kurzform
Horn-Formeln
Horn-Klauseln
Ein Beispiel für den Markierungsalgorithmus
Prädikatenlogik
Syntax und Semantik
Beispiele für Signaturen
Strukturen
Graphstrukturen, ΣGraph = {E /2}
Arithmetische Strukturen, ΣAr = {0̃, 1̃, +//2, ×//2}
Ordnungen, ΣOrd = {</2}
Boolesche Algebren, ΣBA = {⊥, >, ∼//1, u//2, t//2}
Bibliotheken, ΣBib = {Buch/3, Nutzer/3, Entliehen/2}
Boolesche Algebren
Einsatz von Prädikatenlogik
Ordnungen
Wechselseitiger Ausschluss
Datenbankanfragen
Auswertung von Formeln
Auswertung von Formeln
Äquivalenz und Normalform
Umwandlung in PNF
Umwandlung in PNF, Teil II
Das Gültigkeitsproblem
Erfüllbarkeit und Gültigkeit
Das Postsche Korrespondenzproblem
Gültigkeitstest für existenzielle Formeln
Skolemisierung
Allgemeiner Gültigkeitstest
Die Folgerungsbeziehung und Beweissysteme
Folgerungstest
Ein Hilbert-System für die Prädikatenlogik
Ein Hilbert-System für die Prädikatenlogik
Ein Hilbert-System für die Prädikatenlogik
Was kommt nach dem Vollständigkeitssatz?
Was gibt’s noch in der mathematischen Logik?
ZFC
Der Satz von Löwenheim-Skolem (einfache Form)
Eine interessante Frage aus der Rekursionstheorie
Was kommt nach der Prädikatenlogik?
Prädikatenlogik zweiter Stufe
Informatische Logiken I
Informatische Logiken II
Hoare-Logik
Logikprogrammierung
David Hilbert und Wilhelm Ackermann
Grundzüge der theoretischen Logik
Erste Auflage, 1928, S. 72:
Das Entscheidungsproblem ist gelöst, wenn man ein
Verfahren kennt, das bei einem vorgelegten logischen
Ausdruck durch endlich viele Operationen die
Entscheidung über die Allgemeingültigkeit bzw.
Erfüllbarkeit erlaubt. [. . . ] das Entscheidungsproblem
muss als das Hauptproblem der mathematischen Logik
bezeichnet werden.
Sechste Auflage, 1972, S. 120:
Es konnte nun zuerst von A. Church [5] gezeigt werden,
daß die obengenannte, einem allgemeinen
Entscheidungsverfahren entsprechende Funktion nicht zu
den berechenbaren Funktionen gehört.
Kurt Gödel
Über formal unentscheidbare Sätze der Principia mathematica und verwandter Systeme I,
Monatshefte für Mathematik und Physik 38, 173–198
Seite 173:
Die Entwicklung der Mathematik in der Richtung zu
größerer Exaktheit hat bekanntlich dazu geführt, daß
weite Gebiete von ihr formalisiert wurden, in der Art, daß
das Beweisen nach einigen wenigen mechanischen Regeln
vollzogen werden kann. [. . . ] Diese beiden Systeme sind
so weit, daß alle heute in der Mathematik angewendeten
Beweismethoden in ihnen formalisiert, d. h. auf einige
wenige Axiome und Schlußregeln zurückgeführt sind. Es
liegt daher die Vermutung nahe, daß diese Axiome und
Schlußregeln dazu ausreichen, alle mathematischen
Fragen, die sich in den betreffenden Systemen überhaupt
formal ausdrücken lassen, auch zu entscheiden. Im
folgenden wird gezeigt, daß dies nicht der Fall ist [. . . ]
David Hilbert, 1862–1943
Kurt Gödel, 1906–1978
Terminologie zu aussagenlogischen Formeln
Form
Lesart
(ϕ ∨ ψ)
(ϕ ∧ ψ)
(ϕ → ψ)
(ϕ ↔ ψ)
oder
Disjunktion
und
Konjunktion
wenn . . . , so . . . genau dann, wenn
Konditional
Bikonditional
Formeltyp
ϕ
Disjunktionsglied
Konjunktionsglied
Antezedenz
ψ
Disjunktionsglied
Konjunktionsglied
Sukzedenz
Eine aussagenlogische Formel der Form ¬ϕ heißt Negation und
wird nicht ϕ gelesen.
0 und 1 heißen Wahrheitswerte und werden falsch und
wahr genannt.
Erinnerung: Induktive Mengendefinitionen
Definition einer Menge M:
1. Induktionsanfang (Basismenge): Es wird eine Menge M0 von
Basiselementen, die alle zu M gehören sollen, vorgegeben.
2. Induktionsschritt (durch Induktionsregeln): Es werden Regeln
der Form
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M.
angegeben.
M ist die kleinste Menge, die M0 enthält und den Regeln
entspricht.
Erinnerung: Induktive Mengendefinitionen
Definition einer Menge M:
1. Induktionsanfang (Basismenge): Es wird eine Menge M0 von
Basiselementen, die alle zu M gehören sollen, vorgegeben.
2. Induktionsschritt (durch Induktionsregeln): Es werden Regeln
der Form
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M.
angegeben.
M ist die kleinste Menge, die M0 enthält und den Regeln
entspricht.
M ist eindeutig definiert:
I
Zu jedem m ∈ M gibt es höchstens eine Regel und eine Wahl
m0 , . . . , mr −1 , so dass m durch Anwendung der Regel auf
m0 , . . . , mr −1 entsteht.
I
Kein m ∈ M0 entsteht durch Anwendung einer Regel.
Erinnerung: Definitionen über induktiv definierten Mengen
Annahme
M ist eine eindeutig induktiv definierte Menge (siehe oben).
Definition einer Funktion f auf M:
1. Induktionsanfang (Basiszuordnung): Zu jedem Element
m ∈ M0 wird f (m) angegeben.
2. Induktionsschritt (durch Induktionsregeln): Zu jeder Regel der
Mengendefinition wird eine korrespondierende Regel der Form
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so
f (h(x0 , . . . , xr −1 )) = h0 (f (x0 ), . . . , f (xr −1 )).
angegeben.
Erinnerung: Definitionen über induktiv definierten Mengen
Annahme
M ist eine eindeutig induktiv definierte Menge (siehe oben).
Definition einer Funktion f auf M:
1. Induktionsanfang (Basiszuordnung): Zu jedem Element
m ∈ M0 wird f (m) angegeben.
2. Induktionsschritt (durch Induktionsregeln): Zu jeder Regel der
Mengendefinition wird eine korrespondierende Regel der Form
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so
f (h(x0 , . . . , xr −1 )) = h0 (f (x0 ), . . . , f (xr −1 )).
angegeben.
Variante
Man greift bei den Induktionsregeln auch auf die xi zurück:
Wenn x0 ∈ M, . . . , xr −1 ∈ M, so f (h(x0 , . . . , xr −1 )) =
h0 (x0 , . . . , xr −1 , f (x0 ), . . . , f (xr −1 )).
George Boole, 1815–1864
Gottlob Frege, 1848–1925
Boolesche Operationen
Negation
b ¬b
˙
0 1
1 0
Zweistellige Operationen
˙ 1 b0 ∧b
˙ 1 b0 →b
˙ 1 b0 ↔b
˙ 1
b0 b1 b0 ∨b
0 0
0
0
1
1
0 1
1
0
1
0
1 0
1
0
0
0
1 1
1
1
1
1
Ungerichtete Graphen
Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus
I
I
einer Menge V von Knoten und
einer Menge E ⊆ E2 von Kanten.
v4
v3
v2
v0
v1
v6
v5
Eine k-Färbung ist eine Funktion c : V → {0, . . . , k − 1}. Sie heißt
gültig, wenn c(v ) 6= c(w ) für alle (v , w ) ∈ E gilt.
Ein Graph heißt bipartit, wenn es eine zulässige 2-Färbung gibt.
Ungerichtete Graphen
Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus
I
I
einer Menge V von Knoten und
einer Menge E ⊆ E2 von Kanten.
v4
v3
v2
v0
v1
v6
v5
Eine k-Färbung ist eine Funktion c : V → {0, . . . , k − 1}. Sie heißt
gültig, wenn c(v ) 6= c(w ) für alle (v , w ) ∈ E gilt.
Ein Graph heißt bipartit, wenn es eine zulässige 2-Färbung gibt.
Sudoku
5 3
7
6
1 9 5
9 8
6
8
6
4
8
3
7
2
6
2 8
4 1 9
8
7
3
1
6
5
9
Bedingungen
Sei N = {1, . . . , 9}.
I
In jeder Zeile jedes Element aus N genau einmal.
I
In jeder Spalte jedes Element aus N genau einmal.
I
In jeder Region jedes Element aus N genau einmal.
Dabei ist eine Region eine durch fette Linien eingegrenzte
3 × 3-Matrix.
Sudoku
5
6
1
8
4
7
9
2
3
3
7
9
5
2
1
6
8
4
4
2
8
9
6
3
1
7
5
6
1
3
7
8
9
5
4
2
7
9
4
6
5
2
3
1
8
8
5
2
1
3
4
7
9
6
9
3
5
4
7
8
2
6
1
1
4
6
2
9
5
8
3
7
2
8
7
3
1
6
4
5
9
Bedingungen
Sei N = {1, . . . , 9}.
I
In jeder Zeile jedes Element aus N genau einmal.
I
In jeder Spalte jedes Element aus N genau einmal.
I
In jeder Region jedes Element aus N genau einmal.
Dabei ist eine Region eine durch fette Linien eingegrenzte
3 × 3-Matrix.
Sudokuformel
ϕS = ϕMatrix ∧ ψS ∧ ϕLösung
mit
ϕMatrix =
^ _
i,j∈N k∈N
ψS =
^
k
Xi,j
∧
^
i,j,k,k 0 ∈N:k6=k 0
k
Xi,j
,
i,j,k∈N:Si,j =k

ϕLösung
^ _
k
Xi,j


i,k∈N j∈N
^
 ^ _ k

Xi,j
=

j,k∈N i∈N

_
 ^
k

Xp3+p
0 +1,q3+q 0 +1
p,q∈D,k∈N p 0 ,q 0 ∈D
0
k
k
¬Xi,j
∨ ¬Xi,j
,
Superhirn
I
scharzer Stecker: an einer Position
stimmt Farbe überein
I
weißer Stecker: Farbe stimmt,
Position aber nicht
Ziel
Finde Formel, die beschreibt, welche
Reihen mit der bisherigen Information
verträglich sind.
Schwieriger . . .
Formeln in Scheme
; Structures for constructing formulas.
(define-struct variable (index))
(define-struct negation (negated))
(define-struct disjunction (left right))
(define-struct conjunction (left right))
(define-struct conditional (left right))
(define-struct biconditional (left right))
Variablenbelegungen in Scheme
; Structure for a single assignment: variable |-> truth value.
(define-struct sass (index value))
; Structure for an undefined value.
(define-struct undefined ())
; Look-up of a variable value; an assignment is a list of sass.
(define (look-up index assignment)
(if (null? assignment)
(make-undefined)
(if (= index (sass-index (first assignment)))
(sass-value (first assignment))
(look-up index (rest assignment)))))
Auswertung von Formeln in Scheme
; Evaluate formula w.r.t. a variable assignment.
(define (evaluate formula assignment)
(cond ((eq? formula #t) #t)
((eq? formula #f) #f)
((variable? formula)
(look-up (variable-index formula) assignment))
((negation? formula)
(not (evaluate (negation-negated formula) assignment)))
((disjunction? formula)
(or (evaluate (disjunction-left formula) assignment)
(evaluate (disjunction-right formula) assignment)))
((conjunction? formula)
(and (evaluate (conjunction-left formula) assignment)
(evaluate (conjunction-right formula) assignment)))
((conditional? formula)
(or (not (evaluate (conditional-left formula) assignment))
(evaluate (conditional-right formula) assignment)))
((biconditional? formula)
(eq? (evaluate (biconditional-left formula) assignment)
(evaluate (biconditional-right formula) assignment)))))
Erinnerung: Das Beweisprinzip der vollständigen Induktion
Beweis dafür, dass jede natürliche Zahl eine gewisse Eigenschaft
besitzt:
1. Induktionsanfang: Man zeigt, dass die Zahl 0 die Eigenschaft
besitzt.
2. Induktionsschritt:
2.1 Induktionsannahme: Man nimmt an, dass eine beliebige Zahl n
die Eigenschaft besitzt.
2.2 Man zeigt, dass die Induktionsbehauptung gilt.
Induktionsbehauptung: Die Zahl n + 1 besitzt die Eigenschaft.
Erinnerung: Das Beweisprinzip der vollständigen Induktion
Beweis dafür, dass jede natürliche Zahl eine gewisse Eigenschaft
besitzt:
1. Induktionsanfang: Man zeigt, dass die Zahl 0 die Eigenschaft
besitzt.
2. Induktionsschritt:
2.1 Induktionsannahme: Man nimmt an, dass eine beliebige Zahl n
die Eigenschaft besitzt.
2.2 Man zeigt, dass die Induktionsbehauptung gilt.
Induktionsbehauptung: Die Zahl n + 1 besitzt die Eigenschaft.
Variante
Allgemeinere Induktionsannahme:
2.1 Man nimmt an, dass für eine natürliche Zahl n alle Zahlen
m ≤ n die Eigenschaft besitzen.
Aussagenlogische Gesetze
ϕ∨ϕ≡ϕ
ϕ∧ϕ≡ϕ
ϕ∨ψ ≡ψ∨ϕ
ϕ∧ψ ≡ψ∧ϕ
(Idempotenz)
(Kommutativität)
(ϕ ∧ ψ) ∧ χ ≡ ϕ ∧ (ψ ∧ χ)
(ϕ ∨ ψ) ∨ χ ≡ ϕ ∨ (ψ ∨ χ)
ϕ ∧ (ϕ ∨ ψ) ≡ ϕ
ϕ ∨ (ϕ ∧ ψ) ≡ ϕ
(ϕ ∧ ψ) ∨ χ ≡ (ϕ ∨ χ) ∧ (ψ ∨ χ)
(ϕ ∨ ψ) ∧ χ ≡ (ϕ ∧ χ) ∨ (ψ ∧ χ)
(Distributivität)
¬¬ϕ ≡ ϕ
¬(ϕ ∧ ψ) ≡ ¬ϕ ∨ ¬ψ
ϕ ∧ ¬ϕ ≡ 0
ϕ∧0≡0
¬0 ≡ 1
ϕ ↔ ψ ≡ (¬ϕ ∨ ψ) ∧ (ϕ ∨ ¬ψ)
ϕ → ψ ≡ ¬ψ → ¬ϕ
(Assoziativität)
(Absorption)
(Doppelte Negation)
¬(ϕ ∨ ψ) ≡ ¬ϕ ∧ ¬ψ
ϕ ∨ ¬ϕ ≡ 1
(De Morgan)
(Tertium non datur)
ϕ ∨ 1 ≡ 1 (Maximum und Minimum)
¬1 ≡ 0
(Komplementierung)
ϕ → ψ ≡ ¬ϕ ∨ ψ
(Elimination von → und ↔)
(Kontraposition)
Erinnerung: Beweisprinzip der Induktion
Beweis dafür, dass jedes Element einer induktiv definierten Menge
M eine gewisse Eigenschaft besitzt.
1. Induktionsanfang: Man zeigt, dass jedes Element der
Basismenge M0 die Eigenschaft besitzt.
2. Induktionsschritt: Man zeigt, dass für jede Regel gilt: Wenn
x0 ∈ M, . . . , xr −1 ∈ M und x0 , . . . , xr −1 die Eigenschaft
besitzen, so besitzt auch h(x0 , . . . , xr −1 ) die Eigenschaft.
Negationsnormalform
Die Menge NNF AL ist induktiv definiert durch:
1. Induktionsanfang (Basismenge): Die Basiselemente sind 0, 1,
Xi und ¬Xi für i ∈ N.
2. Induktionsschritt (Induktionsregeln): Sind ϕ, ψ ∈ NNF AL , so
sind (ϕ ∨ ψ) ∈ NNF AL und (ϕ ∧ ψ) ∈ NNF AL .
Umwandlung in NNF
NNF(ϕ)
Vorbedingung: ϕ ∈ FAL .
if ϕ ∈ {Xi , 0, 1} then
return ϕ
if ϕ = ¬ψ then
return NegNNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return NNF(ϕ0 ) ∨ NNF(ϕ1 )
if ϕ = ϕ0 ∧ ϕ1 then
return NNF(ϕ0 ) ∧ NNF(ϕ1 )
if ϕ = ϕ0 → ϕ1 then
return NNF(¬ϕ0 ∨ ϕ1 )
if ϕ = ϕ0 ↔ ϕ1 then
return NNF(¬ϕ0 ∨ ϕ1 ) ∧ . . .
Nachbedingung: return
∈ NNF AL und return ≡ ϕ.
NegNNF(ϕ)
Vorbedingung: ϕ ∈ FAL .
if ϕ = Xi then
return ¬Xi
if ϕ = 0 then
return 1
if ϕ = 1 then
return 0
if ϕ = ¬ψ then
return NNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return NegNNF(ϕ0 ) ∧ NegNNF(ϕ1 )
...
Nachbedingung: return ∈ NNF AL und
return ≡ ¬ϕ.
Umwandlung in KNF
KNF(ϕ)
Vorbedingung: ϕ ∈ NNF AL .
if ϕ = 0 then
return {∅}
if ϕ = 1 then
return {}
if ϕ = ¬Xi then
return {{¬Xi }}
if ϕ = Xi then
return {{Xi }}
if ϕ = ϕ0 ∧ ϕ1 then
return KNF(ϕ0 ) ∪ KNF(ϕ1 )
if ϕ = ϕ0 ∨ ϕ1 then
return {K0 ∪ KV
: K0 ∈ KNF(ϕ0 ) und K1 ∈ KNF(ϕ1 )}
1W
Nachbedingung:
return ≡ ϕ.
Naiver Erfüllbarkeitstest
NaiveSAT(ϕ)
Vorbedingung: ϕ ∈ FAL .
let V = vars(ϕ)
forall β : V → {0, 1}
if JϕKβ = 1 then return 1
return 0
Nachbedingung: ϕ ist erfüllbar genau dann, wenn return = 1.
Ein Dreieck ist nicht bipartit
Anwendung des DPLL-Lemmas
Zu zeigen:
VW
unfb( {{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }})
Beweis mit Hilfe des Lemmas:
^_
erfb(
{{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }})
gdw. (Lemma, Teil 1, i = 0)
^_
erfb(
{{¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {¬X2 }}) oder
^_
erfb(
{{X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 }, })
gdw. (Lemma, Teil 2, L = ¬X1 bzw. L = X1 )
^_
^_
erfb(
{{X2 }, {¬X2 }}) oder erfb(
{{¬X2 }, {X2 }, })
gdw. (Lemma, Teil 2, L = X2 bzw. L = ¬X2 )
^_
^_
erfb(
{∅}) oder erfb(
{∅})
—
unmöglich!
Martin Davis, 1920 –
Hilary Putnam, 31. Juli 1926 –
DPLL-Algorithmus
DPLL-SAT(M)
Vorbedingung: M Klauselmenge
— Vereinfachung (Einheitsklauseln eliminieren)
while exists unit clause {L} ∈ M do
let M = M|L
— Abbruchbedingung
if M = ∅ then return 1
if ∅ ∈ M then return 0
— rekursiver Aufruf (falls nötig)
let Xi ∈ vars(M)
if DPLL-SAT(M|Xi ) = 1 then return 1
return DPLL-SAT(M|V¬X
Wi)
Nachbedingung: erfb( M) genau dann, wenn return = 1.
DPLL-Algorithmus mit erfüllender Belegung
DPLL-SAT(M, β)
Vorbedingung: M Klauselmenge
while exists unit clause {L} ∈ M do
let M = M|L
if L positiv then β(L) = 1 else β(L̄) = 0
if ∅ ∈ M then return unerfüllbar
if M = ∅ then return β
let Xi ∈ vars(M)
let γ = DPLL-SAT(M|Xi , β[1/Xi ]) = 1
if γ 6= unerfüllbar then return γ
return DPLL-SAT(M|¬Xi , β[0/Xi ])
Nachbedingung:
VW
VW
Falls erfb( VWM β), dann β ⊆ return und return |=
M.
Falls unfb( M β), dann return = unerfüllbar.
DP-Algorithmus
DP-SAT(M)
Vorbedingung: M Klauselmenge ohne tautologische Klauseln
while M 6= ∅ und ∅ ∈
/M
let Xi ∈ vars(M) 6= ∅
let M 0 = M ∪ {K ∪ K 0 : K ∪· {Xi } ∈ M und K 0 ∪· {¬Xi } ∈ M}
let M 00 = {K ∈ M 0 : Xi ∈
/ vars(K )}
00
let M = {K ∈ M : K nicht tautologisch}
if ∅ ∈ M then
return 0
else
return 1
VW
Nachbedingung: erfb( M) genau dann, wenn return = 1.
Semi-Unerfüllbarkeitstest für unendliche Formelmengen
SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische
Formeln.
NegSemiSAT(F )
Vorbedingung: F [0..] ist ein unendliches Feld von
aussagenlogischen Formeln.
let i = 0
let ϕ = 1
repeat
let ϕ = ϕ ∧ F [i]
let b = SAT(ϕ)
let i = i + 1
until b = 0 Nachbedingung:
Bei Termination gilt unfb({F [0], F [1], . . . });
bei Divergenz gilt erfb({F [0], F [1], . . . }).
Ein Dreieck ist nicht bipartit
Anwendung des DP-Lemmas
erfb
VW
gdw. erfb
{ {X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 } }
VW
{ {X1 , ¬X1 }, {X1 , ¬X2 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , ¬X1 }, {¬X2 , X2 } }
gdw. erfb
VW
{ {X1 , ¬X2 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , ¬X1 } }
gdw. erfb
VW
{ {¬X2 }, {X2 , ¬X2 }, {X2 , ¬X2 }, {X2 } }
gdw. erfb
VW
{ {¬X2 }, {X2 } }
gdw. erfb
VW
{∅}
Erinnerung: Definition durch vollständige Induktion
Konstruktion einer Funktion f , die auf N definiert ist.
1. Induktionsanfang (Basiszuordnung): Man legt f (0) fest.
2. Induktionsschritt:
2.1 Induktionsannahme: Man nimmt an, dass f (n) für ein
beliebiges n ∈ N definiert ist.
2.2 Neue Zuordnung: Man legt f (n + 1) in Abhängigkeit von n
und f (n) fest.
Erinnerung: Definition durch vollständige Induktion
Konstruktion einer Funktion f , die auf N definiert ist.
1. Induktionsanfang (Basiszuordnung): Man legt f (0) fest.
2. Induktionsschritt:
2.1 Induktionsannahme: Man nimmt an, dass f (n) für ein
beliebiges n ∈ N definiert ist.
2.2 Neue Zuordnung: Man legt f (n + 1) in Abhängigkeit von n
und f (n) fest.
Variante
Allgemeinere Induktionsannahme:
2.1 Man nimmt an, dass f (m) für alle natürlichen Zahl m mit
m ≤ n gilt.
2.2 Man legt f (n + 1) in Abhängigkeit von n und f (0), . . . , f (n)
fest.
Das Dominoproblem
Gegeben
Satz von nicht drehbaren Dominosteinen, etwa
,
und
Frage
Kann man den ersten Quadranten vollständig parkettieren?
..
Hier ja:
.
.
Mathematische Modellierung des Dominoproblems
Farbmenge
C = {0, . . . , c − 1}.
Dominostein
Funktion f : {0, 1, 2, 3} → C , wobei 0 für rechts, 1 für oben, 2 für
links und 3 für unten steht.
Satz von Dominosteinen
Endliche Menge S von Funktionen {0, 1, 2, 3} → C .
Parkettierung des Quadranten
Funktion h : N × N → C und v : N × N → C . Dabei steht h(i, j)
für die Farbe der Linie zwischen (i, j) und (i + 1, j), analog für v .
Passende Parkettierung
Für alle i, j ∈ N gilt:
I
Die Funktion f mit f (0) = v (i, j + 1), f (1) = h(i, j + 1),
f (2) = v (i, j) und f (3) = h(i, j) gehört zu S.
Logische Modellierung des Dominoproblems
Variablen
k : Linie von (i, j) zu (i + 1, j) hat Farbe k
Hi,j
k : Linie von (i, j) zu (i, j + 1) hat Farbe k
Vi,j
Formeln für Parkettierung, i, j ∈ N
ϕi,j = (
_
k
Hi,j
∧
k<c
_
k
Vi,j
)
k<c
∧
0
^
0
k
k
k
k
((¬Hi,j
∨ ¬Hi,j
) ∧ (¬Vi,j
∨ ¬Vi,j
))
k<k 0 <c
Formeln für passend, i, j ∈ N
S
ψi,j
=
_
f (3)
(Hi,j
f (2)
∧ Vi,j
f (1)
f (0)
∧ Hi,j+1 ∧ Vi,j+1 )
f ∈S
Formelmenge für Gesamtproblem
S
ΦS = {ϕi,j ∧ ψi,j
: i, j ∈ N}
Negativer Semi-Entscheidungsalgorithmus für das
Dominoproblem
SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische
Formeln.
Domino(S)
Vorbedingung: S ist ein Satz von Dominosteinen.
let n = 0
repeat
^
S
let ϕ =
ϕi,j ∧ ψi,j
i,j≤n
let b = SAT(ϕ)
let n = n + 1
until b = 0
Nachbedingung:
Bei Termination ist S nicht lösbar;
bei Divergenz ist S lösbar.
Ripple-Carry-Addiernetz (8 Bit)
Formales Modell
S0 ← A0 ⊕ B0
Exklusives Oder, ⊕
ϕ ⊕ ψ = (ϕ ↔ ¬ψ)
C1 ← A0 ∧ B0
S1 ← A1 ⊕ B1 ⊕ C1
C2 ← maj(A1 , B1 , C1 )
Mehrheitsoperation, Maj
maj(ϕ0 , ϕ1 , ϕ2 )
= (ϕ0 ∧ ϕ1 ) ∨ (ϕ0 ∧ ϕ2 ) ∨ (ϕ1 ∧ ϕ2 )
S2 ← A2 ⊕ B2 ⊕ C2
C3 ← maj(A2 , B2 , C2 )
Vor- und Nachteile
...
+ einfache Struktur
S7 ← A7 ⊕ B7 ⊕ C7
+ wenige Gatter
S8 ← maj(A7 , B7 , C7 )
− langsame Laufzeit (linear)
Ein Dreieck ist nicht bipartit
Ein Resolutionsbeweis
Klauselmenge
{{X0 , X1 }, {¬X0 , ¬X1 }, {X1 , X2 }, {¬X1 , ¬X2 }, {X2 , X0 }, {¬X2 , ¬X0 }}
Beweis
1. {X0 , X1 }
2. {¬X1 , ¬X2 }
3. {X0 , ¬X2 }
4. {X2 , X0 }
5. {X0 }
6. {¬X0 , ¬X1 }
7. {X1 , X2 }
8. {¬X0 , X2 }
9. {¬X2 , ¬X0 }
10. {¬X0 }
11. ∅
(V)
(V)
(R)
(V)
(R)
(V)
(V)
(R)
(V)
(R)
(R)
mit X1 aus 1. und 2.
mit X2 aus 4. und 3.
mit X1 aus 7. und 6.
mit X2 aus 8. und 9.
mit X0 aus 5. und 10.
(Semi-)Entscheidungsverfahren
Entscheidungsverfahren
ja
x ∈P
x ∈I
x ∈ P?
x∈
/P
Semi-Entscheidungsverfahren
nein
Negatives
Semi-Entscheidungsverfahren
x ∈P
x ∈I
x ∈ P?
x∈
/P
x ∈P
x ∈I
x ∈ P?
x∈
/P
Schaltelemente
X1
X2
≥1
X1
X2
&
X1
X2
=1
X1
X2
≥1
X1
X2
&
X1
1
X3
X3 ← (X1 ∨ X2 )
X3
X3 ← (X1 ∧ X2 )
X3
X3 ← (X1 ⊕ X2 )
X3
X3 ← ¬(X1 ∨ X2 )
X3
X3 ← ¬(X1 ∧ X2 )
X2
X2 ← ¬X1
Semi-Entscheidungsverfahren für die Folgerungsbeziehung
SAT sei ein beliebiger Erfüllbarkeitstest für aussagenlogische
Formeln.
SemiImpl(F , ϕ)
Vorbedingung: F [0..] ist ein unendliches Feld von
aussagenlogischen Formeln; ϕ eine einzelne.
let i = 0
let ψ = ¬ϕ
repeat
let ψ = ψ ∧ F [i]
let b = SAT(ψ)
let i = i + 1
until b = 0 Nachbedingung:
Bei Termination gilt {F [0], F [1], . . . } |= ϕ;
bei Divergenz gilt {F [0], F [1], . . . } 6|= ϕ.
Ein Beweis im Hilbert-System
Aus Martin Grohes Vorlesung
Behauptung
{X0 → X1 , X1 → X2 } `H X0 → X2 .
Kommentierter Beweis
1. (V) X1 → X2
2. (Ax1) mit ϕ = X1 → X2 und ψ = X0
(X1 → X2 ) → (X0 → (X1 → X2 ))
3. (MP) auf 1. und 2.
X0 → (X1 → X2 )
4. (Ax2) mit ϕ = X0 , ψ = X1 und χ = X2
(X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 ))
5. (MP) auf 3. und 4.
(X0 → X1 ) → (X0 → X2 )
6. (V) X0 → X1
7. (MP) auf 6. und 5.
X0 → X2
Ein Beweis im Hilbert-System
Alternative Darstellung: Bruchschreibweise
(V)
(Ax1)
X1 → X2
(X1 → X2 ) → (X0 → (X1 → X2 ))
(MP)
(Ax2)
X0 → (X1 → X2 )
(X0 → (X1 → X2 )) → ((X0 → X1 ) → (X0 → X2 ))
(MP)
(V)
X0 → X 1
(X0 → X1 ) → (X0 → X2 )
(MP)
X0 → X2
Ein natürlicher Beweis
Aus [RH]
Behauptung
(X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 )
Beweis
((X0 ∧ X1 ) → X2 , (X0 , (X1 , X0 ∧ X1 , X2 ), X1 → X2 ), X0 → (X1 → X2 ))
Ein natürlicher Beweis in natürlicher Form
Behauptung
(X0 ∧ X1 ) → X2 `N X0 → (X1 → X2 )
Beweis
1. (V) (X0 ∧ X1 ) → X2 .
2. (A) X0 .
3. (A) X1 .
4. (in-∧) auf 2. und 3.: X0 ∧ X1 .
5. (el-→) auf 4. und 1.: X2 .
6. (in-→) auf 2. und 3.–5.: X1 → X2 .
7. (in-→) auf 1. und 2.–6.: X0 → (X1 → X2 ).
Korrektheit- und Vollständigkeit
Gegeben
1. Eine (syntaktische) Ableitungsrelation `.
2. Eine semantische Beziehung |=.
Korrektheit
` ⊆ |=
Vollständigkeit
|= ⊆ `
Das Resolutionssystem in Kurzform
Axiome
Keine!
Regeln
K ∪· {Xi } K 0 ∪· {¬Xi }
K ∪ K0
Das Hilbert-System in Kurzform
Axiome
(Ax1)
(Ax2)
(Ax3)
ϕ → (ψ → ϕ)
(ϕ → (ψ → χ)) → ((ϕ → ψ) → (ϕ → χ))
(¬ϕ → ¬ψ) → (ψ → ϕ)
Regeln
(MP)
ϕ
ϕ→ψ
ψ
Der Markierungsalgorithmus für Horn-Formeln
HornSAT∗ (M)
Vorbedingung: M Horn-Klauselmenge.
let I = ∅
while exists unit clause {Xi } ∈ M where Xi ∈
/ I do
let I = I ∪ {Xi }
for each K ∈ M do
let K = K \ {¬Xi }
if ∅ ∈ M then
return unerfüllbar
else
return I
VW
, so unfb(
M).
Nachbedingung: Falls return = unerfüllbar
VW
unerfüllbar, so erfb(
Falls return
=
6
M)
und
VW
I = {Xi :
M |= Xi }.
Der Markierungsalgorithmus für Horn-Formeln
HornSAT(M)
Vorbedingung: M Horn-Klauselmenge mit ausschließlich
Tatsachen- und Programmklauseln.
let I = ∅
while exists 1 → Xi ∈ M where Xi ∈
/ I do
let I = I ∪ {Xi }
for each ψ = Xi0 ∧ · · · ∧ Xir −1 → Xj ∈ M where r > 0 do
if exists k < r such that Xik = Xi then
let M = M \ {ψ} ∪ {Xi0 ∧ · · · ∧ Xik−1 ∧ Xik+1 ∧ · · · ∧ Xir −1 → Xj }
Insbesondere: Falls r = 1 und k = 0, so M = M \ {ψ} ∪ {1 → Xj }.
Nachbedingung: I = folg(
V
M).
Das natürliche Beweissystem in Kurzform
(in-∧)
ϕ ψ
ϕ∧ψ
(el-∧-l)
ϕ∧ψ
ψ
(in-∨-l)
ψ
ϕ∨ψ
(in-∨-r)
ϕ
ϕ∨ψ
ϕ∨ψ
(el-∨)
(el-→)
(el-0)
ϕ
..
.
χ
χ
ϕ
0
ϕ
ϕ→ψ
ψ
ψ
..
.
χ
(el-∧-r)
ϕ
..
.
ψ
(in-→)
(el-¬)
ϕ→ψ
ϕ
¬ϕ
0
ϕ∧ψ
ϕ
ϕ
..
.
0
(in-¬)
(el-¬¬)
¬ϕ
¬¬ϕ
ϕ
Horn-Klauseln
Tatsachenklausel
1 → Xi
Programmklausel
Xi0 ∧ · · · ∧ Xir → Xj
Zielklausel
Xi0 ∧ · · · ∧ Xir → 0
Leere Klausel
1→0
Ein Beispiel für den Markierungsalgorithmus
Gegeben
M = {1 → X0 , 1 → X2 , (X0 ∧X2 ) → X4 , (X0 ∧X4 ) → X6 , X1 → X0 }
Ausführung
0
I
M
1
∅
1 → X0 , 1 → X2 , (X0 ∧ X2 ) → X4 , (X0 ∧ X4 ) → X6 , X1 → X0
2
X0
1 → X0 , 1 → X2 , X2 → X4 , X4 → X6 , X1 → X0
3
X0 , X2
1 → X0 , 1 → X2 , 1 → X4 , X4 → X6 , X1 → X0
4
X0 , X2 , X4
1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0
5
X0 , X2 , X4 , X6
1 → X0 , 1 → X2 , 1 → X4 , 1 → X6 , X1 → X0
Ergebnis
Es gilt
V
M |= X0 ,
V
M |= X2 ,
V
M |= X4 , aber
V
M 6|= X1 .
Beispiele für Signaturen
Graphen
ΣGraph = {E /2}
Arithmetik
ΣAr = {0̃, 1̃, +//2, ×//2}
Ordnungsstrukturen
ΣOrd = {</2}
Äquivalenzstrukturen
ΣÄq = {≡/2}
boolesche Algebren
ΣBA = {⊥, >, ∼/1, t//2, u//2}
Bibliotheksdatenbanken
ΣBib = {Buch/3, Nutzer/3, Entliehen/2}
Strukturen
Signatur Σ
Σ-Struktur S
I
Eine nicht leere Trägermenge T S , auch mit S bezeichnet.
I
Für jedes Konstantensymbol c ∈ Σ eine Konstante c S ∈ S.
I
Für jedes Relationssymbol R/n ∈ Σ eine Relation R S ⊆ S n .
I
Für jedes Funktionssymbol f //n ∈ Σ eine Funktion
f S : S n → S.
Notation
S = (S, {c S }c∈CΣ , {R S }R∈RΣ , {f S }f ∈FΣ )
oder
S = (S, c0S , c1S , . . . , R0S , R1S , . . . , f0S , f1S , . . . )
Graphstrukturen, ΣGraph = {E /2}
Ein Graph G
v4
v3
v2
v1
v6
v0
T G = {v0 , v1 , . . . , v6 } ,
v5
E G = {(v0 , v2 ), (v2 , v4 ), (v4 , v1 ), (v1 , v0 ),
(v1 , v5 ), (v1 , v3 ), (v3 , v1 ), (v3 , v6 ), (v6 , v6 )} .
NSuc, die natürlichen Zahlen mit Nachfolgerrelation
0
1
2
···
T NSuc = {0, 1, 2, . . . } ,
E NSuc = {(0, 1), (1, 2), (2, 3), . . . } .
Arithmetische Strukturen, ΣAr = {0̃, 1̃, +//2, ×//2}
N, die natürlichen Zahlen
T N = {0, 1, 2, . . . } ,
0̃N = 0 ,
1̃N = 1 ,
+N (a, b) = a + b
N
× (a, b) = ab
für a, b ∈ {0, 1, 2, . . . },
für a, b ∈ {0, 1, 2, . . . }.
Z7 , die Reste modulo 7
T Z7 = {0, 1, . . . , 6} ,
0̃Z7 = 0 ,
1̃Z7 = 1 ,
+Z7 (a, b) = a + b mod 7
Z7
× (a, b) = ab mod 7
für a, b ∈ {0, 1, . . . , 6},
für a, b ∈ {0, 1, . . . , 6}.
Ordnungen, ΣOrd = {</2}
Eine partielle Ordnung PO
a3
a1
a2
T PO = {0, 1, 2, . . . } ,
<PO = {(a0 , a1 ), (a0 , a2 ), (a1 , a3 ), (a2 , a3 ), (a0 , a3 )} .
a0
Nlt, die natürlichen Zahlen mit natürlicher Ordnung
0
1
2
···
T Nlt = {0, 1, 2, . . . } ,
<Nlt = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . } .
Boolesche Algebren, ΣBA = {⊥, >, ∼//1, u//2, t//2}
B, die“ boolesche Algebra
”
T B = {0, 1} ,
⊥B = 0 ,
>B = 1 ,
∼B = ¬˙ ,
tB = ∨˙ ,
uB = ∧˙ .
PN, die Potenzmengenalgebra auf den natürlichen Zahlen
T PN = 2{0,1,2,... } ,
⊥PN = ∅ ,
>PN = {0, 1, 2, . . . } ,
tPN = ∪ ,
uPN = ∩ ,
∼PN (M) = {0, 1, 2, . . . } \ M ,
für M ⊆ {0, 1, . . . }.
Bibliotheken, ΣBib = {Buch/3, Nutzer/3, Entliehen/2}
Ein Datenbankzustand DB1
T DB1 = {Wilke, Thomas, Schloß Gripsholm, Tucholsky,
N1, B1} ,
DB1
Buch
= {(B1, Tucholsky, Schloß Gripsholm)} ,
NutzerDB1 = {(N1, Wilke, Thomas)} ,
EntliehenDB1 = {(N1, B1)} .
Ein anderer Datenbankzustand DB2
T DB1 = {Wilke, Thomas, Kürtz, Klaas Ole, Schloß Gripsholm,
Tucholsky, Rheinsberg, N1, N2, B1, B2, B3} ,
DB2
Buch
= {(B1, Tucholsky, Schloß Gripsholm),
(B2, Tucholsky, Rheinsberg),
(B3, Tucholsky, Schloß Gripsholm)} ,
NutzerDB2 = {(N1, Wilke, Thomas), (N2, Kürtz, Klaas Ole)} ,
EntliehenDB2 = {(N1, B1), (N2, B3)} .
Boolesche Algebren
∀x∀y x t y = y t x
∀x∀y x u y = y u x
∀x∀y ∀z (x u y ) u z = x u (y u z)
∀x∀y ∀z (x t y ) t z = x t (y t z)
(Assoziativität)
∀x x t x = x
∀x x u x = x
∀x∀y x u (x t y ) = x
∀x∀y x t (x u y ) = x
∀x∀y ∀z (x u y ) t z = (x t z) u (y t z)
∀x∀y ∀z (x t y ) u z = (x u z) t (y u z)
(Distributivität)
∀x x t ⊥ = x
∀x x u > = x
∀x ∼∼x = x
(Kommutativität)
(Idempotenz)
(Absorption)
(Neutralität)
(Doppelte Negation)
∀x∀y ∼(x u y ) = ∼x t ∼y
∀x∀y ∼(x t y ) = ∼x u ∼y (De Morgan)
∀x x u ∼x = ⊥
∀x x t ∼x = >
∀x x u ⊥ = ⊥
∀x x t > = > (Maximum und Minimum)
∼⊥ = >
∼> = ⊥
(Tertium non datur)
(Komplementierung)
Ordnungen
∀x∀y ∀z(x < y ∧ y < z → x < z)
(Transitivität)
∀x ¬x < x
(Irreflexivität)
∀x∀y (x < y → ∃z(x < z ∧ z < y )
(Dichtheit)
∀x∀y (x = y ∨ x < y ∨ y < x)
(Linearität)
Präordnung (Quasiordnung)
Transitivität
(Partielle) oder (Halb-)Ordnungen
Transitivität + Irreflexivität
Totale oder lineare Ordnungen
Transitivität + Irreflexivität + Linearität
Dichte Ordnungen
Transitivität + Irreflexivität + Dichtheit
Wechselseitiger Ausschluss
ME-Struktur
Σ = {< /2, R0 /1, R1 /1, G0 /1, G1 /1}, S = {0, 1, 2, . . . } und
<S = {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3), . . . }.
Farbliche Kodierung
Ri : Prozess i möchte zugreifen
Gi : Prozess i darf zugreifen/greift zu
Wechselseitiger Ausschluss
P0
x
P1
x
verboten
Schnelligkeit für P0
P0
x
P1
P0
x
z
ok
ok
P1
y
z
u
y
Datenbankanfragen
Nutzernamen
Gesucht ist die Menge Namen aller Nutzer.
∃x2 Nutzer(x2 , x0 , x1 ) .
Autorennamen
Gesucht ist die Menge der (Nach-)Namen aller Autoren.
∃x1 ∃x2 Buch(x1 , x0 , x2 ) .
Allentleiher
Gesucht ist die Menge aller Namen (Paar bestehend aus Nach- und
Vorname) aller Nutzer, die alle Titel eines Autors entliehen haben.
∃x2 (Nutzer(x2 , x0 , x1 ) ∧ ∃x3 ∀x4 (∃x5 Buch(x5 , x3 , x4 )
→ ∃x6 (Buch(x6 , x3 , x4 ) ∧ Entliehen(x2 , x6 ))) .
Auswertung von Formeln
Eval(ϕ, n, S)
n
Vorbedingung: ϕ ∈ FPL
(Σ), Σ relational, S endlich
if ϕ = xi = xj then return {(a0 , . . . , an−1 ) ∈ S n : ai = aj }
if ϕ = R(xi0 , . . . , xim−1 ) then
return {(a0 , . . . , an−1 ) ∈ S n : (ai0 , . . . , aim−a ) ∈ R S }
if ϕ = ϕ0 ∨ ϕ1 then
return Eval(ϕ0 , n, S) ∪ Eval(ϕ1 , n, S)
...
if ϕ = ∃xi ψ then
if i < n then
let T = ∅ and T 0 = Eval(ψ, n, S)
for each (a0 , . . . , an−1 ) ∈ T 0 and b ∈ S
let T = T ∪ {(a0 , . . . , ai−1 , b, ai+1 , . . . , an−1 )}
return T
else
...
...
Nachbedingung: return = ϕ(Sn )
Umwandlung in PNF
PNF(ϕ)
Vorbedingung: ϕ ∈ FPL (Σ).
if ϕ atomar
return ϕ
if ϕ = ¬ψ then
return NegPNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return
DisjPNF(PNF(ϕ0 ), PNF(ϕ1 ))
if ϕ = ϕ0 ∧ ϕ1 then
return
KonjPNF(PNF(ϕ0 ), PNF(ϕ1 ))
...
if ϕ = ∃xi ψ then
return ∃xi PNF(ψ)
if ϕ = ∀xi ψ then
return ∀xi PNF(ψ)
Nachbedingung: return
∈ PNF (Σ) und return ≡ ϕ.
NegPNF(ϕ)
Vorbedingung: ϕ ∈ FPL (Σ).
if ϕ atomar
return ¬ϕ
if ϕ = ¬ψ then
return PNF(ψ)
if ϕ = ϕ0 ∨ ϕ1 then
return
KonjPNF(NegPNF(ϕ0 ), NegPNF(ϕ1 ))
...
if ϕ = ∃xi ψ then
return ∀xi NegPNF(ψ)
if ϕ = ∀xi ψ then
return ∃xi NegPNF(ψ)
Nachbedingung: return ∈ PNF (Σ) und
return ≡ ¬ϕ.
Umwandlung in PNF, Teil II
DisjPNF(ϕ, ψ)
Vorbedingung: ϕ, ψ ∈ PNF (Σ).
if ϕ, ψ ∈ QF (Σ)
return ϕ ∨ ψ
if ϕ ∈ QF (Σ)
let (ϕ, ψ) = (ψ, ϕ)
if ϕ = ∃xi ϕ0
let V = vars(ϕ) ∪ vars(ψ)
let j = max{k : xk ∈ V } + 1
let ϕ0 = Swap(i, j, ϕ)
let χ = DisjPNF(ϕ0 , ψ)
return ∃xj χ
...
Nachbedingung: return
∈ PNF (Σ) und return ≡ ϕ ∨ ψ.
Swap(i, j, ϕ)
Vorbedingung: i, j ∈ N,
ϕ ∈ FPL (Σ).
...
Nachbedingung: return = ϕπ
mit π(xi ) = xj und π(xj ) = xi .
Erfüllbarkeit und Gültigkeit
unerfüllbar
Jeder Knoten besitzt keine Nachbarn und es existiert eine Kante:
∀x0 ¬∃x1 R(x0 , x1 ) ∧ ∃x0 ∃x1 R(x0 , x1 )
erfüllbar, aber nicht allgemeingültig
Jeder Knoten besitzt keine Nachbarn:
ϕ = ∀x0 ∀x1 ¬R(x0 , x1 )
|= ϕ
6|= ϕ
allgemeingültig
Wenn es eine Kante gibt, so gibt es eine Schleife oder zwei Knoten:
∃x0 ∃x1 R(x0 , x1 ) → ∃x0 R(x0 , x0 ) ∨ ∃x0 ∃x1 (x0 6= x1 )
Das Postsche Korrespondenzproblem
positive Instanz
Paare: (bab,a), (ha,ba), (bbb,a), (hba, hb), (cdf, b), (a, bcdfbaba)
Lösungsfolge: 3, 0, 4, 0, 5
Lösungswort: (hbababcdfbaba, hbababcdfbaba)
h
b
a
b
a
b
c
d
f
b
a
b
a
h
b
a
b
a
b
c
d
f
b
a
b
a
negative Instanz
Paare: (bab,ba), (a,b), (c,d)
Nur Anfang mit (bab,ba) möglich. Dann Fortsetzung nur durch
(a,b). Dann ist das eine Teilergebnis immer um eins länger als das
andere.
Gültigkeitstest für existenzielle Formeln
SAT: Erfüllbarkeitstest für beliebige aussagenlogische
Formelmengen
ValidEx(ϕ)
Vorbedingung: ϕ existenzielle Aussage (ohne Gleichheit).
write ϕ as ∃xi0 . . . ∃xin−1 ψ with ψ quantifier-free
let ϕ0 = ∀xi0 . . . ∀xin−1 ¬ψ
SAT(Θϕ0 )
Nachbedingung:
Bei Termination gilt |= ϕ;
bei Divergenz gilt 6|= ϕ.
Skolemisierung
Skolem(ϕ)
Vorbedingung: ϕ ist eine Formel in PNF.
if ϕ quantifier-free
return ϕ
let ϕ = Qxi ψ where Q ∈ {∃, ∀}
if Q = ∀ or xi ∈
/ free(ψ)
return Skolem(ψ)
let V = free(ϕ)
choose f ∈
/ sig(ϕ)
return Skolem(ψ[f (V )/xi ])
Nachbedingung: return quantorenfrei und ∀ ϕ ≡erfb ∀ return.
Allgemeiner Gültigkeitstest
ValidEx: Gültigkeitstest für existenzielle prädikatenlogische
Formeln
Valid(ϕ)
Vorbedingung: ϕ prädikatenlogische Aussage.
let ϕ0 = PNF(¬ϕ)
let ϕ1 = ∀ Skolem(ϕ0 )
write ϕ1 as ∀xi0 . . . ∀xin−1 ψ with ψ quantifier-free
return ValidEx(∃xi0 . . . ∃xin−1 ¬ψ)
Nachbedingung:
Bei Termination gilt |= ϕ;
bei Divergenz gilt 6|= ϕ.
Folgerungstest
Ein Beispiel
Frage Gilt {ϕ0 , ϕ1 } |= ϕ mit
ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
ϕ1 = Mutter(maria, paul)
ϕ = Weiblich(maria)
Reduktion auf Erfüllbarkeitsproblem Ist {ϕ0 , ϕ1 , ¬ϕ} unerfüllbar?
Umwandlung in PNF + Skolemisierung
Φ = {ϕ00 , ϕ01 , ϕ02 } mit
ϕ00 = ∀x0 ∀x1 (¬Mutter(x0 , x1 ) ∨ Weiblich(x0 ))
ϕ01 = Mutter(maria, paul)
ϕ02 = ¬Weiblich(maria)
Aussagenlogische Expansion
{¬Mutter(maria, paul) ∨ Weiblich(maria), ¬Weiblich(maria),
Mutter(maria, paul), . . . } – nicht erfüllbar, also {ϕ0 , ϕ1 } |= ϕ.
Ein Hilbert-System für die Prädikatenlogik
Die Axiome
α ∈ FAL , ϕ, ψ ∈ FPL (Σ), σ Formelsubstitution, t, t0 , t1 , t2 ∈ T (Σ)
(AL)
(∃∀)
(∀→)
(∀/)
(∃/)
(=R)
(=S)
(=T)
(=/)
ασ
σ passt zu α und |= α
∃xi ϕ ↔ ¬∀xi ¬ϕ
∀xi (ϕ → ψ) → (ϕ → ∀xi ψ)
∀xi ϕ → ϕ[t/xi ]
ϕ[t/xi ] → ∃xi ϕ
xi ∈
/ free(ϕ)
[t/xi ] passt zu ϕ
[t/xi ] passt zu ϕ
t=t
t0 = t1 → t1 = t0
t0 = t1 ∧ t1 = t2 → t0 = t2
t0 = t1 → (ϕ[t0 /xi ] → ϕ[t1 /xi ])
[t0 /xi ], [t1 /xi ] passen zu ϕ
Ein Hilbert-System für die Prädikatenlogik
Die Regeln
Modus ponens
(MP)
ϕ
ϕ→ψ
ψ
Generalisierungsregel
(∀)
ϕ
∀xi ϕ
Ein Hilbert-System für die Prädikatenlogik
Ein Beispiel
Frage Gilt {ϕ0 , ϕ1 } `HPL ϕ mit
ϕ0 = ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
ϕ1 = Mutter(maria, paul)
ϕ = Weiblich(maria)
Beweis
1. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
→ (∃x1 Mutter(maria, x1 ) → Weiblich(maria)) (∀/)
2. ∀x0 (∃x1 Mutter(x0 , x1 ) → Weiblich(x0 ))
3. ∃x1 Mutter(maria, x1 ) → Weiblich(maria)
4. Mutter(maria, paul) → ∃x1 Mutter(maria, x1 )
5. Mutter(maria, paul)
(Vorauss.)
(MP)
(∃/)
(Vorauss.)
6. ∃x1 Mutter(maria, x1 )
(MP)
7. Weiblich(maria)
(MP)
Was kommt nach dem Vollständigkeitssatz?
In der Vorlesung
Gödelscher Vollständigkeitssatz
Für alle Mengen Φ von Formeln und jede Formel ϕ gilt:
Φ |= ϕ gdw. Φ ` ϕ.
Nächste Schritte
1. Unvollständigkeitssatz
Zu jeder widerspruchsfreien, ausdrucksstarken Menge Φ
von ΣAr -Aussagen gibt es eine Aussage ϕ, für die gilt:
Φ 6|= ϕ und Φ 6|= ¬ϕ.
2. Unvollständigkeitssatz
Für jede widerspruchsfreie,
ΣAr -Aussagen gilt:
ausdrucksstarke Menge Φ von
Φ 6|= wfreiΦ .
Was gibt’s noch in der mathematischen Logik?
I
Mengenlehre
I
Modelltheorie
I
Rekursionstheorie
I
Beweistheorie
I
...
ZFC
Ein Axiomensystem für die Mengenlehre
Extensionalitätsaxiom
∀X ∀Y (∀a(a ∈ X ↔ a ∈ Y ) → X = Y )
Paarmengenaxiom
∀a∀b∃X (∀c(c ∈ X ↔ c = a ∨ c = b))
Aussonderungsaxiom
∀ā∀X ∃Y ∀b(b ∈ Y ↔ b ∈ X ∧ ϕ(b, ā))
Vereinigungsmengenaxiom
∀X ∃Y ∀a(a ∈ Y ↔ ∃Z (Z ∈ X ∧ a ∈ Z ))
Potenzmengenaxiom
∀X ∃Y ∀Z (Z ∈ Y ↔ Z ⊆ X )
Unendlichkeitsaxiom
∃X (∅ ∈ X ∧ (∀a(a ∈ X → a ∪ {a} ∈ X ))
Ersetzungsaxiom
∀ā(∀b∃=1 c ϕ(b, c, ā)
→ ∀X ∃Y ∀c(c ∈ Y ↔ ∃b(b ∈ X ∧ ϕ(b, c, ā)))
Auswahlaxiom
∀X (¬∅ ∈ X ∧ ∀Y ∀Z (Y ∈ X ∧ Z ∈ X ∧ ¬Y = Z → Y ∩ Z = ∅)
→ ∃Y ∀Z (Z ∈ X → ∃=1 a(a ∈ X ∩ Y )))
Der Satz von Löwenheim-Skolem (einfache Form)
Ein grundlegender Satz der Modelltheorie
Satz
Ist Φ eine Menge von Aussagen in einer endlichen Signatur und
besitzt Φ ein Modell, dann besitzt Φ auch ein abzählbares Modell.
Insbesondere anwendbar auf jedes Modell der ZFC-Mengenlehre, in
der es eine unendliche Menge und deren Potenzmenge gibt, die ja
überabzählbar ist.
Eine interessante Frage aus der Rekursionstheorie
Frage
Ist das Postsche Korrespondenzproblem das
einfachste unentscheidbare Problem?
Was kommt nach der Prädikatenlogik?
In der Vorlesung
1. Aussagenlogik
2. Prädikatenlogik, genauer: Prädikatenlogik erster Stufe
Nächster Schritt
3. Prädikatenlogik zweiter Stufe
Prädikatenlogik zweiter Stufe
Syntax
Prädikatenlogik erster Stufe, zusätzlich
I
Variablen für Relationen über der Trägermenge: X0 , X1 , . . .
I
Quantoren für die neuen Variablen: ∃Xi , ∀Xi
Beispiel
Ein gerichteter Graph ist stark zusammenhängend (X0 , X1
einstellig):
¬∃X0 ∃X1 ( ∧ ∃x0 X0 (x0 )
∧ ∃x0 X1 (x0 )
∧ ∀x0 (¬X0 (x0 ) ∨ ¬X1 (x0 ))
∧ ∀x0 ∀x1 ¬(X0 (x0 ) ∧ X1 (x1 ) ∧ E(x0 , x1 )))
Informatische Logiken I
Temporale Logik
Wechselseitiger Ausschluss:
Jede Anfrage wird beantwortet.
G(R0 → FG0 ) .
Modale Logik – hier: Wissenslogik
Die dinierenden Kryptographen:
Ron weiß, ob die NSA oder ob einer der anderen bezahlt
hat.
I
I
Im zweiten Fall weiß Ron nicht, wer von den beiden bezahlt
hat.
(KRon (paid-Adi ∨ paid-Len) ∨ KRon paid-NSA)
∧ ¬KRon paid-Adi ∧ ¬KRon paid-Len
Informatische Logiken II
Beschreibungslogik
Syntax
I
Konzepte: Mensch, Frau, Mann, . . .
I
Rollen: kind
I
u, ∃, ∀, v, =
Beispiel Verwandtschaftsbeziehungen
I
Frau v Mensch
I
Mann v Mensch
I
Mutter = Frau u ∃.kind
I
Elternteil = ∃.kind
Gilt Mutter v Elternteil?
Hoare-Logik
Korrektheitsbeweise für imperative Programme
Ein (gültiges) Hoare-Tripel
{x ≥ y ∧ y ≥ 0}
let (a, b) = (x, y )
while b > 0
let a = a − b
if a < b
let (a, b) = (b, a)
{a | x ∧ a | y ∧ ∀c(c | x ∧ c | y → c ≤ a)}
Eine (gültige) Hoare-Regel
ϕPψ, ψ → χ, χQρ
ϕP; Qρ
Logikprogrammierung
Ein ganz einfaches Programm
Programm
R(x) :- P(x)
R(y ) :- R(x), E (x, y )
P(0)
E (0, 1)
E (0, 2)
E (2, 3)
1. Anfrage
?- R(3)
Antwort: true
2. Anfrage
?- R(x)
Antwort: x = 0, x = 1, x = 2, x = 3
Herunterladen