Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Logic and CS / Girard. Proofs and Types.pdf
947.15 Кб





t u0, with u0

one step from u. u0 is reducible by induction hypothesis



(CR 2) for U, and (u0) < (u); so the induction hypothesis for u0 tells


us that t u0

is reducible.


There is no other possibility, for t u cannot itself be a redex (t is not


of the form x: v).


In every case, we have seen that the neutral term t u converts into reducible

terms only. The induction hypothesis (CR 3) for V

allows us to conclude

that t u is reducible, and so t is reducible.


6.3Reducibility theorem


Lemma If u and v are reducible, then so is hu; vi.

Proof Because of (CR 1), we can reason by induction on (u) + (v) to show that 1hu; vi is reducible. This term converts to:

u, which is reducible.

1hu0; vi, with u0 one step from u. u0 is reducible by (CR 2), and we have(u0) < (u); so the induction hypothesis tells us that this term is reducible.

1hu; v0i, with v0 one step from v: this term is reducible for similar reasons.

In every case, the neutral term 12hu; vi converts to reducible terms only, and by

(CR 3) it is reducible. Likewise hu; vi, and so hu; vi is reducible.


6.3.2 Abstraction

Lemma If for all reducible u of type U, v[u=x] is reducible, then so is x: v.

Proof We want to show that ( x: v) u is reducible for all reducible u. Again we reason by induction on (v) + (u).

The term ( x: v) u converts to

v[u=x], which is reducible by hypothesis.

( x: v0) u with v0 one step from v; so v0 is reducible, (v0) < (v), and the induction hypothesis tells us that this term is reducible.

( x: v) u0 with u0 one step from u: u0 is reducible, (u0) < (u), and we conclude similarly.

In every case the neutral term ( x: v) u converts to reducible terms only, and by

(CR 3) it is reducible. So x: v is reducible.




6.3.3The theorem

Now we can prove the

Theorem All terms are reducible.

Hence, by (CR 1), we have the

Corollary All terms are strongly normalisable.

In the proof of the theorem, we need a stronger induction hypothesis to handle the case of abstraction. This is the purpose of the following proposition, from which the theorem follows by putting ui = xi.

Proposition Let t be any term (not assumed to be reducible), and suppose all the free variables of t are among x1; : : : ; xn of types U1; : : : ; Un. If u1; : : : ; un are reducible terms of types U1; : : : ; Un then t[u1=x1; : : : ; un=xn] is reducible.

Proof By induction on t. We write t[ u=x] for t[u1=x1; : : : ; un=xn].

1.t is xi: one has to check the tautology \if ui is reducible, then ui is reducible"; details are left to the reader.

2.t is 1w: by induction hypothesis, for every sequence u of reducible terms,

w[ u=x] is reducible. That means that 1(w[ u=x]) is reducible, but this term is nothing other than 1w[ u=x] = t[ u=x].

3.t is 2w: as 2.

4.t is hv; wi: by induction hypothesis both v[ u=x] and w[ u=x] are reducible.

Lemma 6.3.1 says that t[ u=x] = hv[ u=x]; w[ u=x]i is reducible.


t is w v: by induction

hypothesis w[ u=x]

and v[ u=x]

are reducible,



so (by de nition) is w[ u=x] (v[ u=x]);

but this term is

nothing other



t[ u=x].







t is y: w of type V !W : by induction hypothesis, w[ u=x; v=y] is reducible


for all v of type V .

Lemma 6.3.2


that t[ u=x] = y: (w[ u=x]) is








Chapter 7

G•odel's system T

The extremely rudimentary type system we have studied has very little expressive power. For example, can we use it to represent the integers or the booleans, and if so can we represent su ciently many functions on them? The answer is clearly no.

To obtain more expressivity, we are inexorably led to the consideration of other schemes: new types, or new terms, often both together. So it is quite natural that systems such as that of G•odel appear, which we shall look at brie y. That said, we come up against a two-fold di culty:

Systems like T are a step backwards from the logical viewpoint: the new schemes do not correspond to proofs in an extended logical system. In particular, that makes it di cult to study them.

By proposing improvements of expressivity, these systems suggest the possibility of further improvements. For example, it is well known that the language PASCAL does not have the type of lists built in! So we are led to endless improvement, in order to be able to consider, besides the booleans, the integers, lists, trees, etc. Of course, all this is done to the detriment of conceptual simplicity and modularity.

The system F resolves these questions in a very satisfying manner, as it will be seen that the addition of a new logical scheme allows us to deal with common data types. But rst, let us concentrate on the system T, which already has considerable expressive power.