Previous Up Next

Chapitre 5  Systèmes de réduction d'expressions avec motifs

Ce chapitre est consacré à la présentation et à l'étude d'un formalisme de réécriture d'ordre supérieur incorporant un système de filtrage sur des motifs "à la ML". Ce formalisme, que nous appellerons en français Systèmes de Réduction d'Expressions avec Motifs ou en anglais Expressions Reduction Systems with Patterns (ERSP), reprend globalement le principe du système de filtres utilisé pour le λ Pw-calcul (c.f. chapitre 4). Le formalisme des ERSP est une extension au filtrage du formalisme bien connu des ERSs [Kha90] et plus précisément des SERSs [BKR00].

Les ERSP peuvent aussi être considérés comme une extension à la réécriture d'ordre supérieur du λ Pw-calcul (bien que les mécanismes de substitution et de filtrage soient implicites dans ce cadre) tout comme les formalismes de réécriture d'ordre supérieur classiques [Klo80, Nip91, Kha90] peuvent être considérés comme des extensions du λ-calcul.

En tant qu'extension des ERSs, les ERSP permettent de combiner la réécriture du premier ordre et un mécanisme d'abstraction. En tant qu'extension du λ Pw-calcul, ils permettent en fait de combiner la réécriture du premier ordre et une version "implicite" du λ Pw-calcul.

De même, tout comme les ERSs permettent de redéfinir le λ-calcul, les ERSP permettent de redéfinir le λ Pw-calcul. Cette redéfinition étant par essence même au moins aussi longue que la définition présentée au chapitre 4, nous ne la proposerons pas dans cette courte introduction. En revanche, la version "implicite" du λ Pw-calcul, qui consiste en fait en une généralisation de la règle β au filtrage, est très aisément présentable. En effet, cette règle, qui d'une certaine manière peut être considérée comme un "modèle" du mécanisme de réduction à l'œuvre dans les langages de programmation fonctionnelle modernes est la suivante:

PM)    app(λ XM,N)→  M{X by N}

X est une méta-variable de motif, une variable pouvant être remplacée par n'importe quel motif, et M et N sont des méta-variables de termes, des variables pouvant être remplacées par n'importe quel terme. Informellement, la βPM-règle peut être traduite par: "Pour connaître la valeur de l'application d'une fonction (éventuellement définie par cas) λ X. M à un argument N, il suffit de connaître la valeur du terme M dans lequel le terme N a été filtré par le motif X".

Ainsi, si nous nous donnons la définition suivante pour la fonction plus sur les entiers:

plus(N,M)→plus  app(λ 
ξ ∣  0,s(n)  

ξ ∣  M,s(plus(n,M))  
,N)

nous obtiendrons la séquence de réduction suivante (dans laquelle nous identifierons les notation 3 et s(s(s(0))) pour plus de clarté).

plus(4,2)plus app(λ [ξ ∣ 0,s(n) ]. [ξ ∣ 2,s(plus(n,2)) ],4)
 βPM [ξ ∣ 2,s(plus(n,2)) ]{[ξ ∣ 0,s(n) ] by 4}
 =[ξ ∣ 2,s(plus(n,2)) ]{ξ ▷ 2,n ▷ 3 }
 =s(plus(3,2))
 —→* 6

La suite de ce chapitre sera organisée comme suit. Tout d'abord nous présenterons, dans la section 5.1, la grammaire formelle des ERSP ainsi que certaines notions de base telles que l'ensemble des variables libres d'un terme ou encore la notion de variables libres localisées d'un terme. La section 5.2 sera alors consacrée à la définition de la notion de règle de réécriture et de réduction induite par un système de réécriture et à la présentation de quelques résultats préliminaires tels que la préservation de l'ensemble des variables libres d'un terme par réduction.

La section 5.4 sera alors consacrée à la définition d'un sous ensemble des ERSP correspondant aux systèmes orthogonaux des formalismes de réécriture d'ordre supérieur classiques: les systèmes l-constructeurs orthogonaux. Ces systèmes seront à la fois orthogonaux et ne permettront le filtrage que sur des fonctions dites constructeurs qui ne peuvent être réduites. La section 5.5 est consacrée à la démonstration de la confluence, par la méthode classique de Tait et Martin-Löf [Bar84], des sytèmes l-constructeurs orthogonaux.

5.1  Définition des ERSP

Cette section est consacrée à la définition des Systèmes de Réduction d'Expressions avec Motifs (ERSP).

Nous allons tout d'abord présenter la syntaxe des ERSP. Nous définirons alors les notions de variable libre et liée dans un ERSP. Les ERSP utilisant une extension du système de filtre du λ Pw-calcul, nous aurons à nouveau besoin d'une notion de variable libre localisée qui généralise la notion classique de variable libre et de la notion de terme acceptable. Nous donnerons alors une relation réalisant le filtrage d'un terme par un motif puis nous définirons la notion de règle de réécriture dans les ERSP avant de présenter la notion de relation de réduction admissible dans notre formalisme. Informellement, la relation de réduction admissible induite par système de réécriture R sera la restriction de la notion de réécriture induite par R aux termes acceptables.

Pour présenter la grammaire des ERSP, nous avons besoin de plusieurs ensembles de variables. Tous ces ensembles sont supposés infinis dénombrables et deux à deux disjoints. Nous utiliserons dans le cadre des ERSP:

Nous utiliserons dans la suite les notations x, y,…pour dénoter indifféremment une variable usuelle, une variable de choix, une méta-variable de terme ou une méta-variable de motif.

Grâce à ces six ensembles nous pouvons présenter la grammaire des ERSP.

Définition 1 (Grammaire des ERSP)   Les méta-motifs et les méta-termes des ERSP sont donnés par:
(Méta-motifs)     P::=xVariable (usuelle)
 XMéta-variable de motif
 f(P,…,P)Méta-motif algébrique
 [ξP,…,P ]Méta-motif de choix
 @(P,…,P)Méta-motif de contraction
  _ Wildcard
 
 
 
(Méta-termes)     T::=xVariable (usuelle)
 MMéta-variable de terme
 f(T,…,T)Méta-terme algébrique
 [ξT,…,T ]Méta-terme de choix
 µ P. TMéta-abstraction
 T{P by T}Méta-filtrage

Ces constructions sont "l'union" de celles du λ Pw-calcul et des formalismes classiques de réécriture d'ordre supérieur.

Nous supposons de plus que:

Dans la suite les méta-termes seront notés T, L, R, …  et les méta-motifs P, Q, …

Un motif est un méta-motif dans lequel il n'y a aucune occurrence de méta-variable de motif. Les motifs seront notés p, q,…dans la suite de ce document.

Un pré-terme est un méta-terme ne contenant que des motifs et ne contenant aucune occurrence de méta-variable de terme.

Un terme est un pré-terme sans occurrence du constructeur de méta-filtrage. Les termes et les pré-termes serons notés t, u, …

La fonction fibonnaci spécifiée par les équations:

fib(0)=0
fib(1)=1
fib(n+2)=fib(n)+fib(n+1)

peut ainsi être définie comme suit:

Intuitivement, cette dernière règle défini le résultat de l'application de la fonction fib à un argument M, comme étant le résultat de l'application de M à la fonction retournant 0 si M=0, 1 si M=1 et fib(n+1)+fib(n) si M=n+2.

Comme dans le cadre du λ Pw-calcul, il nous faut définir l'ensemble des variables liées par un méta-motif.

Définition 2 (Variables et méta-variables de motifs liées par un motif)   L'ensemble PMV(P) (resp. Var(P)) des méta-variables de motifs (resp. variables) liées par un méta-motif P est l'ensemble des méta-variables (resp. variables) apparaissant dans le motif P.

