Counterexample-Guided Model Synthesis

In this paper we present a new approach for solving quantified formulas in Satisfiability Modulo Theories (SMT), with a particular focus on the theory of fixed-size bit-vectors. We combine counterexample-guided quantifier instantiation with a syntax-guided synthesis approach, which allows us to synthesize both Skolem functions and terms for quantifier instantiations. Our approach employs two ground theory solvers to reason about quantified formulas. It neither relies on quantifier specific simplifications nor heuristic quantifier instantiation techniques, which makes it a simple yet effective approach for solving quantified formulas. We implemented our approach in our SMT solver Boolector and show in our experiments that our techniques are competitive compared to the state-of-the-art in solving quantified bit-vectors.

[1]  Armin Biere,et al.  Turbo-charging Lemmas on demand with don't care reasoning , 2014, 2014 Formal Methods in Computer-Aided Design (FMCAD).

[2]  Supratik Chakraborty,et al.  A layered algorithm for quantifier elimination from linear modular constraints , 2016, Formal Methods Syst. Des..

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

[4]  Youssef Hamadi,et al.  Efficiently solving quantified bit-vector formulas , 2010, Formal Methods in Computer Aided Design.

[5]  Ganesh Gopalakrishnan,et al.  Computer Aided Verification - 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14-20, 2011. Proceedings , 2011, CAV.

[6]  Jan Strejcek,et al.  Solving Quantified Bit-Vector Formulas Using Binary Decision Diagrams , 2016, SAT.

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

[8]  Fahiem Bacchus,et al.  Exploiting QBF Duality on a Circuit Representation , 2010, AAAI.

[9]  David Detlefs,et al.  Simplify: a theorem prover for program checking , 2005, JACM.

[10]  Roderick Bloem,et al.  Optimizations for LTL Synthesis , 2006, 2006 Formal Methods in Computer Aided Design.

[11]  Rajeev Alur,et al.  TRANSIT: specifying protocols with concolic snippets , 2013, PLDI.

[12]  Mikolás Janota,et al.  Playing with Quantified Satisfaction , 2015, LPAR.

[13]  Armin Biere,et al.  Boolector 2 . 0 system description , 2015 .

[14]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, 2013 Formal Methods in Computer-Aided Design.

[15]  Armin Biere,et al.  Boolector 2.0 , 2015, J. Satisf. Boolean Model. Comput..

[16]  Bruno Dutertre,et al.  Yices 2.2 , 2014, CAV.

[17]  Sumit Gulwani,et al.  Constraint-Based Invariant Inference over Predicate Abstraction , 2008, VMCAI.

[18]  Daniel Kroening,et al.  Ranking function synthesis for bit-vector relations , 2010, Formal Methods Syst. Des..

[19]  E. Allen Emerson,et al.  Computer Aided Verification , 2000, Lecture Notes in Computer Science.

[20]  Leonardo Mendonça de Moura,et al.  Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories , 2009, CAV.

[21]  Armin Biere,et al.  Complexity of Fixed-Size Bit-Vector Logics , 2016, Theory of Computing Systems.

[22]  Arie Gurfinkel,et al.  Automated Discovery of Simulation Between Programs , 2015, LPAR.

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

[24]  Viktor Kuncak,et al.  Counterexample-Guided Quantifier Instantiation for Synthesis in SMT , 2015, CAV.

[25]  Sumit Gulwani,et al.  From program verification to program synthesis , 2010, POPL '10.

[26]  Zachary Kincaid,et al.  Linear Arithmetic Satisfiability via Strategy Improvement , 2016, IJCAI.

[27]  Solving Exists/Forall Problems With Yices , 2015 .