Volume Computation for Boolean Combination of Linear Arithmetic Constraints

There are many works on the satisfiability problem for various logics and constraint languages, such as SAT and Satisfiability Modulo Theories (SMT). On the other hand, the counting version of decision problems is also quite important in automated reasoning. In this paper, we study a counting version of SMT, i.e., how to compute the volume of the solution space, given a set of Boolean combinations of linear constraints. The problem generalizes the model counting problem and the volume computation problem for convex polytopes. It has potential applications to program analysis and verification, as well as approximate reasoning, yet it has received little attention. We first give a straightforward method, and then propose an improved algorithm. We also describe two ways of incorporating theory-level lemma learning technique into the algorithm. They have been implemented, and some experimental results are given. Through an example program, we show that our tool can be used to compute how often a given program path is executed.

[1]  Bart Selman,et al.  A New Approach to Model Counting , 2005, SAT.

[2]  Friedrich Eisenbrand,et al.  0/1 Vertex and Facet Enumeration with BDDs , 2007, ALENEX.

[3]  Komei Fukuda,et al.  Exact volume computation for polytopes: a practical study , 1996 .

[4]  Roberto J. Bayardo,et al.  Counting Models Using Connected Components , 2000, AAAI/IAAI.

[5]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[6]  Cesare Tinelli,et al.  Solving SAT and SAT Modulo Theories: From an abstract Davis--Putnam--Logemann--Loveland procedure to DPLL(T) , 2006, JACM.

[7]  Frank Wolter,et al.  Monodic fragments of first-order temporal logics: 2000-2001 A.D , 2001, LPAR.

[8]  Henry A. Kautz,et al.  Heuristics for Fast Exact Model Counting , 2005, SAT.

[9]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[10]  Marko Samer,et al.  Algorithms for propositional model counting , 2007, J. Discrete Algorithms.

[11]  Martin E. Dyer,et al.  On the Complexity of Computing the Volume of a Polyhedron , 1988, SIAM J. Comput..

[12]  Jörg Hoffmann,et al.  From Sampling to Model Counting , 2007, IJCAI.

[13]  Bruno Dutertre,et al.  A Fast Linear-Arithmetic Solver for DPLL(T) , 2006, CAV.

[14]  Jesús A. De Loera,et al.  Effective lattice point counting in rational convex polytopes , 2004, J. Symb. Comput..

[15]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[16]  Toniann Pitassi,et al.  Algorithms and complexity results for #SAT and Bayesian inference , 2003, 44th Annual IEEE Symposium on Foundations of Computer Science, 2003. Proceedings..

[17]  Cesare Tinelli,et al.  DPLL( T): Fast Decision Procedures , 2004, CAV.

[18]  Dan Roth,et al.  On the Hardness of Approximate Reasoning , 1993, IJCAI.

[19]  Jian Zhang Specification analysis and test data generation by solving Boolean combinations of numeric constraints , 2000, Proceedings First Asia-Pacific Conference on Quality Software.

[20]  Westley Weimer,et al.  The road not taken: Estimating path execution frequency statically , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[21]  Fahiem Bacchus,et al.  Using More Reasoning to Improve #SAT Solving , 2007, AAAI.

[22]  Albert Mo Kim Cheng,et al.  Automatic Debugging of Real-Time Systems Based on Incremental Satisfiability Counting , 2006, IEEE Trans. Computers.

[23]  Daniel Kroening,et al.  Decision Procedures - An Algorithmic Point of View , 2008, Texts in Theoretical Computer Science. An EATCS Series.

[24]  G. Ziegler,et al.  Polytopes : combinatorics and computation , 2000 .

[25]  Jian Zhang,et al.  A Constraint Solver and Its Application to Path Feasibility Analysis , 2001, Int. J. Softw. Eng. Knowl. Eng..