An Approximation Framework for Solvers and Decision Procedures

We consider the problem of automatically and efficiently computing models of constraints, in the presence of complex background theories such as floating-point arithmetic. Constructing models, or proving that a constraint is unsatisfiable, has various applications, for instance for automatic generation of test inputs. It is well-known that a naïve encoding of constraints into simpler theories (for instance, bit-vectors or propositional logic) often leads to a drastic increase in size, or that it is unsatisfactory in terms of the resulting space and runtime demands. We define a framework for systematic application of approximations in order to improve performance. Our method is more general than previous techniques in the sense that approximations that are neither under- nor over-approximations can be used, and it shows promising performance on practically relevant benchmark problems.

[1]  Daniel Kroening,et al.  Deciding floating-point logic with abstract conflict driven clause learning , 2013, Formal Methods in System Design.

[2]  Edmund M. Clarke,et al.  dReal: An SMT Solver for Nonlinear Theories over the Reals , 2013, CADE.

[3]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[4]  Daniel Kroening,et al.  Numeric Bounds Analysis with Conflict-Driven Learning , 2012, TACAS.

[5]  Mizuhito Ogawa,et al.  SMT for Polynomial Constraints on Real Numbers , 2012, Electron. Notes Theor. Comput. Sci..

[6]  Jan Peleska,et al.  Automated Test Case Generation with SMT-Solving and Abstract Interpretation , 2011, NASA Formal Methods.

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

[8]  Armin Biere,et al.  Effective Bit-Width and Under-Approximation , 2009, EUROCAST.

[9]  Guillaume Melquiond,et al.  Combining Coq and Gappa for Certifying Floating-Point Programs , 2009, Calculemus/MKM.

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

[11]  Mikolás Janota,et al.  Solving QBF with Counterexample Guided Refinement , 2012, SAT.

[12]  Joël Ouaknine,et al.  Deciding Bit-Vector Arithmetic with Abstraction , 2007, TACAS.

[13]  David Kelley A theory of abstraction. , 1984 .

[14]  Guillaume Melquiond,et al.  Floating-point arithmetic in the Coq system , 2012, Inf. Comput..

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

[16]  James Demmel,et al.  IEEE Standard for Floating-Point Arithmetic , 2008 .

[17]  Leonardo Mendonça de Moura,et al.  The Strategy Challenge in SMT Solving , 2013, Automated Reasoning and Mathematics.

[18]  Guillaume Melquiond,et al.  Certification of bounds on expressions involving rounded operators , 2007, TOMS.

[19]  Daniel Kroening,et al.  Abstract conflict driven learning , 2013, POPL.

[20]  John Harrison,et al.  Floating Point Verification in HOL Light: The Exponential Function , 1997, Formal Methods Syst. Des..

[21]  Daniel Kroening,et al.  Mixed abstractions for floating-point arithmetic , 2009, 2009 Formal Methods in Computer-Aided Design.

[22]  Patrick Cousot,et al.  The ASTREÉ Analyzer , 2005, ESOP.

[23]  John Harrison,et al.  Handbook of Practical Logic and Automated Reasoning , 2009 .