• Aucun résultat trouvé

Quotient de la réécriture conditionnelle par alpha-conversion

Dans cette section, nous utilisons les termes de de Bruijn pour montrer que la réécriture

applicative surΛ(Σ) est le quotient par α-équivalence de la réécriture sur L(Σ) modulo

α-équivalence.

Comme nous nous focalisons sur le cas de la réécriture applicative, nous n’avons pas

besoin d’utiliser le formalisme développé dans [BKR05a] pour traiter la réécriture d’ordre

supérieur avec des indices de de Bruijn, ni d’utiliser la traduction étudiée dans [BKR05b]

de la réécriture d’ordre supérieur vers la réécriture du premier ordre modulo une théorie

équationnelle générée par un calcul de substitution.

Pour tout X∈{se, jo, o}, nous dénotons

— par

RX

4.3 Quotient de la réécriture conditionnelle par alpha-conversion

— par

RX

L

la relation de réécriture X-conditionnelle issue deRsur L(Σ),

— par

RX

dB

la relation de réécriture X-conditionnelle issue deRsurTdB(Σ).

Du fait queΛ(Σ) = (L(Σ)/=

α

), il naturel de vouloir avoir

∀i∈N. [t]→

RX

Λ i

[u] si et seulement si t→

RX

Li

u . (4.2)

Le sens « si » ne pose pas de problèmes.

Lemme 4.3.1 Soient t, u∈ L(Σ). Pour tout i∈N,

t→

RX

Li

u implique [t]→

RX

Λ i

[u].

Preuve. On raisonne par induction suri∈N. On ne détaille que le cas de la réécriture

par joignabilité.

Le cas de basei=0est trivial. Soiti∈Net supposons la propriété vraie pour

RX

Li

.

Il est clair que cela implique qu’elle est vraie pour

RX

Li

. Par induction surt, on montre

que t→

RX

Li+1

uimplique[t]→

RX

Λ i+1

[u].

t=λx.t

1

. Dans ce cas, u= λx.u

1

et net

1

RX

Li+1

u

1

, donc par hypothèse d’induction

[t

1

] →

RX

Λ i+1

[u

1

] et λx.[t

1

] →

RX

Λ i+1

λx.[u

1

], ce qui conclut la démonstration car

[λx.t

1

] =λx.[t

1

]et[λx.u

1

] =λx.[u

1

].

t=t

1

t

2

. Si u = u

1

u

2

avec (t

1

, t

2

) →

RX

Li+1

(u

1

, u

2

) alors on conclut directement par

hypothèse d’induction et le fait que[t

1

t

2

] = [t

1

][t

2

]et[u

1

u

2

] = [u

1

][u

2

].

Sinon, il y une règle~d=~cl7

R

rtelle quet=lσ,u=rσet il existe~v tels que

~

dσ→

RX

Li

~vet~cσ→

RX

Li

~v. Par hypothèse d’induction,[~d][σ]

RX

Λ i

~v[~c][σ]→

RX Λ i

~v,

et on en déduit que [lσ] →

RX

Λ i+1

[rσ] (rappelons que toutes les règles de R sont

supposées applicatives).

t=f(t

1

, . . . , t

n

). Idem.

Par contre, la propriété inverse :

[t]→

RX

Λ

[u] implique t→

RX

L

u

n’est pas vraie en général, même pour la réécriture non conditionnelle. Le problème

de base est qu’en présence de règles non-linéaires à gauche, la réécriture sur

RX

L

ne

commute pas avec =

α

: on peut avoir t

=

α

t →

RL

u sans qu’il existe u

tel que

t

RL

u

=

α

u.

Exemple 4.3.2 Avec la règle non-linéaire minusx x 7→ 0, issue du système 7→

minus

présenté en 3.1.11, on a

minusλx.x λx.x

L

=

α

minusλx.x λy.y

0

Comme le terme minusλx.x λy.yest une forme

L

-normale, il n’existe pas de termeu

