Real Behavior of Floating Point

We present an efficient constraint programming (CP) approach to the SMTLIB theory of quantifier-free floating-point arithmetic (QF FP). We rely on dense interreduction between many domain representations to greatly reduce the search space. We compare our tool to current state-of-the-art SMT solvers and show that it is consistently better on large problems involving non-linear arithmetic operations (for which bit-blasting techniques tend to scale badly). Our results emphasize the importance of the conservation of the high-level structure of the original problems.

[1]  Social processes and proofs of theorems and programs , 1977, POPL.

[2]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[3]  Claude Michel Exact Projection Functions for Floating Point Number Constraints , 2002, ISAIM.

[4]  Bruno Marre,et al.  On-the-fly generation of k-path tests for C functions , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[5]  Bruno Marre,et al.  Test Selection Strategies for Lustre Descriptions in GATeL , 2005, Electron. Notes Theor. Comput. Sci..

[6]  Peter J. Stuckey,et al.  Propagation via lazy clause generation , 2009, Constraints.

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

[8]  Peter J. Stuckey,et al.  Global difference constraint propagation for finite domain solvers , 2008, PPDP.

[9]  Jean-Michel Muller,et al.  Handbook of Floating-Point Arithmetic (2nd Ed.) , 2018 .

[10]  Pascale Le Gall,et al.  Handling State-Machines Specifications with GATeL , 2010, Electron. Notes Theor. Comput. Sci..

[11]  Bruno Marre,et al.  Improving the Floating Point Addition and Subtraction Constraints , 2010, CP.

[12]  Philipp Rümmer,et al.  An SMT-LIB Theory of Binary Floating-Point Arithmetic ∗ , 2010 .

[13]  Philippe Herrmann,et al.  OSMOSE: automatic structural testing of executables , 2011, Softw. Test. Verification Reliab..

[14]  Michel Rueher,et al.  Boosting Local Consistency Algorithms over Floating-Point Numbers , 2012, CP.

[15]  Guillaume Melquiond,et al.  Built-in Treatment of an Axiomatic Floating-Point Theory for SMT Solvers , 2012, SMT@IJCAR.

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

[17]  Clark W. Barrett,et al.  The design and implementation of the model constructing satisfiability calculus , 2013, 2013 Formal Methods in Computer-Aided Design.

[18]  Cesare Tinelli,et al.  An Automatable Formal Semantics for IEEE-754 Floating-Point Arithmetic , 2015, 2015 IEEE 22nd Symposium on Computer Arithmetic.

[19]  Sylvie Boldo Stupid is as Stupid Does: Taking the Square Root of the Square of a Floating-Point Number , 2015, Electron. Notes Theor. Comput. Sci..

[20]  Ofer Strichman,et al.  Learning general constraints in CSP , 2016, Artif. Intell..

[21]  Jean-Yves Marion,et al.  BINSEC/SE: A Dynamic Symbolic Execution Toolkit for Binary-Level Analysis , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[22]  Guillaume Melquiond,et al.  A Three-Tier Strategy for Reasoning About Floating-Point Numbers in SMT , 2017, CAV.