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 pi≥w.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.
Dans le document
Analyse de la complexité des programmes par interprétation sémantique
(Page 112-115)