Counterexample- and Simulation-Guided Floating-Point Loop Invariant Synthesis

@inproceedings{Izycheva2020CounterexampleAS,
  title={Counterexample- and Simulation-Guided Floating-Point Loop Invariant Synthesis},
  author={Anastasiia Izycheva and Eva Darulova and Helmut Seidl},
  booktitle={SAS},
  year={2020}
}
We present an automated procedure for synthesizing sound inductive invariants for floating-point numerical loops. Our procedure generates invariants of the form of a convex polynomial inequality that tightly bounds the values of loop variables. Such invariants are a prerequisite for reasoning about the safety and roundoff errors of floating-point programs. Unlike previous approaches that rely on policy iteration, linear algebra or semi-definite programming, we propose a heuristic procedure… 
Deductive Verification of Floating-Point Java Programs in KeY
TLDR
This paper presents the first floating-point support in a deductive verification tool for the Java programming language, and shows 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.

References

SHOWING 1-10 OF 43 REFERENCES
Non-linear reasoning for invariant synthesis
TLDR
An abstract domain for reasoning about non-linear arithmetic, a semantics-based method for extracting recurrence relations from loop bodies, and a recurrence solver that avoids closed forms that involve complex or irrational numbers are presented.
A Data Driven Approach for Algebraic Loop Invariants
TLDR
It is shown how Guess-and-Check can be extended to generate arbitrary boolean combinations of linear equalities as invariants, which enables the technique to generate expressive invariants to be consumed by tools that cannot handle non-linear arithmetic.
Inductive invariant generation via abductive inference
TLDR
A backtracking search that combines Hoare-style verification condition generation with a logical abduction procedure based on quantifier elimination to speculate candidate invariants that are expressible as boolean combinations of linear integer constraints is presented.
Counterexample-guided approach to finding numerical invariants
TLDR
NumInv, a tool that implements a counterexample-guided invariant generation (CEGIR) technique to automatically discover numerical invariants, which are polynomial equality and inequality relations among numerical variables, performs competitively comparing to state of the art numerical invariant analysis tools.
Synthesizing Invariants by Solving Solvable Loops
TLDR
A new method for the automatic generation of loop invariants that handles polynomial and non deterministic assignments that is based on the eigenvector generation for a given linear transformation and on the Polynomial optimization problem is described.
Coupling policy iteration with semi-definite relaxation to compute accurate numerical invariants in static analysis
TLDR
A new domain for finding precise numerical invariants of programs by abstract interpretation is introduced, which consists of level sets of non-linear functions and it is shown that the abstract fixpoint equation can be solved accurately by coupling policy iteration and semi-definite programming.
Towards a Compiler for Reals
TLDR
A unified technique for bounding roundoff errors from floating-point and fixed-point arithmetic of various precisions is introduced, which can handle nonlinear arithmetic, determine closed-form symbolic invariants for unbounded loops, and quantify the effects of discontinuities on numerical errors.
Non-linear loop invariant generation using Gröbner bases
TLDR
A technique is demonstrated that encodes the conditions for a given template assertion being an invariant into a set of constraints, such that all the solutions to these constraints correspond to non-linear (algebraic) loop invariants of the program.
An Algorithm Inspired by Constraint Solvers to Infer Inductive Invariants in Numeric Programs
TLDR
The algorithm presented is based on both abstract interpretation and constraint solving and computes the effect of a loop using a numeric abstract domain, and can find non-linear inductive invariants that cannot normally be obtained using intervals or octagons.
Accelerating Syntax-Guided Invariant Synthesis
TLDR
An evaluation of the new algorithm for syntax-guided synthesis of inductive invariants shows that it exhibits a more predictable behavior than its predecessor, and it is competitive to the state-of-the-art invariant synthesizers based on Property Directed Reachability.
...
...