Chapitre 4 Réécriture conditionnelle

De ce fait, lorsque

[t] →

RX

Λ

[u],

il est possible que le termetne soit pas le bon représentant de [t]pour avoir t→

RX

L

u.

Exemple 4.3.3 Comme λx.x=

α

λy.y, on a

minus[λx.x] [λy.y] →

Λ

0 ,

mais le termeminusλx.x λy.y est

L

-normal.

Ainsi, lorsque[t]→

RX

Λ

[u], on peut au mieux espérer que

∃t

, u

. t=

α

t

RX

Li

u

=

α

u .

Ceci correspond à la réécrituremodulo α-conversionsurL(Σ), au sens de [Hue80,JK86]

(voir aussi la section 2.5 de [DJ90] et la définition 2.5.1 de [Ohl02]).

Définition 4.3.4 (Réécriture modulo alpha-conversion) Soit X ∈ {se, jo, o} et R

un système conditionnel applicatif. Pour touti∈N, la relation

RX

Li/=α

⊆ L(Σ)× L(Σ)

est définie de la manière suivante :

t→

RX

Li/=α

u ⇐⇒

def

∃t

, u

. t=

α

t

RX

Li

u

=

α

u .

Nous allons maintenant montrer que la relation

RX

L/=α

est la bonne notion de

réécri-ture surL(Σ) pour avoir une correspondance naturelle avec la réécriture sur Λ(Σ):

∀i∈N. [t]→

RX

Λ i

[u] si et seulement si t→

RX

Li/=α

u . (4.3)

Afin de passer de

RX

Λ

à

RX

L/=α

, il faut pouvoir choisir les bons représentants des

classes d’α-équivalence. Pour cela, les termes de de Bruijn semblent intéressants.

Exemple 4.3.5 Pour tout référentiel R, on a

(minusλx.x λy.y)

R

= minus(λ0) (λ0) →

dB

S(0) .

En utilisant les correspondances entreΛ(Σ),L

B

(Σ)etTdB(Σ)établies à la section1.6,

nous montrons les équivalences suivantes : pour toutt, u ∈ L

B

(Σ), et tout référentiel R

pourtetu,

∀i∈N . [t]→

RX Λ i

[u] ⇐⇒ t

R

RX dBi

u

R

⇐⇒ (t

R

)

R

RX Li

(u

R

)

R

. (4.4)

Grâce au théorème1.6.9, il est alors aisé d’en déduire (4.3).

L’exemple4.3.5 se généralise à un système conditionnel applicatif quelconque.

Lemme 4.3.6 Soit R un ensemble de règles conditionnelles applicatives sur L(Σ) et

X∈{se, jo, o}. Soient t, u∈ L

B

(Σ) et R un référentiel pour tet u. Pour tout i∈N,

[t]→

RX

Λ i

[u] implique t

R

RX

4.3 Quotient de la réécriture conditionnelle par alpha-conversion

Preuve. On raisonne par induction sur i∈N.

Le cas de basei=0est trivial. Soiti∈Net supposons la propriété vraie pour

RX Λ i

.

Il est clair qu’elle est alors vraie pour

RX Λ i

.

Montrons que[t]→

RX

Λ i+1

[u]implique t

R

RX

dBi+1

u

R

. On raisonne par induction sur t

et on ne détaille la preuve que pour la réécriture la joignabilité.

t=λx.t

1

. Dans ce cas, u = λx.u

1

, et comme [λx.t

1

] = λx.[t

1

] et [λx.u

1

] = λx.[u

1

],

on a [t

1

] →

RX

Λ i+1

[u

1

]. Comme t

1

, u

1

∈ L

B

(Σ),x /∈ BV(t

1

, u

1

), donc x·R est un

référentiel pourt

1

etu

1

. Par hypothèse d’induction, on a donct

1x·R

RX

dBi+1

u

1x·R

,

d’où λt

1x·R

RX

dBi+1

λu

1x·R

