• Aucun résultat trouvé

1.3 Irr´eversibilit´e des contextes

2.1.4 Stabilit´e

On examine dans cette partie les propri´et´es de monotonie et de stabilit´e du λ-calcul par valeur. La preuve de la propri´et´e de monotonie est adapt´ee de la preuve pour le λ-calcul. Pour prouver la propri´et´e de stabilit´e, on utilise de fa¸con cruciale la propri´et´e de standardisation. Intuitivement, si M →→v N , la r´eduction standard issue de M et aboutissant `a N peut ˆetre vue comme une

r´eduction minimale, qui ne contracte que les radicaux n´ecessaires pour atteindre N . La d´efinition de la r´eduction standard permet de d´efinir la r´eduction de tˆete qui est la r´eduction minimale permettant d’atteindre une valeur (si une valeur est atteignable). Cette r´eduction de tˆete ne fait intervenir qu’un pr´efixe de M . Ce pr´efixe est constitu´e des sous-termes qui contribuent `a l’obtention d’une valeur.

Lemme 2.11 Si X 4 Y et V 4 W , alors X{x\V } 4 Y {x\W }. Preuve : On proc`ede par induction sur la structure de X.

1. Si X = x, on a bien X{x\V } = V 4 W = Y {x\W }. 2. Si X = y ou X = Ω, le r´esultat est ´el´ementaire.

3. Si X = λy.X1, on a n´ecessairement Y = λy.Y1 o`u X14Y1. L’hypoth`ese d’induction donne

M v 4 N v    M′ 4 N

Fig.2.8 – Monotonie dans le λ-calcul par valeur

4. Si X = X1X2, on conclut, comme pr´ec´edemment, par hypoth`ese d’induction. 

La relation de pr´efixe est compatible avec la substitution. Cette propri´et´e est cruciale pour montrer la r´eduction par valeur est monotone. Cette propri´et´e de monotonie est illustr´ee sur la figure 2.8. La preuve de ce lemme est adapt´ee de la preuve dans le cas du λ-calcul.

Lemme 2.12 (Monotonie) Si M 4 N et M →→v M′, alors il existe un terme N′ tel que

N →→vN′ et M′4N′.

Preuve : On consid`ere dans un premier temps une r´eduction M →v M′ ´el´ementaire. On proc`ede

induction sur la r´eduction M →vM′.

1. Si M = (λx.M1)V1→v M1{x\V1} = M′, on a n´ecessairement N = (λx.N1)W1avec M14N1

et V14W1. De l`a, N →vN1{x\W1} = N′. On conclut par le lemme 2.11.

2. Si M = M1M2 →v M1′M2 = M′ avec M1 →v M1′, on a n´ecessairement N = N1N2 avec

M14N1et M24N2. Par hypoth`ese d’induction, on obtient un terme N1′ tel que N1→vN1′

avec M′

1 4 N1′. En posant N′ = N1′N2, on obtient bien le r´esultat voulu : N →v N′ et

M′4N.

3. Les autres cas se traitent comme pr´ec´edemment en utilisant l’hypoth`ese d’induction. Ce r´esultat se g´en´eralise imm´ediatement `a une r´eduction en n ´etapes (n ≥ 0).  Si le terme M minore le terme N et si M se r´eduit vers M′, alors le terme N se r´eduit vers un terme N′ qui est minor´e par M. Pour montrer le th´eor`eme de stabilit´e, on utilise l’op´eration

d’intersection entre deux pr´efixes X et X′ d’un mˆeme terme. L’intersection de X et Xest le

plus grand pr´efixe commun `a X et X′. Plus formellement, cette op´eration est d´efinie r´ecursivement de la fa¸con suivante.

X ∩ Ω = Ω Ω ∩ X = Ω

x ∩ x = x λx.X ∩ λx.Y = λx.(X ∩ Y ) XX′∩ Y Y= (X ∩ Y )(X∩ Y)

