Grundlagen der Informatik – Logik Sibylle Schwarz Fachgruppe Informatik Fachbereich Physikalische Technik / Informatik Westsächsische Hochschule Zwickau Dr.-Friedrichs-Ring 2a, RII 263 http://wwwstud.fh-zwickau.de/~sibsc/ email: [email protected] Logik – Geschichte Logik in Philosophie, Rhetorik Aristoteles (384 - 322 v.Chr.) Aussagenlogik Grundlagen der Rechentechnik Einleitung Informatik Informatik Wissenschaft von der Verarbeitung symbolischer Information durch Algorithmen Teilgebiete der Informatik: theoretisch ◮ ◮ George Boole (1815 - 1864) ◮ Mathematische Logik Formalisierung des Beweisens (Begriffe und Schlußregeln) technisch Sprachen zur Formulierung von Information und Algorithmen, Möglichkeiten und Grenzen der Berechenbarkeit durch Algorithmen, Grundlagen für technische und praktische (und angewandte) Informatik maschinelle Darstellung von Information Mittel zur Ausführung von Algorithmen (Rechnerarchitektur, Hardware-Entwurf, . . . ) ◮ ◮ Gottfried Wilhelm Leibniz (1646 - 1716) Gottlob Frege (1848 - 1925) David Hilbert (1862 - 1943) Kurt Gödel (1906 - 1978) Unvollständigkeitssatz Logik in der Informatik technische Informatik (Digitaltechnik): ◮ Logikgatter / Schaltnetze klassische Aussagenlogik praktische Informatik (Programmierung): ◮ Spezifikation: Definition der Anforderungen an Programme ◮ Verifikation: Sicherheit und Korrektheit von Software ◮ abstrakte Datentypen (Liste, Stack, . . . ) definiert durch Eigenschaften statt spezieller Realisierung Prädikatenlogik, Modale und temporale Logiken angewandte Informatik (Künstliche Intelligenz): ◮ automatischen Beweisen / Problemlösen ◮ Planen ◮ Wissensrepräsentation / Expertensysteme Prädikatenlogik, nichtklassische Logiken allgemein: Logik als Sprache zur Formulierung und Manipulation geeigneter Modelle der Realität Nebenwirkungen praktisch Entwurf und Implementierung von Algorithmen (Betriebssysteme, Compilerbau, SE, . . . ) angewandt Anwendung von Algorithmen (Textverarbeitung, Computergraphik, KI, . . . ) Inhalt der Lehrveranstaltung ◮ Aussagenlogik ◮ ◮ ◮ ◮ ◮ ◮ ◮ ◮ Algebraische Strukturen Prädikatenlogik ◮ ◮ ◮ ◮ ◮ ◮ Modellierungsbeispiele Syntax Semantik (Wahrheitswertfunktionen, Wahrheitswerttabellen) Schaltalgebra logisches Folgern, Beweisen logisches Schließen, Kalküle Modellierungsbeispiele Syntax Semantik logisches Folgern logisches Schließen, Kalküle Einblick in nichtklassische Logiken Literatur empfohlen: ◮ Grundverständnis der Logik als Sprache der Informatik ◮ Fähigkeit zur Abstraktion ◮ Grundkenntnisse in Modellbildung ◮ Beweisverfahren ◮ Zusammenhänge zu anderen Gebieten der Informatik und Mathematik ◮ Uwe Schöning: Logik für Informatiker, Spektrum, 1995 ◮ Jürgen Dassow: Logik für Informatiker, Teubner, 2005 ergänzend: ◮ Wolfgang Thomas, Jörg Flum, Heinz-Dieter Ebbinghaus: Einführung in die mathematische Logik Spektrum, 1998 ◮ Bernhard Heinemann, Klaus Weihrauch: Logik für Informatiker, Teubner Stuttgart, 1992 ◮ Kreuzer, Kühling: Logik für Informatiker, Pearson Studium, 2006 Organisation Prüfung Modul: Grundlagen der Informatik Teil: Logik Informationen zur Lehrveranstaltung: Folien, Übungsserien, Termine, Änderungen, ... Klausur für ganzes Modul „Grundlagen der Informatik“ (Februar) http://wwwstud.fh-zwickau.de/~sibsc/lehre/ws08/logik Lehrveranstaltungen: ◮ wöchentlich eine Vorlesung (30 h) Donnerstag 11:20 - 12:50 Uhr, HS 2 ◮ 14tägig ein Seminar (15 h) Mittwoch 15:20 - 16:50 Uhr, R247 (2 Gruppen 082079/1) Donnerstag 15:20 - 16:50 Uhr, R307 (2 Gruppen 082079/2) Logik-Teil: Aufgabentypen aus Übungsserien Zulassungsvoraussetzungen: Lösung der Hausaufgaben ◮ schriftlich: Nachweis durch mindestens dreimal Vorrechnen in Seminaren ◮ 50 % der praktischen Pflichtaufgaben Vor- und Nachbereitung (60 h): Hausaufgaben, Literaturstudium Selbststudium (15 h): Literaturstudium, Prüfungsvorbereitung Schriftliche Hausaufgaben – Seminar Praktische Hausaufgaben – Autotool schriftliche Übungsserien: https://autotool.imn.htwk-leipzig.de/cgi-bin/Super.cgi http://wwwstud.fh-zwickau.de/~sibsc/lehre/ws08/logik Account anlegen: 1. Click „FH Zwickau“ ◮ Nachbereitung der letzten Vorlesung ◮ Vorbereitung der nächsten Vorlesung ◮ Vorbereitung der Seminarvorträge ◮ 3. Click „absenden“ Passwort wird an die angegebene Email-Adresse geschickt (bis 30 min). Seminar: ◮ 2. Daten eintragen (korrekte Studenten-Nummer, Email [email protected]) Besprechung der Lösungen der schriftlichen Hausaufgaben (Vorrechnen durch Studenten) Fragen zum aktuellen Vorlesungsstoff und zu den schriftlichen und praktischen Hausaufgaben Account benutzen: ◮ Anmeldung mit Studentennummer (Click „Login“) ◮ Passwort ändern (Click „update“) ◮ „Einschreiben“ in Übungsgruppe ◮ Aufgabe ansehen und lösen (Click „Solve“) Aussagen Aussage = Behauptung Beispiele: Aussagenlogik ◮ Es regnet. ◮ Die Straße ist naß. ◮ 9 ist eine Primzahl. √ 2∈ ◮ Wahrheitswerte Q ◮ 3<5 ◮ x < 5 (hängt von x ab, keine Aussage) ◮ Ist x < 5? (keine Aussage) ◮ Sei x < 5. (keine Aussage) ◮ Morgen regnet es. ◮ Es ist nicht alles Gold, was glänzt. Zusammengesetzte Ausdrücke – Junktoren Wahrheitswerte 1 (wahr) oder 0 (falsch) Jeder Aussage p kann genau ein Wahrheitswert W(p) ∈ {0, 1} zugeordnet werden. Prinzipien der klassischen Logik: Zweiwertigkeit Jede Aussage ist wahr oder falsch. ausgeschlossener Widerspruch Keine Aussage ist sowohl wahr als auch falsch. Beispiele: ◮ W(Es regnet.) = ? ◮ W(Die Straße ist naß.) = ? ◮ W(9 ist eine Primzahl.) = 0 √ ◮ W( 2 ∈ )=0 ◮ W(3 < 5) = 1 ◮ W(Morgen regnet es.) = ? ◮ W(Es ist nicht alles Gold, was glänzt.)=1 Q Junktor (mit zugeordneter Stelligkeit): Symbol (Syntax) für Verknüpfung von Aussagen Semantik (Bedeutung) eines n-stelligen Junktors ∗: [∗] : {0, 1}n −→ {0, 1} (n-stellige Funktion auf der Menge {0, 1}) Wahrheitswertkonstanten (nullstellige Junktoren): t mit [t] = 1 f mit [f] = 0 Konjunktion ∧ Es regnet und 9 ist eine Primzahl. ◮ W(9 ist eine Primzahl.)= 0 ◮ W(Es regnet)=? ◮ W(Es regnet und 9 ist eine Primzahl.)=0 p ∧ q ist genau dann wahr, wenn beide Aussagen p und q wahr sind. W(p) W(q) W(p ∧ q) 0 0 0 1 0 0 1 0 0 1 1 1 W(p ∧ q) = min(W(p), W(q)) [∧] = min ist kommutativ, assoziativ n ^ i=1 W(p) W(q) W(p ∨ q) 0 0 0 1 1 0 1 0 1 1 1 1 n _ pi = p1 ∧ p 2 ∧ · · · ∧ p n W(p ∨ q) = max(W(p), W(q)) i=1 pi = p1 ∨ p 2 ∨ · · · ∨ p n Implikation → √ √ ¬( 2 ∈ ) (meist 2 6∈ √ ◮ W( 2 ∈ )=0 √ ◮ W(¬( 2 ∈ )) = 1 Q Wenn es regnet, dann ist die Straße naß. Q) Q W(p) W(¬p) 0 1 1 0 W(¬p) = 1 − W(p) Äquivalenz ↔ 3 < 5 gilt genau dann, wenn 0 < 5 − 3 gilt. ◮ W(3 < 5) = 1 ◮ W(0 < 5 − 3) = 1 W(3 < 5 gilt genau dann, wenn 0 < 5 − 3 gilt.)=1 p ↔ q ist genau dann wahr, wenn entweder beide Aussagen p und q gelten oder beide nicht gelten. W(p) W(q) W(p ↔ q) 0 0 1 0 1 0 0 0 1 1 1 1 W(p ↔ q) = ◮ W(Es regnet.)=? ◮ W(Die Straße ist naß.)=? ◮ W(Wenn es regnet, dann ist die Straße naß.)=1 p → q ist genau dann wahr, wenn die Aussage p falsch oder die Aussage q wahr ist. ¬ϕ ist genau dann wahr, wenn ϕ falsch ist. ◮ Es regnet oder 3 < 5. ◮ W(3 < 5) = 1 ◮ W(Es regnet)=? ◮ W(Es regnet oder 3 < 5.)=1 p ∨ q ist genau dann wahr, wenn wenigstens eine der Aussagen p und q wahr ist. [∨] = max ist kommutativ, assoziativ Negation ¬ Q Disjunktion ∨ (inklusiv) ½ 1 falls W(p) = W(q) 0 sonst W(p) W(q) W(p → q) 0 0 1 0 1 1 0 0 1 1 1 1 W(p → q) = ½ 1 falls W(p) ≤ W(q) 0 sonst