Automatic Termination Analysis of Logic Programs
Naomi Lindenstrauss, Yehoshua Sagiv · The MIT Press eBooks · 1997
This paper describes a system implemented in SICStus Prolog for automatically checking left termination of logic programs. Given a program and query, the system answers either that the query terminates or that there may be non-termination. The system can use any norm of a wide family of norms. It can handle automatically most of the examples found in the literature on termination of logic programs, and about half of the programs in the benchmarks of [5]. The algorithm employed by the system consists of three main parts: instantiation analysis (i.e., rigidity analysis), constraint inference, and construction of the query-mapping pairs associated with the program and query. Each of these parts generalizes earlier work related to termination analysis. 1 Introduction Termination analysis of logic programs has been the focus of intensive research in recent years. Systems for automatic termination analysis are proposed, for example, in [15, 20, 22]. Methodologies and techniques for proving ...