, et on en déduit que (λx.t

1

)

R

RX

dBi+1

(λx.u

1

)

R

car

(λx.t

1

)

R

=λt

1x·R

et(λx.u

1

)

R

=λu

1x·R

.

t=t

1

t

2

. Siu=u

1

u

2

avec ([t

1

],[t

2

])→

RX

Λ i+1

([u

1

],[u

2

]), alors on conclut grâce à

l’hy-pothèse d’induction car [t

1

t

2

] = [t

1

][t

2

]et[u

1

u

2

] = [u

1

][u

2

].

Sinon, il existe une règle ~d = ~c l 7

R

r et une substitution [σ] telles que

[t] = [l][σ], [u] = [r][s] et il existe~v tels que [~d][σ]

RX Λ i

[~v] et [~c][σ] →

RX Λ i

[~v].

Comme R est applicative, on a [~d][σ] = [~], [~c][σ] = [~cσ], d’où, par hypothèse

d’induction sur i, (~)

R

RX dBi

(~cσ)

R

, soit ~d(σ

R

) ↓

RX dBi

~c(σ

R

) par 1.6.10.(ii). On a

donc l(σ

R

)→

RX dBi+1

r(σ

R

), c’est-à-dire(lσ)

R

RX dBi+1

(rσ)

R

.

t=f(t

1

, . . . , t

n

). Idem.

On passe tout aussi facilement de

RdB

à

RL

.

Lemme 4.3.7 Soit R un ensemble de règles conditionnelles applicatives sur L(Σ) et

X∈{se, jo, o}. Soient t, u∈ TdB(Σ) et R un référentiel pour t etu. Pour tout i∈N,

t→

RX

dBi

u implique t

R

RX

Li

u

R

.

Preuve. On raisonne par induction sur i∈N.

Le cas de basei=0 est trivial. Soiti∈Net supposons la propriété vraie pour

RX

dBi

.

Notons qu’elle est alors vraie pour

RX

dBi

, la clôture réflexive et transitive de

RX

dBi

.

On montre que t→

RX

dBi+1

uimplique t

R

RX

Li+1

u

R

. On raisonne par induction sur t

et on ne détaille la preuve que pour la réécriture par joignabilité.

t=λt

1

. Dans ce cas on a u= λu

1

avec t

1

RX

dBi+1

u

1

. Comme R

=

def

x

|R|+1

·R est un

référentiel pour t

1

et u

1

, par hypothèse d’induction on a t

1R′

RX Li+1

u

1R′

, d’où

λx

|R|+1

.t

1R′

RX Li+1

λx

|R|+1

.u

1R′

. On a donc (λt

1

)

R

RX Li+1

(λu

1

)

R

car

(λt

1

)

R

= λx

|R|+1

.t

1R′

et (λu

1

)

R

= λx

|R|+1

.u

1R′

.

t=t

1

t

2

. Si u = u

1

u

2

avec (t

1

, t

2

) →

RX

dBi+1

(u

1

, u

2

) alors on conclut directement par

l’hypothèse d’induction car (t

1

t

2

)

R

=t

1R

t

2R

et(u

1

u

2

)

R

=u

1R

u

2R

.

Sinon il existe une règle ~d =~c l7

R

r et une substitution σ telles que t= lσ,

u=rσet il existe~v tels que~

RX

dBi

~vet~cσ→

RX

Chapitre 4 Réécriture conditionnelle

sur i on obtient (~)

R

RX Li

(~v)

R

et (~cσ)

R

RX Li

(~v)

R

. Comme R est applicative,

par 1.6.10.(i) on a (~)

R

=~d(σ

R

), (~cσ)

R

=~c(σ

R

),l(σ

R

) = (lσ)

R

et r(σ

R

) = (rσ)

R

,

d’où (lσ)

R

RX Li+1

(rσ)

R

.

t=f(t

1

, . . . , t

n

). Idem.

On en déduit que les équivalences (4.4) sont vérifiés sur les termes de L