Ainsi, nous avons:

PMV(f(X,x))={X}
Var(f(X,x))={x}
Définition 3 (Méta-motif linéaire)   Un méta-motif P sera dit linéaire si chaque variable et chaque méta-variable de motif apparaît au plus un fois dans P.

Un méta-terme T sera dit p-linéaire si tout les méta-motifs de T sont linéaires.

Le méta-motif f(X,x) sera ainsi linéaire tandis que les méta-motifs f(X,X) et f(x,x) ne le seront pas.

Notation 4   Dans toute la suite de ce chapitre, nous utiliserons la notation PP' pour exprimer le fait que P est un sous-méta-motif de P'.

Une position dans un méta-terme est un mot sur l'alphabet N. L'ensemble des positions d'un méta-terme T, noté Pos(T), est défini par une extension de la définition 20.

Définition 5 (Positions dans un méta-terme)  

L'ensemble, Pos(T), des positions d'un méta-terme T est défini par induction sur la structure de T comme suit:

Nous appellerons position propre toute position autre que la position є.

La définition de l'ensemble des positions d'un méta-filtrage peut être justifiée en considérant que informellement T1{P by T2} "est équivalent" quand nous raisonnons sur les positions à "appP. T1,T2)".

Nous allons maintenant définir le sous-méta-terme à une position donnée d'un méta-terme donné. Cette définition est une extension de la définition 21.

Définition 6 (Sous-méta-termes d'un méta-terme)   Étant donné un méta-terme T et une position p de ce méta-terme, nous définissons le sous-méta-terme de T à la position p, noté Tp, par induction sur p comme suit:
Tє=defT
    f(T1,…,Tn)∣i.p=defTip
    
ξ ∣  T1,…,Tn  
i.p
=defTip
    µ PT1.p=defTp
    T1{P by T2}∣1.1.p=defT1p
    T1{P by T2}∣2.p=defT2p
  

Nous aurons besoin au cours de la preuve de confluence de la notion de position rigide.

Définition 7 (Position rigide)   Soit T un méta-terme. L'ensemble, RP(T), des positions rigides de T est:
  RP(T)=

pPos(T)∣     Tp TV

Nous allons maintenant présenter la notion de chemin de liaison à une position p dans un méta-terme T. Informellement ce "chemin" est l'ensemble des variables et méta-variables qui se trouvent liées sur le chemin décrit par la position p depuis la racine de T.

Définition 8 (Chemin de liaison)   Soit T un méta-terme et p une position de T. Nous définissons le chemin de liaison de T à la position p, noté PP(T,p), par induction sur p comme suit:
PP(T,є)  =def  
PP(f(T1,…,Tn),i.p)  =def   PP(Ti,p)
PP([ξT1,…,Tn ],i.p)  =def   PP(Ti,p)
PPP. T,1.p)  =def   PMV(P)∪Var(P)∪ PP(T,p)
PP(T1{P by T2},1.1.p)  =def   PMV(P)∪Var(P)∪ PP(T1,p)
PP(T1{P by T2},2.p)  =def   PP(T2,p)

Ainsi, si T=M{f(X,x) by µ [ξ ∣ Y,s(Y) ]. N}, nous avons:

PP(T,2)  =  
PP(T,1.1)  =  {X,x}
PP(T,2.1)  =  {Y,ξ}

Nous supposerons dans la suite que les différents méta-motifs se trouvant sur un même chemin de liaison d'un méta-terme ne partagent pas de méta-variables de motifs i.e. nous supposons que nous ne serons jamais dans le cas λ X. λ X. M. En revanche nous pourrons avoir un méta-terme de la forme λ f(X,X). M. Cette restriction peut être considérée comme une extension des conventions dites de Barendregt [Bar84].

Nous allons maintenant définir l'ensemble des méta-variables (libres) et des variables libres d'un méta-terme.

Définition 9 (Méta-variables, variables libres et variables liées)   L'ensemble des méta-variables d'un méta-terme T, noté FMV(T), est défini par induction sur T comme suit:
FMV(x)  =def  
FMV(M)  =def  {M}
FMV(f(T1,…,Tn))  =def  1≤ in FMV(Ti)
FMV([ξT1,…,Tn ])  =def  1≤ in FMV(Ti)
FMVP. T)  =def   FMV(T)
FMV(T1{P by T2})  =def   FMV(T1)∪ FMV(T2)
Cet ensemble est celui des méta-variables de termes apparaissant (obligatoirement libres) dans T. Il nous permettra en particulier de définir les règles de réductions dans les ERSP.

L'ensemble des variables libres d'un méta-terme T, noté FV(T), est défini par induction sur T comme suit:

FV(x)  =def  {x}
FV(M)  =def  
FV(f(T1,…,Tn))  =def  1≤ in FV(Ti)
FV([ξT1,…,Tn ])  =def  {ξ}∪∪1≤ in FV(Ti)
FVP. T)  =def   FV(T)∖Var(P)
FV(T1{P by T2})  =def  ( FV(T1)∖Var(P))∪ FV(T2)

Toute variable apparaissant dans un méta-terme T qui n'est pas libre dans T est liée dans T. Nous noterons par la suite, BV(T), l'ensemble des variables liées de T. Nous supposerons disjoints les ensembles des variables libres et liées d'un pré-terme. Nous travaillerons tout au long de ce chapitre modulo α-conversion sur les pré-termes.

Ainsi si nous considérons le méta-terme suivant:

T=f(u,x,M){f(X,x) by µ 
ξ ∣  x',s(y)  
g(N,t)}

Nous aurons:

PMV(T)  =  {X}
FMV(T)  =  {M,N}
FV(T)  =  {u,t}
BV(T)  =  {x,x',y,ξ}
Notation 10   Nous noterons désormais MV(T)=def PMV(T)∪ FMV(T).

Dans tous les formalismes de réécriture d'ordre supérieur classiques existe une notion de méta-terme bien formé:

Définition 11 (Méta-terme bien formé)   Un méta-terme T sera dit bien formé si et seulement si FV(T)=∅.

Ainsi le méta-terme T=f(u,x,M){f(X,x) by µ [ξ ∣ x,s(y) ]. g(N,t)} n'est pas bien formé puisque FV(T)={u,t} alors que le méta-terme λ [ξ ∣ x,y ]. M est, lui, bien formé.

Nous aurons de plus besoin, comme dans le cas du λ Pw-calcul du sous-ensemble des termes acceptables. En effet, si nous considérons la βPM-règle et le terme t=app(λ [ξ ∣ x,y ]. [ξ ∣ y,x ],0), nous comprenons, bien que nous n'ayons pas encore défini la notion de réduction dans le cadre des ERSP, que la réduction tβPM x sera "possible" dans ce nouveau formalisme comme dans le cadre du λ Pw-calcul.

Nous présentons donc d'ores et déjà les notions de variables libres localisées d'un pré-terme et de terme acceptable.

Définition 12 (Variables libres localisées d'un pré-terme)   Soit t un pré-terme, ξ une variable de choix et i un entier inférieur à l'arité de ξ. Par α-conversion, nous pouvons supposer que ξ n'apparaît pas liée dans t. Nous définissons alors l'ensemble des variables libres localisées de t (pour la variable de choix ξ et le choix i) par induction sur t comme suit:
FVξi(x)  =def  {x}
FVξi(f(t1,…,tn))  =def  1≤ jn FVξi(tj)
FVξi([ξt1,…,tn ])  =def   FVξi(ti)
FVξi([ψt1,…,tn ])  =def  {ψ}∪∪1≤ jn FVξi(tj)
FVξip. t)  =def   FVξi(t)∖Var(p)
FVξi(t1{p by t2})  =def  ( FVξi(t1)∖Var(p))∪ FVξi(t2)

Ainsi, FVξi([ψ ∣ x,y,z ])={x,y,z,ψ} pour tout i et même, puisque nous travaillons modulo α-conversion:

  FVξ1(µ 
ξ ∣  x,y  

ξ ∣  f(x,z),u  
)=   FVξ1(µ 
ψ ∣  x,y  

ψ ∣  f(x,z),u  
)={z,u}
Remarque 13   Nous remarquons que:
Définition 14 (pré-termes acceptables)   L'ensemble des pré-termes acceptables est défini par induction sur la structure des pré-termes comme suit:

Par cette définition, les pré-termes µ [ξ ∣ x,x ]. [ξ ∣ x,x ] et µ [ξ ∣ x,u ]. [ξ ∣ x,u ] sont acceptables alors que t=µ [ξ ∣ x,y ]. [ξ ∣ y,x ] ne l'est pas car, par exemple, FVξ1([ξ ∣ y,x ])={y} et que ({y}∖{x})∩{y}≠∅.

Nous aurons de plus besoin de la notion de contexte.

Définition 15 (Pré-contexte)   Un pré-contexte est un pré-terme possédant une et une seule occurrence du symbole de fonction 0-aire . Cette définition est une extension naturelle aux pré-termes des ERSP de la définition 33.

Un contexte est un pré-contexte ne possédant aucune occurrence du constructeur de méta-filtrage.

Nous remarquons que la notion de pré-terme acceptable n'est pas close par pré-contexte. En effet bien que le pré-terme [ξ ∣ x,y ] soit acceptable, le pré-terme µ [ξ ∣ y,y ]. [ξ ∣ x,y ] ne l'est pas.

Nous devons maintenant définir les notions de méta-substitution et de substitution.

Définition 16 (Méta-substitutions et substitutions)   Une méta-substitution σ est un quadruplet TV PV UV CV) tel que:

