Summary: Towards Generic Programming with Sized Types
Termination of Generic Programs
July 3, 2006
MPC'06, Kurressaare, Estonia
Termination of HigherOrder Functions
. Recursive function applied to arguments:
f(x) = . . . f(a) . . . f(b) . . .
. Check that a < x, b < x.
. What about a function passed to its argument?
f(g) = . . . g(f) . . .
. How to establish termination of f??
Generic Programs and Termination
. Typical generic program: traversal
. Observation: structurally recursive
. How to substantiate this observation?
. Are all generic programs total on total input?
. Are all generic programs even primitive recursive (catamorphisms)?