Terminaison d'un système de réécriture

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

La terminaison d'un système de réécriture R {\displaystyle \rightarrow _{R}} porte sur un système de réécriture abstrait et affirme que toute chaîne de réduction de termes de la forme t 0 R t 1 R t 2 R {\displaystyle t_{0}\rightarrow _{R}t_{1}\rightarrow _{R}t_{2}\rightarrow _{R}\ldots } est finie. Elle est souvent présentée en disant qu'il n'y a aucune chaîne de réduction infinie.

Approche générale des techniques pour la terminaison

La relation de réécriture associée à un système de réécriture R {\displaystyle R} est l'ensemble des couples de termes t , t {\displaystyle t,t'} tels que t {\displaystyle t} se réécrive en t {\displaystyle t'} par une règle de R {\displaystyle R} . On dit alors qu'un système de réécriture se termine si et seulement si la relation de réécriture qui lui est associée est bien fondée. Autrement dit, le prédicat « se termine » est le plus petit prédicat au sens de l'inclusion qui satisfait la propriété suivante[1].

  • Si t R t {\displaystyle t\rightarrow _{R}t'} et si t {\displaystyle t'} se termine alors t {\displaystyle t} se termine.

On notera que cette propriété implique

  • Si t {\displaystyle t} est en forme normale alors t {\displaystyle t} se termine.

Les systèmes de réécriture sont suffisamment puissants pour coder par exemple les machines de Turing ou le problème de correspondance de Post, il en découle que la terminaison des systèmes de réécriture est indécidable[2].

Heureusement, des arguments de terminaison incomplets sont utilisables dans beaucoup cas.

Interprétation

On se donne un ensemble muni d'un ordre bien fondé (par exemple les entiers naturels[3]). À chaque terme on associe un élément de cet ensemble, qui sera appelé son poids. Il suffit ensuite de démontrer que toute réduction par le système de réécriture entraîne une diminution stricte du poids.

Ordre de réduction

On considère les termes construit à partir d'une signature et d'un ensemble de variables. Un ordre > sur ces termes est appelé ordre de réduction s'il vérifie les trois points suivants :

  • il est monotone, c'est-à-dire que pour tout symbole de fonction f {\displaystyle f} d'arité n {\displaystyle n} de la signature, pour tous termes s 1 , , s n {\displaystyle s_{1},\ldots ,s_{n}} et t {\displaystyle t} , si s i > t {\displaystyle s_{i}>t} alors f ( s 1 , , s i , , s n ) > f ( s 1 , , t , , s n ) {\displaystyle f(s_{1},\ldots ,s_{i},\ldots ,s_{n})>f(s_{1},\ldots ,t,\ldots ,s_{n})}  ;
  • il est stable par substitution, c'est-à-dire que pour toute substitution σ {\displaystyle \sigma } , pour tous termes s {\displaystyle s} et t {\displaystyle t} , si s > t {\displaystyle s>t} alors σ s > σ t {\displaystyle \sigma s>\sigma t}  ;
  • il est bien fondé.

On peut alors démontrer qu'un système de réécriture se termine si et seulement s'il existe un ordre de réduction qui contient la relation de réécriture associée.

Exemples

Taille des termes

Exemple: f ( f ( X ) ) f ( X ) {\displaystyle f(f(X))\rightarrow f(X)}

Interprétation polynomiale[4]

À tout terme T {\displaystyle T} on va associer un poids w ( T ) {\displaystyle w(T)} qui est un entier positif : à tout symbole de fonction d'arité n {\displaystyle n} on associe un polynôme à n {\displaystyle n} variables ; le poids d'un terme f ( s 1 , , s n ) {\displaystyle f(s_{1},\ldots ,s_{n})} sera la valeur du polynôme associé à f {\displaystyle f} au point ( w ( s 1 ) , , w ( s n ) ) {\displaystyle (w(s_{1}),\ldots ,w(s_{n}))} .

Exemple (avec symboles p,s,z, d'arités respectives 2,1,0)

  • p ( z , X ) X {\displaystyle p(z,X)\rightarrow X}
  • p ( s ( X ) , Y ) s ( p ( X , Y ) ) {\displaystyle p(s(X),Y)\rightarrow s(p(X,Y))}

On choisit

  • w ( z ) = 1 {\displaystyle w(z)=1}
  • w ( s ( T ) ) = 1 + w ( T ) {\displaystyle w(s(T))=1+w(T)}
  • w ( p ( T 1 , T 2 ) ) = 2 w ( T 1 ) + w ( T 2 ) {\displaystyle w(p(T_{1},T_{2}))=2w(T_{1})+w(T_{2})}

Il est facile de vérifier que le poids de la partie gauche de chaque règle est strictement supérieur à celui de sa partie droite :

  • Règle 1,
    • poids de la partie gauche = w ( p ( z , X ) ) = 2 w ( z ) + w ( X ) = 2 + w ( X ) {\displaystyle w(p(z,X))=2w(z)+w(X)=2+w(X)}
    • poids de la partie droite = w ( X ) {\displaystyle w(X)}
  • Règle 2,
    • partie gauche : w ( p ( s ( X ) , Y ) ) = 2 w ( s ( X ) ) + w ( Y ) = 2 + 2 w ( X ) + w ( Y ) {\displaystyle w(p(s(X),Y))=2w(s(X))+w(Y)=2+2w(X)+w(Y)} ,
    • partie droite : w ( s ( p ( X , Y ) ) ) = 1 + 2 w ( X ) + w ( Y ) {\displaystyle w(s(p(X,Y)))=1+2w(X)+w(Y)}

Ordre récursif sur les chemins

L'ordre récursif sur les chemins (RPO, de l'anglais recursive path ordering) est un exemple d'ordre de réduction[5].

On se donne un ordre > sur les symboles de fonction, appelé précédence, pas obligatoirement total mais bien fondé si on veut que le RPO le soit aussi. Soit deux termes s = f ( s 1 , , s n ) {\displaystyle s=f(s_{1},\ldots ,s_{n})} et t = g ( t 1 , , t m ) {\displaystyle t=g(t_{1},\ldots ,t_{m})} . On dit que s {\displaystyle s} est plus grand que t {\displaystyle t} pour l'ordre RPO associé à la précédence > si

  • f = g {\displaystyle f=g} et { s 1 , , s n } {\displaystyle \{s_{1},\ldots ,s_{n}\}} est plus grand que { t 1 , , t m } {\displaystyle \{t_{1},\ldots ,t_{m}\}} pour l'ordre multiensemble associé au RPO ; ou
  • f > g {\displaystyle f>g} et pour tout j {\displaystyle j} , s {\displaystyle s} est plus grand que t j {\displaystyle t_{j}} pour l'ordre RPO ; ou
  • il existe un i {\displaystyle i} tel que s i {\displaystyle s_{i}} soit plus grand que t {\displaystyle t} pour l'ordre RPO.

Il existe en fait plusieurs variantes du RPO, dans lesquelles, en cas d'égalité du symbole de fonction en tête, on compare les arguments en utilisant l'ordre lexicographique associé au RPO (lexicographic path ordering, ou LPO), ou encore en utilisant un ordre qui dépend du symbole de fonction (RPO avec statut). Dans le cas du LPO, il faut également vérifier si f = g {\displaystyle f=g} que pour tout j {\displaystyle j} , s {\displaystyle s} est plus grand que t j {\displaystyle t_{j}} pour l'ordre LPO.

L'ordre ainsi défini est bien un ordre de réduction, et même plus, puisqu'il vérifie la propriété du sous-terme : si t {\displaystyle t} est un sous-terme de s {\displaystyle s} , alors s {\displaystyle s} est plus grand que t {\displaystyle t} , quelle que soit la précédence choisie. Certains systèmes de réécriture terminent bien qu'il soit impossible de le montrer à l'aide d'un ordre vérifiant la propriété de sous-terme.

Grâce au RPO (en fait à sa variante LPO), on peut montrer la terminaison de la fonction d'Ackermann :

a c k ( 0 , y ) s u c c ( y ) {\displaystyle ack(0,y)\rightarrow succ(y)}
a c k ( s u c c ( x ) , 0 ) a c k ( x , s u c c ( 0 ) ) {\displaystyle ack(succ(x),0)\rightarrow ack(x,succ(0))}
a c k ( s u c c ( x ) , s u c c ( y ) ) a c k ( x , a c k ( s u c c ( x ) , y ) ) {\displaystyle ack(succ(x),succ(y))\rightarrow ack(x,ack(succ(x),y))}

à l'aide de la précédence a c k > s u c c {\displaystyle ack>succ} .

Notes et références

  1. On dit alors que le prédicat est héréditaire (en) pour la relation de réécriture.
  2. « Index of / », sur perso.eleves.ens-rennes.fr (consulté le )
  3. On peut aussi prendre des ordinaux.
  4. Jocelyne Rouyer, « Preuves de terminaison de systèmes de réécriture fondées sur les interprétations polynomiales. Une méthode basée sur le théorème de Sturm », RAIRO - Theoretical Informatics and Applications - Informatique Théorique et Applications, vol. 25, no 2,‎ , p. 157–169 (ISSN 1290-385X, lire en ligne, consulté le )
  5. Frédéric Blanqui, « Terminaison des systèmes de réécriture d'ordre supérieur basée sur la notion de clôture de calculabilité », theses.hal.science, Université Paris-Diderot - Paris VII,‎ (lire en ligne, consulté le )
  • icône décorative Portail des mathématiques
  • icône décorative Portail de la logique
  • icône décorative Portail de l'informatique théorique