• Aucun résultat trouvé

Confluence de la réécriture conditionnelle

Les stratifications de la réécriture conditionnelle donnent lieu à des raffinements de la

notion de confluence, déjà évoqués en2.1.17.

Définition 5.2.1 (Confluences de la réécriture conditionnelle) SoitRun système

conditionnel etX∈{se, jo, o}. On dit que

R(R)X

est

— confluent par niveauxlorsque

R(R)X

i

est confluent pour tout i∈N,

— confluent en profondeurlorsque pour tout i, j∈N,

R(R)X

i

et

R(R)X

j

commutent.

Les notions de confluence, confluence par niveaux et confluence profonde sont

représen-tées figure.5.1. Il est clair que la confluence profonde implique la confluence par niveaux,

qui à son tour implique la confluence. Mais il est important de noter que la confluence

n’implique pas nécessairement la confluence par niveaux.

Nous rappelons ici certains résultats connus qui sont utilisés dans la suite, ou bien

que nous jugeons intéressants pour la compréhension de la réécriture conditionnelle, en

particulier en ce qui concerne la différence entre confluence et confluence par niveaux.

5.2 Confluence de la réécriture conditionnelle

·

R(R)X > > > > > > > > > R(R)X

·

R(R)X

·

R(R)X

·

·

R(R)X i > > > > > > > > > R(R)X i

·

R(R)X i

·

R(R)X i

·

·

R(R)X i > > > > > > > > > R(R)X j

·

R(R)X i

·

R(R)X j

·

Confluence Confluence par niveaux Confluence profonde

Fig. 5.1: Confluences pour

R(R)X

=S

{→

R(R)X

i

| i∈N}

5.2.1 Réécriture conditionnelle orthogonale

Nous présentons ici certains résultats connus sur les confluences de différentes formes

de réécriture conditionnelle. Ces résultats concernent les systèmes orthogonaux

condi-tionnels, pour lesquels il nous faut rappeler quelques notions.

La différence avec les systèmes de réécriture de termes est la notion de paire critique

conditionnelle, qui est plus riche que dans le cas non conditionnel. Les paires critiques

proviennent de la superposition de deux règles de réécritures dont les conditions, selon les

cas, peuvent ou ne peuvent pas être satisfaites en même temps. Cela amène à distinguer

entre les paires critiques « faisables » et « infaisables ». De plus, la satisfaction des paires

critiques dépend de la relation de réécriture conditionnelle considérée.

Définition 5.2.2 (Paires critiques conditionnelles) Soit R : ~d = ~c l 7→ r et

R

:~d

=~c

⊃l

7→r

deux règles conditionnelles qui 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 queRρ=R

ρ et soit σ l’unificateur le plus général de l|

p

et de l

. Alors

~ = ~ ~d

σ = ~c

σ ⊃ (l[r

]

p

σ, rσ)

est une paire critique conditionnelle de Ret R

. Une paire critique est triviale si elle est

de la forme~d=~c(t, t).

Notons que, comme pour le cas non conditionnel 5.1.1, l|

p

, l

|

p

et l[r

]

p

sont bien

définis car letl

sont algébriques. De plus, la définition5.2.2 restreinte à des règles non

conditionnelles donne la définition 5.1.1.

Supposons quet=lσ et que l’on a une paire critique

~

dθ = ~cθ ∧ ~d

θ = ~c

θ ⊃ (l[r

]

p

θ, rθ)

pour deux règles R :~d =~cl 7→ r et R

:~d

=~c

⊃ l

7→ r

(dans ce cas σ = σ

◦θ).

Alors, si on oublie les conditions, on a le choix suivant pour la réduction det:

Chapitre 5 Outils pour la confluence

L’important avec les règles conditionnelles est que ce choix n’est possible que si les

condi-tions des règles R et R

peuvent être satisfaites par une instance de θ. Bien sûr, il est

tout à fait possible que ce ne soit pas le cas.

Cette possibilité que les conditions des paires critiques soient satisfaites ou non s’appelle

faisabilité des paire critiques. Il y a autant de notions de faisabilité que de façons de tester

les conditions des paires critiques.

Définition 5.2.3 (Faisabilité des paires critiques conditionnelles) Une paire

cri-tique~d=~c(t, u) est dite

— se-R-faisable s’il existe une substitutionσ telle que ~

R(R)se∪R

~cσ.

— jo-R-faisable s’il existe une substitution σ telle que~

R(R)jo∪R

~cσ.

— o-R-faisable s’il existe une substitutionσ telle que~

R(R)o∪R

~cσ.

