Summary: Automated Termination Proofs for
Logic Programs by Term Rewriting
Peter Schneider-Kamp, RWTH Aachen, Germany
J¨urgen Giesl, RWTH Aachen, Germany
Alexander Serebrenik, TU Eindhoven, The Netherlands
Ren´e Thiemann, University of Innsbruck, Austria
There are two kinds of approaches for termination analysis of logic programs: "transformational"
and "direct" ones. Direct approaches prove termination directly on the basis of the logic program.
Transformational approaches transform a logic program into a term rewrite system (TRS) and
then analyze termination of the resulting TRS instead. Thus, transformational approaches make
all methods previously developed for TRSs available for logic programs as well. However, the
applicability of most existing transformations is quite restricted, as they can only be used for
certain subclasses of logic programs. (Most of them are restricted to well-moded programs.) In
this paper we improve these transformations such that they become applicable for any definite
logic program. To simulate the behavior of logic programs by TRSs, we slightly modify the notion
of rewriting by permitting infinite terms. We show that our transformation results in TRSs which
are indeed suitable for automated termination analysis. In contrast to most other methods for
termination of logic programs, our technique is also sound for logic programming without occur
check, which is typically used in practice. We implemented our approach in the termination prover
AProVE and successfully evaluated it on a large collection of examples.