Mathematical programming based debugging

Abstract Verifying that a piece of software has no bugs means proving that it has certain desired properties, such as an array index not taking values outside certain bounds. Abstract interpretation is used in the static analysis of code to establish the inclusion-wise smallest set of values (numerical invariant) that the program variables can attain during program execution. Such sets can be used to detect run-time errors without actually running the program. We present a mathematical program that determines guaranteed smallest interval invariants of computer programs with integer affine arithmetics and compare our results to existing techniques.

[1]  Martin L. Puterman,et al.  On the Convergence of Policy Iteration in Stationary Dynamic Programming , 1979, Math. Oper. Res..

[2]  Patrick Cousot,et al.  Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming , 2005, VMCAI.

[3]  Leo Liberti,et al.  Branching and bounds tighteningtechniques for non-convex MINLP , 2009, Optim. Methods Softw..

[4]  Eric Goubault,et al.  A Policy Iteration Algorithm for Computing Fixed Points in Static Analysis of Programs , 2005, CAV.

[5]  R. Bellman,et al.  Dynamic Programming and Markov Processes , 1960 .

[6]  D. Harel,et al.  A universal flowcharter , 1979 .

[7]  A. Tarski A LATTICE-THEORETICAL FIXPOINT THEOREM AND ITS APPLICATIONS , 1955 .

[8]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[9]  Eldon Hansen,et al.  Global optimization using interval analysis , 1992, Pure and applied mathematics.

[10]  A. Megretski,et al.  Convex optimization proves software correctness , 2005, Proceedings of the 2005, American Control Conference, 2005..

[11]  Helmut Seidl,et al.  Precise Fixpoint Computation Through Strategy Iteration , 2007, ESOP.

[12]  Hirotoshi Yasuoka,et al.  Polymorphic Fractional Capabilities , 2009, SAS.

[13]  Ankur Taly,et al.  Static Analysis by Policy Iteration on Relational Domains , 2007, ESOP.

[14]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.