Program Analysis Using Quantifier-Elimination Heuristics
Software is being employed for life-critical, safety-critical, infrastructure-critical and economically critical applications. Our daily lives rely heavily on proper functioning of software in gadgets we directly or indirectly use-airplanes, flight control, high speed trains, cars, cell-phones, medical devices and instruments, banks, and what not. Malfunctioning of a program can have very severe consequences-costing lives (e.g. Therac-25 , Patriot missile) and money (e.g. Ariane 5, malfunctioning of economic transactions, problems in stock exchanges) . Validation and verification of software have become even more and more important. Given that full verification of software has been found increasingly difficult to achieve because of lack of rigorous and complete specifications on one hand as well as difficulty of verification systems/theorem provers to address the increasing complexity of software despite considerable advances in automated reasoning techniques, ensuring absence of various types of bugs becomes a critical first step in ensuring reliability.
KeywordsAtomic Formula High Speed Train Abstract Interpretation Program Variable Branch Condition
Unable to display preview. Download preview PDF.
- 1.Allamigeon, X.: Static analysis of memory manipulations by abstract interpretation Algorithmics of tropical polyhedra, and application to abstract interpretation. PhD thesis, Ecole Polytechnique, Palaiseau, France (November 2009), http://www.lix.polytechnique.fr/Labo/Xavier.Allamigeon/papers/thesis.pdf
- 2.Cousot, P., Cousot, R.: Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Conference Record of the Fourth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Los Angeles, California, pp. 238–252. ACM Press, New York (1977)CrossRefGoogle Scholar
- 5.Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R.: Synthesis of loop-free programs. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 62–73. ACM (2011)Google Scholar
- 6.Gulwani, S., Srivastava, S., Venkatesan, R.: Program analysis as constraint solving. In: PLDI, pp. 281–292 (2008)Google Scholar
- 8.Jeannet, B., Argoud, M., Lalire, G.: The interproc interprocedural analyzerGoogle Scholar
- 10.Kapur, D.: Automatically Generating Loop Invariants using Quantifier Elimination. Technical report, Department of Computer Science, University of New Mexico, Albuquerque, NM, USA (2003)Google Scholar
- 12.Kapur, D., Zarba, C.: A Reduction Approach to Decison Procedures. Technical Report, Department of Computer Science, UNM (December 2006)Google Scholar
- 14.Lions, J., Luebeck, L., Fauquembergue, J., Kahn, G., Kubbat, W., Levedag, S., Mazzini, L., Merle, D., Halloran, C.O.: Ariane 5, flight 501 failure (1996)Google Scholar
- 15.Miné, A.: Weakly relational numerical abstract domains. These de doctorat en informatique, École polytechnique, Palaiseau, France (2004)Google Scholar
- 16.Sankaranarayanan, S., Sipma, H., Manna, Z.: Non-linear Loop Invariant Generation using Gröbner Bases. In: Symp. on Principles of Programming Languages (2004)Google Scholar
- 17.Schrijver, A.: Theory of Linear and Integer Programming. John Wiley (1998)Google Scholar