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

research
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...
research
05/27/2019

Proving Non-Termination via Loop Acceleration

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

Distilling Programs to Prove Termination

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

Proving and Disproving Programs with Shared Mutable Data

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

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

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

Source-Level Bitwise Branching for Temporal Verification

There is increasing interest in applying verification tools to programs ...
research
07/28/2022

Using Graph Neural Networks for Program Termination

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

Please sign up or login with your details

Forgot password? Click here to reset