• Aucun résultat trouvé

Jean-Louis Krivine LAMBDA-CALCULUS TYPES AND MODELS

N/A
N/A
Protected

Academic year: 2022

Partager "Jean-Louis Krivine LAMBDA-CALCULUS TYPES AND MODELS"

Copied!
206
0
0

Texte intégral

(1)

LAMBDA-CALCULUS TYPES AND MODELS

Translated from french

by René Cori

(2)
(3)

Introduction 5

1 Substitution and beta-conversion 7

Simple substitution . . . 8

Alpha-equivalence and substitution . . . 12

Beta-conversion . . . 18

Eta-conversion . . . 24

2 Representation of recursive functions 29 Head normal forms . . . 29

Representable functions . . . 31

Fixed point combinators . . . 34

The second fixed point theorem . . . 37

3 Intersection type systems 41 SystemDΩ . . . 41

SystemD . . . 50

Typings for normal terms . . . 54

4 Normalization and standardization 61 Typings for normalizable terms . . . 61

Strong normalization . . . 68

βI-reduction . . . 70

TheλI-calculus. . . 72

βη-reduction . . . 74

The finite developments theorem . . . 77

The standardization theorem . . . 81

5 The Böhm theorem 87

3

(4)

6 Combinatory logic 95

Combinatory algebras . . . 95

Extensionality axioms . . . 98

Curry’s equations . . . 101

Translation ofλ-calculus . . . 105

7 Models of lambda-calculus 111 Functional models . . . 111

Spaces of continuous increasing functions . . . 116

Spaces of initial segments . . . 117

Applications . . . 125

Retractions . . . 130

Qualitative domains and stable functions . . . 134

8 System F 145 Definition of systemF types . . . 145

Typing rules for systemF . . . 146

The strong normalization theorem . . . 150

Data types in systemF . . . 153

Positive second order quantifiers . . . 159

9 Second order functional arithmetic 165 Second order predicate calculus . . . 165

SystemF A2 . . . 172

Realizability . . . 179

Data types . . . 182

Programming inF A2. . . 185

10 Representable functions in system F 193 Gödel’s¬-translation . . . 196

Undecidability of strong normalization. . . 199

Bibliography 203

(5)

The lambda-calculus was invented in the early 1930’s, by A. Church, and has been considerably developed since then. This book is an introduction to some aspects of the theory today : pure lambda-calculus, combinatory logic, seman- tics (models) of lambda-calculus, type systems. All these areas will be dealt with, only partially, of course, but in such a way, I think, as to illustrate their interdependence, and the essential unity of the subject.

No specific knowledge is required from the reader, but some familiarity with mathematical logic is expected ; in chapter 2, the concept of recursive function is used ; parts of chapters 6 and 7, as well as chapter 9, involve elementary topics in predicate calculus and model theory.

For about fifteen years, the typed lambda-calculus has provoked a great deal of interest, because of its close connections with programming languages, and of the link that it establishes between the concept of program and that of in- tuitionistic proof : this is known as the “ Curry-Howard correspondence ”. Af- ter the first type system, which was Curry’s, many others appeared : for ex- ample, de Bruijn’s Automath system, Girard’s systemF, Martin-Löf’s theory of intuitionistic types, Coquand-Huet’s theory of constructions, Constable’s Nuprl system...

This book will first introduce Coppo and Dezani’s intersection type system.

Here it will be called “ systemDΩ”, and will be used to prove some fundamen- tal theorems of pure lambda-calculus. It is also connected with denotational semantics : in Engeler and Scott’s models, the interpretation of a term is essen- tially the set of its types. Next, Girard’s systemF of second order types will be considered, together with a simple extension, denoted byF A2 (second order functional arithmetic). These types have a very transparent logical structure, and a great expressive power. They allow the Curry-Howard correspondence to be seen clearly, as well as the possibilities, and the difficulties, of using these systems as programming languages.

A programming language is a tool for writing a program in machine lan- guage (which is called the object code), in such a way as to keep control, as far as possible, on what will be done during its execution. To do so, the primi-

5

(6)

tive method would be to write directly, in one column, machine language, and, alongside, comments indicating what the corresponding instructions are sup- posed to do. The result of this is called a “ source program ”. Here, the aim of the “ compilation ”, which transforms the source program into an object code, will be to get rid of the comments.

