Revisiting Enumerative Instantiation

Formal methods applications often rely on SMT solvers to automatically discharge proof obligations. SMT solvers handle quantified formulas using incomplete heuristic techniques like E-matching, and often resort to model-based quantifier instantiation (MBQI) when these techniques fail. This paper revisits enumerative instantiation, a technique that considers instantiations based on exhaustive enumeration of ground terms. Although simple, we argue that enumerative instantiation can supplement other instantiation techniques and be a viable alternative to MBQI for valid proof obligations. We first present a stronger Herbrand Theorem, better suited as a basis for the instantiation loop used in SMT solvers; it furthermore requires considering less instances than classical Herbrand instantiation. Based on this result, we present different strategies for combining enumerative instantiation with other instantiation techniques in an effective way. The experimental evaluation shows that the implementation of these new techniques in the SMT solver CVC4 leads to significant improvements in several benchmark libraries, including many stemming from verification efforts.

[1]  Andrei Voronkov,et al.  First-Order Theorem Proving and Vampire , 2013, CAV.

[2]  Stephan Schulz,et al.  E - a brainiac theorem prover , 2002, AI Commun..

[3]  Herbert B. Enderton,et al.  A mathematical introduction to logic , 1972 .

[4]  Konstantin Korovin Non-cyclic Sorts for First-Order Satisfiability , 2013, FroCos.

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

[6]  Clark W. Barrett,et al.  The SMT-LIB Standard Version 2.0 , 2010 .

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

[8]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[9]  Koen Claessen,et al.  New techniques that improve mace-style model nding , 2003 .

[10]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[11]  Dag Prawitz,et al.  An improved proof procedure1 , 2008 .

[12]  Geoff Sutcliffe The TPTP Problem Library and Associated Infrastructure , 2009, Journal of Automated Reasoning.

[13]  K. Claessen,et al.  New Techniques that Improve MACE-style Finite Model Finding , 2007 .

[14]  Cesare Tinelli,et al.  Introducing StarExec: a Cross-Community Infrastructure for Logic Solving , 2014, COMPARE.

[15]  K. Rustan M. Leino,et al.  The Spec# Programming System: Challenges and Directions , 2005, VSTTE.

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

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

[18]  Geoff Sutcliffe The CADE ATP System Competition - CASC , 2016, AI Mag..

[19]  Paul C. Gilmore,et al.  A Proof Method for Quantification Theory: Its Justification and Realization , 1960, IBM J. Res. Dev..

[20]  Cesare Tinelli,et al.  Finding conflicting instances of quantified formulas in SMT , 2014, 2014 Formal Methods in Computer-Aided Design (FMCAD).

[21]  Nikolaj Bjørner,et al.  Efficient E-Matching for SMT Solvers , 2007, CADE.

[22]  Cesare Tinelli,et al.  Finite Model Finding in SMT , 2013, CAV.

[23]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[24]  Harald Ganzinger,et al.  New directions in instantiation-based theorem proving , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[25]  Clark W. Barrett,et al.  Being careful about theory combination , 2012, Formal Methods Syst. Des..

[26]  Cesare Tinelli,et al.  Quantifier Instantiation Techniques for Finite Model Finding in SMT , 2013, CADE.

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

[28]  Harald Ganzinger,et al.  Resolution Theorem Proving , 2001, Handbook of Automated Reasoning.

[29]  Andrew Reynolds,et al.  Conflicts, Models and Heuristics for Quantifier Instantiation in SMT , 2017, Vampire@IJCAR.

[30]  Cesare Tinelli,et al.  Solving quantified verification conditions using satisfiability modulo theories , 2007, Annals of Mathematics and Artificial Intelligence.

[31]  Haniel Barbosa,et al.  New techniques for instantiation and proof production in SMT solving. (Nouvelles techniques pour l'instanciation et la production des preuves dans SMT) , 2017 .

[32]  Koen Claessen,et al.  Sort It Out with Monotonicity - Translating between Many-Sorted and Unsorted First-Order Logic , 2011, CADE.

[33]  Pascal Fontaine,et al.  Congruence Closure with Free Variables , 2017, TACAS.

[34]  Mark A. Hillebrand,et al.  VCC: A Practical System for Verifying Concurrent C , 2009, TPHOLs.