• Aucun résultat trouvé

maisy6=

α

x. Cependant, on a toujours |[u]|=|[t|

p

]| etPos([u]) =Pos([t|

p

]).

On ne peut donc pas définir les λ-contextes sur Λ(Σ) comme des termes de Λ(Σ) à

trous, comme on l’a fait en 1.1.19 pour Ter(Σ,X). Par contre, chaque λ-contexte peut

être représenté par un terme à trou deL(Σ).

Définition 1.2.18 (Lambda-contextes) L’ensemble des λ-contextes est le plus petit

ensemble de fonctions Λ(Σ)→ Λ(Σ) qui contient l’identité [ ] :Λ(Σ) →Λ(Σ) et tel que

si C[ ] est un λ-contexte, alors

— pour toutx∈ X, la fonction C[λx.[ ]] :u7→C[ ](λx.u) en est un,

— pour toutt∈Λ(Σ), la fonction C[[ ]·t] :u7→C[ ](u·t) en est un,

— pour toutt∈Λ(Σ), la fonction C[t·[ ]] :u7→C[ ](t·u) en est un,

— pour toutf ∈Σ

n

, pour tout t

1

, . . . , t

n

∈Λ(Σ), pour tout i∈{1, . . . , n}, la fonction

C[f(t

1

, . . . , t

i−1

,[ ], t

i+1

, . . . , t

n

)] : u 7→ C[ ](f(t

1

, . . . , t

i−1

, u, t

i+1

, . . . , t

n

))

en est un.

SiC[ ]est unλ-contexte, on désigneC[ ](t)parC[t]. Lesλ-contextes sont aussi appelés

« contextes ».

Définition 1.2.19 Soit L ⊆ Λ(Σ). Si C[ ] : Λ(Σ) → Λ(Σ) est un contexte tel que

C[t]∈L pour tout t∈L, alors c’estun L-contexte, noté C[ ] :L→L.

On définit maintenant la relation « sous-terme » dans Λ(Σ).

Définition 1.2.20 Étant donnés t, u∈Λ(Σ), on dit que uest un sous-terme de t s’il

existe un contexte C[ ] différent de l’identité tel quet=C[u].

Remarque 1.2.21 La relation sous-terme sur Λ(Σ) ne préserve pas les classes d’α

-équivalence. En effet,x etysont des sous-termes de[λx.x]car [λx.x] = [λy.y].

1.3 Substitution sans capture

Nous allons maintenant définir la substitution sans capture. Notre définition diffère de

celle de Krivine donnée dans son livre [Kri90]. En effet, cette dernière pose des difficultés

si on a besoin de définir une relation de réécriture surΛ(Σ)comme étant le quotient d’une

relation de réécriture sur L(Σ). C’est typiquement ce que nous faisons à la section 4.3

pour la réécriture conditionnelle puis au chapitre 8 pour traiter la préservation de la

confluence par curryfication.

Cela nous amène à définir la substitution sans capture surΛ(Σ) à partir d’une notion

de substitution sans capture qui est une fonction partielle surL(Σ). Cette façon de faire

semble originale.

Chapitre 1 Structures de termes

Définition 1.3.1 (Substitution partielle sans capture) Étant donnée une valuation

σsurL(Σ), lasubstitution sans capture_σest la fonction partielleL(Σ)→L(Σ)définie

comme suit :

xσ =

def

σ(x) si x∈ Dom(σ)

xσ =

def

x sinon

f(t

1

, . . . , t

n

)σ =

def

f(t

1

σ, . . . , t

n

σ) si f∈Σ

n

(t

1

t

2

)σ =

def

t

1

σ t

2

σ

(λx.t

1

)σ =

def

λx.(t

1

σ) si x /∈ Dom(σ)∪FV(σ)

C’est à cause de la dernière clause que la fonction _σ:L(Σ)→L(Σ)n’est pas totale. En

particulier,tσn’est pas définie siBV(t)∩ Dom(σ)6=∅. Par contre, siσ est la valuation

de domaine vide, alorstσest défini.

Lorsque le contexte le permet, nous identifions une substitution _σ à sa valuationσ.

On désigne parFV(σ) l’ensemble {FV(σ(x))| x∈ Dom(σ)} des variables libresde σ, et

