Proving Termination One Loop at a Time

Michael Codish, Samir Genaim

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Classic techniques for proving termination require the identification of a measure that maps program states to the elements of a well-founded domain. Termination is guaranteed if this measure is shown to decrease with each iteration of a loop in the program. This is a global termination condition — there exists a measure which is shown to decrease over all of the loops in the program. In recent years, systems based on local termination conditions are emerging. Here, termination is guaranteed if for every loop there exists a measure which decreases as execution follows through that loop. In this paper we question the
relationship between the two approaches. Reasoning locally is more convenient. But is the local approach really more powerful? We show that for a large class of termination problems the two approaches are equally powerful. To this end we demonstrate that given local conditions which support a proof of termination, a corresponding global condition can always be constructed. On the one hand, the local conditions are simpler and easier to find. Yet on the other hand, in the local approach one must consider a closure operation on loops which may require to consider an
exponential number of local conditions.
Original languageEnglish
Title of host publicationProceedings of the 13th International Workshop on Logic Programming Environments, Tata Institute of Fundamental Research, Mumbai, India, December 8, 2003
EditorsFrédéric Mesnard, Alexander Serebrenik
PublisherKatholieke Universiteit Leuven, Department of Computer Science, Celestijnenlaan 200A, B-3001 Heverlee (Belgium)
Pages48-59
Number of pages12
VolumeCW371
StatePublished - 2003

Publication series

NameReport
PublisherKatholieke Universiteit Leuven, Department of Computer Science, Celestijnenlaan 200A, B-3001 Heverlee (Belgium)

Cite this