Deductive Verification of Floating-Point Java Programs in KeY

01/21/2021
by   Rosa Abbasi Boroujeni, et al.
0

Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly unintuitive to reason about due to rounding as well as the presence of the special values infinity and `Not a Number' (NaN). In this paper, we present the first floating-point support in a deductive verification tool for the Java programming language. Our support in the KeY verifier handles arithmetic via floating-point decision procedures inside SMT solvers and transcendental functions via axiomatization. We evaluate this integration on new benchmarks, and show that this approach is powerful enough to prove the absence of floating-point special values – often a prerequisite for further reasoning about numerical computations – as well as certain functional properties for realistic benchmarks.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/27/2020

An Efficient Floating-Point Bit-Blasting API for Verifying C Programs

We describe a new SMT bit-blasting API for floating-points and evaluate ...
research
03/06/2020

Exploiting Verified Neural Networks via Floating Point Numerical Error

We show how to construct adversarial examples for neural networks with e...
research
05/07/2018

Combining Tools for Optimization and Analysis of Floating-Point Computations

Recent renewed interest in optimizing and analyzing floating-point progr...
research
05/01/2018

Computable decision making on the reals and other spaces via partiality and nondeterminism

Though many safety-critical software systems use floating point to repre...
research
12/29/2017

On quality of implementation of Fortran 2008 complex intrinsic functions on branch cuts

Branch cuts in complex functions in combination with signed zero and sig...
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
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...

Please sign up or login with your details

Forgot password? Click here to reset