Programming Research Group
Research Report RR-04-20
Size-Change Termination of Higher-Order Functional Programs
Damien Sereni
October 2004, 91pp.
Abstract
The size-change termination principle \cite is a simple criterion for program termination,
originally described for first-order functional programs. A program is size-change terminating
if any infinite call sequence would result in an infinite decrease of a well-founded parameter.
This is a powerful and simple termination analysis, so that it identifies termination for a
substantial and natural class of programs. In addition, its extensional power is the class
of mutual recursive functions.
The ideas underlying the size-change termination analysis have been applied recently to develop
a termination analysis for the pure untyped lambda calculus. Again, this is a powerful method,
proving termination of lambda expressions containing even the Y fixpoint combinator.
We bridge the gap between the two analyses by developing a termination analysis of a
call-by-value, higher order functional language. This is an application of the ideas used in the
lambda calculus analysis, which it subsumes. It is also a useful step in applying this analysis
to real functional programs.
This paper is available as a 820,727 bytes ps file.
|