TALP: A Tool for the Termination Analysis of Logic Programs

In the last decade, the automatic termination analysis of logic programs has been receiving increasing attention. Among other methods, techniques have been proposed that transform a well-moded logic program into a term rewriting system (TRS) so that termination of the TRS implies termination of the logic program under Prolog’s selection rule. In [Ohl99] it has been shown that the two-stage transformation obtained by combining the transformations of [GW93] into deterministic conditional TRSs (CTRSs) with a further transformation into TRSs [CR93] yields the transformation proposed in [AZ96], and that these three transformations are equally powerful. In most cases simplification orderings are not sufficient to prove termination of the TRSs obtained by the two-stage transformation. However, if one uses the dependency pair method [AG00] in combination with polynomial interpretations instead, then most of the examples described in the literature can automatically be proven terminating. Based on these observations, we have implemented a tool for proving termination of logic programs automatically. This tool consists of a front-end which implements the two-stage transformation and a back-end, the CiME system [CiM], for proving termination of the generated TRS. Experiments show that our tool can compete with other tools [DSV99 ]based on sophisticated norm-based approaches.