Peter Habermehl, Radu Iosif, Adam Rogalewicz, Tomas Vojnar
Proving Termination of Tree Manipulating Programs (2007)
Proving Termination of Tree Manipulating Programs (2007)
TR-2007-1.ps
Keywords: Termination Problem, Programs with Trees, Counter Automata
Abstract: We consider the termination problem of programs manipulating tree-like dynamic data structures. Our approach is based on an abstract-check-refine loop. We use abstract regular tree model-checking to infer invariants of the program. Then, we translate the program to a counter automaton which simulates it. If the counter automaton can be shown to terminate using existing techniques, the program terminates. If not, we analyze the possible counterexample given by a counter automata termination checker and either conclude that the program does not terminate, or else refine the abstraction and repeat. We show that the spuriousness problem for lasso-shaped counterexamples is decidable in some non-trivial cases. We applied the method successfully on several interesting case studies. /BOUCLE_trep>