Cover Algorithms and Their Combination

This paper defines the cover of a formula φ with respect to a set of variables V in theory T to be the strongest quantifier-free formula that is implied by ∃V : φ in theory T. Cover exists for several useful theories, including those that do not admit quantifier elimination. This paper describes cover algorithms for the theories of uninterpreted functions and linear arithmetic. In addition, the paper provides a combination algorithm to combine the cover operations for theories that satisfy some general condition. This combination algorithm can be used to compute the cover a formula in the combined theory of uninterpreted functions and linear arithmetic. This paper motivates the study of cover by describing its applications in program analysis and verification techniques, like symbolic model checking and abstract interpretation.

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

[2]  Thomas A. Henzinger,et al.  Invariant Synthesis for Combined Theories , 2007, VMCAI.

[3]  Alex Groce,et al.  Modular verification of software components in C , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[4]  Gabriele Paul,et al.  AI approaches to abduction , 2000 .

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

[6]  Thomas A. Henzinger,et al.  Abstractions from proofs , 2004, POPL.

[7]  Greg Nelson,et al.  Simplification by Cooperating Decision Procedures , 1979, TOPL.

[8]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

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

[10]  Shuvendu K. Lahiri,et al.  Predicate Abstraction via Symbolic Decision Procedures , 2005, Log. Methods Comput. Sci..

[11]  Paolo Mancarella,et al.  Abductive Logic Programming , 1992, LPNMR.

[12]  Sumit Gulwani,et al.  Global value numbering using random interpretation , 2004, POPL '04.

[13]  Sriram K. Rajamani,et al.  Counterexample Driven Refinement for Abstract Interpretation , 2006, TACAS.

[14]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

[15]  Kenneth L. McMillan,et al.  An interpolating theorem prover , 2005, Theor. Comput. Sci..

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

[17]  Sumit Gulwani,et al.  A polynomial-time algorithm for global value numbering , 2004, Sci. Comput. Program..

[18]  Sumit Gulwani,et al.  Combining abstract interpreters , 2006, PLDI '06.