Non-termination checking for imperative programs
Paper in proceedings, 2008

While termination checking tailored to real-world library code or frameworks has received ever-increasing attention during the last years, the complementary question of disproving termination properties as a means of debugging has largely been ignored so far. We present an approach to automatic non-termination checking that relates to termination checking in the same way as symbolic testing does to program verification. Our method is based on the automated generation of invariants that show that terminating states of a program are unreachable from certain initial states. Such initial states are identified using constraint-solving techniques. The method is fully implemented on top of a program verification system and available for download. We give an empirical evaluation of the approach using a collection of non-terminating example programs.

Author

Helga Velroyen

RWTH Aachen University

Philipp Rümmer

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 4966 LNCS 154-170

Subject Categories

Computer and Information Science

DOI

10.1007/978-3-540-79124-9_11

ISBN

978-354079123-2

More information

Latest update

3/27/2018