Par la suite, noterons fréquemment σm le couple TV PV) et σv le couple UV CV).

Une substitution est une méta-substitution telle que σm=id.

Une méta-substitution σ sera dite bien formée si et seulement si:




 
Mdomm)
 FVm(M))


domv)=∅

Comme dans les cas des remplacements du premier ordre (définition 25) et des substitutions dans les λ-calculs, nous pouvons voir les méta-substitutions comme des couples d'ensembles de couples.

Définition 17 (Union de deux méta-substitutions)  

L'union de deux méta-substitutions σ1 et σ2 est notée σ1 ⊔ σ2. Cette union (des deux ensembles) n'est définie que si:

  ∀                     
x
∈(dom1)⋂dom2)), σ1(
x
)=σ2(
x
)

Nous sommes désormais en mesure définir l'opération de filtrage d'un terme par un motif. Cette opération est une opération ensembliste retournant un ensemble de substitutions. Nous donnerons dans la suite de ce chapitre un critère permettant d'assurer l'unicité de la substitution retournée.

Définition 18 (Filtrage)   L'opération de filtrage d'un terme t par un motif p, notée { { p   by   t } } , retourne un ensemble de substitutions défini par induction sur p comme suit:
 id    { { _   by   t } }
 {xt }    { { x   by   t } }
 σ1 ⊔ … ⊔ σn    { { @(p1,…,pn)   by   t } } σi∈{ { pi   by   t } }
 σ1 ⊔ … ⊔ σn    { { f(p1,…,pn)   by   f(t1,…,tn) } } σi∈{ { pi   by   ti } }
i,{ξ ▷ i} ⊔ σi    { { [ξp1,…,pn ]   by   t } } σi∈{ { pi   by   t } }

Dans la suite, nous utiliserons la notation { { p   by   t } } pour dénoter l'unique élément de cet ensemble quand celui-ci sera un singleton.

Nous remarquons que:

L'ensemble { { [ξ ∣ 0,x ]   by   0 } } contient deux substitution {a ▷ 1 } et {a ▷ 2, x ▷ 0 }. Ceci vient du fait que le motif [ξ ∣ 0,x ] contient deux sous-motifs qui se "chevauchent".

Définition 19 (Méta-substitution acceptable et linéaire)   Soit S un ensemble de variables et de méta-variables de termes. Une méta-substitution σ est dite p-linéaire par rapport à S (respectivement acceptable par rapport à S) si et seulement si:
  ∀
x
∈ S, σ 
x
est p-linéaire (resp. acceptable)

Une méta-substitution σ est dite acceptable (resp. p-linéaire) si et seulement si σ est acceptable (resp. linéaire) par rapport à dom(σ).

Lemme 20   Si t est un terme acceptable et si la substitution σ appartient à { { p   by   t } } alors σ est acceptable.
 Preuve. Nous raisonnons par induction sur la structure du motif p.

Nous allons maintenant définir l'application d'une méta-substitution σ à un méta-terme T.

Définition 21 (Application d'une méta-substitution)   Soient σ=(σmv) une méta-substitution et T un méta-terme. L'application de σ à T (ou instanciation de T par σ) est définie comme un ensemble de termes, noté σ(T), qui est obtenu en deux pas:
  1. Tout d'abord, nous évaluons le remplacement du premier ordre σm(T). Nous obtenons alors un pré-terme t. Si t n'est pas un pré-terme, l'application n'est pas définie.
  2. Nous évaluons alors l'ensemble σv(t) par induction sur la structure de t, en utilisant l'α-conversion pour éviter les captures de variables, comme suit:
    σv xσv(x)si xdomv)
    xσv(x)si xdomv)
    µ p. t'σvp. t)si t'∈σv(t)
    f(t'1,…,t'n)σv(f(t1,…,tn))si t'i∈σv(ti)
    [ξt'1,…,t'n ]σv([ξt1,…,tn ])si t'i∈σv(ti) et ξ∉domv)
    t'iσv([ξt1,…,tn ])si t'i∈σv(ti) et (ξ ▷ i)∈σv
    t'σv(t1{p by t2})si t'2∈σv(t2), σ'v∈{ { p   by   t'2 } }
       t'∈(σ'v ⊔ σv)(t)

Nous remarquons de plus que si le méta-terme T ne contient pas de constructeur de méta-filtrage alors, sous réserve d'existence, σ(T) est un singleton.

Enfin, nous remarquons que le second pas de cette instanciation est nécessaire y compris dans le cas où σv=id. En effet, le pré-terme t peut contenir des constructeurs de méta-filtrage qui doivent être éliminés par cette seconde phase.

Afin de clarifier le fonctionnement de cette opération, considérons la méta-substitution σ=(σmv) où

σm={X ▷ [ξ ∣ x,f(z,y) ],M ▷ [ξ ∣ g(x,x),z ],Nf(x,x)}
et
σv=id

Afin d'évaluer l'instanciation du méta-terme T=M{X by N} par σ, nous commençons par appliquer le remplacement du premier ordre

tm(T)=
ξ ∣  g(x,x),z  
{
ξ ∣  x,f(z,y)  
by f(x,x)}

Nous appliquons alors une passe d'α-conversion et obtenons:

t=
ξ ∣  g(x',x'),z  
{
ξ ∣  x',f(z,y)  
by f(x,x)}

