Mathematik und Logik Inhalt

Werbung
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
Herunterladen