Was ist mathematische Logik? Logik untersucht allgemeine Prinzipien korrekten Schließens Mathematische Logik stellt zu diesem Zweck formale Kalküle bereit und analysiert die Beziehung zwischen Syntax und Semantik von Aussagen. Die Logik hat viele Anwendungen in der Informatik. Vor allem aber bietet die (formale) Logik den geeigneten methodischen Rahmen zur Lösung zahlreicher Probleme der Informatik. Motto: The applied math of computer science is formal logic. 28
Anwendungen der Logik in der Informatik 1 A. Programmierung Logik-nahe Programmiersprachen (PROLOG etc.) boolean expressions Zusicherungen Extraktion von Programmen aus Spezifikationen Automatische Programmierung B. Spezifikation: Sprachen, Schließen über Spezifikationen Datenconstraints dynamisches Verhalten (Temporallogiken,...) Soll/Muss-Verhalten (deontische Logik) Konsistenz von Spezifikationen 29
Anwendungen der Logik in der Informatik 2 C. Korrektheit von Programmen Kalküle für Korrektheitsbeweise (z.b. Hoare-Kalkül) (partielle) Automatisierung von Korrektheitsbeweisen Lösbarkeits- und Komplexitätsfragen D. Datenbanken Design von (Logik-nahen) Datenformaten Design und Analyse von Abfragesprachen Extraktion von Information aus Datenmengen (WWW) Aspekte wie: Inkonsistenz, Unvollständigkeit, etc. Update-Problem Datenbanktheorie 30
Anwendungen der Logik in der Informatik 3 E. Wissensrepräsentation: Design von geeignete Repräsentationssprachen Web-Ontologien, Description-Logics Schließen mit unsicherer/vager/unvollständiger Information Formale Modellierung natürlicher Sprache Repräsentation von Modalitäten (z.b. Wissen/Glauben) revisable reasoning (nicht-montone Logiken,...) räumliches Schließen F. Hardware Spezifkation von Schaltkreisen, Chips etc. (Automatische) Verfikation von Hardware Schaltkreistheorie 31
Anwendungen der Logik in der Informatik 4 G. Computermathematik: automatisches Beweisen Symbolic Computation, Computeralgebra Repräsentation matematischer Beweise und Theoreme logische Aspekte von Geometrie-Systemen H. Semantik von Programmiersprachen I. (Deskriptive) Komplexitätstheorie J. Berechenbarkeitstheorie (Rekursionstheorie) K. Unifikationstheorie L. Konstruktive Mathematik M. Komplexität logischer Probleme und Algorithmen usw. usw.... 32
if-, case-, while-bedingungen: if (x = 0) (y > 1) then P1 else P2 Vertauschen von then- und else-zweig de-morgan-regel: (A B) = A B if (x 0) (y 1) then P2 else P1 Spezifikation von Programmeigenschaften Assertions: Diagnoseanweisungen in Programmen Pre- und Postconditions in der Programmverifikation x = a y = b y 0 Vorbedingung while y > 0 do [ x x 1; y y 1; assert(y 0);] Zusicherung x = a b Nachbedingung 33
[a, b], [c, d]...zeitintervalle: von a bis b, von c bis d Aufgabe: Warnung ausgegeben wenn eine Terminkollision vorliegt: if Bedingung then write Kollision! Auflistung aller Überlappungsmöglichkeiten: Erstes Intervall enthält das zweite: a c und d b Zweites Intervall enthält das erste: c a und b d Anfang des zweiten Intervalls liegt im ersten: a c und c b Anfang des ersten Intervalls liegt im zweiten: c a und a d Ende des zweiten Intervalls liegt im ersten: a d und d b Ende des ersten Intervalls liegt im zweiten: c b und b d Viel Redundanz! Kompakte Formulierung der negierten Bedingung: (b < c) (d < a) Negation äquivalent zu: (b c) (d a) 34
natürliche Sprache Sokrates ist ein Mensch. Alle Menschen sind sterblich. Sokrates ist sterblich. Formalisierung: Festlegung der Syntax und Semantik der Logik M(s) ( x)m(x) S(x) S(s) Beweistheorie: Untersuchung der Schlussregeln und Beweisformen ( x)f[x] F[t] sp (Spezialisierung) A A B B mp (Modus ponens) M(s) ( x)m(x) S(x) M(s) S(s) S(s) mp sp Semantische Fragestellungen: Ist eine Aussage unter jeder / mancher / keiner Interpretation der nicht-logischen Symbole wahr? Welche Form haben Beispiele (Modelle) bzw. Gegenbeispiele? Folgt eine Aussage aus anderen? 35
Gruppentheorie: (1) x y z x (y z) = (x y) z (2) x e x = x (3) x i(x) x = e Immer wenn (1), (2) und (3) erfüllt sind, dann gelten auch auch (4) x x e = x (5) x x i(x) = e (6) x i(i(x)) = x Diese logische Konsequenz-Behauptung ist äquivalent zu: [(1) (2) (3)] [(4) (5) (6)] ist gültig. Analysis: f : R R konvergiert gegen a: Für jedes positive ǫ bleibt für alle hinreichend großen n die Distanz zwischen f(n) und a unter ǫ. Formalisiert: ǫ x0 x (ǫ > 0 x x0) f(x) a < ǫ 36
Halb-/Volladdierer: S = A + B A = An A0, B = Bn B0, S = Sn S0 Ci... Überträge A0 B0 S0 C0 Ai Bi Ci 1 Si Ci 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 37
S0 = ( A0 B0) (A0 B0) = A0 B0 C0 = A0 B0 Si = (Ai Bi) Ci 1 Ci = (Ai Bi Ci 1) (Ai Bi Ci 1) ( Ai Bi Ci 1) (Ai Bi Ci 1) = (Ai Bi) (Ai Ci 1) (Bi Ci 1) Problemstellungen: Spezifikation von Schaltkreisen, von boole-schen Funktionen Umformung, Vereinfachung, Optimierung Verifikation von Eigenschaften 38
Formen und Typen der Logik Neben der klassischen Logik sind auch verschiedenste Typen nicht-klassischer Logiken von Bedeutung: intuitionistische Logik (konstruktive Logik) mehrwertige Logiken, Fuzzy-Logik Modallogiken: Temporallogiken, dynamische Logik,...... Logik wird auf unterschiedlichen Stufen ( Ordnungen ) analysiert: Aussagenlogik (Logik 0-ter Stufe) (Prädikaten)logik 1-ter Stufe Logiken höherer Ordnung 39
Logische Kalküle, Beweisprozeduren Werkzeug zum Beweis (bzw. zur Widerlegung) logischer Aussagen Keine Bezugnahme auf Bedeutung (Semantik) Nur syntaktische Manipulation von Formeln (Zeichenketten) Eigenschaften logischer Kalküle: Korrektheit: Kalkül beweist nur wahre Aussagen (widerlegt nur falsche Aussagen). Vollständigkeit: Jede wahre Aussage ist im Kalkül beweisbar (jede falsche Aussage ist widerlegbar). In dieser Vorlesung: Sequentialkalkül, Tableaux und Resolution für Aussagenlogik Tableaux und Resolution für Prädikatenlogik 40