parBV(σ) l’ensemble{BV(σ(x))| x∈ Dom(σ)} l’ensemble de sesvariables liées.

Lorsqu’elle est définie, la substitution partielle sans capture correspond à la

substitu-tion du premier ordre. Rappelons qu’une valuasubstitu-tion est une foncsubstitu-tion de domaine fini.

Proposition 1.3.2 Pour tout t ∈ L(Σ) et toute valuation σ : X → Λ(Σ), si tσ est

défini, alorstσ=σ(t).

Preuve. Par induction surt.

t=x∈ X. Si x∈ Dom(x), alors,tσ=σ(x) =σ(t). Sinon,tσ=t=σ(t).

t = f(~t). Comme~tσ est défini, on a~tσ = σ(~t) par hypothèse d’induction. Il s’en suit

que f(~t)σ=f(~tσ) =f(σ(~t)) =σ(f(~t)).

t = t

1

t

2

. Comme t

1

σ et t

2

σ sont définis, par hypothèse d’induction t

1

σ = σ(t

1

) et

t

2

σ=σ(t

2

), donct

1

t

2

)σ=σ(t

1

θ

2

).

t=λx.t

1

. Commetσest défini, on atσ=λx.(t

1

σ). Or, commet

1

σest défini, il suit de

l’hypothèse d’induction que t

1

σ=σ(t

1

), d’oùtσ=σ(λx.t

1

) =σ(t).

Remarque 1.3.3

(i) Notons que tσ est défini si BV(t) est disjoint de FV(σ) et de Dom(σ). C’est en

particulier le cas lorsque tne contient pas de variables liées.

(ii) Grâce au lemme 1.2.10, pour tout t ∈ L(Σ), pour toute substitution σ, il existe

t

=

α

ttel que t

σest défini.

La proposition1.3.2nous permet d’étendre la proposition1.1.16aux substitutions sans

capture.

Proposition 1.3.4 Soient t ∈ L(Σ) et σ, σ

sont deux substitutions telles que tσ et

soient définis. Si FV(t)∩ Dom(σ) = FV(t)∩ Dom(σ

) et σ(x) = σ

(x) pour tout

1.3 Substitution sans capture

Preuve. Tout d’abord, par la proposition 1.3.2, comme tσ et tσ

sont définis, on a

tσ=σ(t)ettσ

(t).

De plus, commetσettσ

sont définis, on aBV(t)∩ Dom(σ) =BV(t)∩ Dom(σ

) =∅.

Il s’en suit que FV(t)∩ Dom(σ) =V(t)∩ Dom(σ)etFV(t)∩ Dom(σ) =V(t)∩ Dom(σ).

Par la proposition1.3.4 on a doncσ(t) =σ

(t), d’oùtσ=tσ

.

En particulier, siFV(t)∩Dom(σ) =∅, alors on atσ=t. En effet, surFV(t),σcoïncide

avec la substitution de domaine vide.

Si σ est la valuation qui associe t

i

à x

i

pour i ∈ {1, . . . , n}, alors [t

1

/x

1

, . . . , t

n

/x

n

]

désigne la substitution issue deσett[t

1

/x

1

, . . . , t

n

/x

n

]désigne son application au terme

t. De plus,σ[u/x]désigne la substitution de domaineDom(σ)∪{x}telle queσ[u/x](x) =u

etσ[u/x](y) =σ(y)pour tout y∈ Dom(σ)\ {x}.

Proposition 1.3.5 Soit t, u ∈ L(Σ) et σ une substitution. Si t(σ[u/x]) est défini et

x /∈FV(σ)∪ Dom(σ), alors (tσ)[u/x]est défini et t(σ[u/x]) = (tσ)[u/x].

Preuve. Par induction surt.

t = y ∈ X. Si y = x, alors x(σ[u/x]) = u = x[u/x] = σ(x)[u/x]car x /∈ Dom(σ). Si

y∈ Dom(σ) alorsy(σ[u/x]) =σ(y) =σ(y)[u/x]car x /∈FV(σ).

t=t

1

t

2

ett=f(t

1

, . . . , t

n

). Par hypothèse d’induction.

t = λy.t

1

. Comme t(σ[u/x]) est défini, on a y /∈ (Dom(σ)∪{x}∪FV(σ)∪FV(u)) et

t(σ[u/x]) = t

