Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships

We introduce a new numerical abstract domain, so-called interval polyhedra (itvPol) , to infer and propagate interval linear constraints over program variables. itvPol , which allows to represent constraints of the form *** k [a k ,b k ]x k ≤ c , is more expressive than the classic convex polyhedra domain and allows to express certain non-convex (even unconnected) properties. The implementation of itvPol can be constructed based on interval linear programming and an interval variant of Fourier-Motzkin elimination. The preliminary experimental results of our prototype are encouraging, especially for programs affected by interval uncertainty, e.g., due to uncertain input data or interval-based abstractions of disjunctive, non-linear, or floating-point expressions. To our knowledge, this is the first application of interval linear algebra to static analysis.

[1]  Roberto Bagnara,et al.  Widening operators for powerset domains , 2005, International Journal on Software Tools for Technology Transfer.

[2]  Francesco Logozzo,et al.  SubPolyhedra: A (More) Scalable Approach to Infer Linear Inequalities , 2009, VMCAI.

[3]  Eric Goubault,et al.  Inferring Min and Max Invariants Using Max-Plus Polyhedra , 2008, SAS.

[4]  P. Hill,et al.  Widening operators for powerset domains , 2006 .

[5]  John W. Chinneck,et al.  Linear programming with interval coefficients , 2000, J. Oper. Res. Soc..

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

[7]  Antoine Miné,et al.  The octagon abstract domain , 2001, High. Order Symb. Comput..

[8]  Roberto Giacobazzi,et al.  Optimal Domains for Disjunctive Abstract Intepretation , 1998, Sci. Comput. Program..

[9]  Patrick Cousot,et al.  A Sound Floating-Point Polyhedra Abstract Domain , 2008, APLAS.

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

[11]  Java Binding,et al.  GNU Linear Programming Kit , 2011 .

[12]  Antoine Miné,et al.  Symbolic Methods to Enhance the Precision of Numerical Abstract Domains , 2006, VMCAI.

[13]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[14]  Philippe Granger Static analysis of arithmetical congruences , 1989 .

[15]  Jiri Rohn,et al.  A Handbook of Results on Interval Linear Problems , 2005 .

[16]  J. Rohn,et al.  Solvability of systems of interval linear equations and inequalities , 2006 .

[17]  M. Fiedler,et al.  Linear Optimization Problems with Inexact Data , 2006 .

[18]  W. Prager,et al.  Compatibility of approximate solution of linear equations with given error bounds for coefficients and right-hand sides , 1964 .

[19]  Christian Jansson,et al.  Rigorous Lower and Upper Bounds in Linear Programming , 2003, SIAM J. Optim..

[20]  Roberto Bagnara,et al.  Widening Operators for Powerset Domains , 2004, VMCAI.

[21]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[22]  Sumit Gulwani,et al.  A Numerical Abstract Domain Based on Expression Abstraction and Max Operator with Application in Timing Analysis , 2008, CAV.

[23]  C. Jansson Calculation of exact bounds for the solution set of linear interval systems , 1997 .

[24]  Radhia Cousot,et al.  Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages) , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[25]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[26]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[27]  Antoine Miné,et al.  Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors , 2004, ESOP.