A Three-Tier Strategy for Reasoning About Floating-Point Numbers in SMT [chapter]

Sylvain Conchon, Mohamed Iguernlala, Kailiang Ji, Guillaume Melquiond, Clément Fumex
2017 Lecture Notes in Computer Science  
The SMT-LIB standard defines a formal semantics for a theory of floating-point (FP) arithmetic (FPA). This formalization reduces FP operations to reals by means of a rounding operator, as done in the IEEE-754 standard. Closely following this description, we propose a three-tier strategy to reason about FPA in SMT solvers. The first layer is a purely axiomatic implementation of the automatable semantics of the SMT-LIB standard. It reasons with exceptional cases (e.g. overflows, division by zero,
more » ... undefined operations) and reduces finite representable FP expressions to reals using the rounding operator. At the core of our strategy, a second layer handles a set of lemmas about the properties of rounding. For these lemmas to be used effectively, we extend the instantiation mechanism of SMT solvers to tightly cooperate with the third layer, the NRA engine of SMT solvers, which provides interval information. We implemented our strategy in the Alt-Ergo SMT solver and validated it on a set of benchmarks coming from the SMT-LIB competition, but also from the deductive verification of C and SPARK programs. The results show that our approach is promising and compete with existing techniques implemented in state-of-the-art SMT solvers. This work is supported by the ANR projects SOPRANO (ANR-14-CE28-0020) and ProofInUse (ANR-14-LAB3-0007). 7 https://github.com/Z3Prover/z3/issues/14 16 most of rounding properties as CP-like propagators. As the benchmarks show, the various approaches are complementary. We are thus planning to see how bitblasting, ACDCL, and RIA techniques could be integrated in our framework, in particular to handle satisfiable formulas.
doi:10.1007/978-3-319-63390-9_22 fatcat:tewo6v5crfcxpg32fcsydpb7ve