Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Mathematik und Logik Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik 2007W Allquantor, ∀ Existenzquantor, ∃ Datentypen Institut für Algebra Johannes Kepler Universität Linz Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik Aussagenlogik Vorlesung im 2007W http://www.algebra.uni-linz.ac.at/Students/Win/ml Inhalt Logik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-Howard-Isomorphismus Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Aussagen Die mathematische Logik verwendet mathematische Methoden, um das logische Denken formal zu beschreiben. I Populäre Definition: Eine Aussage ist ein Satz, der entweder falsch oder wahr ist. I Problem: Wie definiert man wahr und falsch? I Ein Beweis stellt sicher, daß eine Aussage wahr ist. I Definition: Eine Aussage ist eine Konstruktion, durch welche festgelegt wird, wie ihre Beweise zu konstruieren sind. I Eine Aussage, die wir nicht beweisen können, muß nicht unbedingt falsch sein. Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Definition der Implikation, ⇒ Formation Sind P und Q Aussagen, dann bezeichnet P ⇒ Q ebenfalls eine Aussage, die Implikation von P und Q. Introduktion Um P ⇒ Q zu beweisen, muß man Q beweisen, wobei man einen Beweis von P voraussetzen darf. Elimination Hat man einen Beweis von P ⇒ Q, so reicht ein Beweis von P, um auch Q zu beweisen. Schlußregeln P .. . Q P⇒Q ⇒I P⇒Q Q P ⇒E Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Definition der Konjuktion, ∧ Formation Sind P und Q Aussagen, dann bezeichnet P ∧ Q ebenfalls eine Aussage, die Konjunktion von P und Q. Introduktion Um P ∧ Q zu beweisen, muß man sowohl P als auch Q beweisen. Elimination Hat man einen Beweis von P ∧ Q so auch einen Beweis von P, und auch einen Beweis von Q. Schlußregeln P Q ∧I P ∧ Q Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Satz Die logische Konjunktion ist kommutativ, d.h. die Aussage A ∧ B⇒B ∧ A Logische Disjunktion, ∨ Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus P ∧ Q ∧E1 Q Kommutativität der Konjunktion Logische Äquivalenz, ⇐⇒ Prädikatenlogik P ∧ Q ∧E0 P ist allgemeingültig. Beweis. A ∧ B A ∧ B A ∧ B ∧E1 ∧E0 B A ∧I B ∧ A A ∧ B⇒B ∧ A ⇒I Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Definition der Äquivalenz, ⇐⇒ Notation Die logische Äquivalenz wird mit P ⇐⇒ Q bezeichnet und ist lediglich eine Abkürzung für (P ⇒ Q) ∧ (Q ⇒ P). Bemerkung Zwei Aussagen sind äquivalent wenn sie vom logischen Standpunkt aus betrachtet gleichwertig sind. Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Definition der Disjunktion, ∨ Formation Sind P und Q Aussagen, dann bezeichnet P ∨ Q ebenfalls eine Aussage, die Disjunktion von P und Q. Introduktion Um P ∨ Q zu beweisen, genügt es, P zu beweisen, oder Q zu beweisen. Elimination Folgt irgendeine Aussage R sowohl aus P als auch aus Q, dann folgt sie auch aus P ∨ Q (Beweis durch Fallunterscheidung). Schlußregeln P ∨I0 P ∨ Q Q ∨I1 P ∨ Q P⇒R Q⇒R ∨E P ∨ Q R Mathematik und Logik 2007W Logik Allquantor, ∀ I Sei X ein Datentyp, und P[x] für jedes x X eine Aussage. Dann bezeichnet ∀x X P[x] eine All-Aussage. I Die All-Aussage drückt eine universelle Quantifizierung aus. Ein Beweis von ∀x X P[x] konstruiert für jedes beliebige x X einen Beweis von P[x]. Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ I Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ I Praktisch: Es sei ∀x X P[x] zu beweisen. Vorgangsweise: Annahme x X ; beweise P[x]. I Hängt P[x] nicht von x ab, dann liegt eine normale Implikation vor: ∀x X P ist dasselbe wie X → P. Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik Allquantor, Introduktion und Elimination I Um ∀x X P[x] zu beweisen, muß man P[x] für ein beliebiges x X beweisen. I ∀-Introduktion: Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ .. . Prädikatenlogik Allquantor, ∀ P[x] Existenzquantor, ∃ Datentypen ∀x X P[x] Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus x X ∀I I Wurde ∀x X P[x] bewiesen, und ist a X , dann hat man einen Beweis von P[a]. I ∀-Elimination: ∀x X P[x] a X ∀E P[a] Mathematik und Logik 2007W Allquantor, Beispiel Logik Aussagenlogik Logische Implikation, ⇒ ∀x X A[x] ∨ ∀y Y B[y] Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ x X Logische Disjunktion, ∨ Prädikatenlogik y Y Allquantor, ∀ Existenzquantor, ∃ .. . Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ A[x] ∨ B[y] Logische Disjunktion, ∨ Curry-HowardIsomorphismus ∀I ∀y Y (A[x] ∨ B[y]) ∀x X ∀y Y (A[x] ∨ B[y]) ∀I ⇒I ∀x X A[x] ∨ ∀y Y B[y] ⇒ ∀x X ∀y Y (A[x] ∨ B[y]) Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Allquantor: Beispiel (Fortsetzung) x X, Annahmen: ∀x X A[x] ∨ ∀y Y B[y], Zu beweisen: y Y Logische Konjunktion, ∧ ∀x X A[x] ∀y Y B[y] .. . .. . A[x] ∨ B[y] A[x] ∨ B[y] Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus ∀x X A[x] ∨ ∀y Y B[y] ⇒ A[x] ∨ B[y] ∨E Die beiden Fälle: ∀x X A[x] x X ∀E A[x] ∨I0 A[x] ∨ B[y] ∀y Y B[y] y Y ∀E B[y] ∨I1 A[x] ∨ B[y] Mathematik und Logik 2007W Logik Existenzquantor, ∃ I Sei X ein Datentyp, und P[x] für jedes x X eine Aussage. Dann bezeichnet ∃x X P[x] eine Existenz-Aussage. I Die Existenzaussage drückt eine existenzielle Quantifizierung aus. Ein Beweis von ∃x X P[x] konstruiert ein a X und einen Beweis von P[a]. Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik I Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ I Praktisch: Es sei ∃x X P[x] zu beweisen. Vorgangsweise: Man wählt ein passendes a X , und versucht damit P[a] zu beweisen. I Hängt P[x] nicht von x ab, dann liegt eine normale Konjunktion vor: ∃x X P ist dasselbe wie X ∧ P. Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik Existenzquantor: Introduktion und Elimination Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ I Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ I Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen I Wurde ∃x X P[x] bewiesen, so kann man für’s weitere annehmen, daß es ein soches Objekt gibt. I ∃-Elimination: Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Um ∃x X P[x] zu beweisen, muß man ein a X finden und damit P[a] beweisen. a X P[a] ∃-Introduktion: ∃I ∃x X P[x] y X P[y] .. . Q ∃x X P[x] Q ∃E Mathematik und Logik 2007W Logik Implikation, ⇒ I Aussagenlogik Schlußregeln: x P Logische Implikation, ⇒ Logische Konjunktion, ∧ .. . t[x] Q Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ x 7→ t[x] P ⇒ Q Datentypen f P ⇒ Q x P ⇒E fx Q ⇒I Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik I Der Beweis einer Implikation ist ein Algorithmus, I der für jeden Input vom Typ P einen Output vom Typ Q liefert. I Funktionsdatentyp: Schreibweise: P → Q oder Q P . I Konstruktor: Abstraktion: (7→); I Selektor: Funktionsanwendung: apply. Logische Konjunktion, ∧ I Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Introduktion und Elimination x P y Q z P ∧ Q ∧I ∧E0 (x, y) P ∧ Q fst z P z P ∧ Q ∧E1 snd z Q I Ein Beweis der Konjunktion P ∧ Q ist ein Paar, I dessen Komponenten die Typen P bzw. Q haben. I I Verbunddatentyp (Direktes Produkt): P × Q. Konstruktor: (, ) P → Q → P × Q; I Selektoren: fst P × Q → P, snd P × Q → Q. Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Kommutativität der Konjunktion Satz A ∧ B ⇒ B ∧ A. I cA ∧ B Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ cA ∧ B cA ∧ B ∧E1 ∧E0 snd c B fst c A ∧I (snd c, fst c) B ∧ A Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Mathematik und Logik 2007W Logik Beweis: c 7→ (snd c, fst c) A ∧ B ⇒ B ∧ A ⇒I I commute A × B → B × A, c 7→ (snd c, fst c), I Intuitiver: (a, b) 7→ (b, a). I Äquivalenz: c 7→ (snd c, fst c), c 7→ (snd c, fst c) A ∧ B ⇔ B ∧ A. Logische Disjunktion, ∨ I Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Introduktion und Elimination x P ∨I0 Left x P ∨ Q y Q ∨I1 Right y P ∨ Q f P ⇒ R g Q ⇒ R ∨E either f g P ∨ Q ⇒ R Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ I Ein Beweis der Disjunktion P ∨ Q ist einer von P oder von Q, und als solcher gekennzeichnet. I Disjunkte Vereinigung (Direkte Summe): P + Q. Konstruktoren: Left P → P + Q, Right Q → P + Q; Selektor: either (P → R) → (Q → R) → (P + Q → R). Logische Disjunktion, ∨ Curry-HowardIsomorphismus I I Mathematik und Logik 2007W Beispiel: A ∨ (B ∧ C ) ⇒ A ∨ B y B ∧ C a A Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ a A ∨I0 Left a A ∨ B y B ∧ C ∧E1 fst y B ∨I1 Right(fst y) A ∨ B ⇒I ⇒I a 7→ Left a A ⇒ A ∨ B y 7→ Right(fst y) B ∧ C ⇒ A ∨ B ∨E either(a 7→ Left a) (y 7→ Right(fst y)) A ∨ (B ∧ C ) ⇒ A ∨ B Existenzquantor, ∃ Mit Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ f A ∨ (B ∧ C ) ⇒ A ∨ B g A ∨ (B ∧ C ) ⇒ A ∨ C Logische Disjunktion, ∨ Curry-HowardIsomorphismus erhalten wir auch: (f , g) A ∨ (B ∧ C ) ⇒ (A ∨ B) ∧ (A ∨ C ) Es gibt auch: h (A ∨ B) ∧ (A ∨ C ) ⇒ A ∨ (B ∧ C ) Mathematik und Logik 2007W Logik Aussagenlogik Logische Implikation, ⇒ Curry-Howard-Isomorphismus I Eine Aussage legt den Datentyp ihrer Beweise fest. I Ein Datentyp entspricht der Aussage, daß es ein Objekt dieses Typs gibt. I Jeder Algorithmus, der ein Objekt eines bestimmten Datentyps konstruiert, ist ein Beweis, daß es ein solches gibt. I Aussagen entsprechen Programmspezifikationen. I Beweise entsprechen Programmen. I Man kann Aussagen beweisen, indem man ein Objekt vom passenden Typ konstruiert. I Aus mathematischen Beweisen lassen sich verifizierte Programme extrahieren. I Fehlerfreie Software beliebiger Komplexität ist möglich. Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus