• Aucun résultat trouvé

Application au size-change principle

II.3 Application aux travaux pr´ ec´ edents

II.3.3 Application au size-change principle

a appels r´ecursifs strictement born´es est exactement l’ensemble des fonctions calculables

en espace polynomial.

D´emonstration. D’apr`es le lemme II.32, nous savons que la taille de chaque branche

et de chaque ´etat de l’arbre des appels est born´ee polynomialement par la taille des

entr´ees. L’´evaluation du programme correspond `a un parcours en profondeur de l’arbre

des appels. Il r´esulte de ceci que l’ensemble des fonctions calcul´ees par des programmes

quasi-amicaux `a appels r´ecursifs strictement born´es est inclus dansPspace. La preuve

de compl´etude est inspir´ee par la preuve de la caract´erisation contenue dans [BMM07]

et pr´esent´ee dans le th´eor`emeI.36de la sectionI.2.5. Elle utilise des machines `a registres

parall`eles (Parallel Register Machines ou PRM). Savitch [Sav70] et Chandra, Kozen et

Stockmeyer [CKS81] ont d´emontr´e que l’ensemble des fonctions calcul´ees par une PRM

en temps polynomial correspond exactement `a l’ensemble des fonctions calculable par

une Machine de Turing en espace polynomial. Nous laissons le soin au lecteur de v´erifier

que le programme donn´e dans la preuve du th´eor`eme I.36 et qui simule les PRM par

un programme de notre langage est bien quasi-amical `a appels r´ecursifs strictement

born´es.

Remarque 7. Cette caract´erisation est intensionnellement plus forte que la caract´

e-risation donn´ee dans le th´eor`eme I.36. En effet, de nombreux programmes naturels ne

terminant pas l’extension lexicographique d’un ordre r´ecursif sur les chemins (RPO)

poss`edent sont quasi-amicaux `a appels r´ecursifs strictement born´es. En particulier, le

programme calculant le plus grand commun diviseur de l’exemple 20 ne termine par

RPO mais on peut d´emontrer qu’il est `a appel r´ecursifs strictement born´es en prenant

la sup-interpr´etation suivante θ(0) = 0, θ(S)(X) = X+ 1, θ(minus)(X, Y) = X et en

choisissant le poids ωgcd(X, Y) =X+Y.

II.3.3 Application au size-change principle

Le size-change principle (ou SCP) introduit par Jones et al. [LJBA01] est un crit`ere

permettant de montrer la terminaison de programmes fonctionnels en v´erifiant q’un

programme donn´e ne poss`ede pas de flot d’ex´ecution infini. Puisque la condition sur

les appels r´ecursifs strictement born´es essaie de contrˆoler ensemble les arguments d’un

appel r´ecursif, elle est, en un sens, plus proche de la m´ethode des paires de d´ependance

que de celle du SCP. Cette m´ethode a ´et´e adapt´ee dans des travaux plus r´ecents [AK03,

Ave06] `a des programmes imp´eratifs. Pour une comparaison d´etaill´ee entre le SCP et les

paires de d´ependance, nous invitons le lecteur `a consulter la r´ef´erence suivante [TG03].

G:minus→minus

x→ x

y→ y

Fig.II.4: SCP graphe du programme minus

Adoptant la mˆeme philosophie que dans la pr´ec´edente section, nous allons appliquer

les sup-interpr´etations au SCP afin de prouver la terminaison d’un plus grand nombre

d’algorithmes.

D´efinition II.34 (SCP graphes et multi-chemins). Etant donn´´ es >w.f.o. un quasi-ordre

bien-fond´e et sa clˆoture r´eflexive ≥w.f.o., un programme pet deux symboles de fonctionf

etg dep, d’arit´es respectivesn et m, tels que l’expression g(d1,· · · , dm) est activ´ee par

f(p1,· · · , pn), les d1,· · · , dm repr´esentant des expressions et les p1,· · ·, pn des motifs,

un SCP graphe de f vers g est un graphe bipartite, not´e G : f → g, des arguments

x1,· · · , xn def vers les argumentsy1,· · ·, ym de go`u :

– Les noeuds sont les arguments x1,· · · , xn,y1,· · · , ym.

– Il y a une arˆete de xi versyj si et seulement si piw.f.o.dj.

– De plus, si pi>w.f.o.dj, alors l’arˆete est ´etiquet´ee par↓.

Un SCP multi-chemin est une s´equence potentiellement infinieG1, G2. . .de SCP graphes

v´erifiant pour tout i, Gi est un SCP graphe de fi vers fi+1 et Gi+1 est un SCP graphe

