| | |
Summary: Termination Analysis by Inductive Evaluation ?
J¨urgen Brauburger and J¨urgen Giesl
FB Informatik, TU Darmstadt, Alexanderstraße 10, 64283 Darmstadt, Germany
Email: fbrauburger, gieslg@informatik.tudarmstadt.de
Abstract. We present a new approach for automatic termination analysis of functional pro
grams. Several methods have been presented which try to find a wellfounded ordering such
that the arguments in the recursive calls are smaller than the corresponding inputs. How
ever, previously developed approaches for automated termination analysis often disregard
the conditions under which the recursive calls are evaluated. Hence, the existing methods fail
for an important class of algorithms where the necessary information for proving termina
tion is `hidden' in the conditions. In this paper we develop the inductive evaluation method
which analyzes the auxiliary functions occurring in the conditions of the recursive calls. We
also discuss an extension of our method to partial functions in order to determine their do
mains automatically. The proposed technique proved successful for termination analysis of
numerous algorithms in functional as well as imperative programming languages.
1 Introduction
Proving termination is a central problem in the development of correct software. While most work
on the automation of termination proofs has been done for term rewriting systems (for surveys see
e.g. [Der87, Ste95]) and for logic programs (e.g. [UvG88, Pl¨u90, SD94]), in this paper we consider
functional programs.
|