Such a language is said to be primitive, or “ low level ”, because the com- puter does not deal with the comments at all ; they are entirely intended for the programmer. In a higher level language, part of these comments would be checked by the computer, and the remainder left for the programmer ; the

“ mechanized ” part of the comments is then called a “ typing ”. A language is considered high level if the type system is rich. In such a case, the aim of the compilation would be, first of all, to check the types, then, as before, to get rid of them, along with the rest of the comments.

The typed lambda-calculus can be used as a mathematical model for this situation ; the role of the machine language is played by the pure lambda- calculus. The type systems that are then considered are, in general, much more rich than those of the actual programming languages ; in fact, the types could almost be complete specifications of the programs, while the type checking (compilation) would be a “ program proof ”. These remarks are sufficient to ex- plain the great interest there would be in constructing a programming language based on typed lambda-calculus ; but the problems, theoretical and practical, of such an enterprise are far from being fully resolved.

This book is the product of a D.E.A. (postgraduate) course at the University of Paris 7. I would like to thank the students and researchers of the “ Equipe de Logique ” of Paris 7, for their comments and their contributions to the early versions of the manuscript, in particular Marouan Ajlani, René Cori, Jean-Yves Girard and Michel Parigot.

Finally, it gives me much pleasure to dedicate this book to my daughter Sonia.

Paris, 1990 I want to thank also Darij Grinberg and Robert Solovay, who have corrected errors in the proofs of corollary1.3and theorem7.16.

Paris, 2011

(7)

Substitution and beta-conversion

The terms of theλ-calculus (also calledλ-terms) are finite sequences formed with the following symbols : variablesx,y, . . . (the set of variables is assumed to be countable), left and right parenthesis, and the letterλ. They are obtained by applying, a finite number of times, the following rules :

• any variablexis aλ-term ;

• whenevertanduareλ-terms, then so is (t)u;

• whenevertis aλ-term andxis a variable, thenλx t is aλ-term.

The set of all terms of theλ-calculus will be denoted byL.

The term (t)ushould be thought of as “tapplied tou” ; it will also be denoted byt uif there is no ambiguity ; the term (. . . (((t)u1)u2) . . .)ukwill also be written (t)u1u2. . .uk or t u1u2. . .uk. Thus, for example, (t)uv, (t u)v andt uv denote the same term.

By convention, whenk=0, (t)u1u2. . .ukwill denote the termt.

Thefree occurrences of a variable x in a term t are defined, by induction, as follows :

iftis the variablex, then the occurrence ofxintis free ;

ift=(u)v, then the free occurrences ofxintare those ofxinuand v ;

ift=λy u, the free occurrences ofxintare those ofxinu, except ifx=y; in that case, no occurrence ofxint is free.

Afree variableint is a variable which has at least one free occurrence int.

A term which has no free variable is called aclosed term.

Abound variableintis a variable which occurs intjust after the symbolλ.

7

(8)

1. Simple substitution

Let t,t1, . . . ,tk be terms and x1, . . . ,xk distinct variables ; we define the term t<t1/x1, . . . ,tk/xk>as the result of the replacement of every free occurrence of xi intbyti (1≤ik). The definition is by induction ont, as follows :

ift=xi (1≤ik), thent<t1/x1, . . . ,tk/xk> =ti ;

iftis a variable6=x1, . . . ,xk, thent<t1/x1, . . . ,tk/xk> =t; ift=(u)v, then

t<t1/x1, . . . ,tk/xk> =(u<t1/x1, . . . ,tk/xk>)v<t1/x1, . . . ,tk/xk>; ift=λxiu(1≤ik), then

t<t1/x1, . . . ,tk/xk> =λxiu<t1/x1, . . . ,ti−1/xi−1,ti+1/xi+1, . . . ,tk/xk>; ift=λx u, withx6=x1, . . . ,xk, then

t<t1/x1, . . . ,tk/xk> =λx u<t1/x1, . . . ,tk/xk>. Such a substitution will be called asimpleone, in order to distinguish it from the substitution defined further on, which needs a change of bound variables.

Simple substitution corresponds, in computer science, to the notion ofmacro- instruction. It is also calledsubstitution with capture of variables.

With the notationt<t1/x1, . . . ,tk/xk>, it is understood thatx1, . . . ,xkare distinct variables. Moreover, their order does not matter ; in other words :

t<t1/x1, . . . ,tk/xk>=t<tσ1/xσ1, . . . ,tσk/xσk>for any permutationσof{1, . . . ,k}.

