English
Related papers

Related papers: Proving Non-Termination via Loop Acceleration

200 papers

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.,…

Logic in Computer Science · Computer Science 2022-05-17 Florian Frohn , Jürgen Giesl

Loop acceleration can be used to prove safety, reachability, runtime bounds, and (non-)termination of programs. To this end, a variety of acceleration techniques has been proposed. However, so far all of them have been monolithic, i.e., a…

Logic in Computer Science · Computer Science 2022-06-09 Florian Frohn , Carsten Fuhs

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…

Programming Languages · Computer Science 2021-04-06 Krishnendu Chatterjee , Ehsan Kafshdar Goharshady , Petr Novotný , Đorđe Žikelić

Loop acceleration can be used to prove safety, reachability, runtime bounds, and (non-)termination of programs operating on integers. To this end, a variety of acceleration techniques has been proposed. However, all of them are monolithic:…

Logic in Computer Science · Computer Science 2020-02-21 Florian Frohn

A new technique is presented to prove non-termination of term rewriting. The basic idea is to find a non-empty regular language of terms that is closed under rewriting and does not contain normal forms. It is automated by representing the…

Logic in Computer Science · Computer Science 2015-05-05 Jörg Endrullis , Hans Zantema

We present a static analysis technique for non-termination inference of logic programs. Our framework relies on an extension of the subsumption test, where some specific argument positions can be instantiated while others are generalized.…

Programming Languages · Computer Science 2007-05-23 Etienne Payet , Fred Mesnard

In this paper, we consider an approach introduced in term rewriting for the automatic detection of non-looping non-termination from patterns of rules. We adapt it to logic programming by defining a new unfolding technique that produces…

Logic in Computer Science · Computer Science 2026-01-14 Etienne Payet

We describe a method for proving non-looping non-termination, that is, of term rewriting systems that do not admit looping reductions. As certificates of non-termination, we employ regular (tree) automata.

Logic in Computer Science · Computer Science 2014-05-23 Jörg Endrullis , Hans Zantema

Loop invariants play a central role in the verification of imperative programs. However, finding these invariants is often a difficult and time-consuming task for the programmer. We have previously shown how program transformation can be…

Logic in Computer Science · Computer Science 2017-08-25 G. W. Hamilton

In the past years, analyzers have been introduced to detect classes of non-terminating queries for definite logic programs. Although these non-termination analyzers have shown to be rather precise, their applicability on real-life Prolog…

Programming Languages · Computer Science 2011-09-16 Dean Voets , Danny De Schreye

We describe the LoopInvGen tool for generating loop invariants that can provably guarantee correctness of a program with respect to a given specification. LoopInvGen is an efficient implementation of the inference technique originally…

Programming Languages · Computer Science 2019-11-01 Saswat Padhi , Rahul Sharma , Todd Millstein

Proving program termination is typically done by finding a well-founded ranking function for the program states. Existing termination provers typically find ranking functions using either linear algebra or templates. As such they are often…

Logic in Computer Science · Computer Science 2014-10-21 Cristina David , Daniel Kroening , Matt Lewis

There is growing interest in termination reasoning for non-linear programs and, meanwhile, recent dynamic strategies have shown they are able to infer invariants for such challenging programs. These advances led us to hypothesize that…

Programming Languages · Computer Science 2020-10-13 Ton Chanh Le , Timos Antonopoulos , Parisa Fathololumi , Eric Koskinen , ThanhVu Nguyen

We introduce a fully automated static analysis that takes a sequential Java bytecode program P as input and attempts to prove that there exists an infinite execution of P. The technique consists in compiling P into a constraint logic…

Programming Languages · Computer Science 2014-01-22 Étienne Payet , Fred Mesnard , Fausto Spoto

We present a new approach to termination analysis of numerical computations in logic programs. Traditional approaches fail to analyse them due to non well-foundedness of the integers. We present a technique that allows to overcome these…

Programming Languages · Computer Science 2007-05-23 Alexander Serebrenik , Danny De Schreye

We present a technique to infer lower bounds on the worst-case runtime complexity of integer programs, where in contrast to earlier work, our approach is not restricted to tail-recursion. Our technique constructs symbolic representations of…

Logic in Computer Science · Computer Science 2020-09-29 Florian Frohn , Matthias Naaf , Marc Brockschmidt , Jürgen Giesl

We present abstract acceleration techniques for computing loop invariants for numerical programs with linear assignments and conditionals. Whereas abstract interpretation techniques typically over-approximate the set of reachable states…

Programming Languages · Computer Science 2014-01-07 Bertrand Jeannet , Peter Schrammel , Sriram Sankaranarayanan

We propose a novel acceleration technique for loops operating on arrays. The goal of acceleration is to characterize the transitive closure of loops in a logic which is suitable for automated reasoning. Using the new notion of inductive…

Logic in Computer Science · Computer Science 2026-05-20 Florian Frohn , Jürgen Giesl

We report on our tool, Pulse Infinite, that uses proof techniques to show non-termination (divergence) in large programs. Pulse Infinite works compositionally and under-approximately: the former supports scale, and the latter ensures…

Programming Languages · Computer Science 2025-09-08 Julien Vanegue , Jules Villard , Peter O'Hearn , Azalea Raad

We consider the termination/non-termination property of a class of loops. Such loops are commonly used abstractions of real program pieces. Second-order logic is a convenient language to express non-termination. Of course, such property is…

Logic in Computer Science · Computer Science 2014-12-11 Fred Mesnard , Etienne Payet
‹ Prev 1 2 3 10 Next ›