Automatic generation and verification of test-stable floating-point code

01/07/2020
by   Laura Titolo, et al.
0

Test instability in a floating-point program occurs when the control flow of the program diverges from its ideal execution assuming real arithmetic. This phenomenon is caused by the presence of round-off errors that affect the evaluation of arithmetic expressions occurring in conditional statements. Unstable tests may lead to significant errors in safety-critical applications that depend on numerical computations. Writing programs that take into consideration test instability is a difficult task that requires expertise on finite precision computations and rounding errors. This paper presents a toolchain to automatically generate and verify a provably correct test-stable floating-point program from a functional specification in real arithmetic. The input is a real-valued program written in the Prototype Verification System (PVS) specification language and the output is a transformed floating-point C program annotated with ANSI/ISO C Specification Language (ACSL) contracts. These contracts relate the floating-point program to its functional specification in real arithmetic. The transformed program detects if unstable tests may occur and, in these cases, issues a warning and terminate. An approach that combines the Frama-C analyzer, the PRECiSA round-off error estimator, and PVS is proposed to automatically verify that the generated program code is correct in the sense that, if the program terminates without a warning, it follows the same computational path as its real-valued functional specification.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/13/2018

Eliminating Unstable Tests in Floating-Point Programs

Round-off errors arising from the difference between real numbers and th...
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
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
12/02/2019

A Probabilistic Approach to Floating Point Arithmetic

Finite-precision floating point arithmetic unavoidably introduces roundi...
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
02/18/2019

ENBB Processor: Towards the ExaScale Numerical Brain Box [Position Paper]

ExaScale systems will be a key driver for simulations that are essential...
research
03/03/2023

Automating Constraint-Aware Datapath Optimization using E-Graphs

Numerical hardware design requires aggressive optimization, where design...

Please sign up or login with your details

Forgot password? Click here to reset