The proof is immediate by induction on the length oft ; also immediate is the following :

If t1, . . . ,tk are variables, then the term t<t1/x1, . . . ,tk/xk>has the same length as t .

Lemma 1.1. If the variable x1is not free in the term t of L, then : t<t1/x1, . . . ,tk/xk> =t<t2/x2, . . . ,tk/xk>.

Proof by induction ont. The result is clear whent is either a variable or a term of the form (u)v. Now supposet=λx u; then :

ifx=x1, then :

t<t1/x1, . . . ,tk/xk> =λx1u<t2/x2, . . . ,tk/xk> =t<t2/x2, . . . ,tk/xk>; ifx=xi withi6=1, sayx=xk, then :

t<t1/x1, . . . ,tk/xk> =λxku<t1/x1, . . . ,tk−1/xk−1>

=λxku<t2/x2, . . . ,tk1/xk1>

(by induction hypothesis, sincex1is not free inu)

=t<t2/x2, . . . ,tk/xk>; ifx6=x1, . . . ,xk, then :

t<t1/x1, . . . ,tk/xk> =λx u<t1/x1, . . . ,tk/xk> =λx u<t2/x2, . . . ,tk/xk>

(by induction hypothesis, sincex1is not free inu)=t<t2/x2, . . . ,tk/xk>.

Q.E.D.

(9)

Remark.Usually, in textbooks onλ-calculus (for example in [Bar84]), the simple sub- stitution is considered for only one variable. In a substitution such ast<u/x>, the term t is then called acontextor aterm with holes; the free occurrences of the variablexin t are calledholesand denoted by [ ]. The termt<u/x>is then denoted ast[u] and is called the result of the “ substitution of the termuin the holes of the contextt”.

The major problem about simple substitution is that it is notstable under com- position; if you consider two substitutions :

<t1/x1, . . . ,tm/xm>and<u1/y1, . . . ,un/yn>

then the application t7→t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>is not, in gen- eral, given by a substitution. For instance, we have :

y<y/x><x/y> =xandz<y/x><x/y> =zfor every variablez6=y. Thus, if the operation<y/x><x/y>was a substitution, it would be<x/y>. But this is false, becauseλy x<y/x><x/y> =λy yandλy x<x/y> =λy x.

In the following lemma, we give a partial answer to this problem. The definitive answer is given in the next section, with a new kind of substitution, which is stable by composition.

Lemma 1.2.

Let{x1, . . . ,xm},{y1, . . . ,yn}be two finite sets of variables, and suppose that their common elements are x1= y1, . . . ,xk = yk. Let t,t1, . . . ,tm,u1, . . . ,un be terms of L, and assume that no free variable of t1, . . . ,tmis bound in t . Then :

t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=t<t10/x1, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un/yn>, where ti0=ti<u1/y1, . . . ,un/yn>.

Proof by induction on the length oft:

i)tis a variable : the possible cases aret=xi (1≤im),t=yj (k+1≤jn), ortis another variable. In each of them, the result is immediate.

ii)t=(u)v ; the result is obvious, by applying the induction hypothesis touand v.

iii)t =λx u; we first observe that the result follows immediately from the in- duction hypothesis foru, ifx6=x1, . . . ,xm,y1, . . . ,yn.

Ifx=xi (1≤ik), sayx1, then :

t<t1/x1, . . . ,tm/xm> =λx1u<t2/x2, . . . ,tm/xm>.

Sincex1=y1, we have :

t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=λx1u<t2/x2, . . . ,tm/xm><u2/y2, . . . ,un/yn>.

By the induction hypothesis foru, we get : u<t2/x2, . . . ,tm/xm><u2/y2, . . . ,un/yn>

=u<t200/x2, . . . ,tm00/xm,uk+1/yk+1, . . . ,un/yn>

withti00=ti<u2/y2, . . . ,un/yn>.

(10)

But, sincex1=y1is bound int, by hypothesis, it is not a free variable ofti. From lemma1.1, it follows thatti00=ti<u1/y1, . . . ,un/yn> =ti0. Therefore :

t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=λx1u<t20/x2, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un/yn>

=t<t10/x1, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un/yn>. Ifx=xi (k+1≤im), sayxm, then :

t<t1/x1, . . . ,tm/xm> =λxmu<t1/x1, . . . ,tm−1/xm−1>, and sincexm6=y1, . . . ,yn, we get :

