Logik für Informatiker

Werbung
Logik für Informatiker
Prof. Dr. Hans-Jürgen Steens
Fachhochschule Kaiserslautern Standort Zweibrücken
[email protected]
15. Oktober 2013
2
Kapitel 1
Grundlegendes
1.1
Ideen
Ein wesentliches Ziel der mathematischen Logik oder formalen Logik besteht in
der Algorithmisierung dessen, was für Schlussfolgerungen nennen. Der Rechner soll
damit in die Lage versetzt werden, selbständig Schlüsse zu ziehen und damit (zumindest) Teile des menschlichen Denkens abzubilden, zu simulieren.
Die mathematische Logik gliedert sich, wie andere wissenschaftliche Bereiche auch,
in die elementare Aussagenlogik und die komplexere Prädikatenlogik. Wir werden
mit der Aussagenlogik beginnen und ihre Methoden und Techniken später auf die
Prädiaktenlogik übertragen.
Dass man von mathematischer Logik spricht, liegt daran, dass klassiche mathematische Methoden und Modellbildungen hier zum Einsatz kommen. Von formaler
Logik spricht man deshalb, da die sie die Gültigkeit von Argumenten nur hinsichtlich
ihrer Struktur resp. Form untersucht unabhängig vom konkreten Inhalt der beteiligten Aussagen. Die Logik hat ihre Wurzeln in der Philosophie des Aristoteles. Sie
ist damit sowohl eine Disziplin der Philosophie als auch der Mathematik und der
Informatik. Hierzu passt, dass die Philosphie sowohl Schnittstellen zur Mathematik
und Informatik aufweist wie auch die Mathematik einen gemeinsamen Schnitt mit
der Mathematik besitzt.
Logik und Mathematik gehen dabei eine so enge Symbiose ein, dass es bezüglich
der Grundlegung duale Standpunkte gibt:
Die Mathematik lässt sich auf die Logik zurückführen. Das könnte man begründen
mit der Einbettung der Mathematik im Rahmen der sog. Prädikatenlogik zweiter
Stufe.
Die Gegenposition lautet: Logik ist Teil der Mathematik. Diesen Standpunkt könnte
man mit der Arithmetisierung der Logik begründen.
Es ist nicht nötig, hier für sich selbst eine Entscheidung zu treen. Für die Zwecke
der Informatik ist es aber gerade der Aspekt der Arithmetisierung der Logik, was sie
interessant macht. Denn dies erönet die oben angedeutete Möglichkeit, Schlussfolgerungen zu mechanisieren.
Man wählt also gerne eine pragmatische Position wie sie im Buch von M.M. Richter
3
4
KAPITEL 1.
GRUNDLEGENDES
beschrieben wird:
Wir wollen die Mathematik nicht aus einer irgendwie vorgefertigten Logik begründen
(und auch nicht umgekehrt, obwohl uns das solider erschiene). Hingegen nehmen wir die
folgende Position ein:
a) Wir stellen uns auf den Standpunkt, dass wir bereits etwas Mathematik kennen.
b) Wir beziehen einen Teil unserer Motivation aus der Logik, einen anderen aus dem Bestreben, die Mathematik zu begründen und mathematische Schlussweisen zu analysieren.
Wir setzen eine gewisse Menge (naiver) Mathematik voraus, ohne problematische (z.B.
mengentheoretisch umstrittene) Axiome, und versuchen, damit eine mathematische Theorie der Logik zu entwickeln.
Für den angehenden Informatiker ergibt sich als angenehmer Nebeneekt das frühe Kennenlernen einer einfachen formalen Sprache, die einen engen Bezug zu den
Programmiersprachen hat. Gleichzeitig setzt man sich in Zusammenhang mit dem
maschinellen Schlussfolgern mit dem Finden ezienter Algorithmen auseinander,
etwas, das in der praktischen Informatik immer eine besonders wichtige Rolle spielt.
1.2
Objekte der Logik
Logik handelt vom Umgang mit Aussagen. Aussagen sind sprachliche Gebilde, die
entweder wahr oder falsch sind. Die Objekte der Logik sind also Aussagen (so wie
die Objekte der Chemie die chemischen Elemente und Verbindungen sind).
Die Eigenschaften von Aussagen, nämlich dass sie wahr oder falsch sein können, wird
im einfachsten Fall als
das
Merkmal betrachtet. Es kommt dann im Extremfall nicht
mehr darauf an, was eine Aussage inhaltlich meint, sondern welchen Wahrheitswert
sie hat. Die Verknüpfung von Aussagen reduziert sich dann auf das Verknüpfen von
Wahrheitswerten. Dies ist kein Nachteil, denn in dieser Form bietet die Logik ein
praktisches Vehikel für Konzeption und Bau von Schaltkreisen.
Aber spätestens in ihren Erweiterungen, der sog. Prädikatenlogik, wird mehr von
der Bedeutung (Semantik) die Rede sein müssen.
Die Bedeutungsgebung, sowohl in der einfachen aussagenlogischen Variante als auch
in der komplexeren prädikatenlogischen Form ist Dreh- und Angelpunkt des (semantischen) Folgerungbegries.
Die Vollständigkeitssätze der Logik werden dann zeigen, inwieweit man den Folgerungsbegri kalkülisieren, also durch algorithmische Verfahren beschreiben, mechanisieren kann. Damit wird das Schlussfolgern wird zu einem Rechenvorgang und
für den Informatiker interessant. So hat man einmal die Informatik als Ingenieurwissenschaft des menschlichen Geistes aufgefasst.
1.3
1.3.1
Mathematische Hilfsmittel
Vollständige Induktion
Als Ingenieurwissenschaft ist die Informatik (im Gegensatz zur Mathematik) beschränkt auf dem Einsatz niter Methoden. Dies bedeutet z.B., dass die in der
Logik benutzten Symbole und die zur Manipulation benutzten Regeln jeweils nit
also endlich sind. Dennoch sind die erzeugten logischen Ausdrücke mengenmäÿig
potenziell unendlich, also nicht nach oben beschränkt. Wenn wir also Eigenschaften
1.3.
5
MATHEMATISCHE HILFSMITTEL
der logischen Ausdrücke beweisen wollen, die für alle Ausdrücke gelten sollen, dann
haben wir es mit potenziell unendlich vielen Ausdrücken zu tun, für die sich keine
Einzelbeweise führen lassen. In solchen Fällen wird häug das Beweisprinzip der
vollständigen Induktion benutzt.
Beim Beweisprinzip durch vollständige Induktion haben wir es mit Einzelaussagen
A zu tun, die jeweils von einer natürlich Zahl n abhängen. Es ist also A = A(n). Die
Aufgabe besteht dann darin zu zeigen, dass die Aussage A(n) für jedes beliebige n
also für alle n gilt.
Beispiel:
Wir betrachten die Aussage
A(n) ≡
n
∑
i=
i=1
n · (n + 1)
2
Oensichtlich hängen die Einzelaussagen von
n
ab. So bedeutet
A(1),
n
wenn
also
systematisch durch 1 ersetzt wird, dass die Gleichung
1
∑
i=
1 · (1 + 1)
2
i=
2 · (2 + 1)
2
i=
3 · (3 + 1)
2
i=1
A(2):
gelten soll. Analog für
2
∑
i=1
und
A(3):
3
∑
i=1
Oensichtlich ist es ein leichtes jede einzelne der Aussagen
A(1), A(2), A(3), · · ·
durch ausrechnen zu beweisen. Wenn man jedoch gewissermaÿen auf einen Schlag
zeigen will, dass A(n) für alle n gilt, ist der Weg, dies Schritt für Schritt zunächst für
A(1) dann für A(2), für A(3) etc. durch einfaches Nachrechnen zu zeigen, versperrt.
Denn dafür brauchte man unendlich viel Zeit.
Man wählt beim Beweisverfahren durch vollständige Induktion also ein anderes
A(n) auch
A(n + 1) folgt. Kann man jetzt noch zusätzlich zeigen, dass
Verfahren: Man zeigt, dass ganz allgemein aus dem Gelten der Aussage
das Gelten der Aussage
A(1)
gilt, etwa durch einfaches Ausrechnen, so bedeutet dies:
A(1)
gilt (was ja gerade ausgerechnet wurde). Deshalb muss aber auch
da aus
A(1)
A(n)
A(n + 1) folgt
von A(2) folgt.
allgemein
auch das Gelten
und für
n=1
Mit exakt derselben Begründung folgt, dass mit
und deshalb auch
A(n)
A(4)
denjenigen
m
für die
gelten,
A(2)
nun auch
A(3)
gelten muss,
n
gelten, dann
usw. usf.
gilt demnach also für alle
gäbe es ein speziellen
A(2)
deshalb mit dem Gelten von
m, für
A(m0 )
n.
das
Denn würde
A(m)
A(n)
nicht für alle
nicht gelten würde. Wählen wir nun von
falsch ist das kleinste
m
und nennen es
m0 .
Dann
6
KAPITEL 1.
ergäbe sich die Situation, dass
A(m0 − 1)
wahr
A(m0 ) falsch
A(m0 − 1)
gemein gezeigt hätten, dass aus dem Gelten von
A((m0 − 1) + 1) = A(m0 ) folgen müsste. Dies ergäbe
kann es kein m geben, für das A(m) falsch ist.
GRUNDLEGENDES
wäre, obwohl wir allauch das Gelten von
aber einen Widerspruch. Also
Das Beweisverfahren durch vollständige Induktion lässt sich also so beschreiben:
Wenn sich
A(1)
zeigen lässt und wenn sich zusätzlich zeigen lässt, dass für alle
n
auch
A(n + 1)
aus
A(n)
folgt, dann gilt für alle
n A(n).
∑n
n·(n+1)
Im Fall unseres Beispiels A(n) ≡
rechnen wir also zunächst aus,
i=1 i =
2
∑1
1·(1+1)
dass (für n = 1) gilt
was trivial ist und zeigen dann, dass wir aus
i=1 i =
2
A(n) ganz allgemein A(n + 1) herleiten können.
Beginnen wir also mit
A(n)
also mit der Gleichung
n
∑
i=
i=1
n · (n + 1)
2
Hieraus folgt, wenn wir auf beide Seiten
n
∑
i + (n + 1) =
i=1
n+1
addieren:
n · (n + 1)
+ (n + 1)
2
Man kann nun (mit etwas Bruchrechnung) nachrechnen, dass
(n+2)(n+1)
und erhalten somit
2
n+1
∑
i=0
i=
n
∑
i + (n + 1) =
i=1
und damit
n+1
∑
n·(n+1)
2
+ (n + 1) =
n · (n + 1)
(n + 2)(n + 1)
+ (n + 1) =
2
2
i=
i=0
(n + 2)(n + 1)
2
A(n + 1). Somit haben wir ganz allgemein aus A(n)
A(1) damit
A(n) für alle n gilt.
Das aber ist gerade die Aussage
die Aussage
A(n + 1)
hergeleitet. und zusammen mit dem Gelten von
gezeigt, dass die Aussage
n
A(n) auf eine etwas subtilere Weise von n abhängt. Das ist
Hin und wieder haben wir es mit Induktionsbeweisen zu tun, bei denen die duch
gekennzeichnete Aussage
insbesondere dann der Fall, wenn wir es mit Eigenschaften von Ausdrücken zu tun
haben, deren Aufbau rekursiv erfolgt und die Induktion über diesen Aufbau läuft.
Das
n
kann dann gelesen werden, als Anzahl der beim Aufbau benutzten Regeln.
(Genaueres in der Vorlesung).
1.3.2
Äquivalenzrelationen
Eigenschaften einer Äquivalenzbeziehung.
Beispiele von Äquivalenzrelationen in der Mathematik: Ganze Zahlen modulo 3.
Einführen des Begris Äquivalenzklasse.
1.3.
7
MATHEMATISCHE HILFSMITTEL
Rechnen mit Äquivalenzklassen. Begri der Kongruenz. Begri der Äquivalenz von
Aussagen: Aussagen können systematisch mit Wahrheitswerten belegt werden,
B) = t(A) + t(B) − t(A)t(B)
t(A∨
etc. ausgehend von der Belegung von Aussagenvaria-
blen. Ausdrücke werden dann äquivalent genannt, wenn sie bei jeder beliebigen
Belegung stets dieselben Wahrheitswerte erhalten.
Die Äquivalenzen sind verträglich mit den Junktoroperationen. Wohldeniertheit
der logischen Operationen auf Äquivalenzklassen.
Um jetzt den Folgerungsbegri zu präzisieren, benötigen wir die Begrie Erfüllbarkeit und Modell.
Eine Formel
dell von
G
G
folgt aus einer Formel
ist, d.h. wenn
F,
wenn jedes Model von
t(F ) 5 t(G).
Dies ist genau dann der Fall, wenn
F ∧ ¬G
nicht erfüllbar ist.
F
auch ein Mo-
8
KAPITEL 1.
GRUNDLEGENDES
Kapitel 2
Aussagenlogik
2.1
Wahrheitswerte und ihre Operationen
siehe Schöning u.a. genannte Literatur resp. LV GDI oder Rechnerarchitektur.
2.2
Syntax aussagenlogischer Ausdrücke
Wir beginnen mit der einfachen Aussagenlogik. Unsere Objekte sind Aussagen. In
der Aussagenlogik interessiert der innere Aufbau der Aussagen (also z.B. die Regel
SPO in der englischen Sprache) bis auf die logischen Verknüpfungen nicht. Für die
elementaren oder atomaren Aussagen (auf der untersten Ebene) benutzen wir also
A, B, C, . . .. Diese Symbole können systematisch mit∧, ∨, ¬ und Klammern als Hilfssymbole zusammengesetzt
einfache Variablensymbole
tels logischer Junktoren
werden. (Dass für die logischen Junktoren dieselben Notationen benutzt werden wie
für die Operatoren der Wahrheitswerte hat seinen Sinn, wie man später noch sieht.)
Formale Grammatik für den syntaktischen Aufbau: siehe Vorlesung.
Die erzeugbaren Ausdrücke heiÿen Formeln. Wir fassen alle Formeln zu einer Menge
F orm
zusammen.
Die bisher betrachtete Syntax liefert nur eine äuÿere Form, eine systematische
Verteilung von Kreide auf der Tafel.
2.3
Semantik aussagenlogischer Ausdrücke
Vorläuger Standpunkt: Ein Aussage ist etwas, dem ein Wahrheitsert zugeordnet
worden ist. Wie diese Zuordnung auf der untersten, der atomaten Ebene zustande
gekommen ist, ist zunächst nicht Gegenstand der Untersuchungen. Den Formeln
werden auf systematische Art und Weise Wahrheitswerte zugewiesen. Die Zuweisungen für atomaren Formeln können also ausgewürfelt werden. Erst für die zusammengesetzten Formeln sind die Wahrheitserte dann in Abhängigket von den
Junktoren systematisch festgelegt.
Die ausgewürfelte Zuordnung der Wahrheitswerte an die aussagenlogischen Variablen nennen wir eine
Belegung und bezeichnen sie mit t. Die Belegung t ist also
eine Abbildung von der Menge aller aussagenlogischen Variablen
V ar = {A, A1 , A2 , A3 , · · · B, · · · C, · · · }
9
10
KAPITEL 2.
AUSSAGENLOGIK
{0, 1}:
in die Menge der Wahrheitswerte
t : V ar → {0, 1}
V ar denierte Belegung t zu einer
F orm ⊃ V ar induktiv synchron zum induktiven
auf V ar . Für F ∈ F orm denieren wir

t(F ),
falls F atomar ist;



t̃(F1 ) ∨ t̃(F2 ), falls F = F1 ∨ F2 ;
t̃(F ) =
t̃(F1 ) ∧ t̃(F2 ), falls F = F1 ∧ F2 ;



¬t̃(F1 ),
falls F = ¬F1 .
t̃
Wir erweitern eine (beliebig) auf
Abbildung
auf der Obermenge
Aufbau vom
F orm
aufbauend
Man beachte, dass die Zeichen
∨, ∧, ¬
auf der rechten Seite (bei den Bedingungen)
die syntaktischen Verknüpfungen der Formeln bezeichnen, auf der linken Seite aber
die Operanden der Wahrheitswerte. Die hier zutage tretende Synchronizität in der
Denition von
Da
t̃
t̃
t̃
rechtfertigt also die Benutzung derselben Symbole.
t
die nahtlose Erweiterung von
wieder einfach
ist, schreben wir in Zukunft anstelle von
t-
In Form eines Programmes könnten wir schreiben:
boolean lor (Form f1, Form f2) {
if (t(f1)) return true;
if (t(f2)) return true;
return false;
}
Diese (etwas umständlich erscheinende) Form lässt sich auf natürliche Weise verallgemeinern, wenn eine Folge
f 1, f 2, ·f n
alle mit
∨
verknüpft wird:
f 1 ∨ f 2 ∨ ·f n.
Wir könnten dann schreiben:
boolean lor (Form[ ] f) {
for (int i = 0; i < f.length, i++){
if (t(f[i])) return true;
}
return false;
}
Folgende Begri sind hier wichtig:
Ein
Modell
für eine Formel
Eine Formel
Eine Formel
F
heiÿt
F
nennt man auch
Eine Formel
F
F
ist ein
erfüllbar,
t,
so dass
t(F ) = 1.
wenn sie ein Modell besitzt.
heiÿt Tautologie, wenn jedes
t
gültig oder allgemeingültig.
ein Modell für
F
heiÿt Kontradiktion, wenn es kein Moodell für
ist. Tautologien
F
gibt, wenn
F
also nicht erfüllbar ist.
F
ist eine Tautologie also genau dann
¬F
eine Kontradiktion ist. Und damit gilt
2.3.
SEMANTIK AUSSAGENLOGISCHER AUSDRÜCKE
11
F
genau dann eine Kon-
(wegen des Gesetzes der doppelten Verneinung) auch, dass
tradiktion ist, wenn
¬F
eine Tautologie ist.
Eine für die formale Logik interessante Frage (Leitthema) besteht nun darin, ob
es für eine vorgegebene Menge von Formeln
Modell
t
geben kann.
F1 , F2 , · · · ∈ F orm
ein gemeinsames
t(Fi ) = 1.
Der Modellbegri erlaubt uns eine besondee Relation, die Folgerungsrealtion einzuführen:
Wir schreiben
F1 |= F2 ,
wenn jedes Modell von
Es gilt dann folgender Satz:
also allgemeingültig ist.
F1 |= F2
F1
auch ein Modell von
genau dann, wenn
¬F1 ∨ F 2
F2
ist.
eine Tautologie,
Herunterladen