Two Variables per Linear Inequality as an Abstract Domain
This paper explores the spatial domain of sets of inequalities where each inequality contains at most two variables — a domain that is richer than intervals and more tractable than general polyhedra. We present a complete suite of efficient domain operations for linear systems with two variables per inequality with unrestricted coefficients. We exploit a tactic in which a system of inequalities with at most two variables per inequality is decomposed into a series of projections — one for each two dimensional plane. The decomposition enables all domain operations required for abstract interpretation to be expressed in terms of the two dimensional case. The resulting operations are efficient and include a novel planar convex hull algorithm. Empirical evidence suggests that widening can be applied effectively, ensuring tractability.
Unable to display preview. Download preview PDF.
- 1.R. Bagnara. Data-Flow Analysis for Constrant Logic-Based Languages. PhD thesis, Dipartimento di Informatica, Università di Pisa, 1997.Google Scholar
- 2.V. Balasundaram and K. Kennedy. A Technique for Summarizing Data Access and its Use in Parallelism Enhancing Transformations. In Programming Language Design and Implementation, pages 41–53. ACM Press, 1989.Google Scholar
- 3.F. Bancilhon and R. Ramakrishnan. An Amateur’s Introduction to Recursive Query Processing Strategies. In International Conference on Management of Data, pages 16–52. ACM Press, 1986.Google Scholar
- 4.F. Benoy and A. King. Inferring Argument Size Relationships with CLP(ℝ). In Logic Program Synthesis and Transformation (Selected Papers), volume 1207 of Lecture Notes in Computer Science, pages 204–223. Springer-Verlag, 1997.Google Scholar
- 8.P. Cousot and N. Halbwachs. Automatic Discovery of Linear Restraints among Variables of a Program. In Principles of Programming Languages, pages 84–97. ACM Press, 1978.Google Scholar
- 12.P. Granger. Static Analysis of Linear Congruence Equalities among Variables of a Program. In International Joint Conference on the Theory and Practice of Software Development, volume 493 of Lecture Notes in Computer Science, pages 169–192. Springer-Verlag, 1991.Google Scholar
- 13.W. H. Harrison. Compiler Analysis of the Value Ranges for Variables. IEEE Transactions on Software Engineering, SE-3(3), 1977.Google Scholar
- 15.W. Harvey and P. J. Stuckey. A Unit Two Variable per Inequality Integer Constraint Solver for Constraint Logic Programming. Australian Computer Science Communications, 19(1):102–111, 1997.Google Scholar
- 18.J. Jaffar, M. J. Maher, P. J. Stuckey, and R. H. C. Yap. Beyond Finite Domains. In International Workshop on Principles and Practice of Constraint Programming, volume 874 of Lecture Notes in Computer Science, pages 86–94. Springer-Verlag, 1994.Google Scholar
- 20.V. Klee and G. J. Minty. How Good is the Simplex Algorithm? In Inequalities-III. Academic Press, New York and London, 1972.Google Scholar
- 23.H. Le Verge. A Note on Chernikova’s Algorithm. Technical Report 1662, Institut de Recherche en Informatique, Campus Universitaire de Beaulieu, France, 1992.Google Scholar
- 24.N. Lindenstrauss and Y. Sagiv. Automatic Termination Analysis of Logic Programs. In International Conference on Logic Programming, pages 63–77. MIT Press, 1997.Google Scholar
- 26.A. Miné. The Octagon Abstract Domain. In Eighth Working Conference on Reverse Engineering, pages 310–319. IEEE Computer Society, 2001.Google Scholar
- 27.A. Miné. A Few Graph-Based Relational Numerical Abstract Domains. In Ninth International Static Analysis Symposium, volume 2477 of Lecture Notes in Computer Science, pages 117–132. Springer-Verlag, 2002.Google Scholar
- 28.J. Møller, J. Lichtenberg, H. R. Andersen, and H. Hulgaard. Difference Decision Diagrams. In Conference of the European Association for Computer Science Logic, volume 1683 of Lecture Notes in Computer Science, pages 111–125. Springer-Verlag, 1999.Google Scholar
- 29.C. G. Nelson. An n log(n) Algorithm for the Two-Variable-Per-Constraint Linear Programming Satisfiability Problem. Technical Report STAN-CS-78-689, Stanford University, Department of Computer Science, 1978.Google Scholar
- 30.V. R. Pratt. Two Easy Theories Whose Combination is Hard, September 1977. http://boole.stanford.edu/pub/sefnp.pdf.
- 32.R. Seidel. Convex Hull Computations. In J. E. Goodman and J. O’Rourke, editors, Handbook of Discrete and Computational Geometry, pages 361–376. CRC Press, 1997.Google Scholar
- 35.Z. Su and D. Wagner. Efficient Algorithms for General Classes of Integer Range Constraints, July 2001. http://www.cs.berkeley.edu/~zhendong/.
- 36.D. Wagner, J. S. Foster, E. A. Brewer, and A. Aiken. A First Step Towards Detection of Buffer Overrun Vulnerabilities. In Network and Distributed System Security Symposium. Internet Society, 2000.Google Scholar