> I'm looking for a tool that implements the source code transformation
> "replace recursion by catamorphism" (fold etc.).

> My application is that if the transformation succeeds,
> it implies that the program terminates. (roughly)

> I don't want to make a big research project out of this,
> rather I think of quickly putting together a prototype
> that proves the concept.

Have you considered another approach?

E.g. the Coq papers define its elimination constructs either as
a catamorphism, or as a combination of case&fix, where the recursive calls
are appropriately restricted to pass subterms as arguments.

See for example Eduardo Gimenez's "Codifying guarded definition with
recursive schemes".  This paper also shows how to turn such a case&fix into
a call to a catamorphism.


        Stefan

_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to