t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=λxmu<t1/x1, . . . ,tm−1/xm−1><u1/y1, . . . ,un/yn>. By the induction hypothesis foru, we get :

u<t1/x1, . . . ,tm1/xm1><u1/y1, . . . ,un/yn>

=u<t10/x1, . . . ,tm−10 /xm−1,uk+1/yk+1, . . . ,un/yn>, Thereforet<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=λxmu<t10/x1, . . . ,tm0 1/xm1,uk+1/yk+1, . . . ,un/yn>

=t<t10/x1, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un/yn>. Ifx=yj (k+1≤jn), sayyn, then :

t<t1/x1, . . . ,tm/xm> =λynu<t1/x1, . . . ,tm/xm>, sinceyn6=x1, . . . ,xm. Therefore t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=λynu<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un1/yn1>.

By the induction hypothesis foru, we get : u<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un−1/yn−1>

=u<t100/x1, . . . ,tm00/xm,uk+1/yk+1, . . . ,un1/yn1>, withti00=ti<u1/y1, . . . ,un−1/yn−1>.

But, since yn is bound in t, by hypothesis, it is not a free variable ofti. From lemma1.1, it follows thatti00=ti<u1/y1, . . . ,un/yn> =ti0. Therefore :

t<t1/x1, . . . ,tm/xm><u1/y1, . . . ,un/yn>

=λynu<t10/x1, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un−1/yn−1>

=t<t10/x1, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un/yn>.

Q.E.D.

Corollary 1.3. Let t,t1, . . . ,tmbeλ-terms, and{x1, . . . ,xm},{y1, . . . ,ym}two sets of variables such that none of the yi’s occur in t . Then :

t<y1/x1, . . . ,ym/xm><t1/y1, . . . ,tm/ym> =t<t1/x1, . . . ,tm/xm>. Suppose thatx1, . . . ,xk∉{y1, . . . ,ym} andxk+1, . . . ,xm∈{y1, . . . ,ym}.

Thenxk+1, . . . ,xmare not free intand therefore, by lemma1.1, we have : t<y1/x1, . . . ,ym/xm> =t<y1/x1, . . . ,yk/xk>.

The two sets {x1, . . . ,xk} and {y1, . . . ,ym} are disjoint, and the variablesy1, . . . ,ym

are not bound int. Therefore, by lemma1.2, we have :

(11)

t<y1/x1, . . . ,yk/xk><t1/y1, . . . ,tm/ym> =t<t1/x1, . . . ,tk/xk,t1/y1, . . . ,tm/ym>.

Buty1, . . . ,ym are not free int, and therefore, by lemma1.1: t<t1/x1, . . . ,tk/xk,t1/y1, . . . ,tm/ym> =t<t1/x1, . . . ,tk/xk>. Nowxk+1, . . . ,xm are not free int; thus, again by lemma1.1: t<t1/x1, . . . ,tk/xk> =t<t1/x1, . . . ,tm/xm>.

Q.E.D.

LetRbe a binary relation onL; we will say thatRisλ-compatibleif it is reflexive and satisfies :

t R t0λx t Rλx t0;t R t0,u R u0⇒(t)u R(t0)u0. Remark.A binary relationRisλ-compatible if and only if : x R xfor each variablex;

t R t0λx t Rλx t0;t R t0,u R u0⇒(t)u R(t0)u0for all termst,u,t0,u0. Indeed,t R t is easily proved, by induction on the length oft.

Lemma 1.4. If R isλ-compatible and t1R t10, . . . ,tkR tk0, then : t<t1/x1, . . . ,tk/xk>R t<t10/x1, . . . ,tk0/xk>.

Immediate proof by induction on the length oft.

Q.E.D.

Proposition 1.5. Let R be a binary relation on L. Then, the leastλ-compatible binary relationρcontaining R is defined by the following condition :

(1) tρt0there exists terms T,t1, . . . ,tk,t10, . . . ,tk0 and distinct variables x1, . . . ,xk such that tiR ti0(1ik) and t=T<t1/x1, . . . ,tk/xk>, t0=T<t10/x1, . . . ,tk0/xk>. Letρ0be the leastλ-compatible binary relation containingR, andρthe relation defined by condition (1) above. It follows from the previous lemma thatρ0ρ. It is easy to see thatρR (takeT =x1). It thus remains to prove thatρ isλ- compatible.

By takingk=0 in condition (1), we see thatρis reflexive.