Nous devons alors évaluer { { [ξ ∣ x',f(z,y) ]   by   f(x,x) } } . Nous obtenons {σ12} où σ1={ξ ▷ 1,x' ▷ f(x,x)} et σ2={ξ ▷ 2,zx,yx}. Finalement nous obtenons l'ensemble:



g(f(x,x),f(x,x)),x

Lemme 22   Si t est un pré-terme acceptable et si la substitution σ est acceptable par rapport à FV(t) alors σ(t) ne contient que des termes acceptables.
 Preuve. Nous raisonnons par induction sur la structure du terme t.

5.2  Règles de réécriture et relation de réduction

Cette section définit formellement les notions de système de réécriture et de relation de réduction dans le cadre des ERSP. Nous présenterons de plus un certain nombre de résultats techniques tels que la préservation de l'ensemble des variables libres et de la notion d'acceptabilité par réduction.

Définition 23 (ERSP)   Un système de réduction d'expressions avec motifs, ou ERSP, R est un ensemble de règles de réécriture notées indifféremment L→  R ou (L,R) telles que:

La βPM-règle, appX. M,N)M{X by N}, appartient à ce formalisme. En revanche, ni M→  0, ni f(x)→  x, ni f(M)g(M,N), ni f(M)λ X. M ne sont des règles dans ce formalisme.

Afin de garantir la préservation des variables libres par réduction, nous aurons besoin de satisfaire la condition de chemin.

Définition 24 (Condition de chemin)   Soit M une méta-variable de terme et T un méta-terme. Soient alors p1,…,pn l'ensemble de toutes les positions des occurrences de M dans T et l1,…,ln les chemins de liaison associés à ces positions. Une méta-substitution σ satisfait la condition de chemin pour la méta-variable de terme M et le méta-terme T si et seulement si:
  ∀     
x
 FVm(M)),     (∀     1≤     in,
x
∈σm li)∨(∀ 1≤ i≤ n,
x
∉σm li)
σm li=defxl FVm x).

Nous étendons cette notion aux règles de réécriture comme suit: une méta-substitution σ satisfait la condition de chemin pour une méta-variable de terme M et une règle de réécriture L→  R si et seulement si σ satisfait la condition de chemin pour M et ↦(L,R) est un nouveau symbole de fonction.

Nous remarquons que si σ satisfait la condition de chemin pour un méta-terme T, alors σ satisfait la condition de chemin pour tout sous-méta-terme de T.

Le contre-exemple classique à la condition de chemin est obtenu en considérant la η-règle du λ-calcul [Kha90, BKR00]. Une règle similaire mais utilisant le filtrage est la règle: λ f(X). M→  M. La méta-substitution σ={Xx, Mx} ne satisfait pas la condition de chemin pour M et cette règle.

Contrairement au λ Pw-calcul pour lequel nous pouvions vérifier que les règles préservaient la notion d'acceptabilité par réduction (c.f. lemme 20), nous ne pouvons ici assurer que cette notion sera préservée par réduction grâce aux règles de réécriture. Nous avons fait le choix de réduire le système de réduction induit par un système de règles plutôt que de réduire la notion de règles de réécriture. Pour cela nous introduisons maintenant la notion de méta-substitution admissible.

Définition 25 (Méta-substitution admissible)   Une méta-substitution σ est dite admissible pour un méta-terme T si et seulement si:

Une méta-substitution σ est dite admissible pour une règle L→  R si et seulement si σ est admissible pour ↦(L,R) est un nouveau symbole de fonction.

Quelques remarques s'imposent à ce stade. Tout d'abord, la notion d'admissibilité d'une méta-substitution σ pour une règle L→  R implique que σ(L) et σ(R) soient définis et donc en particulier domm)⊂ MV(L).

Remarquons aussi que si L→  R est une règle et si σ est admissible pour L→  R alors σ(L) est un singleton puisque L ne contient pas d'occurrence du constructeur de méta-filtrage.

Définition 26 (Relation de réduction induite par un système)   Soit R un ERSP. Un terme t1 se réécrit (par R) en t2, ce que nous noterons t1—→aR  t2 (ou plus simplement t1R t2 quand la confusion ne sera pas possible) si et seulement si:

Remarquons que, bien que la relation de réduction —→a  soit définie sur l'ensemble de tous les termes, la réduction ne peut avoir lieu que dans des sous-termes acceptables.

Avant de développer un exemple concret et complet de réduction, nous allons démontrer que la relation —→a  préserve bien les variables libres et les termes acceptables.

Lemme 27   Si L→  R est une règle de réécriture et σ est une méta-substitution admissible pour L→  R, alors:
  ∀     t∈σ(R),     ∀    ξ∈ CV     ,∀ iar(ξ),   FVξi(t)⊂  FVξi(σ(L))
 Preuve. Soit t∈σ(R). Supposons que x appartienne à FVξi(t). Remarquons tout d'abord que, par définition des méta-termes bien formés (définition 11), x FV(R). Donc x a été introduite par la méta-substitution σ. Plus précisément, il existe une méta-variable de terme M appartenant au domaine de σ telle que x FVM). Donc, il existe une position pr de R telle que l'on ait: Par définition des règles de réécriture, nous devons avoir M FMV(L). Il existe donc un position pl tel que Lpl=M. Considérons le chemin de liaison lpl de L à la position pl. x ne peut appartenir à lpl puisque σ satisfait la condition de chemin pour M. Deux cas sont alors possibles:

Nous déduisons de ce fait:

Lemme 28 (Préservation des variables libres localisées)   Si R est un ERSP, t1 et t2 sont deux termes tels que t1—→aR t2 alors:
  ∀               ξ,               ∀              i,   FVξi(t2)⊂  FVξi(t1)
 Preuve. Le résultat est immédiat par induction sur la définition de la relation t1—→aR t2 et par le lemme 27.
Corollaire 29 (Préservation des variables libres)   Si R est un ERSP, t1 et t2 sont deux termes tels que t1—→aR t2 alors:
   FV(t2)⊂ FV(t1)
 Preuve. Immédiat par le lemme 28 et la remarque 13.
Lemme 30 (Preservation de la notion d'acceptabilité)   Si s est un terme acceptable et si sR  t, alors t est un terme acceptable.
 Preuve. Par induction sur la définition de sR  t et le lemme 28.

Nous n'utiliserons désormais, sauf mention explicite du contraire, que des termes acceptables.

Il est désormais temps de présenter un exemple concret de ERSP.

5.3  Un exemple concret

Cette section est consacrée à un exemple concret de ERSP et de réduction dans le cadre de ce formalisme. Nous allons pour cela tout d'abord définir un ERSP représentant la fonction map qui prend en entrée une fonction f et une liste l et retourne la liste composée des résultats de la fonction f appliquée aux éléments de l. Puis nous donnerons une séquence de réductions pour un terme de ce ERSP.

La fonction map peut être spécifiée en Ocaml [Obj] par le programme suivant:

type 'a liste = 
  | Vide 
  | Cons of 'a * 'a liste

let rec map(f,l) = 
  match l with 
    | Vide -> Vide
    | Cons(h,t) -> Cons(f(h),map(f,t))

Pour pouvoir encoder cette fonction dans les ERSP il nous faut donner au minimum les symboles de fonction suivants:

Nous nous donnons alors le système de réduction R={L→  R} suivant:

L =def mapX. F,L)
R =def [ξ ∣ Vide,Cons(F{X by h},mapX. F,t)) ]{[ξ ∣ Vide,Cons(h,t) ] by L}

Nous enrichissons notre signature des deux symboles de fonctions Zero d'arité 0 et S d'arité 1 ce qui nous permettra d'encoder les entiers naturels dans notre système. Le terme définissant la fonction pred sur les entiers est alors:

pred=defµ 
ψ ∣  Zero,S(n)  

ψ ∣  Zero,n  

Nous pouvons dès lors réduire le terme:

t1=map(pred,Cons(Zero,Cons(S(S(Zero)),Vide)))

Pour cela, nous devons tout d'abord remarquer que t1=σ(L) avec:

σm={ X ▷ [ψ ∣ Zero,S(n) ], F ▷ [ψ ∣ Zero,n ], LCons(Zero,Cons(S(S(Zero)),Vide)) }
et
σv=id