1

(σ[u/x]). Par hypothèse d’induction (t

1

σ)[u/x] est défini et on a

t

1

(σ[u/x]) = (t

1

σ)[u/x]. De plus, comme y /∈ Dom(σ)∪FV(σ), tσ = λx.t

1

σ et

commey /∈{x}∪FV(u) on a(tσ)[u/x] =λx.((t

1

σ)[u/x]).

Étant donnéesR⊆ L(Σ)×L(Σ)et deux substitutionsσ, σ

, on noteσRσ

siDom(σ) =

Dom(σ

) et σ(x)R σ

(x) pour tout x ∈ Dom(σ). Dans la proposition suivante, nous

utilisons le fait que les valuations sont à domaine fini.

Proposition 1.3.6 Soit un terme t∈ L(Σ) et une substitutionσ.

(i) Sit

et t

′′

sont des termesα-équivalents à t tels que t

σ et t

′′

σsont définis, alors

t

σest α-équivalent à t

′′

σ.

(ii) Sitσ est défini etσ

=

α

σ, alorstσ

est défini etα-équivalent à tσ.

Preuve.

(i) Par induction sur la taille de t. Soient t

ett

′′

deux termes α-équivalents àt tels

que t

σett

′′

σsoient définis.

t∈ X. Dans ce cas,[t] ={t}, donc t=t

=t

′′

, c.-à-d. t

σ=t

′′

σ.

t=f(~t). Par définition de=

α

, on at

=f(~t

)ett

′′

=f(~t

′′

)avec~t

,~t

′′

α-équivalents

à~t. Par hypothèse d’induction, on a~t

σ=

α

~t

′′

σ, d’oùf(~t

)σ=

α

f(~t

′′

)σ.

t=t

1

t

2

. Comme pour le cas précédent : Par définition de =

α

, on a t

= t

1

t

2

et

t

′′

=t

1′′

t

2′′

avect

i

, t

i′′

α-équivalents àt

i

(i∈{1, 2}). Par hypothèse d’induction,

on at

i

σ=

α

t

i′′

σ, et il s’en suit que(t

1

t

2

)σ=

α

(t

1′′

t

2′′

)σ.

Chapitre 1 Structures de termes

t=λx.t

1

. Par définition de =

α

, on a t

= λx

.t

1

, t

′′

= λx

′′

.t

1′′

et il existe trois

ensembles finis Z, Z

, Z

′′

⊆ X tels que

t

1

[x

7→z] =

α

t

1′′

[x

′′

7→z] pour tout z∈ X \Z ,

t

1

[x7→z] =

α

t

1

[x

7→z] pour tout z∈ X \Z

,

et t

1′′

[x

′′

7→z] =

α

t

1

[x7→z] pour tout z∈ X \Z

′′

.

Donc, avec Y =

def

Z

1

∪ Z

∪Z

′′

on a un sous-ensemble fini de X tel que

t

1

[x7→z], t

1

[x

7→z]ett

′′

[x

′′

7→z]sont α-équivalents pour tout z∈ X \Y.

Commet

σett

′′

σsont définis, on ax

, x

′′

∈ D/ om(σ)∪FV(σ). Par conséquent,

étant donné une variable z /∈Y∪ Dom(σ)∪FV(σ), on a

t

1

σ[x

7→z] =t

1

[x

7→z]σ et t

1′′

σ[x

′′

7→z] =t

1′′

[x

′′

7→z]σ .

Il s’en suit que t

1

[x

7→ z]σ ett

1′′

[x

′′

7→z]σsont définis, et comme t

1

[x

7→z]

et t

1′′

[x

′′

7→z] sont α-équivalents à t

1

[x7→ z], par hypothèse d’induction on a

t

1

[x

7→z]σ=

α

t

1′′

[x

′′

7→z]σ.

Comme t

1

σ[x

7→z] =

α

t

1′′

σ[x

′′

7→z]pour toute variable non dans l’ensemble

finiY∪ Dom(σ)∪FV(σ), nous avonsλx

.(t

1

σ) =

α

λx

′′

.(t

1′′

σ). Nous concluons

que (λx

.t

1

)σ=

α

(λx

′′

.t

1′′

)σ carx

, x

′′

∈ D/ om(σ)∪FV(σ).

(ii) Par induction surt. Rappelons que σetσ

