Proving Termination of Logic Programs by Transforming them into Equivalent Term Rewriting Systems

A method for proving termination of logic programs is defined by transforming a given logic program and goal into a term rewriting system and starting term respectively. It is proved that the transformation applied to an input-driven logic program and goal yields a term rewriting system and starting term whose reduction tree is finite iff the corresponding SLD tree, using the leftmost selection rule, is finite. The transformation is purely syntactical and the termination of logic programs can be studied by analyzing the produced rewrite system using termination orderings proposed in the term rewriting system literature. It possesses all the advantages of analogous methodologies described in [GW92, RKS92] but it does not require any prior information about modings of predicates since these are computed during the transformation according to the given goal. In general, termination proofs can be given for larger classes of programs than those of [RKS92]. Moreover, it allows the computation of any computed answer substitution for the refutation of an input-driven logic program and goal.

[1]  Khaled Bsaïes,et al.  On Using Mode Input-output for Transforming Logic Programs , 1991, LOPSTR.

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

[3]  Samson Abramsky Proceedings of TAPSOFT 91 , 1991 .

[4]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

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

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

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

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

[9]  Saumya K. Debray,et al.  Automatic Mode Inference for Logic Programs , 1988, J. Log. Program..

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

[11]  Danny De Schreye,et al.  Deriving Termination Proofs for Logic Programs, Using Abstract Procedures , 1991, ICLP.

[12]  Uday S. Reddy,et al.  Transformation of Logic Programs into Functional Programs , 1984, SLP.

[13]  Annalisa Bossi,et al.  Proving Termination of Logic Programs by Exploiting Term Properties , 1991, TAPSOFT, Vol.2.

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

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

[16]  Christoph Walther,et al.  Argument-Bounded Algorithms as a Basis for Automated Termination Proofs , 1988, CADE.

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