Donc t1—→aR σ(R) si ce dernier terme est défini.

Or nous avons:

σm(R)=
[ξ ∣ Vide,Cons(F{X by h},mapX. F,t)) ]{[ξ ∣ Vide,Cons(h,t) ] by L}=
 
[ξ ∣ Vide,Cons( [ψ ∣ Zero,n ]{[ψ ∣ Zero,S(n) ] by h},map(pred,t)) ]
 {[ξ ∣ Vide,Cons(h,t) ] by Cons(Zero,Cons(S(S(Zero)),Vide))}
 

Nous devons évaluer:

{ { [ξ ∣ Vide,Cons(h,t) ]   by   Cons(Zero,Cons(S(S(Zero)),Vide)) } }

ce qui nous donne:

ρ=def{ξ ▷ 2, hZero,tCons(S(S(Zero)),Vide) }

De plus, nous avons:

(id ⊔ ρ)([ξ ∣ Vide,Cons([ψ ∣ Zero,n ]{[ψ ∣ Zero,S(n) ] by h},map(pred,t)) ])=
(id ⊔ ρ)(Cons([ψ ∣ Zero,n ]{[ψ ∣ Zero,S(n) ] by h},map(pred,t)))=
Cons(ρ([ψ ∣ Zero,n ]{[ψ ∣ Zero,S(n) ] by h}),map(pred,Cons(S(S(Zero)),Vide)))

Il nous faut alors calculer:

{ { [ψ ∣ Zero,S(n) ]   by   (id ⊔ ρ)(h) } } =
{ { [ψ ∣ Zero,S(n) ]   by   Zero } }

Le résultat de ce calcul est:

ρ'=def{ψ ▷ 0}

d'où:

(id ⊔ ρ ⊔ ρ')([ψ ∣ Zero,n ])=
Zero

Donc finalement nous avons:

t1—→aR  Cons(Zero,map(pred,Cons(S(S(Zero)),Vide)))=t2

Une seconde étape de réécriture nous conduit à la forme normale attendue:

Cons(Zero,Cons(S(Zero),Vide))

5.4  Vers un ensemble d'ERSP confluents

Cette section est consacrée à l'introduction d'un sous-ensemble des ERSP, les ERSP l-constructeurs et orthogonaux, dont nous démontrerons la confluence dans la section suivante.

Intuitivement, un ERSP orthogonal est un ERSP linéaire gauche (i.e. pour chaque règle L→  R, toute méta-variable apparaît au plus une fois dans L) et non recouvrant (sans paire critique). Il est connu que les systèmes du premier ordre [BN98] et d'ordre supérieur orthogonaux [Raa96] sont confluents.

Un ERSP l-constructeur est un ERSP dans lequel l'ensemble des symboles de fonction peut être partitionné en l'ensemble des constructeurs qui ne peuvent pas être réduits (mais sur lesquels on peut filtrer) et l'ensemble des symboles définis (qui sont les symboles de tête des membres gauche des règles) et dont tout les motifs sont linéaires. La nécessité des systèmes l-constructeurs est évidente pour la confluence. En effet, considérons par exemple le système non l-constructeur suivant:

R:

    a b
    app(µ ac,M) c{a by M}

Le terme appa. c,b) possède alors clairement deux réduits non joignables c et appa. b,b). Ainsi R n'est donc pas confluent.

Malheureusement, les ERSP l-constructeurs orthogonaux ne sont pas confluents pour la réduction admissible. En effet nous considérons à présent le système composé uniquement de la βPM-règle dont il est clair qu'il est tout à la fois orthogonal et l-constructeur. Le terme t=app(λ [ξ ∣ x,y ]. [ξ ∣ 0,1 ],3) possède, par —→aR , deux réduits 0 et 1 non joignables. La raison de ce phénomène est que le terme t contient deux motifs x et y se recouvrant mutuellement. La non confluence est, dans ce cas, totalement normale puisque le terme t correspond informellement à un système de réécriture de premier ordre "non orthogonal". Il nous faudra donc restreindre la relation de réduction induite par un ERSP.

Nous allons à présent formaliser les notions que nous venons d'introduire.

Définition 31 (Systèmes l-constructeurs)   Un ERSP R est dit l-constructeur si et seulement si:
  1. L'ensemble F des symboles de fonctions peut être partitionné en deux ensembles Fc et Fd, appelés respectivement ensembles des symboles constructeurs et définis, tels que:
    1. [] Tout élément de Fd est le symbole de tête d'un membre gauche de règle de R.
    2. Les symboles de fonction apparaissant dans les motifs présents dans les règles de R sont des symboles constructeurs.
  2. Pour toute règle (L, R)∈R, L et R sont tous deux des méta-termes p-linéaires (c.f. définition 3).
Exemple 32  

Le système suivant est l-constructeur.

  R1:



      app(λ XM,N) M{X by N}
      plus(0,N) N
      plus(s(M),N) s(plus(M,N))

En revanche les deux systèmes suivants ne sont pas l-constructeurs.

  R2:



      µ f(X). M M
      f(0) 0
    
et
  R3:

      µ f(X,X). 0 0
    

En effet, le symbole f apparaît tout à la fois en tête d'une règle et dans un motif du système R2 et le méta-terme µ f(X,X). 0 n'est pas p-linéaire dans le système R3.

Nous allons maintenant définir les méta-motifs et les méta-termes l-constructeurs.

Définition 33 (Méta-termes et méta-motifs l-constructeurs)   Soit R un système l-constructeur.

Un méta-motif est dit l-constructeur s'il est linéaire et si ses symboles de fonctions sont des symboles constructeurs de R.

Un méta-terme est dit l-constructeur s'il ne contient que des méta-motifs l-constructeurs.

Si nous considérons le système R1 défini précédemment, le méta-motif s(X) est l-constructeur alors que plus(X,Y) ne l'est pas puisque plus n'est pas un symbole constructeur de R1.

Bien que la définition 33 dépende d'un ERSP R donné, nous ferons désormais un abus de notation en écrivant qu'un méta-motif ou un méta-terme est simplement l-constructeur sans préciser le système quand cela ne sera pas nécessaire à la compréhension.

Définition 34 (Méta-substitution l-constructeur)   Une méta-substitution σ est dite l-constructeur pour un méta-terme T si et seulement si σ(T) est défini et σm(T) est un pré-terme l-constructeur.

Une méta-substitution est dite l-constructeur pour une règle L→  R si elle est l-constructeur pour ↦(L,R) est un nouveau symbole de fonction.

Ainsi, dans le système R1 de l'exemple 32, la substitution σ={Xplus(0,0), M ▷ 0, N ▷ 0} n'est pas l-constructeur pour le membre droit de la βPM-règle. En revanche la méta-substitution θ={X ▷ [ξ ∣ 0,s(x) ],M ▷ [ξ ∣ 0,x ],Nplus(3,4)} est, elle, l-constructeur pour la βPM-règle.

Lemme 35   Soient p un motif et t un terme l-constructeur. Si { { p   by   t } } est défini, alors ∀σ∈{ { p   by   t } } ,∀ xdom(σ), σ(x) est un terme l-constructeur.
 Preuve. Le résultat est immédiat par induction sur la structure de p.
