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 X′ est 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 R′ est 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 R′ est 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 R′ est 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 R′ est 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