Parallelizing SMT solving: Lazy decomposition and conciliation

Abstract Satisfiability Modulo Theories (SMT) is the satisfiability problem for first-order formulae with respect to background theories. SMT extends the propositional satisfiability by introducing various underlying theories. To improve the efficiency of SMT solving, many efforts have been made on low-level algorithms but they generally cannot leverage the capability of parallel hardware. We propose a high-level and flexible framework, namely lazy decomposition and conciliation (LDC), to parallelize solving for quantifier-free SMT problems. Overall, a SMT problem is firstly decomposed into subproblems, then local reasoning inside each subproblem is conciliated with the global reasoning over the shared symbols across subproblems in parallel. LDC can be built on any existing solver without tuning its internal implementation, and is flexible as it is applicable to various underlying theories. We instantiate LDC in the theory of equality with uninterpreted functions, and implement a parallel solver PZ 3 based on Z 3. Experiment results on the QF_UF benchmarks from SMT-LIB as well as random problems show the potential of LDC, as (1) PZ 3 generally outperforms Z 3 in 4 out of 8 problem subcategories under various core configurations; (2) PZ 3 usually achieves super-linear speed-up over Z 3 on problems with sparse structures, which makes it possible to choose an appropriate solver from Z 3 and PZ 3 in advance according to the structure of input problem; (3) compared to PCVC 4, a state-of-the-art portfolio-based parallel SMT solver, PZ 3 achieves speed-up on a larger portion of problems and has better overall speed-up ratio.

[1]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[2]  Joao Marques-Silva,et al.  Lazy Decomposition for Distributed Decision Procedures , 2011, PDMC.

[3]  Thomas A. Henzinger,et al.  Lazy abstraction , 2002, POPL '02.

[4]  Harald Ruess,et al.  An Experimental Evaluation of Ground Decision Procedures , 2004, CAV.

[5]  Andreas Fellner,et al.  Greedy pebbling for proof space compression , 2017, International Journal on Software Tools for Technology Transfer.

[6]  Dominique Larchey-Wendling,et al.  Automated Reasoning with Analytic Tableaux and Related Methods , 2013, Lecture Notes in Computer Science.

[7]  Calogero G. Zarba,et al.  Interpolation for data structures , 2006, SIGSOFT '06/FSE-14.

[8]  Seda Ogrenci Memik,et al.  Accelerated SAT-based scheduling of control/data flow graphs , 2002, Proceedings. IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[9]  Kenneth L. McMillan,et al.  Interpolation and SAT-Based Model Checking , 2003, CAV.

[10]  Lakhdar Sais,et al.  Control-Based Clause Sharing in Parallel SAT Solving , 2009, IJCAI.

[11]  Roberto Bruttomesso,et al.  Rewriting-based Quantifier-free Interpolation for a Theory of Arrays , 2011, RTA.

[12]  Daniel Kroening,et al.  An Interpolating Sequent Calculus for Quantifier-Free Presburger Arithmetic , 2010, Journal of Automated Reasoning.

[13]  David L. Dill,et al.  Successive approximation of abstract transition relations , 2001, Proceedings 16th Annual IEEE Symposium on Logic in Computer Science.

[14]  Maria Paola Bonacina,et al.  PSATO: a Distributed Propositional Prover and its Application to Quasigroup Problems , 1996, J. Symb. Comput..

[15]  Wilhelm Ackermann,et al.  Solvable Cases Of The Decision Problem , 1954 .

[16]  Alberto Griggio,et al.  Efficient generation of craig interpolants in satisfiability modulo theories , 2009, TOCL.

[17]  William Craig,et al.  Linear reasoning. A new form of the Herbrand-Gentzen theorem , 1957, Journal of Symbolic Logic.

[18]  Greg Nelson,et al.  Fast Decision Procedures Based on Congruence Closure , 1980, JACM.

[19]  Kenneth L. McMillan An interpolating theorem prover , 2005, Theor. Comput. Sci..

[20]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[21]  Andrei Voronkov,et al.  Interpolation and Symbol Elimination , 2009, CADE.

[22]  Armin Biere,et al.  Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays , 2009, TACAS.

[23]  David L. Dill,et al.  A Decision Procedure for Bit-Vectors and Arrays , 2007, CAV.

[24]  Viorica Sofronie-Stokkermans,et al.  Constraint solving for interpolation , 2010, J. Symb. Comput..

[25]  Roberto Bruttomesso,et al.  Quantifier-free interpolation in combinations of equality interpolating theories , 2014, ACM Trans. Comput. Log..

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

[27]  Ofer Strichman,et al.  Generating Minimum Transitivity Constraints in P-time for Deciding Equality Logic , 2008, Electron. Notes Theor. Comput. Sci..

[28]  Alan J. Hu,et al.  Efficient modular SAT solving for IC3 , 2013, 2013 Formal Methods in Computer-Aided Design.

[29]  Scott Cotton Two Techniques for Minimizing Resolution Proofs , 2010, SAT.

[30]  Cesare Tinelli,et al.  Satisfiability Modulo Theories , 2018, Handbook of Model Checking.

[31]  Alberto Griggio,et al.  The MathSAT5 SMT Solver , 2013, TACAS.

[32]  Stephan Merz,et al.  Exploiting Symmetry in SMT Problems , 2011, CADE.

[33]  Joseph Boudou,et al.  Compression of Propositional Resolution Proofs by Lowering Subproofs , 2013, TABLEAUX.

[34]  Randal E. Bryant,et al.  Processor verification using efficient reductions of the logic of uninterpreted functions to propositional logic , 1999, TOCL.

[35]  Rob A. Rutenbar,et al.  Satisfiability-based layout revisited: detailed routing of complex FPGAs via search-based Boolean SAT , 1999, FPGA '99.

[36]  Scott A. Smolka,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2013, Lecture Notes in Computer Science.

[37]  Lakhdar Sais,et al.  ManySAT: a Parallel SAT Solver , 2009, J. Satisf. Boolean Model. Comput..

[38]  M. Stickel,et al.  Automated reasoning and exhaustive search: Quasigroup existence problems☆ , 1995 .

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

[40]  Kenneth L. McMillan,et al.  Interpolants from Z3 proofs , 2011, 2011 Formal Methods in Computer-Aided Design (FMCAD).

[41]  Armin Biere Lingeling, Plingeling and Treengeling Entering the SAT Competition 2013 , 2013 .

[42]  Masahiro Fujita,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, DAC '99.

[43]  Madan Musuvathi,et al.  A Combination Method for Generating Interpolants , 2005, CADE.

[44]  Youssef Hamadi,et al.  A Concurrent Portfolio Approach to SMT Solving , 2009, CAV.

[45]  Daniel Kroening,et al.  Program Verification via Craig Interpolation for Presburger Arithmetic with Arrays , 2010, VERIFY@IJCAR.

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

[47]  Joseph Boudou,et al.  Skeptik: A Proof Compression System , 2014, IJCAR.

[48]  Sanjit A. Seshia,et al.  The UCLID Decision Procedure , 2004, CAV.

[49]  Kenneth L. McMillan,et al.  Lazy Abstraction with Interpolants , 2006, CAV.