B

(Σ)

(c’est-à-dire satisfaisant la convention de Barendregt locale1.5.1).

Théorème 4.3.8 Soit R un ensemble de règles conditionnelles applicatives sur L(Σ)

et X ∈ {se, jo, o}. Étant donnés t, u ∈ L

B

(Σ), et R un référentiel pour t et u, pour tout

i∈N, on a

[t]→

RX Λ i

[u] ⇐⇒ t

R

RX dBi

u

R

⇐⇒ (t

R

)

R

RX Li

(u

R

)

R

.

Preuve. [t] →

RX Λ i

[u] implique t

R

RX

dBi

u

R

par le lemme 4.3.6, qui à son tour

im-plique (t

R

)

R

RX

Li

(u

R

)

R

par le lemme 4.3.7. On en déduit [(t

R

)

R

] →

RX Λ i

[(u

R

)

R

] par le

lemme4.3.1, soit[t]→

RX Λ i

[u], car(t

R

)

R

=

α

tet(u

R

)

R

=

α

upar le théorème1.6.9.(ii).

Grâce aux termes de de Bruijn, on peut donc montrer que

est bien le quotient

de

RL/=α

par α-équivalence. Notons que nous prouvons (4.3) sur L(Σ), bien que le

théorème4.3.8 ne concerne que les termes de L

B

(Σ).

Corollaire 4.3.9 (Quotient de

RL/=α

par =

α

) SoitX∈{se, jo, o} etRun système

conditionnel applicatif. Pour tout t, u∈ L(Σ), on a

∀i∈N . [t] →

RX

Λ i

[u] si et seulement si t →

RX

Li/=α

u .

Preuve. Le sens « si » est le lemme 4.3.1. Montrons le sens inverse. Soientt, u∈ L(Σ)

tels que[t]→

RX

Λ i

[u]. Par la proposition1.5.2.(i), il existet

, u

∈ L

B

(Σ) tels quet

=

α

t

etu

=

α

u. On a donc[t

]→

RX

Λ i

[u

], d’où(t

R

)

R

RX

Li

(u

R

)

R

par le théorème4.3.8. Par le

théorème1.6.9.(ii), on a(t

R

)

R

=

α

t

et(u

R

)

R

=

α

t

. On en déduit quet→

RX

Deuxième partie

Chapitre 5

Outils pour la confluence

Dans ce chapitre, nous présentons certains outils de base pour l’étude de la confluence.

Nous commençons par quelques rappels sur l’utilisation des relations de réécriture

paral-lèles avec les TRS orthogonaux et avec le λ-calcul.

Ensuite, nous montrons comment ces notions sont étendues à la réécriture

condition-nelle, ce qui nous permet d’aborder brièvement la différence entre confluence et confluence

par niveaux.

Enfin, nous rassemblons quelques points importants liés à la modularité, en particulier

la caractérisation de la confluence par la confluence close et un lien entre les termes infinis

et un exemple du fait que la confluence n’est en général pas préservée par combinaison

de systèmes non disjoints.

5.1 Systèmes orthogonaux et réécriture parallèle

Nous rappelons ici les formulations des preuves de confluence pour les systèmes

ortho-gonaux utilisant les relations de réécriture parallèles. Nous commençons par les TRS au

premier ordre, puis nous abordons le cas du λ-calcul.

5.1.1 Systèmes de réécriture de termes

Nous rappelons ici le résultat connu de la confluence des systèmes des réécriture

or-thogonaux au premier ordre. À notre connaissance, ce résultat a été prouvé pour la

première fois dans [Hue80]. Des propriétés plus fines sur l’espace des dérivations sont

étudiées dans [HL91] (nous ne les abordons pas ici). Pour les systèmes d’ordre supérieur,

le résultat le plus général est probablement [OR94].

Le seul obstacle possible à la confluence des systèmes de réécriture de termes est la

présence de paires critiques : quand deux membres gauches de règles peuvent se

