Summary: Towards Generic Programming with Sized Types
Termination of Generic Programs
July 3, 2006
MPC'06, Kurressaare, Estonia
Termination of Higher-Order 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)?