• Aucun résultat trouvé

Comparaison avec le travail de M¨ uller-Olm & Seidl

4.4 Le cas particulier des invariants inductifs

4.5.1 Comparaison avec le travail de M¨ uller-Olm & Seidl

L’approche la plus semblable `a la nˆotre est celle de M¨uller-Olm & Seidl [MOS02, MOS04, MOPS06]. Nous commen¸cons donc par comparer notre approche avec celle-ci.

4.5.1.1 Description de la m´ethode

M¨uller-Olm et Seidl ont propos´e une analyse de programmes capable de cal- culer des invariants polynomiaux pour des programmes polynomiaux [MOS04,

MOS02]. Les programmes analys´es par cette m´ethode consistent en des syst`emes de transitions ´etiquet´es par des affectations polynomiales et des gardes sous forme de d´es´egalit´es polynomiales. Le fait de ne pas consid´erer de programmes munis de gardes ´egalitaires est un choix d´elib´er´e des auteurs. Ceci permet `a leur m´e- thode d’ˆetre compl`ete. D´ecrivons maintenant leur m´ethode. Elle consiste en une interpr´etation abstraite de la s´emantique de traces R (ensemble des ex´ecutions possibles du programme) du programme.

Les auteurs proposent une m´ethode de v´erification : partant de la relation p = 0, ils montrent que la plus faible pr´e-condition de validit´e de p = 0 apr`es une ex´e- cution r peut ˆetre repr´esent´ee sous forme d’un polynˆome not´e JrKTp. Plus pr´e-

cis´ement, ils montrent qu’une relation p est valide apr`es une ex´ecution r si et seulement si JrKTp = 0. Une relation p = 0 est valide `a la fin d’un programme si elle l’est `a la fin de toutes les ex´ecutions de R. Les auteurs cherchent donc `a calculer l’ensemble Sp ={JrKTp| r ∈ R}. Cet ensemble ´etant possiblement infini,

la m´ethode consiste `a calculer <Sp>, l’id´eal g´en´er´e par les polynˆomes dans Sp.

Montrer que cet id´eal est l’id´eal nul <0>, prouve que la relation p = 0 est valide `a la fin du programme. L’id´eal <Sp> est calcul´e par des m´ecanismes d’it´erations de

points fixes. Ces it´erations sont terminantes du fait du th´eor`eme 4.1 qui ´enonce que la condition de chaˆıne ascendante est v´erifi´ee dans le monde des id´eaux. Cette m´ethode de v´erification peut ˆetre adapt´ee en une m´ethode de g´en´eration. Pour ce faire, on part d’un polynˆome g param´etr´e. L’id´eal <Sg> calcul´e est donc

un id´eal compos´e de polynˆomes param´etr´es. Cet id´eal co¨ıncide avec l’id´eal nul <0> si et seulement si tous les polynˆomes qu’il contient sont nuls. Or un poly- nˆome est nul si et seulement si tous ces coefficients sont nuls. Ainsi, la relation param´etr´ee g = 0 est valide `a la fin du programme si et seulement si le syst`eme de contraintes compos´e des coefficients des polynˆomes g´en´erant <Sg> peut ˆetre

r´esolu. La forme des fonctions abstraites utilis´ees pour le calcul <Sg> permet

de montrer que ces coefficients sont des combinaisons lin´eaires des param`etres. En cons´equence, une fois l’id´eal <Sg> calcul´e, la validit´e de p = 0 revient `a la

r´esolution d’un syst`eme lin´eaire.

4.5.1.2 Comparaison s´emantique

Notre approche est tr`es similaire `a celle de M¨uller-Olm & Seidl. Il existe ce- pendant un certain nombre de diff´erences. Commen¸cons par lister les diff´erences non fondamentales. Tout d’abord, la syntaxe de nos programmes est donn´ee sous forme structur´ee et non sous forme de syst`eme de transitions ´etiquet´e. Nous avons aussi choisi d’int´egrer directement `a la syntaxe de nos programmes la possibilit´e d’utiliser de gardes ´egalitaires. Cette possibilit´e n’est pas pr´esente dans l’article originel de M¨uller-Olm & Seidl [MOS04] mais a quand mˆeme ´et´e ´evoqu´ee en tant que pistes par ces deux auteurs [MOPS06]. Plus pr´ecis´ement, ils proposent d’´etu- dier deux pistes. La premi`ere est bas´ee sur l’id´ee simple suivante : la plus faible pr´econdition de validit´e d’une ´egalit´e q = 0 apr`es une garde p = 0 est donn´ee par (p = 0) ⇒ (q = 0). Cette implication est notamment v´erifi´ee si l’on peut exhiber un r´eel λ 6= 0 tel que q + λp = 0. Ils proposent donc, dans un premier temps, d’abstraire ce type de garde par l’id´eal <q + λp> o`u λ est une variable. Ceci correspond `a notre notion de reste param´etr´e restreinte `a l’utilisation de polynˆomes quotients constants. La seconde piste ´evoqu´ee consiste `a ´etendre cette premi`ere id´ee en abstrayant maintenant ces gardes par l’id´eal <q + λp.qD> o`u

qD est un polynˆome g´en´erique et o`u λ est toujours une variable. Notre notion