Supposet=T<t1/x1, . . . ,tk/xk>,t0=T<t10/x1, . . . ,tk0/xk>. Lety1, . . . ,yk be dis- tinct variables not occurring inT. LetV =T<y1/x1, . . . ,yk/xk>. Then, it follows from corollary 1.3 that t =V<t1/y1, . . . ,tk/yk> and t0 =V<t10/y1, . . . ,tk0/yk>. Thus the distinct variablesx1, . . . ,xkin condition (1) can be arbitrarily chosen, except in some finite set.

Now supposetρt0anduρu0; then :

t=T<t1/x1, . . . ,tk/xk>,t0=T<t10/x1, . . . ,tk0/xk>withtiR ti0; u=U<u1/y1, . . . ,ul/yl>,u0=U<u01/y1, . . . ,u0l/yl>withujRu0j.

By the previous remark, we can assume thatx1, . . . ,xk,y1, . . . ,ylare distinct, dif- ferent fromx, and also that none of the xi’s occur inU, and none of the yj’s occur inT. Therefore :

(12)

λx t=(λx T)<t1/x1, . . . ,tk/xk>, λx t0=(λx T)<t10/x1, . . . ,tk0/xk>

which proves thatλx tρ λx t0. Also, by lemma1.1:

t=T<t1/x1, . . . ,tk/xk,u1/y1, . . . ,ul/yl>, t0=T<t10/x1, . . . ,tk0/xk,u01/y1, . . . ,u0l/yl>

(since none of theyj’s occur inT) ; and similarly :

u=U<t1/x1, . . . ,tk/xk,u1/y1, . . . ,ul/yl>, u0=U<t10/x1, . . . ,tk0/xk,u01/y1, . . . ,u0l/yl>

(since none of thexi’s occur inU).

LetV =(T)U; then (t)u=V<t1/x1, . . . ,tk/xk,u1/y1, . . . ,ul/yl>, (t0)u0=V<t10/x1, . . . ,tk0/xk,u10/y1, . . . ,ul0/yl>and thus (t)uρ(t0)u0.

Q.E.D.

2. Alpha-equivalence and substitution

We will now define an equivalence relation on the setLof allλ-terms. It is called α-equivalence, and denoted by≡.

Intuitively,tt0means thatt0is obtained fromtby renaming the bound vari- ables int; more precisely,tt0if and only iftandt0have the same sequence of symbols (when all variables are considered equal), the same free occurrences of the same variables, and if eachλbinds the same occurrences of variables in tand int0.

We definett0, onL, by induction on the length oft, by the following clauses : iftis a variable, thentt0if and only ift=t0;

ift=(u)v, thentt0if and only ift0=(u0)v0, withuu0andvv0; if t = λx u, then tt0 if and only if t0 =λx0u0, with u<y/x> ≡ u0<y/x0>for all variablesyexcept a finite number.

(Note thatu<y/x>has the same length asu, thus is shorter thant, which guar- antees the correctness of the inductive definition).

Proposition 1.6. If tt0, then t and t0have the same length and the same free variables.

The proof is done by induction on the length oft. The cases whentis a variable, ort=uvare trivial.

Suppose now thatt=λx uand thereforet0=λx0u0. Thus, we have : u<y/x> ≡u0<y/x0>for every variableyexcept a finite number.

(13)

We choose a variabley6=x,x0which, moreover, does not appear (free or bound) inu,u0. LetU(resp.U0) be the set of free variables ofu(resp.u0).

The setV of free variables ofu<y/x>isU ifxU and (U\ {x})∪{y} if xU. Also, the setV0of free variables ofu0<y/x0>isU0ifx0U0and (U0\ {x0})∪{y} if x0U0. Now, we haveV =V0, by the induction hypothesis.

IfxU, we haveyV, thusyV0andx0U0. ThusU=V =V0=U0andλx u, λx0u0have the same set of free variables, which isU.

IfxU, thenyV, thusyV0and thereforex0U0.

The set of free variables ofλx u(resp.λx0u0) isU\ {x}=V\ {y} (resp.U0\ {x0}= V0\ {y}). SinceV=V0, it is, once again, the same set.

Q.E.D.

The relationis an equivalence relation on L.

Indeed, the proof of the three following properties is trivial, by induction ont: tt;tt0t0t;tt0,t0t00tt00.

