| | |
Summary: Kapitel 2
Pr˜ adikatenlogik und
Typentheorie
2.1 Konstruktive Pr˜ adikatenlogik
Als Sprache verwenden wir den einfach getypten LambdaKalk˜ ul mit dem Ty
pisierungsurteil # # t : # .
Pr˜ adikatenlogik erweitert die Aussagenlogik um zwei neue logische Konnek
tive, # und #.
BHKInterpretation:
. Ein Beweis von #x : #. A ist ein Verfahren, dass f˜ ur ein beliebiges Element
a : # einen Beweis von A[a/x] liefert.
. Ein Beweis von #x : #. A ist ein Paar (w, p), bestehend aus einem Zeugen
w : # und einem Beweis p von A[w/x].
Beispiel 30 ((#x : #.P ) # Q) # #x : tau.P # Q entspricht dem currying.
Die Aussage (#x : #. P # Q(x)) # P # #x : #. Q(x) (wobei x nicht frei in
P vorkomme) ist konstruktiv nicht g˜ ultig. Um zu entscheiden, ob P gilt oder
#x : #. Q(x), m˜ ußte man erst f˜ ur alle x in # testen, ob P oder Q(x) gilt. Im
allgemeinen kann man aber das nicht in endlicher Zeit tun.
Beispiel 31 (Induktion) Das Induktionsaxiom f˜ ur das Pr˜ adikat P kann for
muliert werden als P zero # (#n : nat.P n # P (succ n)) # #n : nat. P n.
|