de reste param´etr´e co¨ıncide avec cette id´ee lorsque λ = 1. Mis `a part ces diff´e- rences, notons que la proc´edure it´erative pr´esent´ee par l’algorithme 1correspond `

a une pr´esentation diff´erente du travail de M¨uller-Olm & Seidl. Au contraire, soulignons que le travail de comparaison des s´emantiques concr`etes (comparai- son de BνJ.K et SOPP) n’a pas, `a la connaissance de l’auteur, ´et´e d´ej`a pr´esent´ee. En plus de ce travail rigoureux de comparaison des s´emantiques, la contribution fondamentale de ce chapitre r´eside donc dans l’analyse fastind (pr´esent´ee dans l’algorithme2). Nous avons montr´e comment adapter l’analyse de M¨uller-Olm & Seidl dans le cas o`u l’on suppose l’hypoth`ese d’inductivit´e. De plus, nous avons d´emontr´e, qu’`a l’aide de cette hypoth`ese, notre m´ethode ne n´ecessitait pas de calcul it´eratif de points fixes. Ceci nous permet de nous affranchir du test d’arrˆet des it´erations qui requiert des calculs lourds (g´en´eralement impl´ement´es par des

calculs de bases de Gr¨obner). Ceci est un avantage majeur de la m´ethode qui permet d’envisager le passage `a l’´echelle. D’autre part, nous avons montr´e com- ment int´egrer notre notion de reste param´etr´e dans l’analyse fastind et montr´e son utilit´e sur l’exemple du programme mannadiv. Nous pensons que ceci repr´e- sente un pas suppl´ementaire par rapport au travail de M¨uller-Olm & Seidl qui avaient seulement ´evoqu´e ce type de possibilit´e sous forme de pistes. Notons que le caract`ere it´eratif de leur proc´edure apporte d’autres questions concernant cet aspect, comme celle du traitement abstrait d’une structure conditionnelle avec garde ´egalitaire imbriqu´ee dans une boucle. On peut par exemple s’interroger sur la n´ecessit´e ou non d’utiliser le mˆeme couple (qD, λ) `a chaque it´eration abstraite.

4.5.1.3 Comparaison des impl´ementations

L’approche de M¨uller-Olm & Seidl a ´et´e test´ee sur quelques exemples [Pet04,

PS05]. Le tableau de la figure 4.10 compare les r´esultats obtenus par leur m´e- thode avec la nˆotre. Les r´esultats donn´es dans la colonne MOS sont ceux pr´e- sents dans les articles cit´es au-dessus [Pet04, PS05]. Ils ont ´et´e obtenus sur une machine Linux avec architecture Intel, avec processeur AMD Athlon XP 3000+ et dot´e de 1024 MB de RAM. La derni`ere colonne du tableau pr´esente le quo-

Name d Var MOS fastind Ratio

MOS/fastind lcm 2 6 3.5 0.006 583 petter1 2 2 0.776 0.003 259 petter2 3 2 1.47 0.003 490 petter3 4 2 2.71 0.004 678 petter4 5 2 10.3 0.004 2575 petter5 6 2 787.2 0.006 131200 cohencu 3 4 2.6 0.018 144

Figure 4.10 – Comparaison des r´esultats obtenus par l’approche fastind et l’approche MOS [Pet04,PS05]

tient des temps d’ex´ecution des deux m´ethodes. Le ratio est largement en faveur de l’analyse fastind. Ceci n’est gu`ere ´etonnant. En effet, comme nous l’avons vu, l’analyse MOS n´ecessite un calcul it´eratif de points fixes dans le monde des id´eaux. D’apr`es le th´eor`eme 4.1, ce calcul est effectu´e en temps fini. Cependant, le nombre d’it´erations n’est pas sp´ecifi´e par ce th´eor`eme. Ainsi, ce calcul de point fixe n´ecessite l’utilisation d’un crit`ere d’arrˆet. Il s’agit de d´ecider `a quelle ´etape de l’it´eration l’id´eal calcul´e arrˆete de grossir. Ceci est r´ealis´e en utilisant le probl`eme d’appartenance `a un id´eal. Ce probl`eme est d´ecidable. Cependant il n´ecessite le

calcul, tr`es coˆuteux, de bases de Gr¨obner. Petter & Seidl ont d´emontr´e que l’on pouvait s’affranchir des calculs de bases de Gr¨obner en proposant une m´ethode de calcul approch´ee [PS05]. Les r´esultats du tableau de la figure 4.10proviennent de cette approche qui n’utilise pas les bases de Gr¨obner. Ainsi, mˆeme si cette optimisation est n´ecessaire au calcul d’invariants par la m´ethode MOS, elle ne suffit pas `a ce que les calculs se fassent en temps raisonnable. La forte croissance des temps de calculs sur les exemples Petteri d´emontre que la m´ethode MOS ne passe pas `a l’´echelle et que son temps d’ex´ecution explose rapidement avec le degr´e des polynˆomes.

4.5.2

Comparaison avec le travail de Sankaranarayanan et