Summary: Proving and Disproving Termination of
Higher­Order Functions #
J˜urgen Giesl, Ren’e Thiemann, Peter Schneider­Kamp
LuFG Informatik II, RWTH Aachen, Ahornstr. 55, 52074 Aachen, Germany
{giesl|thiemann|psk}@informatik.rwth­aachen.de
Abstract. The dependency pair technique is a powerful modular method
for automated termination proofs of term rewrite systems (TRSs). We
present two important extensions of this technique: First, we show how
to prove termination of higher­order functions using dependency pairs.
To this end, the dependency pair technique is extended to handle (un­
typed) applicative TRSs. Second, we introduce a method to prove non­
termination with dependency pairs, while up to now dependency pairs
were only used to verify termination. Our results lead to a framework
for combining termination and non­termination techniques for first­ and
higher­order functions in a very flexible way. We implemented and eval­
uated our results in the automated termination prover AProVE.
1 Introduction
One of the most powerful techniques to prove termination or innermost termi­
nation of TRSs automatically is the dependency pair approach [4, 12, 13]. In [16],
we recently showed that dependency pairs can be used as a general framework