Lemme 36   Si t est un pré-terme l-constructeur et si σ est une substitution telle que xdom(σ), σ(x) est l-constructeur alors, sous réserve d'existence, σ(t) ne contient que des termes l-constructeurs.
 Preuve. Nous raisonnons par induction sur la structure de t. Le seul cas non immédiat est le cas où t=t1{p by t2}. Dans ce cas, nous savons, par hypothèse d'induction, que σ(t2) ne contient que des termes l-constructeurs. Soit t2'∈σ(t2). Par le lemme 35, nous savons que ∀σ'∈{ { p   by   t2' } } ,∀ xdom(σ'), σ(x) est un terme l-constructeur. Le résultat est alors immédiat par hypothèse d'induction appliquée à t1.
Lemme 37   Soit T un méta-terme. Si σ est une méta-substitution l-constructeur pour T alors σ(T) ne contient que des termes l-constructeurs.
 Preuve. La preuve est obtenue par induction sur la structure de T. Le seul cas non immédiat est celui où T=T1{P by T2}. Dans ce cas nous savons que σm(T) est un pré-terme l-constructeur et donc, par hypothèse d'induction, que σ(T2) ne contient que des termes l-constructeurs. De même, nous savons, par hypothèse d'induction, que σm(T1) est un pré-terme l-constructeur. Nous concluons alors par le lemme 36.

Nous sommes maintenant en mesure de définir la réduction l-constructeur.

Définition 38 (Réduction l-constructeur)  

Soit R est un ERSP l-constructeur. Nous dirons qu'un terme s se réécrit l-constructeur en t, ce que nous noterons s—→cR t, si et seulement si:

Ainsi, si nous considérons le système R1 de l'exemple 32, nous avons plus(0,0)—→cR1  0 mais nous n'avons pas t=appplus(0,0). 3,plus(0,0))—→cR1  3 car le terme t n'est pas l-constructeur.

Lemme 39 (Préservation des terme l-constructeurs)   Si s est un terme l-constructeur et si s—→c  t alors t est un terme l-constructeur.
 Preuve. Le résultat est immédiat par induction sur le contexte considéré dans la réduction et par le lemme 37.

Après avoir introduit les notions d'objet l-constructeurs, nous alons désormais définir les systèmes de réécriture orthogonaux.

Définition 40 (Systèmes linéaires gauches)   Une règle de réécriture L→  R est dite linéaire gauche si et seulement si toute méta-variable de terme possède au plus une occurrence dans L.

Un ERSP R est dit linéaire gauche si et seulement si toutes ses règles sont linéaires gauches.

Définition 41 (Radicaux et superpositions)  

Un terme t est appelé radical si et seulement s'il existe une règle L→  R telle que t=σ(L).

Un système R={(L1,R1),…,(Ll,Rk)} est dit non superposant si et seulement si:

Cette définition est en fait "équivalente" à l'absence de paire critique telle que présentées à la définition 37.

Définition 42 (Systèmes orthogonaux)   Un ERSP R est dit orthogonal si et seulement si il est linéaire gauche et non superposant.

Ainsi, le système R1 de l'exemple 32 est orthogonal. En revanche, si nous considérons le système:

R4:

    µ Xf(M)M
    f(M)M

Ce système n'est pas orthogonal puisque ces deux règles se superposent, par exemple, sur le terme µ _ . f(0).

Définition 43 (Motifs superposables)   Deux motifs p et q seront dit superposables si et seulement si il existe un terme t tel que { { p   by   t } } et { { q   by   t } } sont tous les deux définis.

Les motifs f( _ ,x) et f(y,g(0)) sont superposables tout comme les motifs [ξ ∣ 0,s(x) ] et 0.

Définition 44 (Motifs et termes déterministes)  

L'ensemble des motifs déterministes est le plus petit sous ensemble des motifs linéaires tel que:

Un pré-terme acceptable t est dit déterministe si tout les motifs apparaissant dans t sont déterministes.

Ainsi, le motif [ξ ∣ s(0),s(s(0)) ] est déterministe mais pas le motif [ξ ∣ s(0),s(_) ].

Nous remarquons que si un méta-terme est déterministe alors ses sous-méta-termes aussi.

Remarque 45   Nous remarquons que cette définition implique que si p est déterministe alors { { p   by   t } } contient au plus une substitution.
Définition 46 (Méta-substitutions déterministes)  

Une méta-substitution σ est dite déterministe pour un méta-terme T si et seulement si:

Une méta-substitution est dite déterministe pour une règle L→  R si elle est déterministe pour ↦(L,R) est un nouveau symbole de fonction.

Ainsi la méta-substitution σ={ Xx,Yy} n'est pas déterministe pour le méta-terme Tf(X,Y). 0.

Lemme 47   Soient p un motif déterministe et t un terme déterministe alors, sous réserve d'existence, { { p   by   t } } est unique et xdom({ { p   by   t } } ), { { p   by   t } } (x) est un terme déterministe.
 Preuve. Le fait que { { p   by   t } } soit, sous réserve d'existence, tel que ∀σ∈{ { p   by   t } } ,∀ xdom(σ), σ(x) soit un terme déterministe est immédiat par induction sur p.

Il ne nous reste donc plus qu'a démontrer que, sous réserve d'existence, { { p   by   t } } est uniquement défini. Pour cela nous raisonnons une fois encore par induction sur p. Le seul cas non immédiat par hypothèse d'induction est le cas où p=[ξ ∣ p1,…,pn ], dans lequel nous concluons grâce au fait que p est déterministe.


