Correct Approximation of IEEE 754 Floating-Point Arithmetic for Program Verification

03/11/2019
by   Roberto Bagnara, et al.
0

Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities, non-numeric objects (NaNs), signed zeroes, denormal numbers, different rounding modes.... One possibility to reason about floating-point arithmetic is to model a program computation path by means of a set of ternary constraints of the form z = x op y and use constraint propagation techniques to infer new information on the variables' possible values. In this setting, we define and prove the correctness of algorithms to precisely bound the value of one of the variables x, y or z, starting from the bounds known for the other two. We do this for each of the operations and for each rounding mode defined by the IEEE 754 binary floating-point standard, even in the case the rounding mode in effect is only partially known. This is the first time that such so-called filtering algorithms are defined and their correctness is formally proved. This is an important slab for paving the way to formal verification of programs that use floating-point arithmetics.

READ FULL TEXT
research
08/18/2013

Exploiting Binary Floating-Point Representations for Constraint Propagation: The Complete Unabridged Version

Floating-point computations are quickly finding their way in the design ...
research
01/02/2017

The Unum Number Format: Mathematical Foundations, Implementation and Comparison to IEEE 754 Floating-Point Numbers

This thesis examines a modern concept for machine numbers based on inter...
research
02/27/2020

Bringing freedom in variable choice when searching counter-examples in floating point programs

Program verification techniques typically focus on finding counter-examp...
research
10/17/2021

Correct Probabilistic Model Checking with Floating-Point Arithmetic

Probabilistic model checking computes probabilities and expected values ...
research
12/13/2022

Fast Number Parsing Without Fallback

In recent work, Lemire (2021) presented a fast algorithm to convert numb...
research
12/02/2019

A Probabilistic Approach to Floating Point Arithmetic

Finite-precision floating point arithmetic unavoidably introduces roundi...
research
11/08/2022

Numerical analysis of Givens rotation

Generating 2-by-2 unitary matrices in floating-precision arithmetic is a...

Please sign up or login with your details

Forgot password? Click here to reset