Proving Non-termination by Program Reversal

by   Krishnendu Chatterjee, et al.

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.


page 1

page 2

page 3

page 4


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

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

Proving Non-Termination via Loop Acceleration

We present the first approach to prove non-termination of integer progra...

Distilling Programs to Prove Termination

The problem of determining whether or not any program terminates was sho...

Proving and Disproving Programs with Shared Mutable Data

We present a tool for verification of deterministic programs with shared...

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

There is increasing interest in applying verification tools to programs ...

Inferring Lower Runtime Bounds for Integer Programs

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

Using Graph Neural Networks for Program Termination

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