Proposition 1.7. Let t,t0,t1,t10. . . ,tk,tk0 beλ-terms, and x1, . . . ,xk distinct vari- ables. If tt0, t1t10, . . . , tktk0 and if no free variable in t1, . . . ,tk is bound in t,t0, then t<t1/x1, . . . ,tk/xk> ≡t0<t10/x1, . . . ,tk0/xk>.

Note that, sincett0, t and t0 have the same free variables. Thus it can be assumed thatx1, . . . ,xkare free int andt0; indeed, ifx1, . . . ,xl are thosexi vari- ables which are free intandt0, then, by lemma1.1:

t<t1/x1, . . . ,tk/xk> =t<t1/x1, . . . ,tl/xl>and

t0<t10/x1, . . . ,tk0/xk> =t0<t10/x1, . . . ,tl0/xl>.

Also, sincetiti0,tiandti0have the same free variables. Therefore, no free vari- able int1,t10, . . . ,tk,tk0 is bound int,t0.

The proof of the proposition proceeds by induction on t. The result is im- mediate ift is a variable, ort =(u)v. Supposet=λx u. Thent0=λx0u0and u<y/x> ≡u0<y/x0>for all variablesyexcept a finite number.

Sincex1, . . . ,xk are free int andt0,x andx0are different fromx1, . . . ,xk. Thus t<t1/x1, . . . ,tk/xk> =λx u<t1/x1, . . . ,tk/xk>and

t0<t10/x1, . . . ,tk0/xk> =λx0u0<t10/x1, . . . ,tk0/xk>.

Hence it is sufficient to show that :

u<t1/x1, . . . ,tk/xk><y/x> ≡u0<t10/x1, . . . ,tk0/xk><y/x0>

for all variablesyexcept a finite number.

Therefore, we may assume thaty6=x1, . . . ,xk. Sincex,x0are respectively bound int,t0, they are not free int1, . . . ,tk,t10, . . . ,tk0 ; thus, it follows from lemma1.2 that

u<t1/x1, . . . ,tk/xk><y/x> =u<t1/x1, . . . ,tk/xk,y/x>and u0<t10/x1, . . . ,tk0/xk><y/x0> =u0<t10/x1, . . . ,tk0/xk,y/x0>.

Sincey6=x1, . . . ,xk, we get, applying again lemma1.2:

(14)

u<y/x,t1/x1, . . . ,tk/xk> =u<y/x><t1/x1, . . . ,tk/xk>and u0<y/x0,t10/x1, . . . ,tk0/xk> =u0<y/x0><t10/x1, . . . ,tk0/xk>

and therefore :

u<t1/x1, . . . ,tk/xk><y/x> =u<y/x><t1/x1, . . . ,tk/xk>and u0<t10/x1, . . . ,tk0/xk><y/x0> =u0<y/x0><t10/x1, . . . ,tk0/xk>.

Now, sinceu<y/x> ≡u0<y/x0>for all variablesy except a finite number, and u<y/x>is shorter thant, the induction hypothesis gives :

u<y/x><t1/x1, . . . ,tk/xk> ≡u0<y/x0><t10/x1, . . . ,tk0/xk>, thus :

u<t1/x1, . . . ,tk/xk><y/x> ≡u0<t10/x1, . . . ,tk0/xk><y/x0>for all variables y ex- cept a finite number.

Q.E.D.

Corollary 1.8. The relationisλ-compatible.

Supposett0. We need to prove thatλx tλx t0, that is to say :

t<y/x> ≡t0<y/x>for all variablesy except a finite number. But this follows from proposition1.7, provided thatyis not a bound variable intor int0.

Q.E.D.

Corollary 1.9. If t,t1, . . . ,tk,t10, . . . ,tk0 are terms, and x1, . . . ,xk are distinct vari- ables, then :

t1t10, . . . ,tktk0t<t1/x1, . . . ,tk/xk> ≡t<t10/x1, . . . ,tk0/xk>. This follows from corollary1.8and lemma1.4.

Q.E.D.

However, note that it is not true thatuu0u<t/x> ≡u0<t/x>. For example, λy xλz x, whileλy x<y/x> =λy y6≡λz x<y/x> =λz y.

Lemma 1.10. λx tλy t<y/x>whenever y is a variable which does not occur in t .

By corollary1.3, t<z/x> =t<y/x><z/y>for any variablez, sincey does not occur int. Hence the result follows from the definition of≡.

Q.E.D.

Lemma 1.11. Let t be a term, and x1, . . . ,xkbe variables. Then there exists a term t0, t0t , such that none of x1, . . . ,xkare bound in t0.

