Logik für Informatiker
Wintersemester 2007/08
Thomas Schwentick
1. Einleitung
Version von: 22. Oktober 2007(09:03)
Inhalt
� 1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 1
Ein Affe, ein Stuhl und einige Bananen
Ein Affe ist in einem Raum eingeschlossen
An der Decke hängt eine Bananenstaude
Es steht ein Stuhl im Raum
Kann der Affe die Bananen erreichen?
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 2
Was wir wissen
• Nehmen wir an, wir wissen das Folgende über Tiere, Affen,Bananen Gegenstände usw.:
(1) Ein Tier, das Arme hat und nahe bei einem Ding ist, kann diesesDing erreichen
(2) Ein Tier auf einem hohen Gegenstand, der unter den Bananensteht, ist nahe bei den Bananen
(3) Wenn ein Tier einen Gegenstand zu einem Ding schiebt, undbeide sind im Raum, dann ist das Ding nahe am Boden oder derGegenstand ist unter dem Ding
(4) Wenn ein Tier einen Gegenstand ersteigt, ist es auf demGegenstand
(5) Der Affe ist ein Tier, das Arme hat
(6) Der Stuhl ist ein hoher Gegenstand
(7) Der Affe, der Stuhl, die Bananen sind im Raum
(8) Der Affe kann den Stuhl unter die Bananen schieben
(9) Die Bananen sind nicht nahe am Boden
(10) Der Affe kann den Stuhl ersteigen
• Gilt dann auch: (11) Der Affe kann die Bananen erreichen ?
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 3
Folgt (11) aus (1) - (10)?
• Es erscheint möglich, dass die Frage durch „logischeSchlüsse“ aus den Aussagen (1) - (10) beantwortetwerden kann
• Wir gehen systematisch in vier Schritten vor:
I. Begriffe Formalisieren: wir übertragen dievorkommenden Begriffe in die Sprache derMathematik
II. Aussagen Formalisieren: wir übertragen dievorkommenden Aussagen in die Sprache derMathematik
III. Schlussweisen Formalisieren: wir legen fest,welche Arten von Schlüssen wir ziehen dürfen
IV. Schlussweisen Anwenden: Wir wendenerlaubte Schlussweisen (III) auf die formalisiertenAussagen (1-10) an, um (11) zu herzuleiten
• Warnung: Eine exakte Definition der im Folgendenverwendeten Begriffe erfolgt erst in den späterenKapiteln
• Hier geht es nur ums „Prinzip“Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 4
Schritt I: Begriffe Formalisieren
formal umgangssprachlich
Erreichen(x, y) x kann y erreichen
Arme(x) x hat Arme
Nah(x, y) x kann nahe bei y sein
Auf(x, y) x kann auf y sein
Unter(x, y) x kann unter y sein
Hoch(x) x ist hoch
In(x) x ist im Raum
Schieben(x, y, z) x kann y zu z schieben
Steigen(x, y) x kann auf y steigen
A ∧ B A und B
A → B wenn A dann B
A ∨ B A oder B
¬A nicht A
∀x . . . für alle x gilt...
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 5
Schritt II: Aussagen Formalisieren(1) Ein Tier, das Arme hat und nahe bei einem
Ding ist, kann dieses Ding erreichen(2) Ein Tier auf einem hohen Gegenstand, der
unter den Bananen steht, ist nahe bei denBananen
(3) Wenn ein Tier einen Gegenstand zu einemDing schiebt, und beide sind im Raum, dannist das Ding nahe am Boden oder derGegenstand ist unter dem Ding
(4) Wenn ein Tier einen Gegenstand ersteigt, istes auf dem Gegenstand
(5) Der Affe ist ein Tier, das Arme hat(6) Der Stuhl ist ein hoher Gegenstand(7) Der Affe, der Stuhl, die Bananen sind im
Raum(8) Der Affe kann den Stuhl unter die Bananen
schieben(9) Die Bananen sind nicht nahe am Boden
(10) Der Affe kann den Stuhl ersteigen
(11) Der Affe kann die Bananen erreichen
(1) ∀x, y (Arme(x) ∧ Nah(x, y)) →Erreichen(x, y)
(2) ∀x, y (Auf(x, y)∧Unter(y, Bananen) ∧ Hoch(y)) →
Nah(x, Bananen)
(3) ∀x, y, z (In(x) ∧ In(y) ∧ In(z)∧Schieben(x, y, z)) →
(Nah(z, Boden) ∨ Unter(y, z))
(4) ∀x, y Steigen(x, y) → Auf(x, y)
(5) Arme(Affe)
(6) Hoch(Stuhl)
(7) In(Affe) ∧ In(Bananen) ∧ In(Stuhl)
(8) Schieben(Affe, Stuhl, Bananen)
(9) ¬Nah(Bananen, Boden)
(10) Steigen(Affe, Stuhl)
(11) Erreichen(Affe, Bananen)
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 6
Schritt III: Schlussweisen Formalisieren
(A) Aus B1 und (B1 ∧ · · · ∧ Bn) → C folgt(B2 ∧ · · · ∧ Bn) → C
(B) Aus B und B → C folgt C
(C) Aus ¬C1 und C1 ∨ · · · ∨ Cn folgtC2 ∨ · · · ∨ Cn
(D) Aus ∀x F (x) folgt F (a) für jedes Objekt a und
jede Formel F
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 7
Schritt IV: Schlussweisen Anwenden
(1) ∀x, y (Arme(x) ∧ Nah(x, y)) →Erreichen(x, y)
(2) ∀x, y (Auf(x, y)∧Unter(y, Bananen) ∧ Hoch(y)) →
Nah(x, Bananen)
(3) ∀x, y, z (In(x) ∧ In(y) ∧ In(z)∧Schieben(x, y, z)) →
(Nah(z, Boden) ∨ Unter(y, z))
(4) ∀x, y Steigen(x, y) → Auf(x, y)
(5) Arme(Affe)
(6) Hoch(Stuhl)
(7) In(Affe) ∧ In(Bananen) ∧ In(Stuhl)
(8) Schieben(Affe, Stuhl, Bananen)
(9) ¬Nah(Bananen, Boden)
(10) Steigen(Affe, Stuhl)
(11) Erreichen(Affe, Bananen)
• Mehrmaliges Anwenden von (D) auf (3)liefert: (12)(In(Affe) ∧ In(Bananen) ∧ In(Stuhl)∧Schieben(Affe, Stuhl, Bananen)) →(Nah(Bananen, Boden)∨
Unter(Stuhl, Bananen))• (Mehrfache) Anwendung von (A),(B) auf (12)
mit (3),(7),(8) ergibt: (13)(13) (Nah(Bananen, Boden)∨
Unter(Stuhl, Bananen))• Anwendung von (C) auf (13) und (9) ergibt:
(14) Unter(Stuhl, Bananen)• Zweifache Anwendung von (D) auf (4) ergibt:
(15) Steigen(Affe, Stuhl) → Auf(Affe, Stuhl)• Anwendung von (B) auf (15) und (10) ergibt:
(16) Auf(Affe, Stuhl)• Analog liefert Anwendung von (D) auf (2)
und dann (A) und (B) mit (6), (14), (16):(17) Nah(Affe, Bananen)
• Dann Anwendung von (D) auf (1) und (A),(B)mit (5),(17): Erreichen(Affe, Bananen)
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 8
Ein Beispiel aus der Mathematik
• Die Gruppentheorie beschäftigt sich mitStrukturen mit einer Verknüpfung ◦ undeinem ausgezeichneten Einselement e
• Dabei müssen die folgenden Axiome gelten:
(G1) für alle x, y, z:(x ◦ y) ◦ z = x ◦ (y ◦ z)
(G2) für alle x: x ◦ e = x
(G3) für alle x gibt es y: x ◦ y = e
• Eine Gruppe G = (UG, ◦G, eG)besteht aus
– Menge UG
– Verknüpfung ◦G auf G
– ausgezeichnetem Element eG
Satz
Ist G Gruppe, so gibt es für jedes Elementx ∈ UG ein Element y ∈ UG mity ◦ x = e
Beweis
• Sei x ∈ UG
• Wegen (G3) gibt es ein y ∈ UG mit(1) x ◦ y = e
• Ebenfalls wegen (G3) gibt es ein z ∈ UG
mit(2) y ◦ z = e
• Dann gilt:y ◦ x = (y ◦ x) ◦ e (G2)
= (y ◦ x) ◦ (y ◦ z) (2)
= y ◦ (x ◦ (y ◦ z)) (G1)
= y ◦ ((x ◦ y) ◦ z) (G1)
= y ◦ (e ◦ z) (1)
= (y ◦ e) ◦ z (G1)
= y ◦ z (G2)
= e (2)
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 9
Gemeinsamkeiten der beiden Beispiele
• Formalisierte Begriffe
• Formalisierte Aussagen
• Formalisierte Schlussweisen, die reinsyntaktisch Aussagen in neue Aussagenumwandeln
➞ Die Formalisierung von Begriffen, Aussagenund Schlussweisen ermöglicht es, neuesWissen aus gegebenem Wissen durch reinsyntaktisches Schließen zu gewinnen
• Das ist sowohl für die Mathematik als auchfür die Informatik sehr interessant
• Schauen wir uns den Zusammenhangzwischen syntaktischem Schließen undinhaltlichem (semantischen) Folgern etwasabstrakter an
• Formelmenge F , Formel F
• Semantisch Folgern : F |= F
– Aus F folgt F
– In allen „Situationen“, in denen F gilt, giltauch F
• Syntaktisch Schließen : F ` F
– F ist aus F beweisbar
– F kann durch Anwendung vonSchlussregeln schrittweise aus Fabgeleitet werden
– abhängig von Beweissystem(Mindestforderung: Beweissysteme
korrekt)
• Typische Fragen:
– Gilt F |= F =⇒ F ` F ?(Wunsch: Beweissysteme vollständig)
– Lässt sich berechnen, ob F |= F gilt?
– Falls F |= F , wie lässt sich ein Beweiskonstruieren?
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 10
Inhalt
1.1 Einleitende Beispiele
� 1.2 Logik und Mathematik
1.3 Logik und Informatik
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 11
Logik als Fundament der Mathematik
David HilbertZiel: Formale Grundlegung der MathematikMittel: Mathematische Logik
• Mathematische Strukturen als logischeStrukturen
• Mathematische Aussagen als logischeFormeln
• Mathematische Beweise durchsyntaktisches Schließen(Symbolmanipulation: Axiome &Schlussregeln)
Ansatz: Rückführung der Mathematik aufArithmetik (N, +, ×) und Mengenlehre
Beispiel
• Principia Mathematica:
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 12
Hilberts Programm (ca. 1900-1928)
• Zwei Kernfragen:
(1) Kann jede mathematische Aussagedurch mathematisches Schließenbewiesen oder widerlegt werden?
(2) Gibt es ein Verfahren, das zu jedermathematischen Aussage automatischentscheidet, ob sie wahr oder falschist?
• Es gilt: (1) ⇒ (2)
• Eine äquivalente Formulierung diesesEntscheidungsproblems (2) ist dasAllgemeingültigkeitsproblem derPrädikatenlogik:
Definition
Gegeben: Formel ϕ
Frage: Gilt für alle Modelle M:M |= ϕ?
Beispiel
• Sei ϕ die Formel
∀x ∃y∃z y > x ∧ z = y + 2∧∀u∀v u × v = y → (u = 1 ∨ v = 1)∧
u × v = z → (u = 1 ∨ v = 1)
• Der Nachweis, dass ϕ in der Arithmetikgültig ist, würde ein berühmtes offenesProblem der Zahlentheorie lösen:
– Gibt es unendlich vielePrimzahlzwillinge?
• Zwei wichtige Aspekte der logischenFundierung:
– Präzisierung („Logik für Penible“)
– Automatisierung („Logik für Faule“)
• (Nebenbei: was bedeutet eigentlich„Automatisch Entscheiden“?)
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 13
Zwei Spielverderber
Kurt Gödel1931:
+ Jede gültige Aussage kann durchsyntaktisches Schließen bewiesenwerden
- In der Arithmetik gibt es Aussagen, dieweder beweisbar noch widerlegbar sind
➨ Hilberts (1) funktioniert nicht
Alan Turing
1936:
+ Der Begriff „Automatisch Entscheiden“lässt sich einfach und sauber definieren
(→ Turing-Maschine)
- Für die Arithmetik gibt es keinautomatisches Verfahren, sie istunentscheidbar
➨ Hilberts (2) funktioniert auch nicht
• Wichtige (spätere) Erkenntnis: Aussagen,die das Verhalten allgemeiner Programmebetreffen, sind prinzipiell unentscheidbar
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 14
Logik und Mathematik: Geschichteum 325 v.Chr.
• Aristoteles: Syllogismen• Euklid: Versuch einer Axiomatisierung der
Geometrie
um 1700 Leibniz formuliert das Ziel eineruniversellen Sprache zur Formulierung allermathematischen Aussagen und einesKalküls zur Herleitung aller wahrenAussagen
um 1850 Axiomatisierung der Analysis
1854 Boole: Formalisierung der Aussagenlogik
1879 Frege: Formalisierung der Prädikatenlogik
um 1880 Cantorsche Mengenlehre,Rückführung der Analysis auf Arithmetik undder Arithmetik auf die Mengenlehre
um 1900 Antinomien: Cantorsche Mengenlehreführt zu Widersprüchen: „Menge allerMengen, die sich nicht selbst als Elemententhalten“
➞ Notwendigkeit einer neuen Grundlegung derMathematik/Mengenlehre
um 1900 Hilberts Programm
• Formalisierung der Mathematik
• Zeige Widerspruchsfreiheit der Arithmetikmit finitären Methoden
um 1910 Russel, Whitehead: Mengenlehre mitTypen (Principia Mathematica)
um 1920 Zermelo, Fraenkel: AxiomatischeMengenlehre
1930 Gödelscher Vollständigkeitssatz: Jederaus einem Axiomensystem A folgende Satzist auch aus A formal ableitbar
1931 Gödelsche Unvollständigkeitssätze: u.a.:Ist die Arithmetik widerspruchsfrei, so kanndies nicht mit ihren eigenen Mitteln bewiesenwerden
1936 Church, Turing: Es gibt kein Programm,das für alle mathematischen Aussagenentscheidet, ob sie wahr oder falsch sind
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 15
Freges Begriffsschrift
Die Geburtsstunde der prädikatenlogischen Notation
Seitdem hat sie sich aber weiter entwickelt...
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 16
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
� 1.3 Logik und Informatik1.3.1 Logische Programmierung
1.3.2 Datenbanken
1.3.3 Model Checking
1.3.4 Programm-Verifikation
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 17
Logik und Informatik• Die Entwicklung der logischen Fundierung
der Mathematik ist damit natürlich nicht zuEnde erzählt
• Aber: uns soll hier zunächst die logischeFundierung der Informatik interessieren
• In der Informatik ist alles eine Nummerkleiner als in der Mathematik:– Vieles ist endlich statt unendlich– Z.B.: statt Arithmetik und Mengenlehre
werden häufig endliche diskreteStrukturen (Graphen!) verwendet
• Aber: auch die verfügbareZeit
zur Lösung eines Problems ist knapper:
– Beweis des Satzes von Fermat: > 350Jahre
– Antwortzeit bei Google: ein paarMillisekunden
• Beide bereits genannten Aspekte derlogischen Fundierung kehren wieder:– Präzisierung (Spezifikation)– Automatisierung
Beispiel
• Zwei Wege, die Funktion, die für n Zahlena1, . . . , an das Minimum berechnet, zubeschreiben:
– Der operationelle Weg:min := a1
FOR i := 2 TO n DOIF ai < min THEN
min := ai
– Der deklarative Weg:{ai | ∀j ai ≤ aj}
• Operationell : mühsam aber effizient in derAusführung
• Deklarativ :
– elegant und arbeitssparend (für denProgrammierer)
– Wie steht es mit der Effizienz?
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 18
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik� 1.3.1 Logische Programmierung
1.3.2 Datenbanken
1.3.3 Model Checking
1.3.4 Programm-Verifikation
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 19
Logik-Programmierung
• Einschränkung auf Horn-Klauseln :∀x1 · · · xk(A1 ∧ · · · ∧ Am) → B
• Schreibweise: B :- A1, A2,...,Am
• Um festzustellen, ob eine Aussage G aus dem Logik-Programm P folgt,wird ¬G zu P hinzugenommen und getestet, ob sich ein Widerspruchergibt
• Dieser Test kann durch SLD-Resolution durchgeführt werden
• Programmiersprache: PROLOG
• Beispiel:
ancestor(X,Y) :- parent(X,Y).ancestor(X,Y) :- parent(X,Z),ancestor(Z,Y).parent(bob,allen).parent(dave,bob).parent(fred,dave).:- ancestor(Y,allen).
➞ Deklarative Programmierung
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 20
Eingeschränkte Ausdruckskraft
• Im Allgemeinen kann nicht garantiert werden, dassein logisches Programm eine definitive Antwort liefert
• Oft wird deshalb ein anderer Ansatz verfolgt:
– Betrachte Anwendungsbereiche, in denen dieMächtigkeit allgemeiner Programmierung nichtbenötigt wird
– Suche Klassen logischer Formeln, die∗ für den Anwendungsbereich genügend
ausdrucksstark sind und∗ günstige algorithmische Eigenschaften
haben
• Dabei ist immer zu berücksichtigen:
– Lassen sich Schlüsse automatisch ziehen?(Berechenbarkeit)
– Lassen sie sich effizient ziehen?
• Beispiele solcher Anwendungsbereiche:
– Datenbanken
– Verifikation
– Formale Sprachen
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 21
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik1.3.1 Logische Programmierung
� 1.3.2 Datenbanken
1.3.3 Model Checking
1.3.4 Programm-Verifikation
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 22
Datenbanken in den 70ern ... Hierarchische DatenbankenBeispiel: Datenbank-Schema
ABTEILUNG
ANAME ANR ACHEF AORT
ANGESTELLTE
NAME PERSNR GEHALT
PROJEKTE
PNAME PNR PZEIT
Beispiel: Anfrage
Name und Gehalt aller Angestellten der Abteilung 12,die mehr als 50.000 verdienen
GET FIRST PATH ABTEILUNG, ANGESTELLTEWHERE ABTEILUNG.ANR=12 AND ANGESTELLTE.GEHALT>50.000WHILE DBSTATUS=0 DO
BEGINWRITELN(ANGESTELLTE.NAME,ANGESTELLTE.GEHALT)GET NEXT PATH ABTEILUNG, ANGESTELLTEWHERE ABTEILUNG.ANR=12 AND ANGESTELLTE.GEHALT>50.000END
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 23
Hierarchische vs. Relationale Datenbanken
• Nachteile:– Benutzer muss dem System mitteilen,
wie das Ergebnis berechnet wird– Organisation der Daten muss bekannt
sein, um Anfrage zu stellen– Änderungen der Organisation ziehen
Änderung von Anfragen nach sich– Programmierung fehleranfällig
• Besser wäre:– Benutzer teilt dem System die
gewünschten Eigenschaften desErgebnisses mit
– Einfacher, weniger fehleranfällig– Wissen über Datenorganisation unnötig
• Codds Idee (1970):– Organisiere die Daten in Tabellen
(Relationen)– Verwende nur einfache Grundoperationen
für Tabellen
Beispiel: Relationale Datenbank
ABTEILUNG
ANAME ANR ACHEF AORT
Forschung 12 Sommer Oben
Lehre 14 Winter Unten
Geld 22 Hermann Mitte
ANGESTELLTE
NAME PERSNR GEHALT ABT
Ochs 17 48.000 4
Faninal 12 63.000 12
Lerchenau 8 90.000 13
Valzacchi 14 72.000 12
PROJEKTE
PNAME PNR PZEIT ABT
Alles Neu 1 2001-2002 4
Back to the roots 2 2002-2003 12
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 24
Relationale Algebra, Relationenkalkül, SQLBeispielrelation und -anfrage
ANGESTELLTE
NAME PERSNR GEHALT ABT
Ochs 17 48.000 4
Faninal 12 63.000 12
Lerchenau 8 90.000 13
Valzacchi 14 72.000 12
• Name und Gehalt aller Angestellten derAbt. 12, die mehr als 50.000 verdienen
• Relationale Algebra:
– Einfache Operationen für Tabellen:∗ Zeilen Auswählen∗ Spalten Auswählen∗ Tabellen Zusammenfügen∗ Tabellen Vereinigen und Abziehen
– SpaltenNAME,GEHALT(ZeilenGEHALT>50.000∧ABT=12(
ANGESTELLTE))– klar: operationell
• Relationenkalkül:
– Beschreibung der Anfrage durch Formel:
{(X, Y ) |∃Z1, Z2 ANGESTELLTE(X, Z1, Y, Z2)∧
Z2 = 12 ∧ Y > 50.000}
– Klar: deklarativ
• SQL:SELECT Name, GehaltFROM AngestellteWHERE Gehalt > 50.000
AND ABT = 12– Eher deklarativ
• Relationale Algebra, Relationenkalkül undSQL sind (im Prinzip) gleich ausdrucksstarkund können effizient ineinander übersetztwerden
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 25
Logik als Fundament der Datenbanktheorie
• Vorteile des Logik-Fundamentes:
– Klare Semantik von Anfragen
– Automatische Auswertung von Anfragenohne Programmierung
– Methoden zum Test, welche Anfragenausdrückbar sind
• Nachteile:
– Nicht alle Anfragen ausdrückbar
– Mögliches Effizienz-Problem
• Es ergeben sich zwei Typen algorithmischerAufgaben:
– Auswertung von Anfragen:∗ Gegeben: Datenbank D, Anfrage q∗ Berechne q(D)
– „Optimierung“ von Anfragen:Übersetze q so in ein Programm, dassdie Auswertung möglichst effizient erfolgt
– Das führt zu algorithmischen Aufgabenfolgenden Typs:∗ Gegeben: Anfragen q1, q2
∗ Gilt immer q1(D) ⊆ q2(D)?
➞ Statische Analyse
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 26
Ergebnisse und neue Herausforderungen
• Schlechte Nachricht: Der Relationenkalkülhat im Prinzip schlechte algorithmischeEigenschaften:
– Anfrageauswertung ist im Worst Casesehr ineffizient
– Statische Analyse ist sogarunentscheidbar
• Gute Nachricht: Es gibt Einschränkungendes Relationenkalküls mit
– sehr guten algorithmischenEigenschaften,
– die in der Lage sind, die allermeistenAnfragen in der Praxis auszudrücken
➞ Deshalb konnten sich relationaleDatenbanken durchsetzen und zu einemenormen Geschäft werden
• Neue Herausforderungen:
– Die Theorie relationaler Datenbanken istmittlerweile sehr gut entwickelt
➞ Zumindest für stand-alone Datenbanken
– Das Internet stellt neue Aufgaben, z.B.:∗ Schema Mapping / Data Exchange∗ Verteilte Anfrageauswertung / P2P∗ Neue Datenformate: XML /
Semistrukturierte Daten
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 27
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik1.3.1 Logische Programmierung
1.3.2 Datenbanken
� 1.3.3 Model Checking
1.3.4 Programm-Verifikation
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 28
Warum automatische Verifikation gebraucht wird
• Der Pentium-Fehler
– Pentium-Prozessor (1993)
– Zur Effizienz-Steigerung der Divisionwurde Werte-Tabelle verwendet
– Aber: 5 Einträge waren falsch! (0 statt 2)
➞ ca. 1 Fehler je 9 Milliarden Divisionen
– Fehler trat ab der 14. Stelle auf
➞ nicht leicht zu finden
➞ Kosten: ca. 475 Millionen Dollar
– Intel hat danach eine Menge Experten fürautomatische Verifikation eingestellt...
• Ariane 5
– Messwerte wurden von 64-Bit-Zahl in16-Bit-Zahl umgewandelt
– Das hatte bei Ariane 4 gut funktioniert
– Aber: aufgrund der technischenÄnderungen waren die Werte bei Ariane5 größer als erwartet
➞ Überlauf, System schaltete sich ab,Backup-System übernahm
– Dort lief aber dasselbe Programm...
– Kosten: ca. 600 Millionen Euro
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 29
Ein Sandkasten-Beispiel aus der Automatischen VerifikationEin Drucker und ein Nutzer
• 1 Drucker, 1 Nutzer• Der Nutzer kann
– nichts tun (i)– auf einen Druck warten (w)– drucken (p)
• Mögliche Aktionen des Druckers:– req: Druckwunsch von Nutzer
empfangen– beg: Druck starten– end: Druck beenden
• Modellierung:
0i
1w
2p
end
req
beg
• Beispiel für eine zu testendeEigenschaft: jeder Druckwunschführt zum Drucken
Ein Drucker und zwei Nutzer
0i1, i2
6p1, i2
1w1, i2
2i1, w2
7i1, p2
4w1, p2
3w1, w2
5p1, w2
end1 end2
req1
req2
beg1
beg2
req2
req1
beg2
beg1
end1end2
req2
req1
• Model Checking:
– Modelliere das zu verifizierende System durchein Transitionssystem M mit endlich vielenZuständen
– Drücke Systemeigenschaften durch Formeln ϕeiner geeigneten Logik aus
– Teste: M |= ϕ automatisch
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 30
Model Checking: GrundideenEin Drucker und zwei Nutzer
0i1, i2
6p1, i2
1w1, i2
2i1, w2
7i1, p2
4w1, p2
3w1, w2
5p1, w2
end1 end2
req1
req2
beg1
beg2
req2
req1
beg2
beg1
end1end2
req2
req1
• Viele interessante Eigenschaften lassen sicham Baum der möglichenBerechnungsabläufe ablesen (Logik: CTL)
Beispiel
• Baum der möglichen Berechnungen fürdas Druckerbeispiel:
0
1
6
0
1
6 3
2
3 7
5
2
3 7
3
4
1
6 3
5
2
3 7
2
3
4
1
6 3
5
2
3 7
7
0
1
6 3
2
3 7
4
1
3 7
• Für viele Eigenschaften reicht es sogar dieMenge aller (unendlichen) Pfade diesesBaumes zu betrachten (ohneVerzweigungen) (Logik: LTL )
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 31
Model Checking: Ergebnisse und Herausforderungen
• Model Checking:
– System M– Eigenschaft: ϕ
– Testen: M |= ϕ?
• Automaten-basierter Ansatz:
– Modelliere reales System als endlichesTransitionssystem
– Abstrahiere von Datenwerten,Prozessnummern,...
– Drücke Eigenschaften durch Formelngeeigneter Logiken (LTL,CTL,...) aus
– Wandle Formeln und Transitionssystem inAutomaten um
– Teste Eigenschaft durchAutomatenberechnungen
• Hauptproblem: Größe der Modelle
– k Nutzer im Druckerbeispiel:3k Zustände
• Herausforderungen:
– Einbeziehung von (unbeschränkten)Datenwerten in den Verifikationsprozess
– Beispiel: beliebig viele Drucker
➞ Finde entscheidbare Logiken , dieAussagen über Berechnungsbäume undBerechnungen unter Berücksichtigungvon Datenwerten machen können
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 32
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik1.3.1 Logische Programmierung
1.3.2 Datenbanken
1.3.3 Model Checking
� 1.3.4 Programm-Verifikation
1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 33
Programm-Verifikation
• Formeln der Art {p} P {q}:wenn vor Ausführung von P Bedingung p gilt, so gilt nachAusführung von P Bedingung q
• Beispiel: {x ≤ 4} y := 3 ∗ x +1 {(x ≤ 4) ∧ (y ≤ 13)}
• Axiome (Beispiel): {p(t)} x := t {p(x)}
• Beweisregeln (Beispiel):Falls {p} P1 {q} und {q} P2 {r} so auch{p} P1; P2 {r}
• Korrektheitsbeweise sind dann Beweise von Formeln vom Typ{p} P {q}
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 34
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik
� 1.4 Inhalt dieser Vorlesung
1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 35
Inhalt der Vorlesung (Plan)EinleitungA: Aussagenlogik
• Grundlagen der Aussagenlogik : Syntax, Semantik, Äquivalenzen,Normalformen
• Erfüllbarkeit aussagenlogischer Formeln : Schließen und Folgern,Resolution, Horn-Logik
B: Prädikatenlogik• Grundlagen der Prädikatenlogik : Syntax, Semantik, Normalformen• Erfüllbarkeit prädikatenlogischer Formeln : Herbrand-Modelle, Unifikation,
Resolution, PROLOG• Weitere Eigenschaften der Prädikatenlogik : Unentscheidbarkeit,
Löwenheim-Skolem, Kompaktheit, Lokalität, AuswertungC: Weitere Logiken
• Modallogik : Syntax, Semantik, Tableau-Kalkül• Temporallogik : Syntax, Semantik, Anwendungen• Gleichungslogik : Syntax, Semantik, Termerstzungssysteme,
Knuth-Bendix-Vervollständigung• Was noch? : PDL, Intuitionistische Logiken, Zusammenhänge zu anderen
VeranstaltungenAnhang Mathematische Grundlagen
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 36
Einige Lernziele der Vorlesung
Grundwissen
• Verhältnis von Syntax und Semantik
• Grundlagen der Aussagenlogik
• Grundlagen der Prädikatenlogik
• Möglichkeiten und Grenzen der Prädikatenlogik
• Grundlagen von Beweissystemen
• Grundlagen der Logischen Programmierung
Handwerkszeug
• Formalisieren und Modellieren mit mathematischer Logik
• Sicherheit im Umgang mit logischen Formeln
• Auswahl eines geeigneten logischen Systems für ein gegebenesProblem
• Umgang mit Beweiskalkülen, insbesondere Resolution,Anwendung auf konkrete Situationen
• Anwendung der betrachteten Algorithmen
• Schreiben kleiner PROLOG-Programme
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 37
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik
1.4 Inhalt dieser Vorlesung
� 1.5 Literatur
1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 38
Literatur
[KuK] Kreuzer, Kühling. Logik für Informatiker, Pearson, 2006.(49 Exemplare in der UB-Lehrbuchsammlung)
[HR] Huth, Ryan. Logic in Computer Science, Cambridge UniversityPress, 2005.
[B] Ben-Ari. Mathematical Logic for Computer Science, Springer, 2006.
Schöning. Logik für Informatiker. Spektrum Akademischer Verlag.
Rautenberg. Einführung in die Mathematische Logik, Vieweg, 2002.
Nerode, Shore. Logic for Applications. Springer.
Ebbinghaus, Flum, Thomas. Einführung in die mathematische Logik.Spektrum Akademischer Verlag.
Siefkes. Formalisieren und Beweisen: Logik für Informatiker. Vieweg.
Tuschik, Wolter. Mathematische Logik—kurzgefasst. Spektrum Verlag.
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 39
Inhalt
1.1 Einleitende Beispiele
1.2 Logik und Mathematik
1.3 Logik und Informatik
1.4 Inhalt dieser Vorlesung
1.5 Literatur
� 1.6 Organisatorisches
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 40
Die Bestandteile der Veranstaltung
• Vorlesung
• Übungsaufgaben
• Übung
• Lernräume & Sprechstunden
• Klausur
• Die Veranstaltung im Web
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 41
Vorlesung
• Termine:– Montag, 10:15 - 12:00 Uhr, HG2, HS1
• Durchgängiger Einsatz von Folien• Erläuterungen an der Tafel• Die Folien können von der Logbuch -Webseite geladen werden• Kein Skript• Zweck der Vorlesung:
– Vermittlung aller wesentlichen Inhalte• Gebrauchsanleitung für die Vorlesung:
– Denken Sie mit– Stellen Sie Fragen– Schreiben Sie nur das Nötigste mit– Klappen Sie Ihr Notebook zu!
• Nachbereitung:– Arbeiten Sie die Vorlesung nach– Geben Sie sich dabei erst zufrieden, wenn Sie jedes Detail jeder
Folie (mindestens einmal!) verstanden haben
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 42
Übungsaufgaben
• Zweck der Übungsaufgaben:– Wiederholung der Inhalte der Vorlesung– Erkennen, wo es mit dem Verständnis
noch hapert– Entwicklung der Fähigkeit, die in der
Vorlesung gelernten Technikenanzuwenden
• Ist die Bearbeitung der ÜbungsaufgabenPflicht?– DPO: Nein– BPO: Ja, Mindestpunktzahl muss erreicht
werden– Mein persönlicher Tipp: es gibt keinen
einfacheren Weg zum Nichtbestehen derKlausur als die Übungsaufgaben nicht zubearbeiten
• Gruppenarbeit
– Sie können die Übungsaufgabenzusammen mit anderen bearbeiten undgemeinsam Lösungswege suchen
– Das Aufschreiben der Lösung erfolgtaber individuell oder in Zweier-Gruppen
– Zu Beginn des Semesters: nurEinzelabgabe!
– Wenn mehrere Gruppen/Personenwortgleiche Lösungen abgeben, erhaltensie alle 0 Punkte
• Anforderung an Lösungen
– Lösungen sind nur vollständig, wenn siebegründet und erklärt werden
– Falls Beweise erwartet werden, wird diesin der Aufgabenstellung ausdrücklicherwähnt
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 43
Übungsaufgaben (Forts.)
• Übungsaufgaben-Lebenszyklus:
– Ausgabe Übungsblatt: montags, Woche n (10:10 Uhr)
– (Start: nächste Woche)
– Fragen zum Übungsblatt: Übung Woche n
– Abgabe Lösungen: montags Woche n + 1 (10:10 Uhr)
– Besprechung: Übung Woche n + 1
• Abgabe und Korrektur:
– Abgabe∗ in der Vorlesung,∗ in den Briefkästen im Foyer des Mathegebäudes/Audimax
– Ihre Lösungen werden korrigiert
– Zu jedem Übungsblatt wird nach dem Abgabe-Termin eineBeispiel-Lösung veröffentlicht
– Wichtig: es kann mehrere Lösungswege geben, dieBeispiel-Lösung ist immer nur eine davon
• Anzahl und Art der Übungsblätter
– 1 Blatt mit Präsenzaufgaben (erste Übungsstunde)
– 12 Übungsblätter mit Abgabe der Lösung
– 1 Wiederholungsblatt am EndeLogik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 44
Übung
• In den Übungen werden die Lösungen derÜbungsaufgaben von den Teilnehmernvorgeführt
• Alternative Lösungswege werden diskutiertund Fragen werden besprochen
• Bachelor-Studierende
– Bereitschaft zum Vorführen vonLösungen
– Regelmäßige Teilnahme(höchstens zweimal Fehlen)
• Termine:– Di, 08:15-09:00, E07/OH16– Di, 08:15-09:00, HGI/HS2– Di, 09:15-10:00, E07/OH16– Di, 09:15-10:00, HGI/HS2– Di, 10:15-11:00, HGI/HS2– Di, 11:15-12:00, HGI/HS2– Mi, 12:15-13:00, HGI/HS5– Mi, 13:15-14:00, HGI/HS5
• Beginn:– 23.10.– In der nächsten Woche wird ein Ü-blatt
mit „Präsenzaufgaben“ besprochen
Holger BluhmWiss. Mitarbeiter
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 45
Lernräume
• Im Untergeschoss des Gebäudes OH14 befinden sich zweiLernräume für die Logik (und die FP)-Veranstaltung : U02, U03
• Vorteil: dort können Sie andere Studierende treffen und mit IhnenÜbungsaufgaben bearbeiten, Lernen,...
• Möglich sind sowohl Gruppen- als auch Einzelarbeit
• Tafel ist vorhanden
• Die Räume sind ganztägig geöffnet
• Zu folgenden Zeiten steht jemand zur Beantwortung von Fragenbereit:
– dienstags 10:00-10:30 Uhr
– donnerstags 10:00-10:30 Uhr
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 46
Die Veranstaltung im Web• Die Vorlesungsseite:
– http://ls1-www.cs.uni-dortmund.de/˜tick/Lehre/WS07/logik.html
– Enthält die Vorlesungsankündigung,aktuelle Ankündigungen, Links aufsLogbuch und die Übungsseite
• Das Logbuch:– http://ls1-www.cs.uni-dortmund.de/
˜tick/Lehre/WS07/logiklogbuch.html– Gibt stichpunktartig den Verlauf der
Vorlesung wieder– Enthält Korrekturen und Hinweise– Stellt die Vorlesungsfolien zur Verfügung -
in drei Versionen:∗ Zum Anschauen am Bildschirm (jeder
„Klick“ auf Extra-Seite)∗ Zum Ausdrucken∗ Zum Ausdrucken mit reduziertem
Farbeinsatz– Drucken Sie nach Möglichkeit jeweils 4
Folien auf einer Seite aus(evtl.: Verkleinern)
• Die Übungsseite:– http://www.mathematik.uni-
dortmund.de/lsvi/mitarbeiter/bluhm.html– Dort finden Sie:∗ das aktuelle Übungsblatt (montags)∗ Beispiel-Lösungen∗ aktuelle Hinweise zu den
Übungsaufgaben∗ eine Übersicht der Übungstermine∗ die Online-Anmeldung zu den
Übungsgruppen : verfügbar vonMontag, 15.10.2007, bis Donnerstag,18.10.2007
• Das INPUD-Forum:– Im INPUD-Forum gibt es eine moderierte
Diskussionsgruppe zur Logik– http://inpud.cs.uni-dortmund.de/phpbb/– Dort können Sie Fragen stellen, mit
anderen über Vorlesung und Übungdiskutieren, sich Lernpartner suchen usw.
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 47
Klausur
• 1. Klausur: 11.02.2008, 10:00 Uhr bis 11:30 Uhr imAudimax und HGII/HS1
• 2. Klausur: 31.03.2008, 10:00 Uhr bis 11:30 Uhr imAudimax
• Folien, Übungsaufgaben und handschriftlicheMitschriften dürfen verwendet werden
• Jeweils (!) Voranmeldung nötig (nähereInformationen folgen)
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 48
Schlussbemerkungen
• Das Affen-Bananen-Beispiel ist dem Buch vonSiefkes entnommen
• Die Wikipedia enthält viele informative Artikel überverschiedene Themen der Logik
– Aber: ohne Gewähr für Richtigkeit...
Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 49