Proving Non-termination by Program Reversal

04/02/2021
by   Krishnendu Chatterjee, et al.
0

We present a new approach to proving non-termination of non-deterministic integer programs. Our technique is rather simple but efficient. It relies on a purely syntactic reversal of the program's transition system followed by a constraint-based invariant synthesis with constraints coming from both the original and the reversed transition system. The latter task is performed by a simple call to an off-the-shelf SMT-solver, which allows us to leverage the latest advances in SMT-solving. Moreover, our method offers a combination of features not present (as a whole) in previous approaches: it handles programs with non-determinism, provides relative completeness guarantees and supports programs with polynomial arithmetic. The experiments performed with our prototype tool RevTerm show that our approach, despite its simplicity and stronger theoretical guarantees, is at least on par with the state-of-the-art tools, often achieving a non-trivial improvement under a proper configuration of its parameters.

READ FULL TEXT

page 1

page 2

page 3

page 4

02/09/2022

Proving Non-Termination and Lower Runtime Bounds with LoAT (System Description)

We present the new version of the Loop Acceleration Tool (LoAT), a power...
05/27/2019

Proving Non-Termination via Loop Acceleration

We present the first approach to prove non-termination of integer progra...
08/07/2020

Distilling Programs to Prove Termination

The problem of determining whether or not any program terminates was sho...
03/13/2021

Proving and Disproving Programs with Shared Mutable Data

We present a tool for verification of deterministic programs with shared...
05/11/2021

Proving LTL Properties of Bitvector Programs and Decompiled Binaries (Extended)

There is increasing interest in applying verification tools to programs ...
11/04/2019

Inferring Lower Runtime Bounds for Integer Programs

We present a technique to infer lower bounds on the worst-case runtime c...
07/28/2022

Using Graph Neural Networks for Program Termination

Termination analyses investigate the termination behavior of programs, i...