L’intersection de deux abstractions est l’abstraction dont le corps est l’intersection des corps des abstractions. L’intersection d’une application est l’application dont le membre gauche (respective- ment droit) est l’intersection des membres gauches (resp. droits) des applications. L’intersection est une op´eration interne sur les pr´efixes d’un terme M . Cette op´eration est r´eflexive, sym´etrique et admet M comme ´el´ement neutre et Ω comme ´el´ement absorbant. L’intersection v´erifie la propri´et´e suivante vis-`a-vis des valeurs.

Lemme 2.13 Si V et V′ sont des valeurs qui v´erifient V 4 W et V′4W , le pr´efixe V ∩ V′ est une valeur qui v´erifie V ∩ V′ 4W .

Preuve : Ce r´esultat est ´el´ementaire.  L’intersection de deux valeurs qui sont des pr´efixes d’une mˆeme valeur est une valeur. L’intersection v´erifie ´egalement une propri´et´e moins ´el´ementaire de commutation avec la substitution.

Lemme 2.14 Si X et Y sont des pr´efixes d’un mˆeme terme, et si V et W sont des valeurs qui sont des pr´efixes d’une mˆeme valeur, alors on a X{x\V } ∩ Y {x\W } = (X ∩ Y ){x\V ∩ W }. Preuve : On pose Z = (X ∩ Y ){x\V ∩ W }. On proc`ede par induction sur la structure de X.

