Proving Existential Termination of Normal Logic Programs

The most important open problem in the study of termination for logic programs is that of existential termination. In this paper we present a powerful transformational methodology that provides necessary (and, under some conditions, sufficient) criteria for existential termination. The followed approach is to develop a suitable transformation from logic programs to Term Rewriting Systems (TRSs), such that proving termination of the obtained TRS implies existential termination of the original logic program. Thus, all the extensive amount of work on termination for TRSs can be automatically used in the logic programming setting. Moreover, the approach is also able to cope with the dual notion of universal termination: in fact, a whole spectrum of termination properties, said k-termination, is investigated, of which universal and existential termination are the extremes. Also, a satisfactory treatment to the problem of termination for logic programming with negation is achieved. This way we provide a unique, uniform approach covering all these different notions of termination.

[1]  Lan Nguyen-Phuong,et al.  Integrating Modes and Subtypes into a Prolog Type-Checker , 1992, JICSLP.

[2]  Saumya K. Debray,et al.  Static inference of modes and data dependencies in logic programs , 1989, TOPL.

[3]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[4]  Dino Pedreschi,et al.  Proving Termination of General Prolog Programs , 1991, TACS.

[5]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[6]  Sandro Etalle,et al.  On the Unification Free Prolog Programs , 1993, MFCS.

[7]  Helder Coelho,et al.  Prolog by Example , 1988, Symbolic Computation.

[8]  G. Aguzzi,et al.  Proving Termination of Logic Programs by Transforming them into Equivalent Term Rewriting Systems , 1993, FSTTCS.

[9]  Elena Marchiori,et al.  On Termination of Constraint Logic Programs , 1995, CP.

[10]  Harald Ganzinger,et al.  Termination Proofs of Well-Moded Logic Programs via Conditional Rewrite Systems , 1992, CTRS.

[11]  R. K. Shyamasundar,et al.  Verification Tools in the Development of Provably Correct Compilers , 1993, FME.

[12]  R. K. Shyamasundar,et al.  Methodology for Proving the Termination of Logic Programs , 1991, STACS.

[13]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[14]  Marianne Baudinet,et al.  Proving termination properties of Prolog programs: a semantic approach , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[15]  Deepak Kapur,et al.  A Transformational Methodology for Proving Termination of Logic Programs , 1991, CSL.

[16]  Hans Zantema,et al.  Termination of Logic Programs Using Semantic Unification , 1995, LOPSTR.

[17]  Alexander Aiken,et al.  Directional Type Checking of Logic Programs , 1994, SAS.

[18]  Nachum Dershowitz,et al.  Termination of Rewriting , 1987, J. Symb. Comput..

[19]  Nachum Dershowitz,et al.  Topics in Termination , 1993, RTA.

[20]  Massimo Marchiori Localizations of Unification Freedom through Matching Directions , 1994, ILPS.

[21]  Keith L. Clark,et al.  A First Order Theory of Data and Programs , 1977, IFIP Congress.

[22]  Fergus Henderson,et al.  Code Generation for Mercury , 1995, ILPS.

[23]  Amir Pnueli,et al.  Proving Termination of Prolog Programs , 1985, Logic of Programs.

[24]  Danny De Schreye,et al.  Termination of Logic Programs: The Never-Ending Story , 1994, J. Log. Program..

[25]  Uday S. Reddy,et al.  A Framework of Directionality for Proving Termination of Logic Programs , 1992, JICSLP.

[26]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[27]  Elena Marchiori Practical Methods for Proving Termination of General Logic Programs , 1996, J. Artif. Intell. Res..

[28]  Massimo Marchiori,et al.  The functional side of logic programming , 1995, FPCA '95.

[29]  Massimo Marchiori Logic Programs as term Rewriting Systems , 1994, ALP.

[30]  Giorgio Levi,et al.  Contributions to a Theory of Existential Termination for Definite Logic Programs , 1995, GULP-PRODE.