logik für informatiker - ls1- fileinhalt 1.1 einleitende beispiele 1.2 logik und mathematik 1.3...

51
Logik für Informatiker Wintersemester 2007/08 Thomas Schwentick 1. Einleitung Version von: 22. Oktober 2007(09:03)

Upload: lamnhu

Post on 15-Jun-2019

223 views

Category:

Documents


0 download

TRANSCRIPT

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

Zu guter Letzt...

Viel Erfolg!

Und möglichst auch etwas Spaß!

Logik für Inf. / Schwentick / WiSe 07/08 1. Einleitung Folie 50