Is there an Axiomatic Semantics for Standard Pure Prolog

Abstract Many studies [1, 7, 20, 21, 26, 28] have shown the soundness and completeness of SLD-resolution and of the finite failure rule for a definite program. This semantics corresponds to the operational semantics of an (ideal) Prolog system, i.e. which only generates fair SLD-trees and employs a breadth-first search rule. Unfortunately, the Prolog systems currently used may generate non-fair SLD-trees and employ a depth-first-left-right strategy which is no longer complete. For these standard Prolog implementations, the operational semantics of a program depends not only on its logic content but also on the way it is written. In this work, we introduce two systems of axioms associated to a definite program P : • the finite standard translation Ax fst which provides a logic characterization of the finite operational semantics of a definite program P computed by a Standard Prolog System and does not depend on the ordering given to the clauses in the program P . • the finite invariant translation Ax f which gives a logic characterization of the success and the failures of P , all SLD-trees of which are finite. This translation does not depend on the ordering given to the clauses in the program and to the atoms in each clause.

[1]  Jean-Paul Delahaye Sémantique Logique Et Dénotationnelle Des Interpréteurs Prolog , 1988, RAIRO Theor. Informatics Appl..

[2]  Victor W. Marek,et al.  The Relationship Between Logic Program Semantics and Non-Monotonic Reasoning , 1989, ICLP.

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

[4]  Jean-Paul Delahaye,et al.  Operational semantics of Standard Prolog: an axiomatic approach , 1990, SPLT.

[5]  Giorgio Levi,et al.  Declarative Modeling of the Operational Behavior of Logic Languages , 1989, Theor. Comput. Sci..

[6]  John C. Shepherdson,et al.  Negation in Logic Programming , 1988, Foundations of Deductive Databases and Logic Programming..

[7]  Alan Mycroft,et al.  Logic Programs and Many-Valued Logic , 1984, STACS.

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

[9]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

[10]  Joxan Jaffar,et al.  Completeness of the Negation as Failure Rule , 1983, IJCAI.

[11]  Gilles Richard Contribution a la realisation d'une specification formelle pour prolog , 1989 .

[12]  Michael J. Maher,et al.  Closures and Fairness in the Semantics of Programming Logic , 1984, Theor. Comput. Sci..

[13]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[14]  Egon Börger,et al.  A Logical Operational Semantics of Full Prolog, Part II: Built-in Predicates for Database Manipulation , 1990, MFCS.

[15]  Krzysztof R. Apt,et al.  Contributions to the Theory of Logic Programming , 1982, JACM.

[16]  Teodor C. Przymusinski Non-Monotonic Formalisms and Logic Programming , 1989, ICLP.

[17]  Bernahrd Gil Complete Extension of General Logic Programs , 1992, Theor. Comput. Sci..

[18]  Solomon Feferman,et al.  Toward useful type-free theories. I , 1984, Journal of Symbolic Logic.

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

[20]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

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

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

[23]  Michel Billaud,et al.  Simple Operational and Denotational Semantics for Prolog with Cut , 1990, Theor. Comput. Sci..

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

[25]  Melvin Fitting A Deterministic Prolog Fixpoint Semantics , 1985, J. Log. Program..