MOVES-Seminar 4. August 2006

Automated Termination Analysis for Haskell: From Term Rewriting to Programming Languages

 

Jürgen Giesl

 

Abstract:

 

There are many powerful techniques for automated termination analysis of
term rewriting. However, up to now they have hardly been used for real
programming languages. We present a new approach which permits the
application of existing techniques from term rewriting in order to prove
termination of programs in the functional language Haskell. In particular,
we show how termination techniques for ordinary rewriting can be used to
handle those features of Haskell which are missing in term rewriting (e.g.,
lazy evaluation, polymorphic types, and higher-order functions). We
implemented our results in our termination prover AProVE and successfully
evaluated them on existing Haskell-libraries.