Deciding Separation Logic Formulae by SAT and Incremental Negative Cycle Elimination
- Cite this paper as:
- Wang C., Ivančić F., Ganai M., Gupta A. (2005) Deciding Separation Logic Formulae by SAT and Incremental Negative Cycle Elimination. In: Sutcliffe G., Voronkov A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2005. Lecture Notes in Computer Science, vol 3835. Springer, Berlin, Heidelberg
Separation logic is a subset of the quantifier-free first order logic. It has been successfully used in the automated verification of systems that have large (or unbounded) integer-valued state variables, such as pipelined processor designs and timed systems. In this paper, we present a fast decision procedure for separation logic, which combines Boolean satisfiability (SAT) with a graph based incremental negative cycle elimination algorithm. Our solver abstracts a separation logic formula into a Boolean formula by replacing each predicate with a Boolean variable. Transitivity constraints over predicates are detected from the constraint graph and added on a need-to basis. Our solver handles Boolean and theory conflicts uniformly at the Boolean level. The graph based algorithm supports not only incremental theory propagation, but also constant time theory backtracking without using a cumbersome history stack. Experimental results on a large set of benchmarks show that our new decision procedure is scalable, and outperforms existing techniques for this logic.
Unable to display preview. Download preview PDF.