Proofs and Refutations, and Z3

Abstract Z3 [3] is a state-of-the-art Satisfiability Modulo Theories (SMT) solver freely available from Microsoft Research. It solves the decision problem for quantifier-free formulas with respect to combinations of theories, such as arithmetic, bit-vectors, arrays, and uninterpreted functions. Z3 is used in various software analysis and test-case generation projects at Microsoft Research and elsewhere. The requirements from the user-base range from establishing validity, dually unsatisfiability, of firstorder formulas; to identify invalid, dually satisfiable, formulas. In both cases, there is often a need for more than just a yes/no answer from the prover. A model can exhibit why an invalid formula is not provable, and a proof-object can certify the validity of a formula. This paper describes the proof-producing internals of Z3. We also briefly introduce the model-producing facilities. We emphasize two features that can be of general interest: (1) we introduce a notion of implicit quotation to avoid introducing auxiliary variables, it simplifies the creation of proof objects considerably; (2) we produce natural deduction style proofs to facilitate modular proof re-construction.

[1]  J. A. Robinson,et al.  Handbook of Automated Reasoning (in 2 volumes) , 2001 .

[2]  C. R. Ramakrishnan,et al.  Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings , 2008, TACAS.

[3]  Alberto Griggio,et al.  Efficient Interpolant Generation in Satisfiability Modulo Theories , 2008, TACAS.

[4]  Albert Oliveras,et al.  Proof-Producing Congruence Closure , 2005, RTA.

[5]  Albert Rubio,et al.  Paramodulation-Based Theorem Proving , 2001, Handbook of Automated Reasoning.

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

[7]  Hasan Amjad,et al.  Efficiently checking propositional refutations in HOL theorem provers , 2009, J. Appl. Log..

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

[9]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[10]  Aaron Stump,et al.  Towards an SMT proof format , 2008, SMT '08/BPR '08.

[11]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[12]  I. Lakatos PROOFS AND REFUTATIONS (I)*† , 1963, The British Journal for the Philosophy of Science.

[13]  Lawrence C. Paulson,et al.  Translating Higher-Order Clauses to First-Order Clauses , 2007, Journal of Automated Reasoning.

[14]  Nikolaj Bjørner,et al.  Engineering DPLL(T) + Saturation , 2008, IJCAR.

[15]  Christoph Weidenbach,et al.  Computing Small Clause Normal Forms , 2001, Handbook of Automated Reasoning.

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

[17]  David L. Dill,et al.  Producing Proofs from an Arithmetic Decision Procedure in Elliptical LF , 2002, LFM.

[18]  Geoff Sutcliffe Semantic Derivation Verification: Techniques and Implementation , 2006, Int. J. Artif. Intell. Tools.

[19]  Clark Barrett,et al.  Proof Translation and SMT-LIB Benchmark Certification : A Preliminary Report ∗ , 2008 .

[20]  David L. Dill,et al.  Faster Proof Checking in the Edinburgh Logical Framework , 2002, CADE.

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

[22]  Stephan Schulz Learning Search Control Knowledge for Equational Theorem Proving , 2001, KI/ÖGAI.

[23]  Michal Moskal,et al.  Rocket-Fast Proof Checking for SMT Solvers , 2008, TACAS.

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