Lemme 48   Si t est un pré-terme déterministe et si σ est une substitution telle que xdom(σ), σ(x) est déterministe alors, sous réserve d'existence, σ(t) est unique et déterministe.
 Preuve. Nous raisonnons par induction sur la structure de t. Le seul cas non immédiat est le cas où t=t1{p by t2}. Dans ce cas, nous savons que σ(t2) est unique et déterministe. Par le lemme 47, nous savons que { { p   by   σ(t2') } } est unique et que pour tout x appartenant à dom({ { p   by   σ(t2') } } ), le pré-terme { { p   by   σ(t2') } } (x) est déterministe. Le résultat est alors immédiat par hypothèse d'induction appliquée à t1.
Lemme 49   Soit T un méta-terme. Si σ est une méta-substitution déterministe pour T alors σ(T) est unique et déterministe.
 Preuve. La preuve est obtenue par induction sur la structure de T. Le seul cas non immédiat est le cas où T=T1{P by T2}. Dans ce cas nous savons que σm(T) est un pré-terme déterministe et donc, par hypothèse d'induction, que σ(T2) est unique et déterministe. De même, nous savons que σm(T1) est un pré-terme déterministe. Nous concluons alors par le lemme 48.

Nous pouvons maintenant définir la relation de réduction déterministe induite par un ERSP.

Définition 50 (Réduction déterministe)   Soit R un ERSP. Un terme s se réécrit de manière déterministe en t, ce que nous noterons désormais s—→dR t si et seulement si:

Enfin nous définissons la relation de réduction l-constructeur déterministe induite pas un ERSP R, notée —→c,dR , par: —→c,dR =—→cR ∩—→dR .

Les ERSP orthogonaux préservent les termes déterministes par réduction déterministe.

Lemme 51 (Préservation du déterminisme)   Soit R un ERSP orthogonal. Si s est un terme déterministe et si s—→dR  t alors t est un terme déterministe.
 Preuve. Le fait que t soit acceptable découle de la préservation des termes acceptables par réduction admissible (lemme 30). Il ne nous reste donc plus qu'à prouver que tous les motifs apparaissant dans t sont déterministes. Pour cela nous raisonnons par induction sur la définition de s—→dR t.

Nous allons dans la prochaine section démontrer que les ERSP orthogonaux et l-constructeurs sont confluents.

5.5  Confluence des ERSP

Cette section est consacrée à la démonstration de la confluence de la relation —→c,d  pour les ERSP orthogonaux et l-constructeurs. La preuve de cette propriété est obtenue par la méthode de Tait et Martin-Löf [Bar84] et peut être résumée en quatre points clés:

  1. dans un premier temps, nous allons définir une relation de réduction "parallèle"  >>>c,dR ,
  2. nous montrerons alors que  >>>*c,dR =—→c,dR* ,
  3. puis, en utilisant les termes de Takahashi [Tak89, Tak93], nous montrerons que la relation  >>>c,dR  est fortement confluente pour les ERSP l-constructeurs et orthogonaux,
  4. nous conclurons alors en nous souvenant que la forte confluence implique la confluence.

Afin de pouvoir définir la relation  >>>c,d , il nous faut étendre la notion de relation de réduction induite par un ERSP aux méta-substitutions.

Définition 52 (Relation de réduction sur les méta-substitutions)  

Soit une relation de réduction sur l'ensemble des termes.

La méta-substitution σ se réduit (par ) en la méta-substitution ρ, ce que nous noterons σ→ρ, si et seulement si:

  1. Les méta-substitutions σ et ρ ont même domaine.
  2. Pour toute méta-variable de terme Mdom(σ), σ(M)→ρ(M).
  3. Pour toute variable usuelle xdom(σ), σ(x)→ρ(x).
  4. Pour toute méta-variable de motif Xdom(σ), σ(X)=ρ(X).
  5. Pour toute variable de choix ξ∈dom(σ), σ(ξ)=ρ(ξ).

Nous somme désormais en mesure de définir la relation >>>.

Définition 53 (Relation de réduction parallèle)  

Soit R un ERSP. Nous définissons la relation de l-constructeurs déterministe parallèle induite par R, notée  >>>c,dR , par induction sur l'ensemble de termes comme suit:

  1. x >>>c,dR x pour toute variable usuelle x.
  2. Si t1 >>>c,dR t1', …, tn >>>c,dR tn' alors:
        
          f(t1,…,tn
    c,d
    >>>
     
    R f(t1',…,tn')
           et
          
    ξ ∣  t1,…,tn  
     
    c,d
    >>>
     
    R 
    ξ ∣  t1',…,tn'  
  3. Si t >>>c,dR  t' alors µ p. t >>>c,dR µ p. t'.
  4. Si σ >>>c,dR ρ alors pour toute règle L→  R de R telle que σ soit l-constructeur et déterministe pour L→  R, σ(L>>>c,dR ρ(R).

Afin de simplifier les notations, il nous arrivera désormais d'omettre le système R dans la relation parallèle.

Remarque 54  

Pour tout terme s on a: s >>>c,d  s.

De même, si s >>>c,d  s' et si s n'est pas un radical, alors les symboles de tête de s et s' sont les mêmes. De plus, si s= G(s1,…,sn) alors s'= G(s1',…,sn')i, si >>>c,d  si' avec G un symbole de fonction, un constructeur de choix ou une abstraction.

Nous somme maintenant en mesure de donner la démonstration de  >>>*c,d =—→c,d* .

Lemme 55   Soient R un ERSP l-constructeur et p est un motif l-constructeur déterministe. Si t est un terme tel que t—→c,d* t' et { { p   by   t } } est défini alors { { p   by   t' } } est aussi défini (et c'est un singleton) et { { p   by   t } } —→c,d* { { p   by   t' } } .
 Preuve. Nous raisonnons par induction sur la structure de p.

Remarquons que le lemme précédent est faux si p n'est pas l-constructeur. En effet, considérons le système R={ a→  b }, le motif non linéaire p1=f(x,x) et le motif "non constructeur" p2=a. Alors { { f(x,x)   by   f(a,a) } } est bien défini et f(a,a)—→c  f(a,b) mais { { f(x,x)   by   f(a,b) } } n'est pas défini. De même { { a   by   a } } est défini et a—→c b mais { { a   by   b } } n'est pas défini.

Corollaire 56  

Soient R un ERSP l-constructeur, P un méta-motif et T un méta-terme. Soient alors σ et ρ deux méta-substitutions telles que σ(P) est un motif l-constructeur déterministe et σ(T)—→c,d* ρ(T). Si { { σ(P)   by   σ(T) } } est défini alors { { ρ(P)   by   ρ(T) } } est aussi défini et:

{   { σ(P)   by      σ(T) }      } 
c,d
—→
 
* {   { ρ(P)   by      ρ(T) }      } 
 Preuve. Immédiat par le lemme 55 puisque, par définition, σ(P)=ρ(P).

Nous sommes désormais en mesure de démontrer que la réduction est "stable par application". Il nous faudra pour cela "α-convertir" certains méta-termes.

Lemme 57   Soient σ=(σmv) une méta-substitution, T un méta-terme, et S un ensemble de variables de choix et de variables usuelles. Supposons que σ satisfait la condition de chemin (c.f. définition 24) pour toute méta-variable de terme M de T. Il existe alors une méta-substitution σ'=(σ'mv) et un méta-terme T' tels que σm(T)=ασ'm(T'), T' ne diffère de T que sur l'ensemble des variables (usuelles et de choix) liées et aucune des variables liées de σ'm(T') n'appartient à S.
 Preuve. La condition de chemin garantit que pour toute méta-variable de terme M de T, il existe un unique ensemble de variables (usuelles et de choix) VM tel que x VM si et seulement si x∈∪p σm( PP(T,p)) où p décrit l'ensemble des positions de T telles que Tp=M. De même pour toute méta-variable de motif X de T, il existe un unique VX= BVm(X)). Considérons enfin, l'ensemble A des variables (usuelles et de choix) liées dans T. Nous définissons alors un renommage de ∪MT VM∪∪XT VX A dans un ensemble V' tel que V'S=∅. Nous définissons alors T' en appliquant à T le renommage de premier ordre ρ. Enfin nous définissons σ'm comme suit: σ'm(X)=ρ(σm(X)) et σ'm(M)=ρ(σm(M)).
Lemme 58   Soient σ=(σmv) une méta-substitution et T un méta-terme. Supposons que σ satisfait la condition de chemin pour toute méta-variable de terme M de T. Il existe alors une méta-substitution σ'=(σ'm,σ'v) et un méta-terme T tels que σ(T)=ασ'(T'), T' ne diffère de T que sur l'ensemble des variables (usuelles et de choix) liées et BV(σ'(T'))∩(dom(σ'v)∪codom(σ'v))=∅.
 Preuve. Nous utilisons le lemme 57 pour construire σ'm et T' à l'aide de S=domv)∪codomv) puis nous choisissons σ'=(σ'mv).
Lemme 59   Soient R un ERSP l-constructeur et σ et ρ deux méta-substitutions telles que σ—→c,dR* ρ. Si T est un méta-terme tel que σ soit l-constructeur et déterministe pour T, alors il en est de même pour ρ et σ(T)—→c,dR* ρ(T).
 Preuve. Par le lemme 58, nous pouvons supposer que σ, ρ et t satisfont les conditions sur les variables liées. Nous raisonnons alors par induction sur la structure de T.

Ce lemme nous permet d'obtenir la propriété fondamentale suivante:

Lemme 60   Soit R un ERSP l-constructeur. Si σ—→c,dR* ρ et si σ est l-constructeur et déterministe pour la règle L→  R alors σ(L)—→c,dR* ρ(L) et ρ est l-constructeur et déterministe pour L→  R.
 Preuve. Nous remarquons tout d'abord que σ et ρ sont identiques sur l'ensemble PV. Afin de montrer que ρ est l-constructeur et déterministe pour L→  R il nous faut montrer que:
  1. La méta-substitution ρ satisfait la condition de chemin pour L→  R. Soit M une méta-variable de terme de L→  R. Nous savons que σ satisfait la condition de chemin pour L→  R i.e. si p1,…,pn sont les positions des différentes occurrences de M dans L→  R et l1,…,ln leurs chemins de liaison associés alors:
      ∀ 
    x
     FV(σ(M)), (∀ 1≤ in,
    x
    ∈σ li)∨(∀ 1≤ in,
    x
    ∉σ li)

    Soit maintenant x FV(ρ(M)). Par le corollaire 29, x FV(σ(M)) d'où le résultat puisque pour tout i, σ(li)=ρ(li).

  2. ρ(L) et ρ(R) ne contiennent que des termes acceptables. Par hypothèse σ est l-constructeur déterministe pour L→  R et donc σ(L) et σ(R) sont tous deux des termes l-constructeurs et déterministes. Il en est donc de même, par le lemme 59, pour ρ.

Il nous faut maintenant démontrer que σ(L)—→c,dR* ρ(R). Pour cela nous raisonnons par induction sur ν=Σi=1… n∣σ(xi)—→c,dR* ρ(xi)∣ où dom(σ)∩( TV UV)={x1,…,xn}.


Nous pouvons maintenant démontrer que —→c,d* = >>>*c,d 

Théorème 61   Soient R un ERSPet s un terme. Si s—→c,d  t alors s >>>c,d  t.
 Preuve. Soit s—→c,d  t. Nous raisonnons par induction sur la définition de —→c,d . Le seul cas non immédiat par hypothèse d'induction est le cas où s=σ(L) et t=σ(R) pour une règle L→  R. Mais, dans ce cas, puisque  >>>c,d  est réflexive nous avons σ >>>c,d σ et le résultat est immédiat par la définition 53.
Théorème 62   Soient R un ERSP l-constructeur et s un terme. Si s >>>c,dR t alors s—→c,dR* t.
 Preuve. Nous raisonnons par induction sur la définition de s.
Corollaire 63   Soient R un ERSP l-constructeur et s un terme.
  s
c,d
—→
 
R* t     ⇔     s 
c,d
>>>*
 
R t

Nous allons maintenant démontrer la confluence forte de —→c,d . Pour ce faire, nous allons associer à tout terme t l-constructeur déterministe un unique terme, noté #(t). Cet unique terme sera tel que si t >>>c,d t' alors t' >>>c,d #(t). La démonstration de la confluence forte sera alors immédiate.

Définition 64   Soit R un ERSP l-constructeur. A tout terme t nous associons son terme de Takahashi, noté #(t), par induction sur t comme suit:

Afin de pouvoir conclure nous avons besoin de deux lemmes "similaires" aux lemmes 55 et 59 et d'un corollaire "similaire" au corollaire 56.

Lemme 65   Soient R un ERSP l-constructeur et p est un motif l-constructeur déterministe. Si t est un terme tel que t >>>c,d t' et { { p   by   t } } est défini alors { { p   by   t' } } est aussi défini (et c'est un singleton) et { { p   by   t } }  >>>c,d { { p   by   t' } } .
 Preuve. c.f. preuve du lemme 55. Il suffit de remplacer dans cette preuve —→c,d*  par  >>>c,d .
Corollaire 66  

Soient R un ERSP l-constructeur, P un méta-motif et T un méta-terme. Soient alors σ et ρ deux méta-substitutions telles que σ(P) est un motif l-constructeur déterministe et σ(T>>>c,d ρ(T). Si { { σ(P)   by   σ(T) } } est défini alors { { ρ(P)   by   ρ(T) } } est aussi défini et:

{   { σ(P)   by      σ(T) }      }  
c,d
>>>
 
 {   { ρ(P)   by      ρ(T) }      } 
 Preuve. Immédiat par le lemme 65.
Lemme 67   Soient R un ERSP l-constructeur et σ et ρ deux méta-substitutions telles que σ >>>c,dR ρ. Si T est méta-terme tel que σ satisfasse la condition de chemin pour T et soit déterministe et l-constructeur pour T, alors il en est de même pour ρ et σ(T>>>c,dR ρ(T).
 Preuve. c.f. preuve du lemme 59. Il suffit de remplacer dans cette preuve —→c,d*  par  >>>c,d  et "lemme 55" par "lemme 65".
Lemme 68   Soit R est un ERSP l-constructeur orthogonal.
  1. #(t) est défini et unique pour tout terme t.
  2. t >>>c,dR #(t).
 Preuve. Nous raisonnons par induction sur la structure de t. Le seul cas non évident est le cas où t est une instance l-constructeur déterministe. Dans ce cas nous avons t=σ(L) et nous pouvons supposer sans perte de généralité que σv=id. Dès lors, puisque, pour toute méta-variable de terme Mdom(σ), σ(M) est structurellement plus petit que σ(L) nous savons que:
  1. #(σ) est définie et unique et
  2. σ >>>c,dR #(σ)
Par le lemme 67, nous savons alors que #(σ)(R)=#(t) est défini et unique. Nous concluons alors grâce à la définition 53.
Corollaire 69   Si t est un terme l-constructeur déterministe alors #(t) aussi.
Définition 70 (Positions Rigides Minimale)   Soient R un ERSP l-constructeur orthogonal et t un terme. L'ensemble, MRP(t), des positions rigides minimales est défini comme suit:

Nous remarquons que l'orthogonalité de R est nécessaire pour garantir l'unicité de cet ensemble.

Lemme 71   Soit R un ERSP l-constructeur orthogonal. Si t >>>c,dR  s et si pour tout pMRP(t) nous savons que tp n'est pas un radical l-constructeur déterministe alors pour toute position rigide minimale p de t, pPos(s) et tp >>>c,dR sp.
 Preuve. Nous raisonnons par induction sur t. Soit t >>>c,dR  s satisfaisant les hypothèses. Supposons que t soit un radical l-constructeur déterministe. Par la définition 70, є∈MRP(t) et donc tє=t n'est pas un radical et donc, par la remarque 54, t=f(t1,…,tn) et s=f(t1',…,tn') avec ti >>>c,dR ti', tp. t et st'. avec t >>>c,dR t' ou t=[ξ ∣ t1,…,tn ] et s=[ξ ∣ t1',…,tn' ] avec ti >>>c,dR ti' . Nous continuons en supposant que t=f(t1,…,tn) les autre cas étant similaires. Par hypothèse d'induction, pour toute position rigide minimale p de ti, pPos(ti') et tip >>>c,d ti'∣p. Le résultat est alors immédiat.
Lemme 72   Soient R un ERSP l-constructeur orthogonal et un terme t tel que t >>>c,dR  s. Si t=f(t1,…,tn) et s=f(s1,…,sn) (resp. t=[ξt1,…,tn ] et s=[ξs1,…,sn ] ou tp. t et sp. s) où ti >>>c,dR si et t est un radical l-constructeur déterministe σ(L) alors s est aussi un radical l-constructeur déterministe ρ(L) pour une méta-substitution ρ telle que σ >>>c,dR ρ.
 Preuve. Nous démontrons toutes ces propriétés ensembles par cas sur le terme t.
Lemme 73   Soit R un ERSP l-constructeur orthogonal. Si t >>>c,dR s alors s >>>c,dR #(t).
 Preuve. Nous raisonnons par induction sur la définition de t >>>c,dR s.
Théorème 74   Si R est un ERSP l-constructeur orthogonal alors la relation  >>>c,d  est confluente.
 Preuve. Par le lemme 12, il nous suffit de démontrer que  >>>c,d  est fortement confluente. Considérons alors un terme t tel que t >>>c,d  s1 et t >>>c,d  s2. Il nous suffit alors d'appliquer le lemme 73 à s1 et s2 pour conclure.
Théorème 75 (Confluence des ERSP)   Soit R un ERSP l-constructeur orthogonal. La relation —→c,d  est confluente.
 Preuve. Par le théorème 74 et le corollaire 63.

Previous Up Next