Étant donné X ∈ {se, jo, o}, une paire critique qui n’est pas X-R-faisable est dite X-R

-infaisable.

Définition 5.2.4 (Réécriture conditionnelle orthogonale) Étant donnés une

re-lation de réécriture

R

et X ∈ {se, jo, o}, un système conditionnel R linéaire à gauche

est

— X-R-orthogonal si toutes ses paires critiques sont X-R-infaisable,

— faiblementX-R-orthogonal si toutes ses paires critiquesX-R-faisables sont triviales.

Remarque 5.2.5 Du fait que le pas de réécriture conditionnelle est indécidable (voir

remarque 4.1.6), le problème de savoir si un système de réécriture conditionnelle est

(faiblement) orthogonal est indécidable.

On a alors le résultat suivant.

Théorème 5.2.6 ([BK86, Ohl02]) SoitR un système conditionnel sur Ter(Σ,X).

(i) SiR est faiblement se-orthogonal, alors

Rse

est confluent.

(ii) SiR est normal et faiblement o-orthogonal, alors

R!

est confluent par niveaux.

Rappelons que par la proposition 4.1.9, un système normal est o-orthogonal si et

seulement s’il estjo-orthogonal.

Remarque 5.2.7 Dans [Ohl02], il est seulement montré que

R!

est confluent par

niveaux, mais il semble que la preuve puisse être étendue à la confluence profonde.

Il est bien connu que les systèmes o- et jo-orthogonaux ne sont pas nécessairement

confluents.

Exemple 5.2.8 ([BK86]) Voici un exemple classique de système orthogonal pour

Rse

,

Rjo

et

Ro

mais pour lequel

Rjo

et

Rse

ne sont pas confluents :

a 7→ f(a)

5.2 Confluence de la réécriture conditionnelle

Le pic

f(b) ← f(f(a)) → b

qui se produit pour la réécriture semi-équationnelle, par joignabilité et orientée, n’est pas

joignable ni pour

Rjo

, ni pour

Ro

car les termes f(b) et b sont normaux pour ces

relations. Cependant, avec la réécriture semi-équationnelle, on a f(b)→

Rse

b.

5.2.2 Confluence par niveaux et confluence

On rassemble ici quelques éléments de comparaison entre la confluence et la confluence

par niveaux. On montre que tout système semi-équationnellement confluent par niveaux

est joignablement confluent.

Lemme 5.2.9 Si

R(R)se

est confluent par niveaux alors pour tout i ∈ N, on a

R(R)se

i

=→

R(R)joi

.

Preuve. On raisonne par induction sur i ∈ N. Le cas de base i = 0 étant évident,

supposons que

R(R)se

i

=→

R(R)jo i

avec i ∈ N. Alors, pour tout règle ~d = ~c l

r ∈ R, si ~

R(R)jo i

~ alors, par hypothèse d’induction on a ~

R(R)se

i

~, donc

lσ →

R(R)se i+1

rσ. Inversement, si ~

R(R)se i

~cσ, alors ~

R(R)se i

~cσ car

R(R)se i

est

confluent, donc~

R(R)jo

i

~cσpar hypothèse d’induction, soitlσ→

R(R)jo i+1

rσ. Il s’en suit

que lσ→

R(R)se i+1

rσsi et seulement si lσ→

R(R)jo i+1

rσ.

Le lemme 5.2.9 justifie le fait que lorsqu’elle est confluente par niveaux, la réécriture

semi-équationnelle puisse être implantée par la réécriture par joignabilité.

Corollaire 5.2.10 Si

R(R)se

est confluent par niveaux alors

R(R)jo

est confluent par

niveaux.

Il s’en suit qu’un système semi-équationnellement confluent peut ne pas être

joignable-ment confluent seulejoignable-ment si il n’est pas semi-équationnellejoignable-ment confluent par niveaux.

Exemple 5.2.11 Il existe aussi des relationsterminantesqui sont confluentes mais pas

par niveaux. Avec le système

x = h(a) ⊃ f(x) 7→ a

x = a ⊃ h(x) 7→ x ,

on a

f(h(a)) →

Rse 1

a car h(a) ↔

Rse 0

h(a)

et h(a) →

Rse 1

a car a ↔

Rse 0

a.

Il s’en suit qu’on peut former le pic

a ←

Rse

1

f(h(a)) →

Rse

1

f(a) ,

qui ne peut être joint que par la réductionf(a)→

Rse

2

aqui est déclenchée parh(a)↔

Rse 1

a.

La relation

Rse

est donc confluente sans être confluente par niveaux.

Chapitre 5 Outils pour la confluence