The proof is by induction ont.

The result is immediate iftis a variable, or ift=(u)v.

Ift=λx u, then, by induction hypothesis, there exists a termu0,u0u, in which none ofx1, . . . ,xk are bound. By the previous lemma,tλx u0λy u0<y/x>

withy6=x1, . . . ,xk. Thus it is sufficient to taket0=λy u0<y/x>.

Q.E.D.

(15)

From now on, α-equivalent terms will be identified ; hence we will deal with the quotient setL/≡; it is denoted byΛ.

For each variablex, its equivalence class will still be denoted byx(it is actually {x}). Furthermore, the operations t,u 7→(t)u and t,x7→λx t are compatible with≡and are therefore defined inΛ.

Moreover, iftt0, thent andt0have the same free variables. Hence it is possi- ble to define the free variables of a member ofΛ.

Consider termst,t1, . . . ,tk ∈Λand distinct variables x1, . . . ,xk. Then the term t[t1/x1, . . . ,tk/xk]∈Λ(being the result of the replacement of every free occur- rence of xi in t byti, fori =1, . . . ,k) is defined as follows : let t,t1, . . . ,tk be terms of L, the equivalence classes of which are respectively t,t1, . . . ,tk. By lemma1.11, we may assume that no bound variable oftis free int1, . . . ,tk. Then t[t1/x1, . . . ,tk/xk] is defined as the equivalence class oft<t1/x1, . . . ,tk/xk>. In- deed, by proposition1.7, this equivalence class does not depend on the choice oft,t1, . . . ,tk.

So the substitution operationt,t1, . . . ,tk 7→t[t1/x1, . . . ,tk/xk] is well defined in Λ. It corresponds to the replacement of the free occurrences of xi in t byti

(1≤ik), provided that a representative of t has been chosen such that no free variable int1, . . . ,tkis bound in it.

The substitution operation satisfies the following lemmas, already stated for the simple substitution :

Lemma 1.12. If the variable x1is not free in the term t ofΛ, then : t[t1/x1, . . . ,tk/xk]=t[t2/x2, . . . ,tk/xk].

Immediate from lemma1.1and the definition oft[t1/x1, . . . ,tk/xk].

Q.E.D.

The following lemma shows that the substitution behaves much better in Λ than inL (compare with lemma1.2). In particular, it shows that the compo- sition of two substitutions gives a substitution.

Lemma 1.13. Let{x1, . . . ,xm},{y1, . . . ,yn}be two finite sets of variables, and sup- pose that their common elements are x1=y1, . . . ,xk=yk.

Let t,t1, . . . ,tm,u1, . . . ,unbe terms ofΛ. Then :

t[t1/x1, . . . ,tm/xm][u1/y1, . . . ,un/yn]=t[t10/x1, . . . ,tm0 /xm,uk+1/yk+1, . . . ,un/yn] where ti0=ti[u1/y1, . . . ,un/yn].

Lett,t1, . . . ,tm,u1, . . . ,un be some representatives of t,t1, . . . ,tm,u1, . . . ,un. By lemma 1.11, we may assume that no bound variable of t is free in t1, . . . ,tm, u1, . . . ,un, and that no bound variable oft1, . . . ,tmis free inu1, . . . ,un.

Références

Documents relatifs

Concerning Scott-continuous semantics, we investigate the class of graph models and prove that no order graph theory can be r.e., and that there exists an effective graph model

In this paper, we present an extension of λµ-calculus called λµ ++ - calculus which has the following properties: subject reduction, strong normalization, unicity of the

This is close to usual Montague semantics where simply typed λ- calculus (intuitionistic propositional logic) with two base types e and t is used to express and to glue formulae of

Le pic de dureté enregistré est plus supérieur comparativement aux pics de dureté des autres tôles (2, 4, 7 et 8) sans cuivre. Cette amélioration de durcissement est justifiée par

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Figure 1 Regional tectonic map of the Tibetan plateau and station distribution of this study showing major su- ture zones, terranes, fault systems, the dip and plunge of the

Indeed, within the sub-family of pure lambda terms, the perfect normalisation is equivalent to the strong normalisation, that is known to be undecidable (a nice proof can be found in

Le kaolin a présenté une zone de cisaillement hétérogène (Figure 7.43), du point de vue angle d’orientation de la matrice argileuse (compris entre 35° et 55°). Au dessous de