Mathematik und Logik 2008W Logik Aussagenlogik Logische Implikation, ⇒ ∧ Logische Konjunktion, Logische Äquivalenz, Mathematik und Logik ⇐⇒ ∨ Logische Disjunktion, Prädikatenlogik Allquantor, ∀ Existenzquantor, 2008W ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus Institut für Algebra Johannes Kepler Universität Linz Vorlesung im 2008W http://www.algebra.uni-linz.ac.at/Students/Win/ml Mathematik und Logik Inhalt 2008W Logik Logik Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∨ Logische Disjunktion, Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-Howard-Isomorphismus Mathematik und Logik Aussagen 2008W Logik Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, 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. ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, Logische Konjunktion, Curry-HowardIsomorphismus Mathematik und Logik Definition der Implikation, ⇒ 2008W Logik Formation Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∨ Logische Disjunktion, Prädikatenlogik Allquantor, Introduktion Um P ⇒ Q zu beweisen, muß man Q beweisen, wobei man einen Beweis von P voraussetzen darf. ∀ Existenzquantor, Sind P und Q Aussagen, dann bezeichnet P ⇒ Q ebenfalls eine Aussage, die Implikation von P und Q. ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus 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 Definition der Konjuktion, ∧ 2008W Logik Formation Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, Logische Konjunktion, Curry-HowardIsomorphismus 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 P ∧ Q ∧E0 P P ∧ Q ∧E1 Q Mathematik und Logik Kommutativität der Konjunktion 2008W Logik Satz Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Die logische Konjunktion ist kommutativ, d.h. die Aussage Logische Äquivalenz, ⇐⇒ Logische Disjunktion, A ∧ B⇒B ∧ A ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, Logische Konjunktion, Curry-HowardIsomorphismus 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 Definition der Äquivalenz, ⇐⇒ 2008W Logik Notation Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∨ Logische Disjunktion, Bemerkung Prädikatenlogik Allquantor, ∀ Existenzquantor, Zwei Aussagen sind äquivalent wenn sie vom logischen Standpunkt aus betrachtet gleichwertig sind. ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus Die logische Äquivalenz wird mit P ⇐⇒ Q bezeichnet und ist lediglich eine Abkürzung für (P ⇒ Q) ∧ (Q ⇒ P). Mathematik und Logik Definition der Disjunktion, ∨ 2008W Logik Formation Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∨ Logische Disjunktion, Prädikatenlogik Allquantor, Introduktion Um P ∨ Q zu beweisen, genügt es, P zu beweisen, oder Q zu beweisen. ∀ Existenzquantor, Sind P und Q Aussagen, dann bezeichnet P ∨ Q ebenfalls eine Aussage, die Disjunktion von P und Q. ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus 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 Q .. . R .. . R R P ∨ Q ∨E Mathematik und Logik Beispiel: Distributivität 2008W Logik B ∧ C Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, Logische Konjunktion, Curry-HowardIsomorphismus A A ∨I0 A ∨ B B ∧ C ∧E0 B ∨I1 A ∨ B A ∨ B A ∨ (B ∧ C ) ∨E A ∨ (B ∧ C ) .. .. . . analog siehe oben .. .. . . A ∨ B A ∨ C ∧I (A ∨ B) ∧ (A ∨ C ) ⇒I A ∨ (B ∧ C ) ⇒ (A ∨ B) ∧ (A ∨ C ) Mathematik und Logik Allquantor, ∀ 2008W Logik 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 Allquantor, Introduktion und Elimination 2008W Logik I Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, I ⇐⇒ Logische Disjunktion, ∨ .. . Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ P[x] Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, ∀x X P[x] Logische Konjunktion, Curry-HowardIsomorphismus Um ∀x X P[x] zu beweisen, muß man P[x] für ein beliebiges x X beweisen. ∀-Introduktion: x X I I ∀I Wurde ∀x X P[x] bewiesen, und ist a X , dann hat man einen Beweis von P[a]. ∀-Elimination: ∀x X P[x] a X ∀E P[a] Mathematik und Logik Allquantor, Beispiel 2008W Logik Aussagenlogik Logische Implikation, ⇒ ∧ Logische Konjunktion, Logische Äquivalenz, ∀x X A[x] ∨ ∀y Y B[y] ⇐⇒ Logische Disjunktion, ∨ x X Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, Logische Konjunktion, Curry-HowardIsomorphismus y Y .. . A[x] ∨ B[y] ∀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 Allquantor: Beispiel (Fortsetzung) 2008W Logik Aussagenlogik Logische Implikation, ⇒ ∧ Annahmen: ∀x X A[x] ∨ ∀y Y B[y], Zu beweisen: x X, 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 Disjunktion, ∨ Logische Implikation, ∀x X A[x] ∨ ∀y Y B[y] ⇒ A[x] ∨ B[y] ∨E Logische Konjunktion, Curry-HowardIsomorphismus 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 Existenzquantor, ∃ 2008W Logik 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 Allquantor, I ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ 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, Curry-HowardIsomorphismus Mathematik und Logik Existenzquantor: Introduktion und Elimination 2008W Logik Aussagenlogik Logische Implikation, ⇒ ∧ I ∨ I Logische Konjunktion, Logische Äquivalenz, ⇐⇒ Logische Disjunktion, Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ 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] 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, Curry-HowardIsomorphismus y X P[y] .. . Q ∃x X P[x] Q ∃E Mathematik und Logik Implikation, ⇒ 2008W Logik I Schlußregeln: Aussagenlogik x P ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, .. . t[x] Q ⇐⇒ ∨ Logische Disjunktion, Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ x 7→ t[x] P ⇒ Q Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus ⇒I f P ⇒ Q x P ⇒E fx Q I Der Beweis einer Implikation ist ein Algorithmus, I I der für jeden Input vom Typ P einen Output vom Typ Q liefert. Funktionsdatentyp: Schreibweise: P → Q oder Q P . I Konstruktor: Abstraktion: (7→); I Selektor: Funktionsanwendung: apply. Mathematik und Logik Logische Konjunktion, ∧ 2008W Logik I Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Curry-HowardIsomorphismus z P ∧ Q ∧E1 snd z Q ∨ Logische Disjunktion, Prädikatenlogik Allquantor, Introduktion und Elimination x P y Q z P ∧ Q ∧I ∧E0 (x, y) P ∧ Q fst z P I Ein Beweis der Konjunktion P ∧ Q ist ein Paar, I dessen Komponenten die Typen P bzw. Q haben. Verbunddatentyp (Direktes Produkt): P × Q. Konstruktor: (, ) P → Q → P × Q; Selektoren: fst P × Q → P, snd P × Q → Q. I I I Mathematik und Logik Kommutativität der Konjunktion 2008W Logik Satz Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, A ∧ B ⇒ B ∧ A. Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ I Prädikatenlogik Allquantor, cA ∧ B ∀ Existenzquantor, Beweis: ∃ cA ∧ B cA ∧ B ∧E1 ∧E0 snd c B fst c A ∧I (snd c, fst c) B ∧ A Datentypen ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Logische Implikation, Curry-HowardIsomorphismus 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. Mathematik und Logik Logische Disjunktion, ∨ 2008W Logik I Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∨ Logische Disjunktion, ∀ Existenzquantor, y Q ∨I1 Right y P ∨ Q f P ⇒ R g Q ⇒ R ∨E either f g P ∨ Q ⇒ R Prädikatenlogik Allquantor, Introduktion und Elimination x P ∨I0 Left x P ∨ Q ∃ Datentypen Logische Implikation, ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, 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). Curry-HowardIsomorphismus I I Mathematik und Logik Beispiel: A ∨ (B ∧ C ) ⇒ A ∨ B 2008W Logik y B ∧ C Aussagenlogik a A ⇒ Logische Konjunktion, ∧ Logische Implikation, Logische Äquivalenz, ⇐⇒ ∨ Logische Disjunktion, Prädikatenlogik Allquantor, ⇒I ⇒ a 7→ Left a A ⇒ A ∨ B y 7→ Right(fst y) B ∧ C ⇒ A ∨ B either(a 7→ Left a) (y 7→ Right(fst y)) A ∨ (B ∧ C ) ⇒ A ∨ B ∀ Existenzquantor, ∃ Datentypen Logische Implikation, a A ∨I0 Left a A ∨ B y B ∧ C ∧E1 fst y B ∨I1 Right(fst y) A ∨ B ⇒ ∧ ∨ Logische Konjunktion, Logische Disjunktion, Mit Curry-HowardIsomorphismus f A ∨ (B ∧ C ) ⇒ A ∨ B g A ∨ (B ∧ C ) ⇒ A ∨ C 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 Curry-Howard-Isomorphismus 2008W Logik I Aussagenlogik ⇒ Logische Konjunktion, ∧ Logische Implikation, I Logische Äquivalenz, Eine Aussage legt den Datentyp ihrer Beweise fest. Ein Datentyp entspricht der Aussage, daß es ein Objekt dieses Typs gibt. ⇐⇒ Logische Disjunktion, ∨ 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. Man kann Aussagen beweisen, indem man ein Objekt vom passenden Typ konstruiert. Aus mathematischen Beweisen lassen sich verifizierte Programme extrahieren. Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen ⇒ ∧ Logische Disjunktion, ∨ Logische Implikation, Logische Konjunktion, I Curry-HowardIsomorphismus I I Fehlerfreie Software beliebiger Komplexität ist möglich.