Summary: TypeBased Termination of Generic Programs
Institut für Informatik
Oettingenstr. 67, D80538 München, GERMANY
Instances of a polytypic or generic program for a concrete recursive type often exhibit
a recursion scheme that is derived from the recursion scheme of the instantiation type.
In practice, the programs obtained from a generic program are usually terminating, but
the proof of termination cannot be carried out with traditional methods as term orderings
alone, since termination often crucially relies on the program type. In this article, it is
demonstrated that typebased termination using sized types handles such programs very
well. A framework for sized polytypic programming is developed which ensures (type
based) termination of all instances.
In the last decade, polytypic or generic programming has been explored for func
tional programming languages [26,19,22,23]. With polytypic programming, repeti
tive tasks, like writing a sizefunction for data structures of type A, can be mech
anized by writing a generic sizefunction which then can be instantiated to all
sorts of types A. Over the years, many useful examples of generic programs have