Mathematik und Logik Mathematik und Logik 2007W 2007W Logik Logik Aussagenlogik Aussagenlogik Logische Implikation, ⇒ Logische Implikation, ⇒ Mathematik und Logik Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Logische Disjunktion, ∨ Prädikatenlogik Prädikatenlogik 2007W Allquantor, ∀ Existenzquantor, ∃ Datentypen Allquantor, ∀ Existenzquantor, ∃ Datentypen Institut für Algebra Johannes Kepler Universität Linz Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Curry-HowardIsomorphismus Vorlesung im 2007W http://www.algebra.uni-linz.ac.at/Students/Win/ml 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 Inhalt Mathematik und Logik 2007W Logik Logik Aussagenlogik Logische Implikation, ⇒ Logische Implikation, ⇒ Logische Konjunktion, ∧ 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, ∨ 2007W Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Existenzquantor, ∃ Datentypen Curry-HowardIsomorphismus Logische Implikation, ⇒ 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 Mathematik und Logik 2007W 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. Logik Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik 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, ∨ Definition der Implikation, ⇒ Allquantor, ∀ Existenzquantor, ∃ Datentypen A ∧ B A ∧ B A ∧ B ∧E1 ∧E0 B A ∧I B ∧ A Elimination Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Hat man einen Beweis von P ⇒ Q, so reicht ein Beweis von P, um auch Q zu beweisen. Schlußregeln 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. Curry-HowardIsomorphismus Logische Disjunktion, ∨ Um P ⇒ Q zu beweisen, muß man Q beweisen, wobei man einen Beweis von P voraussetzen darf. Definition der Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Logik Introduktion 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 P ∨I0 P ∨ Q .. . ⇒I P⇒Q Q P ⇒E ⇒I Logische Konjunktion, ∧ 2007W Sind P und Q Aussagen, dann bezeichnet P ⇒ Q ebenfalls eine Aussage, die Implikation von P und Q. Q Beweis. Logische Implikation, ⇒ Mathematik und Logik Formation P⇒Q ist allgemeingültig. A ∧ B⇒B ∧ A Die mathematische Logik verwendet mathematische Methoden, um das logische Denken formal zu beschreiben. Logische Konjunktion, ∧ A ∧ B⇒B ∧ A Logische Disjunktion, ∨ Aussagen Allquantor, ∀ Die logische Konjunktion ist kommutativ, d.h. die Aussage Logische Konjunktion, ∧ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ Logische Disjunktion, ∨ Prädikatenlogik Satz Logische Disjunktion, ∨ Prädikatenlogik P ∧ Q ∧E1 Q Kommutativität der Konjunktion Logische Äquivalenz, ⇐⇒ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-Howard-Isomorphismus Mathematik und Logik P ∧ Q ∧E0 P Q ∨I1 P ∨ Q P⇒R Q⇒R ∨E P ∨ Q R Mathematik und Logik 2007W Logik Allquantor, ∀ I Aussagenlogik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ I I Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ 2007W Logik Hängt P[x] nicht von x ab, dann liegt eine normale Implikation vor: ∀x X P ist dasselbe wie X → P. I Logische Implikation, ⇒ Logische Äquivalenz, ⇐⇒ I Logische Disjunktion, ∨ Datentypen Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus 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]. Logische Disjunktion, ∨ Prädikatenlogik I Allquantor, ∀ 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, ⇒ I Logische Disjunktion, ∨ I Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ ∀x X P[x] Logische Implikation, ⇒ Logische Äquivalenz, ⇐⇒ Logische Äquivalenz, ⇐⇒ P[x] Existenzquantor, ∃ Logische Konjunktion, ∧ Logische Konjunktion, ∧ .. . Allquantor, ∀ Sei X ein Datentyp, und P[x] für jedes x X eine Aussage. Dann bezeichnet ∃x X P[x] eine Existenz-Aussage. Logische Implikation, ⇒ Logische Implikation, ⇒ x X Prädikatenlogik I Aussagenlogik Datentypen Um ∀x X P[x] zu beweisen, muß man P[x] für ein beliebiges x X beweisen. ∀-Introduktion: Logik Existenzquantor, ∃ Existenzquantor, ∃ Allquantor, Introduktion und Elimination Aussagenlogik Logische Konjunktion, ∧ 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]. I Curry-HowardIsomorphismus Mathematik und Logik Sei X ein Datentyp, und P[x] für jedes x X eine Aussage. Dann bezeichnet ∀x X P[x] eine All-Aussage. Praktisch: Es sei ∀x X P[x] zu beweisen. Vorgangsweise: Annahme x X ; beweise P[x]. Logische Implikation, ⇒ Logische Disjunktion, ∨ 2007W I Datentypen Logische Konjunktion, ∧ Mathematik und Logik ∀I 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, ∧ I Wurde ∀x X P[x] bewiesen, und ist a X , dann hat man einen Beweis von P[a]. I ∀-Elimination: 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] Curry-HowardIsomorphismus y X P[y] .. . ∀x X P[x] a X ∀E P[a] Q ∃x X P[x] Q Mathematik und Logik 2007W Allquantor, Beispiel Mathematik und Logik 2007W Logik Logik Aussagenlogik Aussagenlogik Logische Implikation, ⇒ Logische Äquivalenz, ⇐⇒ Existenzquantor, ∃ Logische Implikation, ⇒ Logische Konjunktion, ∧ Allquantor, ∀ Existenzquantor, ∃ Curry-HowardIsomorphismus ∀y Y Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus ∀I (A[x] ∨ B[y]) ∀I ⇒I ∀x X A[x] ∨ ∀y Y B[y] ⇒ ∀x X ∀y Y (A[x] ∨ B[y]) 2007W Logik Aussagenlogik Logische Implikation, ⇒ Allquantor: Beispiel (Fortsetzung) x X, Annahmen: ∀x X A[x] ∨ ∀y Y B[y], Zu beweisen: Mathematik und Logik 2007W y Y ∀y Y B[y] .. . .. . A[x] ∨ B[y] A[x] ∨ B[y] Logische Disjunktion, ∨ Existenzquantor, ∃ Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus 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 Konjunktion, ∧ ∀x X A[x] Prädikatenlogik Allquantor, ∀ Logik I Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ ∀x X A[x] ∨ ∀y Y B[y] ⇒ A[x] ∨ B[y] Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ Existenzquantor, ∃ ∨E Datentypen Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Die beiden Fälle: ∀x X A[x] x X ∀E A[x] ∨I0 A[x] ∨ B[y] f P ⇒ Q x P ⇒E fx Q ⇒I Logische Implikation, ⇒ ∀x X ∀y Y (A[x] ∨ B[y]) Mathematik und Logik x 7→ t[x] P ⇒ Q Datentypen A[x] ∨ B[y] Logische Disjunktion, ∨ .. . t[x] Q Logische Disjunktion, ∨ Prädikatenlogik .. . Schlußregeln: x P Logische Äquivalenz, ⇐⇒ y Y Allquantor, ∀ Datentypen I Logische Konjunktion, ∧ x X Logische Disjunktion, ∨ Prädikatenlogik Implikation, ⇒ Logische Implikation, ⇒ ∀x X A[x] ∨ ∀y Y B[y] Logische Konjunktion, ∧ ∃E Curry-HowardIsomorphismus ∀y Y B[y] y Y ∀E B[y] ∨I1 A[x] ∨ B[y] 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 I Existenzquantor, ∃ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus Logik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Äquivalenz, ⇐⇒ Beweis: Logische Disjunktion, ∨ Prädikatenlogik Allquantor, ∀ cA ∧ B cA ∧ B ∧E1 ∧E0 snd c B fst c A ∧I (snd c, fst c) B ∧ A Logische Implikation, ⇒ c 7→ (snd c, fst c) A ∧ B ⇒ B ∧ A Äquivalenz: c 7→ (snd c, fst c), c 7→ (snd c, fst c) A ∧ B ⇔ B ∧ A. Logische Disjunktion, ∨ Logische Äquivalenz, ⇐⇒ Logische Disjunktion, ∨ Allquantor, ∀ Existenzquantor, ∃ Logische Konjunktion, ∧ Es gibt auch: h (A ∨ B) ∧ (A ∨ C ) ⇒ A ∨ (B ∧ C ) Aussagenlogik Logische Implikation, ⇒ I I I I Ein Beweis der Disjunktion P ∨ Q ist einer von P oder von Q, und als solcher gekennzeichnet. 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-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 Disjunktion, ∨ Curry-HowardIsomorphismus (f , g) A ∨ (B ∧ C ) ⇒ (A ∨ B) ∧ (A ∨ C ) Logik y Q ∨I1 Right y P ∨ Q g A ∨ (B ∧ C ) ⇒ A ∨ C erhalten wir auch: 2007W Datentypen Logische Implikation, ⇒ Curry-HowardIsomorphismus Mathematik und Logik f P ⇒ R g Q ⇒ R ∨E either f g P ∨ Q ⇒ R Prädikatenlogik f A ∨ (B ∧ C ) ⇒ A ∨ B Logische Disjunktion, ∨ ⇒I Intuitiver: (a, b) 7→ (b, a). Logische Konjunktion, ∧ Mit Logische Konjunktion, ∧ I Logische Implikation, ⇒ ⇒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 Logische Implikation, ⇒ I Introduktion und Elimination x P ∨I0 Left x P ∨ Q y B ∧ C ∧E1 fst y B ∨I1 Right(fst y) A ∨ B Existenzquantor, ∃ commute A × B → B × A, c 7→ (snd c, fst c), I a A ∨I0 Left a A ∨ B Datentypen I Aussagenlogik y B ∧ C a A Aussagenlogik cA ∧ B Allquantor, ∀ Beispiel: A ∨ (B ∧ C ) ⇒ A ∨ B Logik A ∧ B ⇒ B ∧ A. Datentypen 2007W 2007W Satz Prädikatenlogik Mathematik und Logik Mathematik und Logik Logische Implikation, ⇒ Logische Konjunktion, ∧ Logische Disjunktion, ∨ Curry-HowardIsomorphismus