A Linear Operational Semantics for Termination and Complexity Analysis of ISO Prolog

We present a new operational semantics for Prolog which covers all constructs in the corresponding ISO standard (including "non-logical" concepts like cuts, meta-programming, "all solution" predicates, dynamic predicates, and exception handling). In contrast to the classical operational semantics for logic programming, our semantics is linear and not based on search trees. This has the advantage that it is particularly suitable for automated program analyses such as termination and complexity analysis. We prove that our new semantics is equivalent to the ISOProlog semantics, i.e., it computes the same answer substitutions and the derivations in both semantics have essentially the same length.

[1]  Norman Y. Foo,et al.  A denotational semantics for Prolog , 1989, ACM Trans. Program. Lang. Syst..

[2]  Jean Utke,et al.  A Framework for Proving Correctness of Adjoint Message-Passing Programs , 2008, PVM/MPI.

[3]  Erik P. de Vink,et al.  Continuation Semantics for PROLOG with Cut , 1989, TAPSOFT, Vol.1.

[4]  Stavros D. Nikolopoulos,et al.  The Longest Path Problem Is Polynomial on Interval Graphs , 2009, MFCS.

[5]  Joost-Pieter Katoen,et al.  A Local Greibach Normal Form for Hyperedge Replacement Grammars , 2011, LATA.

[6]  Christof Löding,et al.  Degrees of Lookahead in Context-free Infinite Games , 2011, CSL.

[7]  Joost-Pieter Katoen,et al.  Quantitative Model Checking of Continuous-Time Markov Chains Against Timed Automata Specifications , 2009, 2009 24th Annual IEEE Symposium on Logic In Computer Science.

[8]  Pierre Deransart,et al.  Prolog - the standard: reference manual , 1996 .

[9]  Egon Börger,et al.  A Mathematical Definition of Full Prolog , 1995, Sci. Comput. Program..

[10]  John S. Jeavons An Alternative Linear Semantics for Allowed Logic Programs , 1997, Ann. Pure Appl. Log..

[11]  Joachim Kneis,et al.  Algorithmica manuscript No. (will be inserted by the editor) A New Algorithm for Finding Trees with Many Leaves , 2022 .

[12]  Wolfgang Thomas,et al.  Parametrized Regular Infinite Games and Higher-Order Pushdown Strategies , 2009, FCT.

[13]  George B. Mertzios,et al.  An Optimal Algorithm for the k-Fixed-Endpoint Path Cover on Proper Interval Graphs , 2010, Math. Comput. Sci..

[14]  Jürgen Giesl,et al.  A Dependency Pair Framework for Innermost Complexity Analysis of Term Rewrite Systems , 2011, CADE.

[15]  Max Bramer Logic Programming with Prolog , 2005, Springer London.

[16]  Joachim Kneis,et al.  Satellites and Mirrors for Solving Independent Set on Sparse Graphs , 2009 .

[17]  Neil D. Jones,et al.  Stepwise Development of Operational and Denotational Semantics for Prolog , 1984, International Conference on Spoken Language Processing.

[18]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[19]  Daniel Neider Learning Visibly One-Counter Automata in Polynomial Time , 2010 .

[20]  Gérard Ferrand,et al.  An operational formal definition of PROLOG: a specification method and its application , 1992, New Generation Computing.

[21]  Christian von Essen,et al.  Automated Termination Analysis of Java Bytecode by Term Rewriting , 2010, RTA.

[22]  Serenella Cerrito,et al.  A linear semantics for allowed logic programs , 1990, [1990] Proceedings. Fifth Annual IEEE Symposium on Logic in Computer Science.

[23]  Georg Moser,et al.  Automated Complexity Analysis Based on the Dependency Pair Method , 2008, IJCAR.

[24]  Joost-Pieter Katoen,et al.  Compositional Abstraction for Stochastic Systems , 2009, FORMATS.

[25]  Erik P. de Vink,et al.  Comparative Semantics for PROLOG with Cut , 1990, Sci. Comput. Program..

[26]  Nikolaj Bjørner,et al.  Automated Deduction - CADE-23 - 23rd International Conference on Automated Deduction, Wroclaw, Poland, July 31 - August 5, 2011. Proceedings , 2011, CADE.

[27]  Dr. Pierre Deransart,et al.  Prolog: The Standard , 1996, Springer Berlin Heidelberg.

[28]  Martin Zimmermann Time-Optimal Winning Strategies for Poset Games , 2009, CIAA.

[29]  George B. Mertzios,et al.  A New Intersection Model for Multitolerance Graphs , Hierarchy , and Efficient Algorithms , 2010 .

[30]  Saumya K. Debray,et al.  Cost analysis of logic programs , 1993, TOPL.

[31]  George B. Mertzios,et al.  Fast Convergence of Routing Games with Splittable Flows , 2008, TMFCS 2008.

[32]  Joachim Kneis,et al.  Derandomizing Non-uniform Color-Coding I , 2009 .

[33]  Shmuel Zaks,et al.  A New Intersection Model and Improved Algorithms for Tolerance Graphs , 2009, SIAM J. Discret. Math..

[34]  Derek G. Corneil,et al.  Vertex splitting and the recognition of trapezoid graphs , 2011, Discret. Appl. Math..

[35]  Daniel M. Berry,et al.  Operational and Denotational Semantics of Prolog , 1987, J. Log. Program..

[36]  Carsten Kern,et al.  Learning communicating and nondeterministic automata , 2009 .

[37]  Jürgen Giesl,et al.  Lazy Abstraction for Size-Change Termination , 2010, LPAR.

[38]  R. Nigel Horspool,et al.  Compositional operational semantics for Prolog programs , 2009, New Generation Computing.

[39]  George B. Mertzios,et al.  Preemptive Scheduling of Equal-Length Jobs in Polynomial Time , 2010, Math. Comput. Sci..

[40]  Martin R. Neuhäußer,et al.  Time-Bounded Reachability in Continuous-Time Markov Decision Processes ⋆ , 2009 .

[41]  Lars Noschinski,et al.  Automated Complexity Analysis of Term Rewrite Systems , 2010 .

[42]  Saumya K. Debray,et al.  Denotational and Operational Semantics for Prolog , 1988, J. Log. Program..

[43]  Shmuel Zaks,et al.  The Structure of the Intersection of Tolerance and Cocomparability Graphs , 2010 .

[44]  Jürgen Giesl,et al.  Automated termination analysis for logic programs with cut , 2010, Theory Pract. Log. Program..

[45]  Jürgen Giesl,et al.  Dependency Triples for Improving Termination Analysis of Logic Programs with Cut , 2010, LOPSTR.

[46]  Christoph Beierle,et al.  Defining Standard Prolog in Rewriting Logic , 2000, WRLA.

[47]  Harald Zankl,et al.  Modular Complexity Analysis via Relative Complexity , 2010, RTA.