| | |
Summary: Automated Termination Analysis for Haskell:
From Term Rewriting to Programming Languages #
J˜urgen Giesl, Stephan Swiderski, Peter Schneider--Kamp, and Ren’e Thiemann
LuFG Informatik 2, RWTH Aachen, Ahornstr. 55, 52074 Aachen, Germany,
{giesl,swiderski,psk,thiemann}@informatik.rwthaachen.de
Abstract. There are many powerful techniques for automated termi
nation 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 Has
kell. In particular, we show how termination techniques for ordinary re
writing 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 the termination prover
AProVE and successfully evaluated them on existing Haskelllibraries.
1 Introduction
We show that termination techniques for term rewrite systems (TRSs) are also
useful for termination analysis of programming languages like Haskell. Of course,
any program can be translated into a TRS, but in general, it is not obvious how
to obtain TRSs suitable for existing automated termination techniques. Adapting
|