Static Analysis of Numerical Programs: Constrained Affine Sets Abstract Domain Khalil Ghorbal To cite this version: Khalil Ghorbal. Static Analysis of Numerical Programs: Constrained Affine Sets Abstract Domain. Symbolic Computation [cs.SC]. Ecole Polytechnique X, 2011. English. NNT: . pastel-00643442 HAL Id: pastel-00643442 https://pastel.archives-ouvertes.fr/pastel-00643442 Submitted on 21 Nov 2011 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. ` THESE pr´esent´ee a` ´ l’ECOLE POLYTECHNIQUE pour l’obtention du titre de ´ DOCTEUR DE L’ECOLE POLYTECHNIQUE Sp´ecialit´e Informatique par Khalil GHORBAL 28 Juillet 2011 Analyse Statique de Programmes Num´eriques: Ensembles Affines Contraints Static Analysis of Numerical Programs: Constrained Affine Sets Abstract Domain Pr´esident du jury: St´ephane Gaubert, Professeur, INRIA et E´cole Polytechnique, Saclay. Rapporteurs: Jean-Luc Lamotte, Professeur, Universit´e Pierre et Marie Curie, Paris. Sriram Sankaranarayanan, Assistant Professor, University of Colorado Boulder, Colorado. Thao Dang, Verimag CNRS, Grenoble. Examinateurs: Bertrand Jeannet, INRIA Rhˆone-Alpes, Montbonnot. Antoine Mine´, E´cole Normale Sup´erieur, Paris. Directeurs de th´ese: Eric Goubault, Professeur, CEA List et E´cole Polytechnique, Saclay. Sylvie Putot, CEA List, Gif-sur-Yvette. ´ Ecole Polytechnique D´epartement d’Informatique (cid:9) (cid:249)(cid:174)(cid:162)(cid:203) (cid:208)(cid:65)(cid:238)(cid:68)(cid:133) To my dear parents (cid:10) and . (cid:16) (cid:9) (cid:16) (cid:9) (cid:46)(cid:233)(cid:210)(cid:163)(cid:65)(cid:175) (cid:250)(cid:230)(cid:202)(cid:74)(cid:10)(cid:202)(cid:103) (cid:250)(cid:205)(cid:13)(cid:64) (cid:10) i Abstract We aim at proving automatically the correctness of numerical behavior of a program by inferring invariants on numerical variables. More precisely, we over-approximate in a sound manner the set of reached values. We use Abstract Interpretation-based Static Analysis as a generic framework to define and ap- proximate the semantics of a program in a unified manner. The semantics that describetherealbehavioroftheprogram(concretesemantics)isingeneralunde- cidable. Abstract interpretation offers a way to abstract this concrete semantics to obtain a decidable semantics involving machine-expressible objects. We in- troduce a new affine forms-based abstract domain, called constrained affine sets, which extends and generalizes an already existing abstract domain introduced by Eric Goubault and Sylvie Putot. The expressiveness of such new domain is enhanced thanks to its ability to encode and propagate linear constraints among variables. Wehaveimplementedournewdomaintoexperimenttheprecisionand the efficiency of our approach and compare our results to the already existing abstract domains. The theoretical work as well as the implementation and the experiments have been the subject of two publications [CAV 2009, CAV 2010]. R´esum´e Nousnousplac¸onsdanslecadredel’analysestatiquedeprogrammes, etnous nous int´eressons aux propri´et´es num´eriques, c’est `a dire celles qui concernent les valeurs num´eriques des variables de programmes. Nous essayons en particulier de d´eterminer une sur-approximation garantie de l’ensemble de valeurs possibles pour chaque variable num´erique utilis´ee dans le programme `a analyser. Cette analyse statique est faite dans le cadre de la th´eorie de l’interpr´etation abstraite, th´eorie pr´esentant un compromis entre les limites th´eoriques d’ind´ecidabilit´e et de calculabilit´e et la pr´ecision des r´esultats obtenus. Nous sommes partis des travaux d’E´ric Goubault et Sylvie Putot, que nous avons ´etendus et g´en´eralis´es. Notre nouveau domaine abstrait, appel´e ensembles affines contraints, combine `a la fois l’efficacit´e de calcul des domaines `a base de formes affines et le pouvoir ex- pressifdesdomainesrelationnelsclassiquestelsquelesoctogonesoulespoly`edres. Le nouveau domaine a ´et´e impl´ement´e pour mettre en ´evidence l’int´erˆet de cette combinaison,sesavantages,sesperformancesetseslimitesparrapportauxautres domaines num´eriques d´ej`a existants. Le formalisme ainsi que les r´esultats pra- tiques ont fait l’objet de plusieurs publications [CAV 2009, CAV 2010]. ii Remerciements C’est a` mes tr`es chers parents que je d´edie tout ce travail. Je vous suis ` et serai toujours reconnaissant • A ma complice, amie et compagne Fatma Safi, mon vocabulaire trouve ses limites en voulant te dire merci • Merci chers St´ephane Gaubert, Jean-Luc Lamotte, Thao Dang, Sriram Sankara- narayanan, Antoine Min´e et Bertrand Jeannet, j’´etais honor´e par vous avoir dans mon jury. Merci pour votre temps, merci pour vos commentaires, cela a sans nul doute contribu´e `a am´eliorer la qualit´e de ce travail • Un grand ´ merci a` mes deux directeurs de th`ese Sylvie Putot et Eric Goubault. On ne peut-ˆetre plus gaˆt´e: p´edagogie, rigueur, minutie, et fine intelligence, le tout avec le sourire et la bonne humeur. Sans oublier l’´enorme quantit´e de chocolat que j’ai aval´e durant ma th`ese ainsi que l’initiation `a l’escalade, La vie au bout des doigts et Op´era vertical faisaient partie de la bibliogra- phie. Je garderai de tr`es agr´eables souvenirs, merci du fond du coeur • Merci Assal´e Adj´e, j’ai vraiment aim´e ta fa¸con de voir les maths. J’ai eu la chance d’avoir Karim Tekkal a` l’autre bout de l’open space. Ce fut tr`es agr´eable de travailler avec toi, merci pour ton bon vivant. Merci Xavier Allamigeon, Olivier Bouissou et Alexandre Chapoutot, les moins jeunes th´esards, d´esormais docteurs confirm´es. Xavier, ton int´erˆet et tes questions m’ont permis de mieux cerner mon sujet. Merci Olivier pour tes explica- tionsettesexpos´es, celam’abeaucoupaid´e. MerciAlexandrepourtonaide pr´ecieuse, tu avais toujours une solution simple a` tout • Merci Emmanuel Haucourt pour le temps que tu m’avais consacr´e, tu as ce don de rendre ac- cessible les notions les plus complexes. J’en profite pour remercier Sanjeevi Krishnan, qui ´etait de passage au LMeASI, et qui m’a initi´e `a la topologie alg´ebrique. Merci Michel Hirschowitz, je me rappellerai toujours de nos longues et riches discussions m´etaphysiques. Merci pour ton humour et ton sens critique. Je ne manquerai pas finalement de remercier Franck V´edrine, l’efficacit´e tranquille. Ce fut vraiment tr`es agr´eable de travailler avec toi • Sans les encouragements et le soutient de mes amis et camarades, et toute ma famille ce travail n’aurait peut-ˆetre pas pu ˆetre accompli. Merci B´echir Zalila, Mehdi Frikha, Taoufik Hnia, Ala Ben Abbes, Mohamed Chakroun pour m’avoir toujours pousser a` aller de l’avant. Je remercie aussi mes fr`eres et soeur Youssef, Hamza et Sarra et toute ma belle famille, j’esp`ere ˆetre a` la hauteur de vos esp´erances • Un ´enorme merci `a Fatma et Hasna Safi pour vos multiples relectures d´etaill´ees de ce manuscrit, cela a r´eduit consid´erablement les typos commises • Je remercie mon voisin et ami Sayed Mojabi, on a pass´e d’inoubliables ann´ees a` Bures-Sur-Yvette • Je remer- cie finalement Audrey Lemarechal, Christine Ferret, et toute l’´equipe de l’EDX. Vous faites un excellent travail. (cid:167) (cid:167) (cid:167) iii iv Contents Contents v 1 Introduction 1 2 Context and Motivations 3 2.1 Proving Numerical Properties . . . . . . . . . . . . . . . . . 3 2.2 Abstract Interpretation . . . . . . . . . . . . . . . . . . . . . 6 2.3 Fluctuat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4 The ATV Case Study . . . . . . . . . . . . . . . . . . . . . . 13 3 Numerical Abstract Domains 17 3.1 Non Relational Abstract Domain . . . . . . . . . . . . . . . 19 3.2 Explicit Relational Abstract Domains . . . . . . . . . . . . . 23 3.3 Implicit Relational Abstract Domains . . . . . . . . . . . . . 26 3.4 Combining Abstract Domains . . . . . . . . . . . . . . . . . 40 4 Constrained Affine Sets 43 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2 Constrained Affine Sets . . . . . . . . . . . . . . . . . . . . . 45 4.3 Special Case: Non Relational Constraints . . . . . . . . . . . 51 5 Assignment and Interpretation of Tests 61 5.1 Abstract Assignment . . . . . . . . . . . . . . . . . . . . . . 61 5.2 Interpretation of Tests . . . . . . . . . . . . . . . . . . . . . 70 5.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6 Join over Constrained Affine Sets 77 6.1 General Procedure . . . . . . . . . . . . . . . . . . . . . . . 78 6.2 Join over Constrained Affine Forms . . . . . . . . . . . . . . 79 6.3 Join over Constrained Affine Sets . . . . . . . . . . . . . . . 114 7 Implementation and Experiments 119 v Contents 7.1 Abstract Computations Using Floating-point Numbers . . . 119 7.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . 131 7.3 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 8 Conclusion 141 A The Support Function 143 B Lengthy Proofs 147 B.1 Lemma 6.2.18: Fenchel Conjugate of L . . . . . . . . . . . 147 λ¯ B.2 Theorem 6.2.20: Saddle-Point Characterization . . . . . . . 148 Bibliography 153 vi 1 CHAPTER Introduction Ce qui importe, ce n’est pas d’arriver, mais d’aller vers. Antoine de Saint-Exupe´ry A huge effort has been done during the last three decades in an attempt to ensure the correctness of software behavior while adding a reasonable overhead to the time-to-market of software dependant products. Nowadays, more than ever, such a goal is still one of the biggest challenges facing the computer science community. It is amazing to notice the importance and the impact of software in our everyday life. Cellphones, cars, planes, appliances,medias,networks,telecommunications,databases,powerplants, factories ... software are everywhere, include a variety of heterogeneous services and monitor many critical and life dependant applications. We focus on critical embedded control command software used for in- stance in airplanes or spacecrafts. This work is in line with the use of formal verification techniques to prove the correctness of a software with respect to its specification. We use the static analysis by abstract interpretation as a generaltheoreticalframework. Staticanalysismeansthatwedonotrunthe software under analysis (in contrast with dynamic methods, as tests for in- stance). Instead, the semantics of the program is extracted from the source code, then approximated in a sound manner by a (decidable) abstract se- mantics. The latter abstract semantics allows to synthesize invariants that the variables always verify. The level of abstraction reflects the expres- siveness of the analysis and hence, the precision of the inferred invariants. Usually, a precise analysis is expensive in time, whereas cheap analysis gives imprecise results. Therefore, the main effort in the field consists in looking for a good precision-cost trade-offs. 1
Description: