A Class of Polynomially Solvable Range Constraints for Interval Analysis without Widenings and Narrowings

In this paper, we study the problem of solving integer range constraints that arise in many static program analysis problems. In particular, we present the first polynomial time algorithm for a general class of integer range constraints. In contrast with abstract interpretation techniques based on widenings and narrowings, our algorithm computes, in polynomial time, the optimal solution of the arising fixpoint equations. Our result implies that “precise” range analysis can be performed in polynomial time without widening and narrowing operations.

[1]  Yu. V. Matijasevič On Recursive Unsolvability of Hilbert's Tenth Problem , 1973 .

[2]  André Vellino,et al.  Constraint Arithmetic on Real Intervals , 1993, WCLP.

[3]  Rajiv Gupta A fresh look at optimizing array bound checking , 1990, PLDI '90.

[4]  Frédéric Benhamou,et al.  Applying Interval Arithmetic to Real, Integer, and Boolean Constraints , 1997, J. Log. Program..

[5]  Krzysztof R. Apt The role of commutativity in constraint propagation algorithms , 2000, TOPL.

[6]  Patrick Suppes,et al.  Logic, Methodology and Philosophy of Science , 1963 .

[7]  William Pugh,et al.  Constraint-based array dependence analysis , 1998, TOPL.

[8]  Raymond E. Miller,et al.  Complexity of Computer Computations , 1972 .

[9]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[10]  Alain Colmerauer,et al.  Constraint logic programming: selected research , 1993 .

[11]  William Pugh,et al.  The Omega test: A fast and practical integer programming algorithm for dependence analysis , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[12]  David A. Wagner,et al.  A First Step Towards Automated Detection of Buffer Overrun Vulnerabilities , 2000, NDSS.

[13]  Hubert Comon-Lundh,et al.  Diophantine Equations, Presburger Arithmetic and Finite Automata , 1996, CAAP.

[14]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[15]  François Bourdoncle,et al.  Abstract debugging of higher-order imperative languages , 1993, PLDI '93.

[16]  Norihisa Suzuki,et al.  Implementation of an array bound checker , 1977, POPL.

[17]  M. H. van Emden,et al.  A Unified Framework for Interval Constraints and Interval Arithmetic , 1998, CP.

[18]  Yunheung Paek,et al.  Efficient and precise array access analysis , 2002, TOPL.

[19]  James P. Ignizio,et al.  Introduction to Linear Programming , 1994 .

[20]  Robert E. Shostak,et al.  Deciding Linear Inequalities by Computing Loop Residues , 1981, JACM.

[21]  Rudolf Eigenmann,et al.  Symbolic range propagation , 1995, Proceedings of 9th International Parallel Processing Symposium.

[22]  Frank Pfenning,et al.  Eliminating array bound checking through dependent types , 1998, PLDI.

[23]  Timothy J. Hickey Analytic constraint solving and interval arithmetic , 2000, POPL '00.

[24]  Helene Kirchner Trees in Algebra and Programming — CAAP '96 , 1996, Lecture Notes in Computer Science.

[25]  Rajiv Gupta,et al.  Optimizing array bound checks using flow analysis , 1993, LOPL.

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

[27]  Pierre Wolper,et al.  An Automata-Theoretic Approach to Presburger Arithmetic Constraints (Extended Abstract) , 1995, SAS.

[28]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[29]  C. G. Nelson An $n^{log n}$ algorithm for the two-variable-per-constraint linear programming satisfiability problem , 1978 .

[30]  Charles Gregory Nelson,et al.  Techniques for program verification , 1979 .

[31]  Helmut Seidl,et al.  A Faster Solver for General Systems of Equations , 1999, Sci. Comput. Program..

[32]  V. Pratt Two Easy Theories Whose Combination is Hard , 2002 .

[33]  Rudolf Eigenmann,et al.  The range test: a dependence test for symbolic, non-linear expressions , 1994, Proceedings of Supercomputing '94.

[34]  Krzysztof R. Apt,et al.  The Essence of Constraint Propagation , 1998, Theor. Comput. Sci..

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

[36]  Patrick Cousot,et al.  Abstract Interpretation Frameworks , 1992, J. Log. Comput..

[37]  Bengt Aspvall,et al.  A Polynomial Time Algorithm for Solving Systems of Linear Inequalities with Two Variables per Inequality , 1980, SIAM J. Comput..

[38]  Robert Seater,et al.  Polynomial Time Array Dataflow Analysis , 2001, LCPC.

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