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,