An Online Proof-Producing Decision Procedure for Mixed-Integer Linear Arithmetic

Efficient decision procedures for arithmetic play a very important role in formal verification. In practical examples, however, arithmetic constraints are often mixed with constraints from other theories like the theory of arrays, Boolean satisfiability (SAT), bit-vectors, etc. Therefore, decision procedures for arithmetic are especially useful in combination with other decision procedures. The framework for such a combination is implemented at Stanford in the tool called Cooperating Validity Checker (CVC) [SBD02]. This work augments CVC with a decision procedure for the theory of mixed integer linear arithmetic based on the Omega-test [Pug91] extended to be online and proof producing. These extensions are the most important and challenging part of the work, and are necessary to make the combination efficient in practice.

[1]  John N. Tsitsiklis,et al.  Introduction to linear optimization , 1997, Athena scientific optimization and computation series.

[2]  David L. Dill,et al.  Checking validities and proofs with CVC and flea , 2002 .

[3]  David L. Dill,et al.  A decision procedure for an extensional theory of arrays , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[4]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[5]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[6]  H. Paul Williams,et al.  Fourier-Motzkin Elimination Extension to Integer Programming Problems , 1976, J. Comb. Theory, Ser. A.

[7]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.

[8]  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).

[9]  Natarajan Shankar,et al.  Deconstructing Shostak , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[10]  M. Oliver Moller,et al.  Solving Bit-Vector Equations - A Decision Procedure for Hardware Verification , 1998 .

[11]  George C. Necula,et al.  Proof Generation in the Touchstone Theorem Prover , 2000, CADE.

[12]  Robert E. Shostak,et al.  On the SUP-INF Method for Proving Presburger Formulas , 1977, JACM.

[13]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory A.

[14]  David L. Dill,et al.  A Framework for Cooperating Decision Procedures , 2000, CADE.

[15]  David L. Dill,et al.  CVC: A Cooperating Validity Checker , 2002, CAV.

[16]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[17]  David L. Dill,et al.  A Generalization of Shostak's Method for Combining Decision Procedures , 2002, FroCoS.

[18]  David L. Dill,et al.  Checking Satisfiability of First-Order Formulas by Incremental Translation to SAT , 2002, CAV.

[19]  William M. Farmer,et al.  A partial functions version of Church's simple theory of types , 1990, Journal of Symbolic Logic.

[20]  Harald Ruess,et al.  Solving Bit-Vector Equations , 1998, FMCAD.

[21]  Robert E. Shostak,et al.  Deciding Combinations of Theories , 1982, JACM.

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