super-poser à des positions non triviales, on peut choisir de réduire l’un ou l’autre rédex. Ce

choix peut être irréversible, et casser la confluence.

Notons, pour les TRS dénombrables, que grâce à la proposition2.4.4 on peut toujours

se ramener à un TRS dont les règles n’ont pas de variables en commun, tout en préservant

la relation de réécriture.

D’autre part, rappelons que d’après ce que l’on a vu à la section1.4, les termes

appli-catifs sur une signature Σsont générés par la grammaire :

Chapitre 5 Outils pour la confluence

oùx∈ X etf∈Σ

n

. De plus, d’après la définition3.1.7, les termes algébriques sur Σsont

générés par la grammaire suivante :

t ::= x | f(t

1

, . . . , t

n

)t

n+1

. . . t

n+m

,

oùx∈ X,f∈Σ

n

etm≥0.

Définition 5.1.1 (Paires critiques) Soit R un TRS sur L⊆Λ(Σ) qui est algébrique

à gauche, etl7→

R

r,l

7→

R

r

deux règles de réécriture de Rqui n’ont pas de variables en

commun. Soit p une occurrence dans l qui n’est pas une occurrence de variable et telle

que p6= ε s’il existe un renommage ρ tel que (l, r)ρ = (l

, r

), et soit σ l’unificateur le

plus général de l|

p

et de l

. Alors

(l[r

]

p

σ, rσ)

est une paire critique de l 7→

R

r et l

7→

R

r

. Une paire critique de la forme (t, t) est

dite triviale.

Notons quel|

p

,l

|

p

etl[r

]

p

sont bien définis car l etl

sont algébriques. Si t= lσet

si on a une paire critique(l[r

]pθ, rθ) pour deux règlesl7→

R

r etl

7→

R

r

(dans ce cas

σ=σ

◦θ), alors on a le choix suivant pour la réduction de t:

t