ont même domaine et même variables

libres.

t=x∈ X. Six∈ Dom(σ), alors tσ=σ(x) =

α

σ

(x); sinon,tσ=x=tσ

.

t=f(~t). Par hypothèse d’induction,~tσ=

α

~tσ

; donc f(~t)σ=

α

f(~t)σ

.

t=t

1

t

2

. Par hypothèse d’induction, t

i

σ =

α

t

i

σ

pour tout i ∈{1, 2}. Il s’en suit

que (t

1

t

2

)σ=

α

(t

1

t

2

.

t=λx.t

1

. Commetσest défini, la variablexn’apparaît pas dansDom(σ)∪FV(σ);

et par définition on a tσ=λx.(t

1

σ) ainsi que tσ

=λx.(t

1

σ

). Par hypothèse

d’induction on a t

1

σ=

α

t

1

σ

, donc(λx.t

1

)σ=

α

(λx.t

1

.

Grâce à la propriété1.3.6, nous pouvons définir la substitution sans capture sur Λ(Σ)

à partir de la substitution partielle surL(Σ).

Proposition 1.3.7 Soit une valuation σ :X → Λ(Σ). La relation qui à chaque terme

[t]∈Λ(Σ) associe l’ensemble des [t

σ

] pour t

∈[t] et σ

∈[σ] tels que t

σ

soit défini

est une fonction totale de Λ(Σ) vers Λ(Σ).

Preuve. Soit [t]∈Λ(Σ) etσ

∈[σ]. Comme le domaine deσ

est fini, le lemme.1.2.10

implique qu’il existet

∈[t]tel que BV(t

) soit disjoint de Dom(σ)et de FV(σ). Il s’en

suit que l’ensemble des[t

σ

]tels quet

σ

est défini n’est pas vide. La proposition1.3.6dit

que c’est un singleton : sit

′′

=

α

t

′′

=

α

σ

ett

′′

σ

′′

est défini, alors[t

σ

] = [t

′′

σ

′′

].

Définition 1.3.8 (Substitution sans capture) Étant donnée une valuation [σ]de X

dansΛ(Σ), la substitution sans capture surΛ(Σ), notée _[σ] :Λ(Σ)→Λ(Σ), est définie

par[t]σ=

def

[t

σ

]pour σ

∈[σ] et t

∈[t] tel que t

σ

est défini.

1.3 Substitution sans capture

Nous identifions dès que possible une substitution _[σ]à sa valuation[σ]. Remarquons

que si tσest défini, alors[t][σ] = [tσ].

Nous allons maintenant vérifier qu’en utilisant la notation de la remarque 1.2.13, la

substitution sans capture est bien celle que nous attendons. Rappelons que θ◦σ est la

substitution issue de la valuation θ◦σ(x) =θ(σ(x))de domaine Dom(σ).

Lemme 1.3.9 Soit un terme t∈Λ(Σ) et une substitutionσ.

(i) Alors,

— xσ=σ(x) si x∈ Dom(σ), xσ=xsinon,

— f(~t)σ=f(~tσ),

— (t

1

t

2

)σ=t

1

σ t

2

σ,

— (λx.t

1

)σ=λx.(t

1

σ) six /∈ Dom(σ)∪FV(σ), et

— (λx.t

1

)σ=λz.(t

1

[z/x])σsi z /∈FV(t

1

)∪ Dom(σ)∪FV(σ).

(ii) Si de plusθ est une substitution telle que Dom(σ)∩(Dom(θ)∪FV(θ)) =∅, alors

(tσ)θ = tθ(θ◦σ) .

Preuve.

(i) On raisonne par cas sur t. Soient t

∈ L(Σ) etσ

tels quet= [t

]etσ= [σ

], c’est

à diretσ= [t

][σ

].

t=x∈ X. Dans ce cas, t

= xet [t

][σ

] = [t

σ

]. On a [t

σ

] = [σ

(x)] =σ(x) si

x∈ Dom(σ) et[t

σ

] = [x] =xsinon.

t=f(~t). Dans ce cas,t

=f(~t

) ettσ= [f(~t

] = [f(~t

σ

)] =f([~t

σ

]) =f(~tσ).

t=t

1

t

2

. Dans ce cas,t

=t

1

t

2

et

tσ = [(t

1

t

2

] = [t

1

σ

t

2

σ

] = [t

1

[t

2

= t

1

σ t

2

σ .

t=λx.t

1

. Tout d’abord, supposons quex /∈ Dom(σ)∪FV(σ). Soitu

1

∈t

1

tel que

t

1

σ= [u

1

σ

]. Alors grâce à au lemme1.2.12, on a

λx.t

1

σ=λx.[u

1

σ

]

={λy.u

1

| u

1

[y7→z] =

α

u

1

σ

[x7→z]pour tout zsauf un nombre fini}

= [λx.u

1

σ

].

Comme x /∈ Dom(σ)∪FV(σ), on a λx.(u

1

σ

) = (λx.u

1

, et on en déduit

que

(λx.t

1

)σ= [λx.u

1

][σ

] = [(λx.u

1

] = [λx.(u

1

σ

)] =λx.(t

1

σ) .

Maintenant, soitz /∈ Dom(σ)∪FV(σ)∪FV(t

1

). Alors, grâce à ce qui précède,

on aλz.(t

1

[z/x]σ) = (λz.t

1

[z/x])σ. Si on montre queλz.t

1

[z/x] =λx.t

1

, alors

on obtientλz.(t

1

[z/x]σ) = (λx.t

1

)σ, ce qui conclut la démonstration.

Grâce au lemme1.2.10, il existet

1

∈t

1

tel que

Chapitre 1 Structures de termes

Alors, la proposition 1.3.2implique que t

1

[z/x] =t

1

[x7→z]∈t

1

[z/x].

Comme z /∈FV(t

1

)∪BV(t

1

), en utilisant la proposition 1.1.18, on en déduit

que pour toute variable z

,t

1

[x7→z

] =t

1

[z/x][z7→z

]. Donc

λx.t

1

=λx.[t

1

]

={λy.u

1

| u

1

[y7→z

] =

α

t

1

[x7→z

] ∀z

sauf un nombre fini}

={λy.u

1

| u

1

[y7→z

] =

α

t

1

[z/x][z7→z

] ∀z

sauf un nombre fini}

=λz.[t

1

[z/x]] =λz.t

1

[z/x].

(ii) Soit σ

∈σ et θ

∈ θ telle que Dom(σ)∩(BV(θ

)) = ∅ et t

∈t tel que (t

σ

soit défini.

CommeV(θ

)⊆(FV(θ

)∪BV(θ

))etDom(σ

)∩(Dom(θ

)∪FV(θ

)∪BV(θ

)) =∅,

on a Dom(σ

) ∩(Dom(θ

) ∪V(θ

)) = ∅, donc θ

(t

)) = θ

◦σ

(t

)) par

le lemme 1.1.17. Or, la proposition 1.3.2 implique que (t

σ

= θ

(t

)) et

t

θ

◦σ

) =θ

◦σ

(t

)).

On en déduit que [(t

σ

] = [t

θ

◦σ

)], soit(tσ)θ=tθ(θ◦σ).

Remarque 1.3.10 Le lemme 1.3.9.(ii) implique qu’étant donné un terme λx.t et une

substitution σ, on peut toujours se ramener à un cas où x /∈ Dom(σ)∪FV(σ) tout en

restant dans la même classe d’α-équivalence : si x∈ Dom(σ)∪FV(σ), alors pour tout

z /∈ Dom(σ)∪FV(σ)∪FV(t), on a(λx.t)σ=λz.(t[z/x]σ) = (λz.t[z/x])σdansΛ(Σ).

Pour finir, voici comment définir une substitution sur un sous-ensembleL deΛ(Σ), et

comment relier deux substitutions par une relation et une fonction.

Définition 1.3.11 Soit L ⊆ Λ(Σ). Si σ : X → Λ(Σ) est une substitution telle que

tσ∈L pour tout t∈L, alors c’est uneL-substitution, notée σ:X →L.

Définition 1.3.12 Étant donnésL⊆Λ(Σ), une relationR⊆L×Let deux substitutions

σ, σ

: X → L, on note σ R σ

si Dom(σ) = Dom(σ

) et si σ(x) R σ

(x) pour tout

x∈ Dom(σ).

Dans le cas où σ F σ

pour une fonction F:L→L, on poseF(σ) =

def

σ

.