Proving termination of GHC programs

A transformational approach for proving termination of parallel logic programs such as GHC programs is proposed. A transformation from GHC programs to term rewriting systems is developed; it exploits the fact that unifications in GHC-resolution correspond to matchings. The termination of a GHC program for a class of queries is implied by the termination of the resulting rewrite system. This approach facilitates the applicability of a wide range of termination techniques developed for rewrite systems in proving termination of GHC programs. The method consists of three steps: (a) deriving moding information from a given GHC program, (b) transforming the GHC program into a term rewriting system using the moding information, and finally (c) proving termination of the resulting rewrite system. Using this method, the termination of many benchmark GHC programs such as quick-sort, merge-sort, merge, split, fair-split and append, etc., can be proved.

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

[2]  Deepak Kapur,et al.  An Overview of Rewrite Rule Laboratory (RRL) , 1989, RTA.

[3]  Amir Pnueli,et al.  Communication with directed logic variables , 1991, POPL '91.

[4]  Michael Hanus,et al.  Towards the Global Optimization of Functional Logic Programs , 1994, CC.

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

[6]  Nachum Dershowitz,et al.  Orderings for term-rewriting systems , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

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

[8]  Akikazu Takeuchi,et al.  Parallel Logic Programming Languages , 1986, ICLP.

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

[10]  Kazunori Ueda,et al.  Designing a Concurrent Programming Language , 1990 .

[11]  J. van Leeuwen,et al.  Logic Programming , 2002, Lecture Notes in Computer Science.

[12]  Kwangkeun Yi,et al.  Automatic generation and management of interprocedural program analyses , 1993, POPL '93.

[13]  Koichi Furukawa,et al.  Unfolding rules for GHC programs , 2009, New Generation Computing.

[14]  Charles N. Fischer,et al.  SPARE: A Development Environment For Program Analysis Algorithms , 1992, IEEE Trans. Software Eng..

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

[16]  David S. Warren Proving Termination of GHC Programs , 1993 .

[17]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[18]  Pierre Lescanne,et al.  Computer experiments with the REVE term rewriting system generator , 1983, POPL '83.

[19]  Kazunori Ueda,et al.  A New Implementation Technique for Flat GHC , 1990, ICLP.

[20]  Kazunori Ueda,et al.  Transformation Rules for GHC Programs , 1988, FGCS.

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

[22]  Max Dauchet Simulation of Turning Machines by a Left-Linear Rewrite Rule , 1989, RTA.

[23]  Kazunori Ueda I/O Mode Analysis in Concurrent Logic Programming , 1994, Theory and Practice of Parallel Programming.

[24]  Lutz Plümer Automatic Verification of Parallel Logic Programs: Termination , 1995, Logic Programming: Formal Methods and Practical Applications.

[25]  Nachum Dershowitz Orderings for Term-Rewriting Systems , 1979, FOCS.

[26]  Evan Tick,et al.  Sequentialization of Parallel Logic Programs with Mode Analysis , 1993, LPAR.

[27]  Lutz Plümer Automatic Termination Proofs for Prolog Programs Operating on Nonground Terms , 1991, ISLP.

[28]  Pierre Lescanne,et al.  Termination of rewrite systems by elementary interpretations , 1992, Formal Aspects of Computing.

[29]  Kazunori Ueda,et al.  Moded flat GHC and its message-oriented implementation technique , 1994, New Generation Computing.

[30]  Kazunori Ueda,et al.  Guarded Horn Clauses , 1986, LP.

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

[32]  Martin Alt,et al.  Generation of Efficient Interprocedural Analyzers with PAG , 1995, SAS.

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

[34]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[35]  조정완,et al.  Concurrent Prolog , 2011, Encyclopedia of Parallel Computing.

[36]  Steven W. K. Tjiang,et al.  Sharlit—a tool for building optimizers , 1992, PLDI '92.

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

[38]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.