% % K K K K K K K K K K K K K { { xxxx xxxx xxx

r(σ

◦θ) (l[r

]p)(σ

◦θ)

Ce choix peut être irréversible car rien n’assure que les termesr(σ

◦θ) etl[r

]p(σ

◦θ)

soient joignables.

Les systèmes de réécriture sans paires critiques et linéaires à gauche sont dits

ortho-gonaux. Rappelons qu’un terme t est linéaire si pour tous sous-termes u, v de t à des

positions disjointes, on aFV(u)∩FV(v) =∅.

Définition 5.1.2 (Systèmes de réécriture orthogonaux) Soit un système de

réécri-tureR sur L⊆Λ(Σ). Alors, siR est algébrique à gauche, on dit que R est

(i) linéaire à gauche si lest linéaire pour tout l7→

R

r;

(ii) non ambigu (resp. faiblement non ambigu) si

— pour toutes règles l7→

R

r et l

7→

R

r

(pas nécessairement distinctes),

— pour tout renommage ρtel que FV(lρ, rρ)∩FV(l

ρ, r

ρ) =∅,

les règles(l, r)ρet(l

, r

)ρne forment pas de paire critique (resp. toute paire critique

entre (l, r)ρ et(l

, r

)ρ est triviale) ;

(iii) orthogonal (resp. faiblement orthogonal) s’il est linéaire à gauche et non ambigu

(resp. faiblement non ambigu).

La façon la plus simple de montrer la confluence des systèmes de réécriture orthogonaux

est d’utiliser une forme de réécriture parallèle. Cette technique est standard.

5.1 Systèmes orthogonaux et réécriture parallèle

Lemme 5.1.3 (Mouvements parallèles) Soit R un TRS algébrique à gauche sur

L ⊆ Λ(Σ) et

kR

la clôture parallèle de R, au sens de 2.3.5. Si R est (faiblement)

orthogonal, alors

kR

vérifie la propriété du diamant sur L.

La confluence des systèmes de réécriture orthogonaux est un résultat bien connu. À

notre connaissance, il apparaît pour la première fois dans [Hue80] (c’est le lemme 3.3 et

le corollaire suivant).

Théorème 5.1.4 Si R est un TRS algébrique à gauche sur L⊆ Λ(Σ) qui est

(faible-ment) orthogonal, alors

R

est confluent sur L⊆Λ(Σ).

Exemple 5.1.5 Le système 7→

rec

présenté à l’exemple 3.1.17.(ii) est orthogonal : ses

règles

recx y 0 7→

rec

x et recx yS(z) 7→

rec

y(recx y z)z

ne forment pas de paire critique. Par le théorème5.1.4, la relation

rec

est donc confluente

sur Λ(Σ).

Remarque 5.1.6 Ce qu’on vient de faire pour les système algébriques à gauche

s’ap-plique aussi aux systèmes applicatifs à gauche. Cependant, à cause du symbole

d’appli-cation, ces systèmes peuvent comporter de nombreuses paires critiques.

Un exemple est le fait que la fonction eatde la remarque 3.1.14n’est pas stricte dans

le sens de 3.1.14. En effet, le système composé de

x·err 7→ err et eat·x 7→ eat

n’est pas confluent :

err ← eat·err → eat .

5.1.2 Lambda-calcul

Dans le cas duλ-calcul, on utilise aussi une relation de réécriture parallèle, mais

contrai-rement aux systèmes algébriques à gauche, cette relation n’est pas la clôture parallèle

de 7→

β

. En effet, cette relation ne vérifie pas la propriété du diamant car des rédexes

parallèles peuvent se retrouver emboîtés après un pas de réduction.

Exemple 5.1.7 Notons

kβ

pour la clôture parallèle de 7→

β

au sens de 2.3.5. On a

alors

(λx.(λy.xx)Id)(Id Id)

t t jjjjjj jjjjjj jjjjjj j ( ( Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

(λy.(Id Id)(Id Id))Id (λx.xx)Id

On ne peut joindre ce pic avec un pas de

kβ

car

((λy.(Id Id)(Id Id))Id)

kβ

= {(λy.(Id Id)(Id Id))Id,(Id Id)(Id Id),

(λy.Id Id)Id,(λy.(Id Id)Id)Id,(λy.Id(Id Id))Id}

Chapitre 5 Outils pour la confluence

donc

((λy.(Id Id)(Id Id))Id)

kβ

∩ ((λx.xx)Id)

kβ

= ∅ .

La relation deβ-réduction parallèle qui vérifie la propriété du diamant est la relation

dite de Tait et Martin-Löf.

Définition 5.1.8 (Béta-réduction parallèle) Soit⊲

β

la plus petite relation de

réécri-ture parallèle surΛ(Σ) vérifiant la règle suivante :

(⊲β) t

1

β

u

1

t

2

β

u

2

(λx.t

1

)t

2

β

u

1

[u

2

/x]

Proposition 5.1.9 Soit deux termes t, t

et une substitutionσ.

(i) Sit⊲

β

t

alors tσ⊲

β

t

σ.

(ii) La relation⊲

β

est une relation de réécriture parallèle sur Λ(Σ).

Le point(ii)du lemme suivant est crucial pour la propriété du diamant de⊲

β

.

Lemme 5.1.10 Soit un termet et une substitutionσ.

(i) Siσ⊲

β

σ

alors tσ⊲

β

.

(ii) Sit⊲

β

t

etσ⊲

β

σ

alors tσ⊲

β

t

σ

.

Nous pouvons maintenant montrer que⊲

β

satisfait la propriété du diamant.

Lemme 5.1.11 (Mouvements parallèles — [Bar84, Kri90, Tak95]) La relation

β

vérifie la propriété du diamant.

On en déduit la confluence de⊲

β

. Il s’en suit par le lemme5.1.12que

β

est confluente

(théorème3.2.4).

Lemme 5.1.12

β

⊆ ⊲

β

⊆ →

β

.