de fi+1 vers fi+2. Intuitivement, un multi-chemin correspond `a des appels successifs

de fonctions pouvant advenir lors de l’ex´ecution d’un programme. Un thread d’un SCP

multi-chemin est d´efini comme ´etant une chemin d’arˆetes connect´ees les unes aux autres

dans le SCP multi-chemin.

Constatons d’abord que, pour un programme donn´e, il existe seulement un nombre

fini de SCP graphes.

Exemple 31. D´efinisson >w.f.o. comme ´etant une relation d’ordre stricte bien-fond´ee

sur la taille des valeurs, i.e. u >w.f.o. v si et seulement si u, v ∈ V et |u| > |v|, alors

le symbole de fonction minus de l’exemple 1 poss`ede un seul SCP graphe d´efini par :

Th´eor`eme II.35 ( [LJBA01]). Un programme p termine si tout SCP multi-chemin

infini poss`ede un thread avec un nombre infini d’arˆetes ´etiquet´ees par ↓.

`

A pr´esent, nous allons combiner ce th´eor`eme et la notion de sup-interpr´etation.

D´efinition II.36(θSCP graphes). Etant donn´´ es un programmepet une sup-interpr´

eta-tion θ, un θ-SCP graphe, not´e Gθ :f → g, est un SCP graphe G :f → g dont l’ordre

bien-fond´e sur les expressions ≥w.f.o. est d´efini par :

– e≥w.f.o.d si et seulement siθ(e)≥θ(d)

– e >w.f.o.d si et seulement siθ(e)> θ(d)

Un θ-SCP multi-chemin est une s´equence potentiellement infinie G1θ, G2θ, . . . de θ-SCP

graphes.

Th´eor`eme II.37. Etant donn´´ ee une sup-interpr´etation θ dont le codomaine est inclus

dans l’ensemble des fonctions de N dans N, un programme p termine si tout θ-SCP

multi-chemin infini poss`ede un thread avec une infinit´e d’arˆetes ´etiquet´ees par ↓.

D´emonstration. La propri´et´e de bonne-fondaison consid´er´ee dans le th´eor`eme II.35 est

remplac´ee par le fait qu’une sup-interpr´etation d’une expression close est un entier

na-turel. Ainsi, une arˆete θ(pi)→ θ(ej) du θ-SCP graphe Gkθ de fk vers fk+1 correspond

`

a l’activation d’une expression fk+1(e1,· · ·, em) par fk(p1,· · ·, pn). Par d´efinition de ↓,

θ(pi)→ θ(ej) si et seulement siθ(pi)> θ(ej). Comme nous travaillons sur l’ensemble

des entiers naturels, cette in´egalit´e stricte correspond `a une d´ecroissance d’une constante

fix´ee. Par hypoth`ese, tout multi-chemin infini poss`ede au moins un thread avec une

in-finit´e d’arˆetes de ce type et, par cons´equent, le programme termine.

Ce th´eor`eme s’inspire du size-change principle. Cependant, il ne correspond pas

uni-quement `a une instance du th´eor`eme II.35. En effet, Jones et al. consid`erent des ordres

bien-fond´es sur les valeurs tandis que le th´eor`emeII.37permet de traiter une expression

quelconque pour peu que l’on connaisse sa sup-interpr´etation. Ainsi, notre crit`ere d´

e-montre la terminaison d’un plus grand nombre d’algorithmes et d’augmenter fortement

l’intensionnalit´e du size-change principle comme le d´emontre l’exemple qui suit :

Exemple 32. En choisissant une sup-interpr´etationθ v´erifiantθ(minus)(X, Y) =X et

θ(S)(X) = X + 1, le programme q de l’exemple 1 poss`ede trois θ-SCP graphes d´efinis

par : Lesθ-SCP multi-chemins infinis commen¸cant par un appel du symbole de fonction

q sont tous de la forme G3θ, G2θ, G1θ o`u G est la notation utilis´ee pour repr´esenter

un nombre potentiellement infini d’occurrences de G. Cependant, ils contiennent tous

un thread de la forme (u→ u),u→ x,(x→ x) avec un nombre infini d’arˆetes ´etiquet´ees

par ↓. La m´ethode initiale du size-change principle ne fonctionne pas sur ce programme

G1θ:minus→minus G2θ :q→minus G3θ :q→q

x→ x u→ x u→ u

y→ y v→ y v→v

Fig. II.5:θ-SCP graphe du programmeq

car seules les valeurs peuvent ˆetre compar´ees. On ne peut donc pas montrer que l’appel

r´ecursif du symbole de fonction q, de la forme S(q(minus(z, u),S(u))), d´ecroit puisque

l’on ne peut pas comparer le symbole de fonctionminus avec des valeurs.