Combinateurs et structures de réalisabilité
Jean-Louis Krivine
Université Paris VII, C.N.R.S.
30 juillet 2009
Unestructure de réalisabilitéest constituée par trois ensemblesΛ(ensemble destermes),Π (ensemble despiles),Λ?Π(ensemble desprocessus) avec les opérations suivantes :
(ξ,η)7→(ξ)ηdeΛ2dansΛ(application) ; (ξ,π)7→ξ
.
πdeΛ×ΠdansΠ(empiler) ; (ξ,π)7→ξ?πdeΛ×ΠdansΛ?Π(processus) ; π7→kπdeΠdansΛ(continuation).(π,τ)7→πτdeΠ×ΛdansΠ(tas).
On a l’identité (ξ
.
π)τ=ξ.
(πτ). On l’écrira doncξ.
πτ.On a des éléments distingués K,S,I,W,C,B,cc,χ,χ0deΛ(combinateurs, instructions).
On a une partie⊥⊥deΛ?Π. Si p,p0∈Λ?Π, on pose pÂp0pourp∉ ⊥⊥ ⇒p0∉ ⊥⊥.
On suppose que⊥⊥estsaturé, ce qui veut dire que : I?ξ
.
πÂξ?π.K?ξ
.
η.
πÂξ?π.S?ξ
.
η.
ζ.
πÂξ?ζ.
ηζ.
π.W?ξ
.
η.
πÂξ?η.
η.
π.C?ξ
.
η.
ζ.
πÂξ?ζ.
η.
π. B?ξ.
η.
ζ.
πÂξ?ηζ.
π.cc?ξ
.
πÂξ?kπ.
π.kπ?ξ
.
$Âξ?π. χ?ξ.
πτÂξ?τ.
π.χ0?ξ
.
τ.
πÂξ?πτ.Remarque.On pourrait définirI=SK K.
Notation.Le terme (. . . (((ξ)η1)η2) . . .)ηnsera aussi notéξη1η2. . .ηn. Par exemple : ξηζ=(ξ)ηζ=(ξη)ζ=((ξ)η)ζ.
Diverses abstractions (notées ν , µ , λ )
Soit t un terme construit avec des variables, des constantes et l’application (fonction bi- naire). On définitνx t par récurrence surt:
νx x=I; νx y=K ysiyest une variable6=x;νx t u=((S)νx t)νx u).
Théorème 1. νx1. . .νxnt u?ξ1
.
. . ..
ξn.
πÂνx1. . .νxnt?ξ1.
. . ..
ξn.
(νx1. . .νxnu)ξ1. . .ξn.
π.Preuve par récurrence surn. C’est évident sin=0. Pourn≥1, on a :
νx1. . .νxnt u=νx1. . .νxn−1((S)νxnt)νxnu. Par hypothèse de récurrence, on a donc : νx1. . .νxnt u?ξ1
.
. . ..
ξn.
πÂνx1. . .νxn−1(S)νxnt?ξ1
.
. . ..
ξn−1.
(νx1. . .νxnu)ξ1. . .ξn−1.
ξn.
πÂνx1. . .νxn−1S?ξ1
.
. . ..
ξn−1.
(νx1. . .νxnt)ξ1. . .ξn−1.
(νx1. . .νxnu)ξ1. . .ξn−1.
ξn.
π ÂS?(νx1. . .νxnt)ξ1. . .ξn−1.
(νx1. . .νxnu)ξ1. . .ξn−1.
ξn.
πÂνx1. . .νxnt?ξ1. . .ξn
.
(νx1. . .νxnu)ξ1. . .ξn.
π.C.Q.F.D.
On définit maintenant µx t par récurrence surt ; pour cela, on utilise le premier cas appli- cable dans la liste suivante :
µx x=I;
µx t=K t sitne contient pasx.
µx t u=(Cµx t)usiune contient pasx.
µx t u=(B t)µx usitne contient pasx.
µx t u=(Sµx t)µx u.
Remarque. On pourrait supprimer la clause définissantµx t u lorsquet ne contient pasx, en conservant le théorème 2.
Soientt un terme,~ξune suite de termes,~xune suite de variablesdistinctes, de même lon- gueur que~ξ; ~xt est la sous-suite des variables qui sont danst,~ξt la sous-suite correspon- dante de~ξ.
Théorème 2. µ~x(t)u1. . .uk?~ξ
.
πµ~xtt?~ξt.
(µ~xu1u1)~ξu1.
. . ..
(µ~xukuk)~ξuk.
π.On montre d’abord le cask=1, c’est-à-dire : µ~x t u?~ξ
.
πµ~xtt?~ξt.
(µ~xuu)~ξu.
π.Preuve par récurrence sur la longueur de~x. C’est évident si cette longueur est 0.
On considère donc maintenant les deux suites ~x yet~ξη.
Sit,une contiennent pasy, on aµy t u=(K)(t)u. Donc :
µ~xµy t u?~ξ
.
η.
π≡µ~x(K)(t)u?~ξ.
η.
π. Par hypothèse de récurrence, on a donc : µ~xµy t u?~ξ.
η.
πÂK?(µ~xt ut u)~ξt u.
η.
πµ~xt ut u?~ξt u.
π.D’où le résultat en appliquant encore l’hypothèse de récurrence.
Sitcontienty, mais pasu, on a µy t u=((C)µy t)u.
Par hypothèse de récurrence, on a donc :
µ~xµy t u?~ξ
.
η.
πµ~xt(C)µy t?~ξt.
(µ~xuu)~ξu.
η.
π.En appliquant encore l’hypothèse de récurrence, on a donc :
µ~xµy t u?~ξ
.
η.
πÂC?(µ~xtµy t)~ξt.
(µ~xuu)~ξu.
η.
πµ~xtµy t?~ξt.
η.
(µ~xuu)~ξu.
π.Siucontienty, mais past, on a µy t u=(B t)µy u.
Par hypothèse de récurrence, on a donc :
µ~xµy t u?~ξ
.
η.
πµ~xtB t?~ξt.
(µ~xuµy u)~ξu.
η.
π.En appliquant encore l’hypothèse de récurrence, on a donc :
µ~xµy t u?~ξ
.
η.
πÂB?(µ~xtt)~ξt.
(µ~xuµy u)~ξu.
η.
πµ~xtt?~ξt.
(µ~xuµy u)~ξuη.
π.Sit,ucontiennentytous les deux, on a µy t u=((S)µy t)µy u.
Par hypothèse de récurrence, on a donc :
µ~xµy t u?~ξ
.
η.
πµ~xt(S)µy t?~ξt.
(µ~xuµy u)~ξu.
η.
π.En appliquant encore l’hypothèse de récurrence, on a donc :
µ~xµy t u?~ξ
.
η.
πÂS?(µ~xtµy t)~ξt.
(µ~xuµy u)~ξu.
η.
πµ~xtµy t?~ξt.
η.
(µ~xuµy u)~ξuη.
π Le cas général oùk≥1 se démontre trivialement par récurrence surk.C.Q.F.D.
Soit t un terme construit avec des variables, des constantes et l’application (fonction bi- naire). On définitλx t par récurrence surt ; pour cela, on utilise le premier cas applicable dans la liste suivante :
λx t=K t sitne contient pasx.
λx x=I.
λx t x=tsitne contient pasx.
λx t x=(W)λx t.
λx t u=(Cλx t)usiune contient pasx.
λx t u=(B t)λx usitne contient pasx.
λx t u=(Sλx t)λx u.
Théorème 3. λ~x(t)u1. . .uk?~ξ
.
πÂλ~xtt?~ξt.
(λ~xu1u1)~ξu1.
. . ..
(λ~xukuk)~ξuk.
π sauf l’exception suivante :Lorsque uiest une variable z qui est dans la suite~x, soitζl’élément de la suite~ξqui correspond à z. On doit alors remplacer(λ~xuiui)~ξui, qui est en fait(λz z)ζ, parζ.
On montre d’abord le cask=1, c’est-à-dire : λ~x t u?~ξ
.
πÂλ~xtt?~ξt.
(λ~xuu)~ξu.
πsauf siuest une variablezqui est dans la suite~x, auquel cas :
λ~x t z?~ξ
.
πÂλ~xtt?~ξt.
ζ.
π oùζest l’élément de la suite~ξqui correspond àz.On fait la preuve par récurrence sur la longueur de~x. C’est trivial si cette longueur est nulle.
On remplace donc maintenant~xpar~x y et~ξpar~ξη. Sit,une contiennent pasy, on aλy t u=(K)(t)u. Donc :
λ~xλy t u?~ξ
.
η.
π≡λ~x(K)(t)u?~ξ.
η.
π. Par hypothèse de récurrence, on a donc : λ~xλy t u?~ξ.
η.
πÂK?(λ~xt ut u)~ξt u.
η.
πÂλ~xt ut u?~ξt u.
π.D’où le résultat en appliquant encore l’hypothèse de récurrence.
Siu=yettne contient pasy, on aλy t y=t. Donc :
λ~xλy t u?~ξ
.
η.
π≡λ~xt?~ξ.
η.
π. Par hypothèse de récurrence, on a donc : λ~xλy t u?~ξ.
η.
πÂλ~xtt?~ξt.
η.
π.Siu=yettcontienty, on aλy t y=(W)λy t. Donc :
λ~xλy t u?~ξ
.
η.
π≡λ~x(W)λy t?~ξ.
η.
π. Par hypothèse de récurrence, on a donc : λ~xλy t u?~ξ.
η.
πÂW?(λ~xtλy t)~ξt.
η.
πÂλ~xtλy t?~ξt.
η.
η.
π.Siuest une variablezqui est dans la suite~x, on aλy t z=(Cλy t)z. Donc :
λ~xλy t u?~ξ
.
η.
π≡λ~x(Cλy t)z?~ξ.
η.
π. Par hypothèse de récurrence, on a donc :λ~xλy t u?~ξ
.
η.
πÂλ~xt(C)λy t?~ξt.
ζ.
η.
πÂC?(λ~xtλy t)~ξt.
ζ.
η.
πÂλ~xtλy t?~ξt.
η.
ζ.
π.Sitcontienty, mais pasu, on a λy t u=(Cλy t)u.
Par hypothèse de récurrence, on a donc :
λ~xλy t u?~ξ
.
η.
πÂλ~xt(C)λy t?~ξt.
(λ~xuu)~ξu.
η.
π.En appliquant encore l’hypothèse de récurrence, on a donc :
λ~xλy t u?~ξ
.
η.
πÂC?(λ~xtλy t)~ξt.
(λ~xuu)~ξu.
η.
πÂλ~xtλy t?~ξt.
η.
(λ~xuu)~ξu.
π.Siucontienty, mais past, on a λy t u=(B t)λy u.
Par hypothèse de récurrence, on a donc :
λ~xλy t u?~ξ
.
η.
πÂλ~xtB t?~ξt.
(λ~xuλy u)~ξu.
η.
π.En appliquant encore l’hypothèse de récurrence, on a donc :
λ~xλy t u?~ξ
.
η.
πÂB?(λ~xtt)~ξt.
(λ~xuλy u)~ξu.
η.
πÂλ~xtt?~ξt.
(λ~xuλy u)~ξuη.
π.Sit,ucontiennentytous les deux, on a λy t u=(Sλy t)λy u. Par hypothèse de récurrence, on a donc :
λ~xλy t u?~ξ
.
η.
πÂλ~xt(S)λy t?~ξt.
(λ~xuλy u)~ξu.
η.
π. En appliquant encore l’hypothèse de récurrence, on a donc :λ~xλy t u?~ξ
.
η.
πÂS?(λ~xtλy t)~ξt.
(λ~xuλy u)~ξu.
η.
πÂλ~xtλy t?~ξt.
η.
(λ~xuλy u)~ξuη.
π Le cas général oùk≥1 se démontre trivialement par récurrence surk.C.Q.F.D.
Exemple.SiT ne contient pasx,y, d’après le théorème 3, on a : λxλy(T)y x?ξ
.
η.
πÂT?η.
ξ.
π.En fait, on a λxλy(T)y x=C T.
Plus généralement, siσ est une application de {1, . . . ,n} dans lui-même,~x=(x1, . . . ,xn) et
~xσ=(xσ1, . . . ,xσn), alors λ~x T~xσ?~ξ
.
πÂT?~ξσ.
π siT ne contient pas~x.La preuve est immédiate, d’après le théorème 3.
Majoration de la longueur
Soitt unλ-terme, de longueurl g(t)=N ; soit ˆtµsaµ-traduction (page 2). On montre que l g(ˆtµ)≤N3. Comme laλ-traduction det(page 3) est plus courte, sa longueur est aussi≤N3. On fait la preuve par récurrence surN. On écritt=λx1. . .λxnuv, d’où :
tˆµ =((P0) . . . (Pn)µ~xuuˆµ)µ~xvvµ. La longueur du préfixe (P0) . . . (Pn) est≤n2/2 (quand u,v contiennent tous les deuxx1, . . . ,xn, ce préfixe est (S)(B S)(B2S) . . . (Bn−1S)).
Soientn0,n00,p,qles longueurs de~xu,~xv,u,v. On a doncN≥n+p+q+1 et, par hypothèse de récurrence,l g(µ~xuuˆµ)≤(n0+p)3(longueur du transformé deλ~xuu)
etl g(µ~xvvˆµ)≤(n00+q)3.
Par suite, on a l g(ˆtµ)≤n2/2+(n0+p)3+(n00+q)3. Il reste donc à montrer que :
(n+p+q+1)3≥n2/2+(n0+p)3+(n00+q)3; pour cela, il suffit évidemment de montrer que (n+p+q)3≥(n0+p)3+(n00+q)3. Or, on a :
(n+p+q)3−(n0+p)3−(n00+q)3=
n3−n03−n003+3p(n2−n02)+3q(n2−n002)+3p2(n−n0)+3q2(n−n00)+3pq(2n+p+q)
≥n3−n03−n003+3pq(2n+p+q) puisquen≥n0,n00.
Or, commeucontient toutes les variables de~xu, on a évidemmentp>n0; de même,q>n00. On a donc (n+p+q)3−(n0+p)3−(n00+q)3≥n3−n03−n003+3n0n00(2n+n0+n00).
Pour montrer que cette quantité est≥0, on peut supposer n≥n0≥n00. On a alors n3−n03≥0 et 3n0n00(2n+n0+n00)−n003≥0, d’où le résultat.
La majoration enO(N3) ne peut pas être améliorée comme le montre leλ-terme : λxn. . .λx0(f)x0x1. . .xn. En effet, siτnest laλ-traduction de ceλ-terme, on a : τ0=f ;τn=(C)(BC) . . . (Bn−1C)τn−1.
On peut obtenir une majoration quadratique avec la variante suivante :
Soit t un terme construit avec des variables, des constantes et l’application (fonction bi- naire). On définitλx t par récurrence surt ; pour cela, on utilise le premier cas applicable dans la liste suivante :
λx At=B KA t siAest clos ettne contient pasx.
λx t=K t sitne contient pasx.
λx x=I.
{{λx t x=tsitne contient pasx.
λx At x=AWλx t siAest clos ;AW =(BW)(B)A.
λx t x=(W)λx t.}}
λx At u=(ABt)λx usiAest clos ettne contient pasx; AB=B B A.
λx At u=(ACλx t)usiAest clos etune contient pasx;AC=(BC)(B)A.
λx At u=(ASλx t)λx usiAest clos ;AS=(B S)(B)A.
λx t u=(B t)λx usitne contient pasx.
λx t u=(Cλx t)usiune contient pasx.
λx t u=(Sλx t)λx u.
Si on supprime les clauses entre {{}}, on a la définition deµx t. SiAest clos, on a alors µxn. . .µx1At u=(Anµ~xtt)µ~xuu avec :
A0=A, An+1=B K Ansit,une contiennent pasxn+1;B B Ansiucontientxn+1, mais past ; (BC)(B)Ansitcontientxn+1, mais pasu; (B S)(B)Ansit,ucontiennentxn+1.
Anest donc de longueur≤7n+l g(A). En appliquant la méthode précédente, on trouve donc O(N2) comme majoration de la longueur de laµ-traduction d’unµ-terme de longueurN.
On a la même majoration pour laλ-traduction, puisque celle-ci est plus courte.
Cette majoration enO(N2) est optimale, comme on le voit avec le mêmeλ-terme : λxn. . .λx0(f)x0x1. . .xn. Siτnest sa nouvelleλ-traduction, on a maintenant :
τ0=f etτn=An−1τn−1, avecA0=CetAn=(BC)(B)An−1. Doncτn=(An−1) . . . (A1)(A0)f. Remarque. La propriété(λx t)µ=Ktˆµ lorsquex n’est pas libre danst permet de montrer tà[u/x])µ=tˆµ[ ˆuµ/x]. De même pour laλ-traduction. Par contre, cette propriété est fausse pour laν-traduction (prendret=λy x,u=v vqui ne contient pasy).
Déduction naturelle
Chaqueλ-termet est donc traduit en trois termes ˆtν, ˆtµ, ˆtλ écrits avec l’application, les va- riables et les combinateurs (pages 2, 3).
Théorème 4(Lemme d’adéquation). Si x1:A1, . . . ,xn:An`t:A, alors : i)νx1. . .νxntˆν||−A1, . . . ,An→A ;
ii)µx1. . .µxntˆµ||−A1, . . . ,An→A ; iii)λx1. . .λxntˆλ||−A1, . . . ,An→A.
Preuve par récurrence sur la longueur de la démonstration de x1:A1, . . . ,xn:An`t:A.
On considère la dernière règle utilisée ; la seule qui pose problème est le modus ponens : x1:A1, . . . ,xn:An`t:B→A,x1:A1, . . . ,xn:An`u:B ⇒ x1:A1, . . . ,xn:An`t u:A.
On fixe ξ1||−A1, . . . ,ξn||−An et π∈ kAk. i) Par hypothèse de récurrence, on a :
νx1. . .νxntˆν||−A1, . . . ,An,B→A et νx1. . .νxnuˆν||−A1, . . . ,An→B ; donc :
(νx1. . .νxnuˆν)ξ1. . .ξn||−B et νx1. . .νxntˆν?ξ1
.
. . ..
ξn.
(νx1. . .νxnuˆν)ξ1. . .ξn.
π∈ ⊥⊥. On veut montrer que νx1. . .νxntˆνuˆν||−A1, . . . ,An→A, soit :νx1. . .νxntˆνuˆν?ξ1
.
. . ..
ξn.
π∈ ⊥⊥. Or, d’après le théorème 1, on a :νx1. . .νxntˆνuˆν?ξ1
.
. . ..
ξn.
πÂνx1. . .νxntˆν?ξ1.
. . ..
ξn.
(νx1. . .νxnuˆν)ξ1. . .ξn.
π. D’où le résultat.ii) Par hypothèse de récurrence, on aµ~xttˆµ?~ξt
.
η.
π∈ ⊥⊥pour toutη||−B et (µ~xuuˆµ)~ξu||−B. Par suite, on a µ~xttˆµ?~ξt.
(µ~xuuˆµ)~ξu.
π∈ ⊥⊥.D’après le théorème 2, on a donc µ~xtˆµuˆµ?~ξ
.
π∈ ⊥⊥. iii) Par hypothèse de récurrence, on a :λ~xttˆλ?~ξt
.
η.
π∈ ⊥⊥ pour toutη||−B et (λ~xuuˆλ)~ξu||−B. Par suite, on a λ~xttˆλ?~ξt.
(λ~xuuˆλ)~ξu.
π∈ ⊥⊥.D’après le théorème 3, on a donc λ~xtˆλuˆλ?~ξ
.
π∈ ⊥⊥sauf siuest une variablezqui est dans la suite~x. Dans ce cas, λ~xtˆλz?~ξ.
πÂλ~xttˆλ?~ξt.
ζ.
π etζ est l’élément de la suite~ξ qui correspond àz. Par hypothèse suru(noter qu’on a iciu=z), on ax1:A1, . . . ,xn:An`z:B ; d’après le lemme 5, on a doncζ||−B, d’où λ~xttˆλ?~ξt.
ζ.
π∈ ⊥⊥.C.Q.F.D.
Lemme 5. Si z:U[~x,~X]`z:B[~x,~X] et si ζ||−U[~a,X~ ], alors ζ||−B[~a,X~] (~a,X~ sont des paramètres).
Par récurrence sur la longueur de la preuve de z :U `z :B. Les seules règles utilisées ne peuvent être que l’axiome,∀-élim ou∀-intro. Dans les trois cas, le résultat est trivial.
C.Q.F.D.
Proposition 6. i) Si t||−A→B , alors ∀u(u||−A⇒t u||−B).
ii) Si∀u(u||−A⇒t u||−B), alors V t||−A→B pour V =(S)(K)I ou V =B I . i) D’aprèst u?πÂt?u
.
π.ii) D’aprèsV t?u
.
πÂt u?π.C.Q.F.D.
Combinateur de point fixe
Théorème 7. Soit Y un combinateur tel que Y?ξ
.
πÂξ?Yξ.
π.Si f :N2→Ntelle que f(x,y)=0est une relation bien fondée surN, alors : Y ||− ∀X∀x{∀x[∀y(f(x,y)=07→X y)→X x]→X x}.
On montre, par induction sur la relation bien fondéef(x,y)=0, que l’on a : Y ?ξ
.
π∈ ⊥⊥siπ∈ kX xketξ||− ∀x[∀y(f(x,y)=07→X y)→X x].Par hypothèse surY, il suffit de montrer que ξ?Yξ
.
π∈ ⊥⊥.Par hypothèse surξ, il suffit de montrer queYξ||− ∀y(f(x,y)=07→X y).
C’est évident si f(x,y)6=0, par définition dea=b7→F.
Si f(x,y)=0, on doit montrerYξ||−X y, c’est-à-direYξ?ρ∈ ⊥⊥siρ∈ kX yk.
Or, on a Yξ?ρÂY ?ξ
.
ρqui est dans⊥⊥par hypothèse d’induction.C.Q.F.D.
On peut poserY =(λx xx)AavecA=λaλf(f)(a)a f (combinateur de Turing).
On a, en effet : Y ?ξ
.
πÂλx xx?A.
ξ.
πÂA?A.
ξ.
π≡λaλf(f)(a)a f ?A.
ξ.
π.D’après le théorème 3, on a donc (puisqueλaλf(a)a f =λa aa=W I) : Y ?ξ
.
πÂφ?(λa aa)Aξ.
π≡ξ?Yξ.
π.Remarque.Noter que l’on a A=((B)(S)I)(W)I donc Y =(W I)((B)(S)I)(W)I.
SoitAun combinateur tel que A?α
.
ξ.
πÂξ?ααξ.
π. On peut alors poser Y =A A.On a, en effet : A A?ξ
.
πÂA?A.
ξ.
πÂξ?A Aξ.
π.On peut alors prendre A=(W)(B)(S)I ou A=(C)(W)(BC)(BW)(B B)B.
Mise en mémoire
On pose T=λoλfλn(n)U f o=(C)(BC)(C)(C)IU, avec U =λgλx(g)(σ)x=C Bσ.
On a donc T=(C)(BC)(C)(C I)(C B)σ.
Soientσ,odes termes quelconques. On a alors, d’après le théorème 3 : T?o
.
φ.
ν.
πÂν?U.
φ.
o.
π.Théorème 8. Pour tout terme o, on a To||− ∀X∀n(({σno}→X),int(n)→X).
To est donc un opérateur de mise en mémoire.
Soient φ||−{σno}→X,ν||−int(n) etπ∈ kXk. On doit montrer To?φ
.
ν.
π∈ ⊥⊥ c’est-à-dire ν?U.
φ.
o.
π∈ ⊥⊥. On définit le prédicat unaireY en posantkY ik ={σn−io.
π} pour 0≤i≤n etkY ik = ;pouri>n.Par hypothèse surν,φ,π, on a ν||− ∀y(Y y→Y s y),Y0→Y n),φ||−Y0 eto
.
π∈ kY nk. Il suffit donc de montrer que U ||− ∀y(Y y→Y s y), c’est-à-direU ||−Y i→Y sipour touti∈N.C’est évident sii ≥n. Sii <n, soitξ||−Y i ; on doit montrerU?ξ
.
σn−i−1o.
π∈ ⊥⊥. Or, on a U?ξ.
σn−i−1o.
πÂξ.
σn−io.
π∈ ⊥⊥.C.Q.F.D.
Remarque. Si on pose T0=λsλoλfλn(nλgλx(g)(s)x)f o, on a T0=(BC)(B2C)(BC)((B)(C)I)(C)B et T0?σ
.
o.
φ.
ν.
πÂν?C Bσ.
φ.
o.
π.L’opérateur de mise en mémoire est donc Tσo.
Composition de structures
On considère deux structures de réalisabilitéS =(Λ,Π,Λ?Π,⊥⊥) etS0=(Λ0,Π0,Λ0?Π0,;).
On définit une structure composéeS1=(Λ×Λ0,Π×Π0, (Λ?Π)×(Λ0?Π0),⊥⊥1).
(ξ,ξ0)?(π,π0)=(ξ?π,ξ0?π0) ; (ξ,ξ0)
.
(π,π0)=(ξ.
π,ξ0.
π0) ; (π,π0)(τ,τ0)=(πτ, (π0)τ0) ; (ξ,ξ0)(η,η0)=((ξη)∗,ξ0η0) ;chaque combinateurU est donné par (U∗,U0). (ξη)∗etU∗seront définis plus bas.U0est le combinateur deS0.
Pour chaque processusξ0?π0deS0, on a un ensembleC[ξ0?π0]⊂Λet des quasi-preuves α,β, . . . deΛ(termes composés avec les combinateurs et l’application deS, sans continua- tionkπ) tels que :
α∈ |C[K0?ξ0
.
η0.
π0]→C[ξ0?π0]|; β∈ |C[S0?ξ0.
η0.
ζ0.
π0]→C[ξ0?ζ0.
η0ζ0.
π0]|; . . . On définit ⊥⊥1={(ξ?π,ξ0?π0) ; (∀τ∈C[ξ0?π0])ξ?πτ∈ ⊥⊥}.Lemme 9. Si Aγ=(χ)((B)(χ0)A)γ, alors Aγ?πτÂA?πγτ. En particulier, si on pose γ=(χ)((B)(χ0)I)γ=Iγ, on a aussi : γA?πτÂA?πγτ.
Trivial.
C.Q.F.D.
Remarque.On peut aussi poser γ=λx(χ)λy(χ0x)(γ)y=(Bχ)((C)(B)Bχ0)γ. Définition deK∗,S∗, . . .
Le combinateurK deS1est (K∗,K0). On doit avoir : (K∗,K0)?(ξ,ξ0)
.
(η,η0).
(π,π0)Â(ξ,ξ0)?(π,π0), soit : (ξ?π,ξ0?π0)∈ ⊥⊥1⇒(K∗?ξ.
η.
π,K0?ξ0.
η0.
π0)∈ ⊥⊥1.Soit doncτ∈C[K0?ξ0
.
η0.
π0], d’oùγτ∈C[ξ0?π0], avecγ∈ |C[K0?ξ0.
η0.
π0]→C[ξ0?π0]|.Il suffit donc de définir K∗de façon que K∗?ξ
.
η.
πτÂK?ξ.
η.
πγτ. En effet, on aura alorsK∗?ξ.
η.
πτÂξ?πγτ.D’après le lemme 9, on peut poserK∗=(χ)((B)(χ0)K)γ ou encore γK. Définitions identiques pourS∗,W∗, . . .
Définition de(ξη)∗
On doit avoir (ξ,ξ0)(η,η0)?(π,π0)∉ ⊥⊥1⇒(ξ,ξ0)?(η,η0)
.
(π,π0)∉ ⊥⊥1 soit : (ξ?η.
π,ξ0?η0.
π0)∈ ⊥⊥1⇒((ξη)∗?π,ξ0η0?π0)∈ ⊥⊥1.Soit doncτ∈C[ξ0η0?π0], d’où γτ∈C[ξ0?η0
.
π0] avec γ:C[ξ0η0?π0]→C[ξ0?η0.
π0].Par hypothèse, on a donc ξ?η
.
πγτ∈ ⊥⊥. Il suffit donc de définir (ξη)∗) de façon que : (ξη)∗.
πτÂξ?η.
πγτ.D’après le lemme 9, on donc peut poser : (ξη)∗=(χ)((B)(χ0)(ξ)η)γ.
On peut aussi poser (ξη)∗=(γ)(ξ)η ou γξη.
Définition dek∗πetcc∗.
L’instructionk(π,π0)deS1est (k∗π,kπ0). On doit avoir : (k∗π,kπ0)?(ξ,ξ0)
.
($,$0)Â(ξ,ξ0)?(π,π0) ou encore : (ξ?π,ξ0?π0)∈ ⊥⊥1⇒(k∗π?ξ.
$,kπ0?ξ0.
$0)∈ ⊥⊥1.Soit doncτ∈C[kπ0?ξ0
.
$0] d’où γτ∈C[ξ0?π0], en supposant γ:C[kπ0?ξ0.
$0]→C[ξ0?π0].On doit avoir : ξ?πγτ∈ ⊥⊥ ⇒k∗π?ξ
.
$τ∈ ⊥⊥.On pose donc : k∗π=λx(χ)λy(kπ)(χ0x)(γ)y=(Bχ)((B)(B)kπ)((C)(B)Bχ0)γ.
En effet, d’après le théorème 3, on a :
k∗π?ξ
.
$τÂχ?(λxλy(kπ)(χ0x)(γ)y)ξ.
$τÂλxλy(kπ)(χ0x)(γ)y?ξ.
τ.
$. D’après le théorème 3, on a :k∗π?ξ
.
$τÂkπ?(λxλy(χ0x)(γ)y)ξτ.
$Âλxλy(χ0x)(γ)y?ξ.
τ.
πÂχ0?ξ.
γτ.
πÂξ?πγτ. On peut aussi poser k†γ=λkλx(χ)λy(k)(χ0x)(γ)y=((B)(B)χ)((C)(B)B B)((C)(B)Bχ0)γ.On a alors, par un calcul analogue :
k†γkπ?ξ
.
$τÂξ?πγτ. On peut donc poser aussi : k∗π=k†γkπ.L’instructionccdeS1est (cc∗,cc0). On doit avoir :
(cc∗,cc0)?(ξ,ξ0)
.
(π,π0)Â(ξ,ξ0)?(k∗π,kπ0).
(π,π0) ou encore : (ξ?k∗π.
π,ξ0?kπ0.
π0)∈ ⊥⊥1⇒(cc∗?ξ.
π,cc0?ξ0.
π0)∈ ⊥⊥1.Soit doncτ∈C[cc0?ξ0
.
π0], d’oùβτ∈C[ξ0?kπ0.
π0], avecβ:C[cc0?ξ0.
π0]→C[ξ0?kπ0.
π0].On a donc ξ?k∗π
.
πβτ∈ ⊥⊥, donc cc∗?ξ.
πτ∈ ⊥⊥ si l’on choisitcc∗tel que : cc∗?ξ.
πτÂξ?k∗π.
πβτOn prend k∗π=k†γkπavec γ:C[kπ0?ξ0
.
$0]→C[ξ0?π0].On pose cc∗=λx(χ)λy(cc)λk((χ0x)(β)y)(k†γ)k; on a alors la propiété voulue pourcc∗. En effet, d’après le théorème 3, on a :
cc∗?ξ
.
πτÂχ?(λxλy(cc)λk((χ0x)(β)y)(k†γ)k)ξ.
πτÂλxλy(cc)λk((χ0x)(β)y)(k†γ)k?ξ.
τ.
π.Toujours d’après le théorème 3, on a :
cc∗?ξ
.
πτÂcc?(λxλyλk((χ0x)(β)y)(k†γ)k)ξτ.
πÂλxλyλk((χ0x)(β)y)(k†γ)k?ξ.
τ.
kπ.
π.On écrit λk((χ0x)(β)y)(k†γ)k=((B)(χ0x)(β)y)k†γ et on applique deux fois le théorème 3.
On obtient :
cc∗?ξ
.
πτÂλxλy(B)(χ0x)(β)y?ξ.
τ.
k†γ.
kπ.
πÂB?(λxλy(χ0x)(β)y)ξτ.
k†γ.
kπ.
π Âλxλy(χ0x)(β)y?ξ.
τ?k†γkπ.
πÂχ0?ξ.
βτ.
k†γkπ.
πÂξ?k†γkπ.
πτ.Remarque.Noter que l’on a cc∗=(Bχ)((B)(B)cc)((C)(BC)((B)(B)B)((C)(B B)χ0)β)k†γ. Rappelons que k†γ=((B)(B)χ)((C)(B)B B)((C)(B)Bχ0)γ
Définition deχ∗etχ0∗
Le combinateurχdeS1est (χ∗,χ0). On doit avoir :
(χ∗,χ0)?(ξ,ξ0)
.
(π,π0)(τ,τ0)∉ ⊥⊥1⇒(ξ,ξ0)?(τ,τ0).
(π,π0)∉ ⊥⊥1, soit : (ξ?τ.
π,ξ0?τ0.
π0)∈ ⊥⊥1⇒(χ∗?ξ.
πτ,χ0?ξ0.
πτ00)∈ ⊥⊥1.Soit donc σ∈C[χ0?ξ0
.
πτ00], d’où δσ∈C[ξ0?τ0.
π0]. On a donc ξ?τ.
πδσ∈ ⊥⊥, d’où χ∗?ξ.
(πτ)σ∈ ⊥⊥, par définition du combinateurχ∗:χ∗?ξ
.
(πτ)σÂξ?τ.
πδσ. On pose donc :χ∗=(χ)((B)(χ)(C)(χ0)(C)I)δ avec δ:C[χ0?ξ0
.
πτ00]→C[ξ0?τ0.
π0].On peut aussi poser :
χ∗=λx(χ)λy(χ)(χ0x)(δ)y=(Bχ)((B)(B)χ)((C)(B)Bχ0)δ En effet, d’après le théorème 3, on a :
λx(χ)λy(χ)λz((χ0x)(δ)y)z?ξ
.
(πτ)σÂχ?(λxλy(χ)λz((χ0x)(δ)y)z)ξ.
(πτ)σ Âλxλy(χ)λz((χ0x)(δ)y)z?ξ.
σ.
(πτ)σÂχ?(λxλyλz((χ0x)(δ)y)z)ξσ.
πτÂλxλyλz((χ0x)(δ)y)z?ξ
.
σ.
τ.
πÂλxλy(χ0x)(δ)y?ξ.
σ.
τ.
πÂχ0?ξ.
δσ.
τ.
πÂξ?τ.
πδσ. Le combinateurχ0deS1est (χ0∗,χ00). On doit avoir :(χ0∗,χ00)?(ξ,ξ0)
.
(τ,τ0).
(π,π0)∉ ⊥⊥1⇒(ξ,ξ0)?(π,π0)(τ,τ0)∉ ⊥⊥1, soit : (ξ?πτ,ξ0?πτ00)∈ ⊥⊥1⇒(χ0∗?ξ.
τ.
π,χ00?ξ0.
τ0.
π0)∈ ⊥⊥1.Soit donc σ∈C[χ00?ξ0
.
τ0.
π0], d’où δ0σ∈C[ξ0?πτ00]. On a donc ξ?(πτ)δ0σ∈ ⊥⊥, d’où χ0∗?ξ.
τ.
πσ∈ ⊥⊥, par définition du combinateurχ0∗:χ0∗?ξ
.
τ.
πσÂξ?(πτ)δ0σ. On pose donc :χ0∗=(C)(χ)((B)(C)(χ0)(χ0)I)δ0 avec δ0:C[χ00?ξ0
.
τ0.
π0]→C[ξ0?πτ00].On peut aussi poser :
χ0∗=(χ)λxλy(χ0)(χ0y)(δ0)x=(χ)((B)(B)χ0)((B)(C)χ0)δ0. En effet, d’après la définition deχ, puis le théorème 3, on a :
(χ)λxλy(χ0)(χ0y)(δ0)x?ξ
.
τ.
πσÂλxλy(χ0)(χ0y)(δ0)x?σ.
ξ.
τ.
πÂχ0?(λxλy(χ0y)(δ0)x)σξ