A Methodology for Provin Termination of Logic Programs

Abstract In this paper, we describe a methodology for proving termination of logic programs. First, we introduce U-graphs as an abstraction of logic programs and establish that SLDNF derivations can be realized by instances of paths in the U-graphs. Such a relation enables us to use U-graphs for establishing the universal termination of logic programs. In our method, we associate pre- and postassertions to the nodes of the graph and order assertions to selected edges of the graph. With this as the basis, we develop a simple method for establishing the termination of logic programs. The simplicity/practicality of the method is illustrated through examples.

[1]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

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

[3]  Kenneth Kunen,et al.  Signed Data Dependencies in Logic Programs , 1989, J. Log. Program..

[4]  Lutz Plümer Termination Proofs for Logic Programs , 1990, Lecture Notes in Computer Science.

[5]  John W. Lloyd,et al.  A Completeness Theorem for SLDNF Resolution , 1989, J. Log. Program..

[6]  Danny De Schreye,et al.  Termination analysis of definite logic programs with respect to call patterns , 1992 .

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

[8]  Nils J. Nilsson,et al.  Principles of Artificial Intelligence , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[9]  Marianne Baudinet Proving Termination Properties of Prolog Programs: A Semantic Approach , 1988, LICS.

[10]  Hantao Zhang,et al.  An overview of Rewrite Rule Laboratory (RRL) , 1995 .

[11]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[12]  Pierre Lescanne,et al.  Algebraic and Logic Programming , 1988, Lecture Notes in Computer Science.

[13]  Dino Pedreschi,et al.  Studies in Pure Prolog: Termination , 1990 .

[14]  John C. Shepherdson,et al.  Negation as Failure: A Comparison of Clark's Completed Data Base and Reiter's Closed World Assumption , 1984, J. Log. Program..

[15]  Uday S. Reddy,et al.  On the Relationship Between Logic and Functional Languages , 1986, Logic Programming: Functions, Relations, and Equations.

[16]  Pierre Lescanne Termination of Rewrite Systems by Elementary Interpretations , 1992, ALP.

[17]  Hirohisa Seki,et al.  Verification of Prolog Programs Using an Extension of Execution , 1986, ICLP.

[18]  Roberto Barbuti,et al.  A Tool to Check the Non-Floundering Logic Programs and Goals , 1988, PLILP.

[19]  Alan Mycroft,et al.  A Polymorphic Type System for Prolog , 1984, Logic Programming Workshop.

[20]  R. K. Shyamasundar,et al.  Towards a Characterization of Termination of Logic Programs , 1990, PLILP.

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

[22]  John Potter,et al.  Characterisation of Terminating Logic Programs , 1986, SLP.

[23]  Marc Bezem,et al.  Characterizing Termination of Logic Programs with Level Mappings , 1989, NACLP.

[24]  Jürgen Avenhaus,et al.  On Logic Programs with Data-Driven Computations , 1985, European Conference on Computer Algebra.

[25]  Roland N. Bol Loop checking in logic programming , 1995 .

[26]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[27]  Wlodzimierz Drabent,et al.  Inductive Assertion Method for Logic Programs , 1987, Theoretical Computer Science.

[28]  John Lloyd,et al.  Foundation of logic programming , 1983 .

[29]  N. A C H U M D E R S H O W I T Z Termination of Rewriting' , 2022 .

[30]  Deepak Kapur,et al.  Rewriting Concepts in the Study of Termination of Logic Programs , 1992, ALPUK.

[31]  Jeffrey D. Ullman,et al.  Efficient tests for top-down termination of logical rules , 1988, JACM.

[32]  Lawrence Cavedon,et al.  Continuity, Consistency, and Completeness Properties for Logic Programs , 1989, ICLP.