Summary: Termination Analysis for Partial Functions ?
J¨urgen Brauburger and J¨urgen Giesl
FB Informatik, TH Darmstadt, Alexanderstr. 10, 64283 Darmstadt, Germany
Abstract. This paper deals with automated termination analysis for
partial functional programs, i.e. for functional programs which do not
terminate for each input. We present a method to determine their do
mains (resp. nontrivial subsets of their domains) automatically. More
precisely, for each functional program a termination predicate algorithm
is synthesized, which only returns true for inputs where the program is
terminating. To ease subsequent reasoning about the generated termina
tion predicates we also present a procedure for their simplification.
Termination of algorithms is a central problem in software development and
formal methods for termination analysis are essential for program verification.
While most work on the automation of termination proofs has been done in
the areas of term rewriting systems (for surveys see e.g. [Der87, Ste95]) and of
logic programs (e.g. [UV88, Pl¨u90, SD94]), in this paper we focus on functional
Up to now all methods for automated termination analysis of functional