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

02/09/2022
by   Florian Frohn, et al.
0

We present the new version of the Loop Acceleration Tool (LoAT), a powerful tool for proving non-termination and worst-case lower bounds for programs operating on integers. It is based on a novel calculus for loop acceleration, i.e., transforming loops into non-deterministic straight-line code, and for finding non-terminating configurations. To implement it efficiently, LoAT uses a new approach based on SMT solving and unsat cores. An extensive evaluation shows that LoAT is highly competitive with other state-of-the-art tools for proving non-termination. While no other tool is able to deduce worst-case lower bounds for full integer programs, we also demonstrate that LoAT significantly outperforms its predecessors.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/27/2019

Proving Non-Termination via Loop Acceleration

We present the first approach to prove non-termination of integer progra...
research
11/04/2019

Inferring Lower Runtime Bounds for Integer Programs

We present a technique to infer lower bounds on the worst-case runtime c...
research
04/02/2021

Proving Non-termination by Program Reversal

We present a new approach to proving non-termination of non-deterministi...
research
01/06/2020

A Calculus for Modular Loop Acceleration

Loop acceleration can be used to prove safety, reachability, runtime bou...
research
07/19/2023

Proving Non-Termination by Acceleration Driven Clause Learning (Short WST Version)

We recently proposed Acceleration Driven Clause Learning (ADCL), a novel...
research
11/27/2021

A Calculus for Modular Loop Acceleration and Non-Termination Proofs

Loop acceleration can be used to prove safety, reachability, runtime bou...
research
04/20/2023

Proving Non-Termination by Acceleration Driven Clause Learning

We recently proposed Acceleration Driven Clause Learning (ADCL), a novel...

Please sign up or login with your details

Forgot password? Click here to reset