Logik für Informatiker/innen

Werbung
Vorlesung
Logik für Informatiker/innen
Einführung in mathematische Logik und Logik in der Informatik
Thomas Wilke
1. November 2008
Rev:16 2008-11-01
Inhaltsverzeichnis
1 Einleitung
3
2
Rev:16 2008-11-01
1 Einleitung
Die mathematische Logik ist ein neueres Teilgebiet der Mathematik, in dem auf die Logik –
also auf die Lehre vom schlüssigen Argumentieren – mathematische Methoden angewendet werden. Darunter versteht man insbesondere einen formalen Zugang zur Logik, der
sich nicht der gewöhnlichen Sprache, sondern formaler Sprache bedient.
Zu Beginn des zwanzigsten Jahrhunderts versuchte man unter anderem, die gesamte
Mathematik in einen formalen logischen Rahmen zu pressen, ja sogar ein Verfahren zu entwickeln, das alle mathematischen Aussagen auf ihren Wahrheitsgehalt überprüfen könnte.
Später musste man jedoch erkennen, dass diesen Ideen Grenzen gesetzt sind, was wiederum zu neuen Fragen führte. Heute geht die mathematische Logik weit über das oben genannte hinaus. Sie hat innerhalb der Mathematik einen festen Platz, weil sie nicht nur die
Grundlagen der Mathematik erklärt, sondern weil ihre Methoden in klassischen Teilgebieten der Mathematik erfolgreich eingesetzt werden können.
Um die anfängliche Geschichte der mathematischen Logik besser begreifen zu können,
sehen wir uns in Folie 1 zunächst zwei Zitate aus demselben Lehrbuch, allerdings aus verschiedenen Ausgaben, an. In der ersten Auflage von 1928 wird noch die Suche nach einer
Lösung des Entscheidungsproblems als vorrangigste Aufgabe angesehen und implizit davon ausgegangen, dass es ein solches gibt, während aus der sechsten Auflage von 1972 die
Einsicht spricht, dass das Entscheidungsproblem nicht gelöst werden kann.
Desweiteren betrachten wir ein Zitat von Kurt Gödel aus dem Jahr 1931, siehe Folie 2, das
zum einen deutlich macht, dass zu Beginn des zwanzigsten Jahrhunderts Anstrengungen
unternommen wurden, die gesamte Mathematik zu formalisieren. Zum anderen wird aber
auch deutlich, dass diese Anstrengungen zum Scheitern verurteilt sind.
Der Schritt von der mathematischen Logik zur Informatik ist nicht weit: Bei der Spezifikation von Informatiksystemen möchte man genauso wie in der Logik zu formalen, eindeutigen, nicht fehlinterpretierbaren Aussagen kommen. Wenn es um die Korrektheit von
Informatiksystemen geht, wären formale Beweise – ein zentraler Gegenstand der mathematischen Logik – äußerst wünschenswert.
3
Rev:16 2008-10-31
1 Einleitung
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.«
Folie 1
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 [. . . ]«
Folie 2
4
Rev:16 2008-10-31
1 Einleitung
David Hilbert, 1862–1943
Kurt Gödel, 1906–1978
Folie 3
5
Rev:16 2008-10-31
2 Aussagenlogik
2.1 Einleitung
Wir beschäftigen uns zunächst mit Aussagen. Darunter versteht man üblicherweise Behauptungen, die für sich wahr oder falsch sind. Interessant wird es, wenn Aussagen aus
anderen Aussagen durch logische Verknüpfungen (Junktoren) wie oder und nicht zusammengesetzt werden.
Beispiel 1 (Aussagen).
• Eine einfache Aussage: Der Mond ist eine Kugel.
• Eine zusammengesetzte Aussage: Der Mond ist eine Kugel oder der Mond ist ein Würfel.
• Eine weitere zusammengesetzte Aussage: Wenn der Mond kein Würfel ist, dann ist die
Erde eine Kugel.
Interessanter wird es, wenn man zwischen Aussagen logische Schlüsse zieht.
Beispiel 2.
• Erste Aussage: Es ist Sonntag.
• Zweite Aussage: Wenn es Samstag oder Sonntag ist, dann ist Wochenende.
• Schlussfolgerung: Es ist Wochenende.
Bei solchen Überlegungen ist es nicht wichtig, von welcher Art die Basisaussagen sind,
sondern lediglich, ob sie wahr oder falsch sind und wie die Zusammensetzung ist. Genau
das ist der Ausgangspunkt der Aussagenlogik.
2.2 Syntax und Semantik
Eine Aussagenvariable hat die Form X i , wobei i eine natürliche Zahl ist. Die Menge aller
Aussagenvariablen bezeichnen wir mit VAL . Wir benutzen zwei aussagenlogischen Konstantensymbole, 0 und 1.
Die Menge F AL der aussagenlogischen Formeln ist induktiv (siehe Folie 4) definiert wie
folgt.
1. Basiselemente:
• Jedes der beiden Konstantensymbole ist eine aussagenlogische Formel.
• Jede Aussagenvariable ist eine aussagenlogische Formel.
Diese aussagenlogischen Formeln heißen atomar.
2. Induktionsregeln:
• Ist ϕ eine aussagenlogische Formel, dann ist auch ¬ϕ eine aussagenlogische
Formel.
• Sind ϕ und ψ aussagenlogische Formeln, so sind auch (ϕ ∨ ψ), (ϕ ∧ ψ), (ϕ → ψ)
und (ϕ ↔ ψ) aussagenlogische Formeln.
6
Rev:16 2008-11-01
2 Aussagenlogik
Die so entstehenden aussagenlogischen Formeln heißen zusammengesetzt.
Erinnerung: Induktive Mengendefinitionen
Definition einer Menge M:
1. Basismenge: Es wird eine Menge M0 von Basiselementen, die
alle zu M gehören sollen, vorgegeben.
2. Induktionsregeln: Es werden Regeln der Form »Wenn x0 ∈ M,
. . . , xr −1 ∈ M, so h(x0 , . . . , xr −1 ) ∈ M.« angegeben.
Dann ist die dadurch definierte Menge die kleinste Menge, die M0
enthält und den Regeln entspricht.
Folie 4
Beispiel 3.
• Beispiele für aussagenlogische Formeln: 0, (X 0 ∨ X 1 ), ((X 0 → X 312 ) ∧ ¬X 1 ).
• Keine aussagenlogischen Formeln: 01, X 1 ∧ X 4 .
Wir benutzen im Zusammenhang mit Formeln die Terminologie, die auf Folie 5 zu finden
ist.
Wir werden häufig Funktionen definieren wollen, die auf der Menge aller aussagenlogischen Formeln definiert sind. Zum Beispiel wollen wir jeder Formel die Menge der in ihr
vorkommenden Variablen oder ihre Länge oder ihre Schachtelungstiefe zuordnen. Dazu
benutzen wir in der Regel induktive Definitionen, wie sie auf Folie 6 erläutert sind.
Dabei ist es wichtig, einzusehen, dass jede aussagenlogische Formel nur auf eine Art
zustande kommen kann. Das glauben wir gern, wollen es aber auch beweisen, was nicht
schwierig, aber aufwändig ist. Wir stellen dies deshalb zurück.
Jeder Formel weisen wir die Menge der in ihr vorkommenden Variablen per Induktion
(siehe Folie 6) zu:
1. Basiszuordnung: vars(0) = ;, vars(1) = ;, vars(X i ) = {X i }.
2. Induktionsregeln: vars(¬ϕ) = vars(ϕ), vars(ϕ ∗ ψ) = vars(ϕ) ∪ vars(ψ) für ∗ ∈ {∨, ∧, →
, ↔}.
Eine (aussagenlogische) Variablenbelegung ist eine partielle Funktion VAL 99K {0, 1}. Eine
aussagenlogische Variablenbelegung β passt zu ϕ ∈ F AL , falls vars(ϕ) ⊆ dom(β).
7
Rev:16 2008-11-01
2 Aussagenlogik
Terminologie zu aussagenlogischen Formeln
Form
Lesart
Formeltyp
(ϕ ∨ ψ )
»oder«
Disjunktion
(ϕ ∧ ψ )
»und«
Konjunktion
(ϕ → ψ )
(ϕ ↔ ψ )
»wenn . . . , so . . . «
»genau dann, wenn«
Konditional
Bikonditional
ϕ
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.
Folie 5
Wir definieren eine Funktion ‚·ƒ· , die jeder Variablenbelegung β und jeder Formel ϕ ∈
F AL , die zu β passt, ihren Wahrheitswert (Interpretation) unter β zuordnet, induktiv wie
folgt:
1. Basisvorschriften: ‚0ƒβ = 0, ‚1ƒβ = 1, ‚X i ƒβ = β(X i ) für jede X i ∈ dom(β).
2. Induktionsregeln: Für zusammengesetzte Formeln wird der Wahrheitswert gemäß
Abbildung 7 zusammengesetzt.
Beispiel 4. Sei β gegeben durch β(V0 ) = 1, β(V1 ) = 1 und β(V2 ) = 0. Dann gilt ‚¬((¬V0 ∧ V1 ) ∨ V2 )ƒβ =
1.
2.3 Modellierung
Wir wollen nun beispielhaft Sachverhalte formal durch aussagenlogische Formeln beschreiben.
Beispiel 5. Altes Beispiel: Wenn es Samstag oder Sonntag ist, dann ist Wochenende.
Wir benutzen drei Variablen: X 0 , X 1 und X 2 , wobei X 0 beschreiben soll, ob es Samstag ist,
X 1 beschreiben soll, ob es Sonntag ist, und X 2 beschreiben soll, ob es Wochenende ist. Dann
schreiben wir:
((X 0 ∨ X 1 ) → X 2 ) .
8
Rev:16 2008-11-01
2 Aussagenlogik
Erinnerung: Definitionen über induktiv definierten Mengen
Definition einer Funktion f , die auf einer induktiv definierten
Menge M, wie oben, definiert ist:
1. Basiszuordnung: Zu jedem Element m ∈ M0 wird f (m)
angegeben.
2. Induktionsregeln: Zu jeder Regel 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.
3. Eindeutige Konstruktion: Zu jedem m ∈ M darf es höchstens
eine Regel und eine Wahl m0 , . . . , mr −1 geben, so dass m durch
Anwendung der Regel auf m0 , . . . , mr −1 entsteht. Und wenn es
eine solche gibt, darf m nicht zu M0 gehören.
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 )).«
Folie 6
Manchmal ist es praktischer, wenn Variablen – wie bei der Programmierung – aussagekräftige Bezeichnungen erhalten. Deshalb erlauben wir die Benutzung anderer Variablennamen in Beispielen und stellen uns vor, dass diese bei einer formalen Umsetzung durch
die Variablen aus VAL ersetzt werden.
Die obige Formel könnten wir zum Beispiel besser in der Form
((X Sams ∨ X Sonn ) → X WE )
schreiben.
Die folgenden zwei Beispiele sind von ähnlicher Art. Das Ziel ist es, gewisse »gute« Elemente aus einer vorgegebenen Menge auszusondern: In dem eine Beispiel geht es darum,
aus der Menge aller 2-Färbungen eines Graphen die zulässigen auszuwählen, während in
dem anderen aus allen Möglichkeiten, eine Sudokuinstanz zu vervollständigen, die korrekte ausgewählt wird.
2.3.1 Beispiel: Bipartite Graphen
Wir erinnern uns an ungerichtete Graphen und Graphfärbungen durch Folie 8.
Wir können uns eine Färbung des Beispielgraphen vorstellen als eine Variablenbelegung
β mit Definitionsbereich {X 0 , . . . , X 6 }. Genauer: Wir identifizieren jede 2-Färbung c mit der
Belegung βc definiert durch βc (X i ) = c(v i ). Dass eine solche Färbung gültig ist, können wir
9
Rev:16 2008-11-01
2 Aussagenlogik
Semantik der aussagenlogischen Junktoren
‚ϕƒβ
‚ψƒβ
‚¬ϕƒβ
‚ϕ ∨ ψƒβ
‚ϕ ∧ ψƒβ
‚ϕ → ψƒβ
‚ϕ ↔ ψƒβ
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
Folie 7
dann beschreiben durch die Formel ϕ, die definiert ist durch:
ϕ = ((((((((X 0 ↔ ¬X 1 ) ∧ (X 0 ↔ ¬X 2 )) ∧ (X 1 ↔ ¬X 4 ))
∧ (X 2 ↔ ¬X 4 )) ∧ (X 1 ↔ ¬X 3 )) ∧ (X 1 ↔ ¬X 5 )) ∧ (X 3 ↔ ¬X 6 )) ∧ (X 5 ↔ ¬X 6 ))
Sie drückt aus, dass die Eckpunkte jeder Kante unterschiedlich gefärbt sind.
β
Also: Eine 2-Färbung c von G ist gültig genau dann, wenn ‚ϕƒc = 1.
Die obige Formel ist schwer zu lesen, weshalb wir die folgenden üblichen Konventionen
vereinfachen die Lesbarkeit:
• Das äußerste Klammerpaar kann weggelassen werden.
• Ein Ausdruck der Form ((. . . ((ϕ0 ∗ ϕ1 ) ∗ ϕ2 ) . . . ) ∗ ϕr −1 ) kann für ∗ ∈ {∨, ∧, ↔} durch
(ϕ0 ∗ ϕ1 ∗ ϕ2 ∗ · · · ∗ ϕr −1 ) ersetzt werden.
• Ein Ausdruck der obigen Form kann auch ganz kurz durch ∗i <r ϕ abgekürzt werden.
Wir können nun die obige Formel in der Form
(X 0 ↔ ¬X 1 ) ∧ (X 0 ↔ ¬X 2 ) ∧ (X 1 ↔ ¬X 4 )
∧ (X 2 ↔ ¬X 4 ) ∧ (X 1 ↔ ¬X 3 ) ∧ (X 1 ↔ ¬X 5 ) ∧ (X 3 ↔ ¬X 6 ) ∧ (X 5 ↔ ¬X 6 )
und in der Form
^
i , j : i < j <7 und {i , j }∈E
(X i ↔ ¬X j ) .
Abschließend wollen wir die obige Beobachtung verallgemeinern:
10
Rev:16 2008-11-01
2 Aussagenlogik
Ungerichtete Graphen
Ein ungerichteter Graph ist ein Paar (V , E ) bestehend aus
Ï
einer Menge V von Knoten und
Ï
einer Menge E ⊆
¡E ¢
2
von Kanten.
v4
v3
v2
v1
v6
v0
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.
Folie 8
Lemma 1 (bipartite Graphen). Sei G = (V, E ) ein ungerichteter endlicher Graph mit Knotenmenge {0, . . . , n − 1} und ϕ die Formel definiert durch
^
i , j : i < j <n und {i , j }∈E
(X i ↔ ¬X j ) .
(2.1)
1. Für jede 2-Färbung c von G gilt: ‚ϕƒβc = 1 genau dann, wenn c gültig ist.
2. G ist bipartit genau dann, wenn es eine Belegung β mit {X 0 , . . . , X n−1 } ⊆ dom(β) gibt,
die ϕ durch 1 interpretiert.
Dem Beweis wenden wir uns später zu.
Abschließend treffen wir noch die folgende wichtige Definition, die durch das vorangehende Beispiel gut motiviert ist: Eine Belegung β, die zu einer Formel ϕ passt, wird erfüllend genannt, wenn ‚ϕƒβ = 1 gilt. Eine Formel ϕ heißt erfüllbar, wenn es eine erfüllende
Belegung für sie gibt.
2.3.2 Beispiel: Sudoku
Wir betrachten zunächst Folie 9, um uns an Sudoku zu erinnern.
Um Sudoku modellieren zu können, setzen wir N = {1, . . . , 9}, M = N ∪{?} und R = {0, 1, 2}.
Eine Sudokuinstanz ist dann eine Matrix S ∈ M 9×9 . Ein Lösungskandidat ist eine Matrix
L ∈ N 9×9 , die in den von ? verschiedenen Einträgen mit S übereinstimmt. Sie heißt Lösung,
wenn die auf der Folie angegebenen Sudokubedingungen erfüllt sind.
11
Rev:16 2008-11-01
2 Aussagenlogik
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}.
Ï
In jeder Zeile jedes Element aus N genau einmal.
Ï
In jeder Spalte jedes Element aus N genau einmal.
Ï
In jeder Region jedes Element aus N genau einmal.
Dabei ist eine Region eine durch fette Linien eingegrenzte
3 × 3-Matrix.
Folie 9
Ziel ist es, zu einer gegebenen Sudokuinstanz eine Formel ϕS zu entwickeln, deren erfüllende Belegungen genau die Lösungen von S beschreiben.
Dazu benutzen wir Aussagenvariablen der Form X ik, j mit i , j , k ∈ N (insgesamt 729 Variablen). Dann lassen sich Sudokulösungskandidaten leicht in Belegungen der Variablen
umsetzen: Zu L ∈ N 9×9 definieren wir die Belegung βL durch
(
1 , falls L i , j = k,
βL (X ik, j ) =
0 , sonst.
Mit anderen Worten, X ik, j bedeutet, dass in Zeile i und Spalte j die Zahl k steht.
Offensichtlich kann nicht jeder Belegung der Variablen ein Lösungskandidat zugeordnet
werden, denn wir befänden uns zum Beispiel dann in einer widersprüchlichen Situation,
4
5
wenn X 1,3
und X 1,3
der Wert 1 zugeordnet würde.
Deshalb verschaffen wir uns zunächst eine Formel, die dieses Problem behebt. Die Formel ϕMatrix soll besagen, dass eine Belegung einer Matrix entspricht:
1. In jedem Matrixeintrag steht mindestens ein Element aus N .
2. In jedem Matrixeintrag steht höchstens ein Element aus N .
Das kann wie folgt formuliert werden:
^
^ _ k
0
ϕMatrix =
Xi ,j ∧
¬(X ik, j ∧ X ik, j ) .
(2.2)
i , j ∈N k∈N
i , j ,k,k 0 ∈N :k6=k 0
Dann können wir festhalten:
12
Rev:16 2008-11-01
2 Aussagenlogik
Bemerkung 1.
1. Ist β eine Variablenbelegung, die zu ϕMatrix passt, und für die ‚ϕMatrix ƒβ
β
gilt, so ist die Matrix L β ∈ N 9×9 mit L i , j = k, falls β(X ik, j ) = 1, wohldefiniert.
2. Ist M ∈ N 9×9 , so gilt ‚ϕMatrix ƒβM = 1.
Jetzt wollen wir die Lösungskandidaten zu einer gegeben Sudokuinstanz S beschreiben.
Das können wir machen, in dem wir zusätzlich zu ϕMatrix fordern, dass in jedem von ? verschiedenen Eintrag von S die entsprechende Zahl steht. Dazu benutzen wir die Formel ψS
gegeben durch
^
ψS =
X ik, j .
(2.3)
i , j ,k∈N :S i , j =k
Bemerkung 2.
1. Ist L ein Lösungskandidat für S, dann gilt ‚ϕMatrix ∧ ψS ƒβL = 1.
2. Ist β eine Variablenbelegung, die zu ϕMatrix ∧ ψS passt und für die ‚ϕMatrix ∧ ψS ƒβ = 1
gilt, dann ist L β ein Lösungskandidat für S.
Ganz zum Schluss müssen wir nur noch sagen, wann ein Lösungskandidat eine Lösung
ist, was wir ausdrücken können durch:
1. In jeder Zeile steht jedes Element aus N mindestens einmal.
2. In jeder Spalte steht jedes Element aus N mindestens einmal.
3. In jeder Region steht jedes Element aus N mindestens einmal.
Diese drei Bedingungen spiegeln sich wieder in:
 ^ _ k
Xi ,j
i ,k∈N
j ∈N
^ _ k
^

Xi ,j
ϕLösung = 
(2.4)
i ∈N
 j ,k∈N
^
_

k
X p3+p
0 +1,q3+q 0 +1
p,q∈D,k∈N p 0 ,q 0 ∈D
Für die gesuchte Formel können wir also
ϕS = ϕMatrix ∧ ψS ∧ ϕLösung
(2.5)
nehmen:
Lemma 2 (Sudoku). Sei S eine Sudokuinstanz.
1. Ist L eine Lösung von S, so ist βL eine erfüllende Belegung für ϕS .
2. Ist β : {X ik, j | i , j , k ∈ N } → {0, 1} eine erfüllende Belegung für ϕS , dann ist L β eine Lösung
von S.
Die gesamte Formel ist noch einmal auf Folie 9 zu sehen.
Die Weise, nach der wir gerade vorgegangen sind, ist typisch. Man kann sie kurz wie
folgt beschreiben. Die Gesamtformel ist eine Konjunktion von drei Formeln, die folgende
Zwecke erfüllen:
13
Rev:16 2008-11-01
2 Aussagenlogik
Sudokuformel
ϕS = ϕMatrix ∧ ψS ∧ ϕLösung
mit
ϕMatrix =
ψS =
^ _
i ,j ∈N k ∈N
Xik,j ∧
^
i ,j ,k ∈N:Si ,j =k
^
i ,j ,k ,k 0 ∈N:k 6=k 0
0
¬(Xik,j ∧ Xik,j ) ,
Xik,j ,

^ _ k

Xi ,j

i ,k ∈N j ∈N

^ ^ _ k
ϕLösung = 
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
Folie 10
1. Beschreibung der Menge aller Belegungen, die zu Lösungskandidaten passen.
2. Einschränkung auf die Lösungskandidaten zu einer gegebenen Instanz.
3. Weitere Einschränkung auf die eigentlichen Lösungen.
Zum Abschluss werfen wir noch einmal einen Blick auf Folie 11, die das Spiel Superhirn
erläutert. Eine Aufgabe, die man sich hier stellen kann, besteht darin, zu einem gegebenen
Zeitpunkt eine neue Reihe zu bestimmen, die noch für die verdeckte Wahl in Frage kommt.
Eine entsprechende Formel zu konstruieren ist etwas schwieriger (warum?), weshalb wir
davon vorerst absehen.
2.4 Eindeutige Konstruktion von Formeln
Wir haben bislang bei induktiven Definitionen von Funktionen, deren Definitionsbereich
die Menge der aussagenlogischen Formeln ist, angenommen, dass jede Formel auf nur eine Weise zusammengesetzt werden kann. Das wollen wir noch beweisen und zwar per vollständiger Induktion über die Länge aller Formeln. Auf Folie ?? ist dafür das Beweisprinzip
der vollständigen Induktion noch einmal dargestellt.
Wir beginnen damit, zu zeigen, dass keine Formel ein echtes Anfangsstück einer anderen
Formel sein kann. Dabei benutzten wir folgende Notation. Wir schreiben u @ v für zwei
Zeichenreihen, wenn u ein echtes Anfangsstück von v ist.
14
Rev:16 2008-11-01
2 Aussagenlogik
Superhirn
Ï
scharzer Stecker: an einer Position
stimmt Farbe überein
Ï
weißer Stecker: Farbe stimmt,
Position aber nicht
Ziel
Finde Formel, die beschreibt, welche
Reihen mit der bisherigen Information
verträglich sind.
Schwieriger . . .
Folie 11
Lemma 3. Sind ϕ, ψ ∈ F AL , so gilt ϕ 6@ ψ.
Beweis. Wir beweisen dies per vollständiger Induktion über die Länge. Die Eigenschaft ist:
Ist ψ ∈ F AL mit l (ψ) = n + 1, so gilt ϕ 6@ ψ für alle ϕ ∈ F AL .
Induktionsanfang. Wir müssen zeigen, dass für jedes ψ ∈ F AL mit l (ψ) = 1 und für alle
ϕ ∈ F AL ϕ @
6 ψ gilt. Wegen l (ψ) = 1 gibt es nur eine Zeichenreihe ϕ mit ϕ @ ψ, nämlich die
leere Zeichenkette. Diese Zeichenreihe ist aber kein Element von F AL .
Induktionsschritt. Sei n ∈ N. Wir nehmen an (Induktionsannahme), dass ϕ @ ψ0 für alle
ϕ ∈ F AL und ψ0 ∈ F AL mit l (ψ0 ) ≤ n +1 gilt. Für ein beliebiges ψ ∈ F AL mit l (ψ) = n +2 müssen
wir zeigen, dass ϕ @
6 ψ gilt. Wir führen ein Fallunterscheidung nach der Form von ψ durch.
1. Fall, ψ = ¬ψ0 . Wir nehmen an, dass ψ @ ψ mit ϕ ∈ F AL gilt. Wenn l (ϕ) = 1, dann ist
ϕ = ¬, was keine Formel ist – Widerspruch. Wenn l (ϕ) > 1, dann können wir ϕ in der Form
¬ϕ0 schreiben, wobei ϕ0 eine Formel ist. Dann haben wir ϕ0 @ ψ0 – Widerspruch zur Induktionsannahme.
2. Fall, ψ = (ψ0 ∗ ψ1 ) mit ∗ ∈ {∨, ∧, →, ↔}. Wir nehmen an, dass ϕ ∈ F AL ein echtes Anfangsstück von ψ ist (genau wie oben). Es muss l (ϕ) > 1 gelten, denn ( ist keine Formel.
Also können wir ϕ als (ϕ0 ◦ ϕ1 ) schreiben mit ϕ0 , ϕ1 ∈ F AL und ◦ ∈ {∨, ∧, →, ↔}. Durch Vergleich der Zeichenreihen erhalten wir: ϕ0 @ ψ0 oder ψ0 @ ϕ0 oder ϕ1 @ ψ1 . Jeder dieser
Fälle widerspricht der Induktionsannahme.
Nun können wir die eigentliche Behauptung beweisen:
Satz 1 (eindeutige Konstruktion). Jede aussagenlogische Formel kann nur in einer Weise im
Sinne von Folie 6 konstruiert werden.
15
Rev:16 2008-11-01
2 Aussagenlogik
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ürlich Zahl n alle Zahllen
m ≤ n die Eigenschaft besitzen.
Folie 12
Beweis. Hier reicht es, eine einfache Fallunterscheidung durchzuführen. Sei ψ ∈ F AL beliebig.
1. Fall, ϕ ist eine atomare Formel. Jede atomare Formel hat die Länge 1 und kann nicht
durch eine der Induktionsregeln erzeugt werden.
2. Fall, ϕ = ¬ψ0 . Eine solche Formel kann nur eine Negation sein und deshalb nur auf
eine Weise konstruiert werden.
3. Fall, ϕ = (ϕ0 ∗ ϕ1 ) mit {∗} ∈ {∨, ∧, →, ↔} und ϕ0 , ϕ1 ∈ F AL . Wir nehmen an, dass außerdem ϕ = (ϕ00 ◦ ϕ01 ) mit {◦} ∈ {∨, ∧, →, ↔}, ϕ00 , ϕ01 ∈ F AL und l (ϕ0 ) 6= l (ϕ1 ) gilt. Dann gilt
entweder ϕ0 @ ϕ00 oder ϕ00 @ ϕ0 – ein Widerspruch zum vorigen Lemma.
2.5 Formeln in Scheme
Um mit aussagenlogischen Formeln in Scheme umgehen zu können, definieren wir eine
Reihe von Strukturen, und zwar für die Modellierung von Variablen und für die Modellierung der Junktoren.
Variablenbelegungen modellieren wir durch Listen von Paaren bestehend aus Variablenindex und Wahrheitswert. Das Bestimmen der Belegung einer Variablen kann dann durch
einfaches Durchsuchen der Liste bewerkstelligt werden.
Will man eine Formel bezüglich einer Variablenbelegung bewerten, kann man dann einfach rekursiv vorgehen.
Die Details sind zu finden auf den Folien 13–15.
16
Rev:16 2008-11-01
2 Aussagenlogik
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))
Folie 13
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)))))
Folie 14
17
Rev:16 2008-11-01
2 Aussagenlogik
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)))))
Folie 15
18
Rev:16 2008-11-01
Herunterladen