1. Si X = Ω, on a bien (Ω ∩ Y ){x\V ∩ W } = Ω = Ω{x\V } ∩ Y {x\W }. 2. Le cas X = y (o`u y 6= x) est ´el´ementaire.

3. Si X = x, Y peut ˆetre de deux formes. (a) Si Y = Ω, on est ramen´e au premier cas.

(b) Si Y = x, on a (X ∩ Y ){x\V ∩ W } = V ∩ W = X{x\V } ∩ Y {x\W }. 4. Si X = X1X2, Y peut ˆetre de deux formes.

(a) Si Y = Ω, on est ramen´e au premier cas.

(b) Si Y = Y1Y2, on a Z = (X1∩ Y1){x\V ∩ W }(X2 ∩ Y2){x\V ∩ W }. Par hypoth`ese

d’induction, on obtient l’´egalit´e suivante.

Z = (X1{x\V } ∩ Y1{x\W })(X2{x\V } ∩ Y2{x\W }) = X{x\V } ∩ Y {x\W }

5. Si X = λy.X1, on obtient le r´esultat en utilisant, comme pr´ec´edemment, l’hypoth`ese d’in-

duction. 

La substitution dans l’intersection entre X et Y de la variable x par l’intersection entre V et W est l’intersection entre la substitution dans X de x par V et la substitution dans Y de x par W . Ce r´esultat est utilis´e dans le lemme technique suivant qui examine les propri´et´es de la r´eduction standard.

Lemme 2.15

1. Si la r´eduction R : (λx.M )N →v(λx.M′)N →→v P est standard, alors il existe un terme M0

tel que P = (λx.M0)N .

2. Si la r´eduction R : (λx.M )V →v(λx.M )V′ →→vP est standard, alors il existe un terme M0

et une valeur V0 tels que P = (λx.M0)V0.

3. Si N est une application et si la r´eduction R : N M →v N M′ →→v P est standard, alors il

existe un terme M0tel que P = N M0.

Intuitivement, cette s´erie de propri´et´es montre qu’au cours d’une r´eduction standard, si, `a une ´etape, le radical minimal (pour ≤st) du terme obtenu n’est pas r´eduit, un r´esidu de ce radical

perdure jusqu’`a la fin de la r´eduction standard.

Preuve : On montre successivement ces propri´et´es. Soit S le radical contract´e au cours de la premi`ere r´eduction de R. Dans tous les cas, on proc`ede par r´ecurrence sur la longueur n de R. Le cas de base n = 1 est ´el´ementaire. On suppose maintenant n > 1.

1. On pose R1: (λx.M )N →v (λx.M′)N . Le radical S est contenu dans M . Soit R′ le radical

contract´e dans (λx.M′)N . On consid`ere les trois cas possibles.

(a) Si R′ est cr´e´e par la contraction de S, alors Rest dans M. On a donc la r´eduction

(λx.M′)N −→R′

v (λx.M′′)N . On conclut par hypoth`ese de r´ecurrence.

(b) Le cas o`u R′est un r´esidu d’un radical R de N est exclu par le fait que R est standard.

(c) Si R′ est un r´esidu d’un radical R de M , alors Rest dans M. On conclut comme

pr´ec´edemment par hypoth`ese de r´ecurrence.

2. On pose R1 : (λx.M )V →v (λx.M )V′. Le radical S est contenu dans V . Soit R′ le radical

contract´e dans (λx.M )V′. On consid`ere les quatre cas possibles.

(a) Le cas R′ = (λx.M )V′ est exclu par le fait que la r´eduction est standard.

(b) Si R′ est cr´e´e par la contraction de S, alors R′ est dans V′. On a donc la r´eduction (λx.M )V′ R−→′ v(λx.M )V′′. On conclut par hypoth`ese de r´ecurrence.

(c) Si R′ est un r´esidu d’un radical R de M , on a (λx.M )V′ R−→

v(λx.M′)V′. On conclut

par la propri´et´e pr´ec´edente.

(d) Si R′ est un r´esidu d’un radical R de V , alors Rest dans V. On conclut comme

3. On pose R1 : N M →vN M′. Le radical S est contenu dans M . Soit R′ le radical contract´e

dans N M′. On consid`ere les trois cas possibles.

(a) Si R′ est cr´e´e par la contraction de S, alors Rest dans M. On a donc la r´eduction

N M′ R−→

vN M′′. On conclut par hypoth`ese de r´ecurrence.

(b) Le cas o`u R′ est r´esidu d’un radical R de N est exclu par le fait que R est standard.

(c) Si R′ est r´esidu d’un radical R de M , alors on a N M′ R−→

vN M′′. On conclut par

hypoth`ese de r´ecurrence.  Ce r´esultat nous am`ene `a introduire la notion de r´eduction en tˆete qui est la r´eduction standard qui contracte `a chaque ´etape le radical minimal pour l’ordre total ≤st. L’int´erˆet de cette d´efinition

r´eside dans le r´esultat suivant.

Lemme 2.16 Si la r´eduction R : M →→v V est standard, alors il existe une r´eduction de tˆete

Rt: M →→vV′ et une r´eduction standard Rs: V′→→v V telles que R = Rt; Rs.

Preuve : Pour prouver ce r´esultat, il suffit de montrer que la r´eduction standard menant de M `a la premi`ere valeur atteinte au cours de la r´eduction R est une r´eduction de tˆete. C’est pourquoi, on suppose d´esormais que V est la premi`ere valeur atteinte par R (les termes interm´ediaires entre M et V ne sont pas des valeurs). On veut montrer que R est une r´eduction de tˆete. On proc`ede par r´ecurrence sur la longueur de R.

Base Si M = V , on obtient directement le r´esultat voulu Rt= R = ∅.

R´ecurrence Si R : M −→S v M′ →→v V est une r´eduction de longueur n + 1. On consid`ere les

diff´erents cas possibles pour M .

1. Si M = (λx.M1)W . Comme R est standard et comme R aboutit `a une valeur, le

lemme 2.15 implique que le radical contract´e est n´ecessairement M . La r´eduction R s’´ecrit donc M −→M vM′= M1{x\W } →→v V . On d´ecompose R en R0; R′ en posant

R0: M−→M v M1{x\W } et R′ : M1{x\W } →→vV . La r´eduction standard R′ est, par

hypoth`ese de r´ecurrence, une r´eduction de tˆete. La r´eduction R est donc ´egalement une r´eduction de tˆete.

2. Si M = (λx.M1)M2 o`u M2 n’est pas une valeur. Comme R est standard et abou-

tit `a une valeur, en utilisant le lemme 2.15, on obtient que R s’´ecrit n´ecessairement (λx.M1)M2→v(λx.M1)M21→v. . . →v(λx.M1)M2k→v(λx.M1)W →→vV o`u M2i pour

i ∈ {1 . . . k} n’est pas une valeur. Par hypoth`ese de r´ecurrence, la r´eduction standard de M2 `a W est une r´eduction de tˆete. La r´eduction R0: (λx.M1)M2→→v(λx.M1)W

est en cons´equence une r´eduction de tˆete. En utilisant le cas pr´ec´edent, on obtient que R′ : (λx.M

1)W →→v V est une r´eduction de tˆete. La r´eduction R = R0; R′ est donc

bien une r´eduction de tˆete.

3. Si M = M1M2 o`u M1 est une application. Comme R est standard et aboutit `a une

valeur, en utilisant le lemme 2.15, on obtient que la r´eduction R s’´ecrit n´ecessairement M1M2→vM11M2→vM12M2→v . . . →vM1kM2→v (λx.M3)M2→→v V o`u, pour i tel

que 1 ≤ i ≤ k, le terme Mi

1est une application. Par hypoth`ese de r´ecurrence, la r´eduction

standard M1 →→v λx.M3 est une r´eduction de tˆete. On conclut en utilisant les points

pr´ec´edents. 

Une r´eduction standard peut se d´ecomposer en la composition d’une r´eduction en tˆete et d’une r´eduction standard. Ceci signifie intuitivement qu’une r´eduction standard est une r´eduction de tˆete jusqu’au moment o`u le radical minimal pour ≤stn’est pas r´eduit. La r´eduction qui commence

`

a ce moment est standard. Ce r´esultat de d´ecomposition, associ´e aux propri´et´es de la r´eduction standard mentionn´ees dans le lemme 2.15, permet prouver que si M se r´eduit vers une valeur, alors M se r´eduit par une r´eduction en tˆete vers une valeur. Ce r´esultat est exploit´e dans le preuve du th´eor`eme de stabilit´e.

Th´eor`eme 2.5 (Stabilit´e) Si M →→v V , il existe un pr´efixe X de M tel que, pour tout Y , si

Y 4 M et Y →→vV′, on a X 4 Y .

Preuve : On consid`ere la r´eduction M →→vV . Soient X1et X2deux pr´efixes de M qui se r´eduisent

vers une valeur. En utilisant le th´eor`eme de standardisation et le lemme 2.16, on sait qu’il existe des r´eductions R0 : M →→v V0, R1 : X1 →→v V1 et R2 : X2 →→v V2 qui sont des r´eductions en

tˆete aboutissant `a des valeurs et dont les termes interm´ediaires ne sont pas des valeurs. On montre par r´ecurrence sur la longueur n de la r´eduction R0 que V1 et V2 sont des pr´efixes de V0et que le

pr´efixe X = X1∩ X2de M se r´eduit ´egalement vers la valeur V1∩ V2.

Base Si M = V0, le terme Xi (pour i ∈ {1,2}) est un pr´efixe d’une valeur. Par cons´equent, deux

cas sont possibles : le terme Xi est une valeur ou Xi = Ω. Comme Xi se r´eduit vers une

valeur, Xi est n´ecessairement une valeur et on a Xi = Vi. Par cons´equent, en utilisant le

lemme 2.13, X1∩ X2 est ´egalement une valeur.

R´ecurrence On suppose que la r´eduction R0: M →vM′→→vV0 est de longueur n + 1. M n’est

donc pas une valeur. On en d´eduit que Xi (pour i ∈ {1,2}) n’est pas une valeur. On ´ecrit la

r´eduction Ri: Xi→vXi′→→v Vi. On proc`ede par cas sur la structure de M .

1. Si M = (λx.N )W , alors M′= N {x\W }. Comme Xi (pour i ∈ {1,2}) est un pr´efixe de

M qui se r´eduit vers une valeur, on a n´ecessairement Xi = (λx.Yi)Wi avec Yi 4N et

Wi 4W et o`u Wi est une valeur. Comme Xi →→v Vi est une r´eduction de tˆete, on a

Xi′ = Yi{x\Wi}. Le lemme 2.11 donne Xi′4M′. On a X1∩X2= (λx.Y1∩ Y2)(W1∩W2)

o`u, d’apr`es le lemme 2.15, W1∩ W2est une valeur pr´efixe de W . On obtient la r´eduction

X1∩X2→v (Y1∩Y2){x\W1∩W2}. Le lemme 2.14 donne (Y1∩Y2){x\W1∩W2} = X1′∩X2′.

Par hypoth`ese d’induction, on obtient que X′

1∩ X2′ se r´eduit vers une valeur. On en

d´eduit que X1∩ X2 se r´eduit vers une valeur.

2. Si M = (λx.N )P o`u P n’est pas une valeur, la r´eduction R0 s’´ecrit n´ecessairement

M = (λx.N )P →→v(λx.N )W0→→vV0 o`u R′0 : P →→v W0 est une r´eduction en tˆete.

Comme Xi (pour i ∈ {1,2}) est un pr´efixe de M qui se r´eduit vers une valeur, Xi

est n´ecessairement de la forme Xi = (λx.Yi)Zi o`u Yi 4N et Zi 4P . Comme Ri est

une r´eduction en tˆete qui aboutit `a une valeur, cette r´eduction s’´ecrit n´ecessairement Ri : (λx.Yi)Zi →→v (λx.Yi)Wi →→v Vi o`u Wi est une valeur et R′i : Zi →→v Wi est une

r´eduction en tˆete dont les termes interm´ediaires ne sont pas des valeurs. La r´eduction R′ 0

est de longueur inf´erieure `a n. En utilisant l’hypoth`ese de r´ecurrence, on obtient, pour i ∈ {1,2}, la relation Wi4W . Et on obtient la r´eduction en tˆete Z1∩ Z2→→vW1∩ W2. Par

cons´equent, on a X1∩ X2= (λx.Y1∩ Y2)(Z1∩ Z2) →→v (λx.Y1∩ Y2)(W1∩ W2). En uti-

lisant le lemme 2.14, on obtient (λx.Y1∩ Y2)(W1∩ W2) = ((λx.Y1)W1) ∩ ((λx.Y2)W2).

Pour conclure, on applique l’hypoth`ese de r´ecurrence sur R′′

0 : (λx.N )W0→→v V0 et

R′′

i : (λx.Yi)Wi→→vVi (pour i ∈ {1,2}).

3. Le cas M = N P o`u N est une application se traite de fa¸con similaire aux cas pr´ec´edents. On a montr´e l’existence d’un plus petit pr´efixe X de M parmi les pr´efixes de M qui se r´eduisent vers une valeur. Le lemme de monotonie 2.12 implique que tout pr´efixe plus grand que X se r´eduit ´egalement vers une valeur. 

Si un terme M se r´eduit vers une valeur V , alors il existe un pr´efixe minimal X de M qui se r´eduit vers une valeur. Par monotonie, tous les pr´efixes de M minor´e par X se r´eduisent ´egalement vers une valeur. Le λ-calcul par valeur v´erifie donc, comme le λ-calcul, la th´eor`eme de stabilit´e.

Fig.2.9 – R´eduction par valeur de M = ((λx.(λy.yd)c)b((λz.zh)g(λu.uj)i)f)a

Dans le document Security Properties in the lambda-calculus. (Page 46-51)

Documents relatifs