New Semantic Tools for Logic Programming

The paper is a general overview of our approach to the semantics of logic programs. We introduce new notions and modify the classical semantics, i.e. we use new tools to model those logic programs aspects which really capture their operational semantics, and are therefore useful for defining program equivalences and for semantics-based program analysis. The approach leads to the introduction of extended interpretations which are more expressive than Herbrand interpretations. The semantics in terms of extended interpretations can be obtained as a result of both an operational and a fixpoint construction. It can also be characterized from the modeltheoretic viewpoint, by defining a set of extended models which contains standard Herbrand models. The original construction for positive programs is shown to be applicable to other classes of logic programs, such as constraint logic programs, open programs and general programs. Different extensions are also shown capable to handle higher order constructs such as those used to compute sets of solutions.

[1]  Susumu Yamasaki,et al.  A Fixpoint Semantics of Horn Sentences Based on Substitution Sets , 1987, Theor. Comput. Sci..

[2]  Prakash Panangaden,et al.  The semantic foundations of concurrent constraint programming , 1991, POPL '91.

[3]  Olgierd Wojtasiewicz,et al.  Elements of mathematical logic , 1964 .

[4]  Kim Marriott,et al.  Semantics-Based Dataflow Analysis of Logic Programs , 1989, IFIP Congress.

[5]  Michele Bugliesi,et al.  Differential logic programming , 1993, POPL '93.

[6]  Maurizio Gabbrielli,et al.  Modeling Answer Constraints in Constraint Logic Programs , 1991, ICLP.

[7]  Roberto Barbuti,et al.  Modelling Prolog control , 1992, POPL '92.

[8]  Vijay A. Saraswat,et al.  Concurrent constraint programming , 1989, POPL '90.

[9]  Maurizio Gabbrielli,et al.  Contributions to the Semantics of Open Logic Programs , 1992, FGCS.

[10]  Giorgio Levi,et al.  Models, Unfolding Rules and Fixpoint Semantics , 1988, ICLP/SLP.

[11]  Franco Turini,et al.  A Transformational Approach to Negation in Logic Programming , 1990, J. Log. Program..

[12]  Giorgio Levi,et al.  Failure and Success made Symmetric , 1990, NACLP.

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

[14]  Giorgio Levi,et al.  A New Declarative Semantics for Logic Languages , 1988, ICLP/SLP.

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

[16]  Giorgio Levi,et al.  A Synchronization Logic: Axiomatics and Formal Semantics of Generalized Horn Clauses , 1984, Inf. Control..

[17]  Michael Codish,et al.  Bottum-up abstract interpretation of logic programs , 1992 .

[18]  Jack Minker,et al.  A Fixpoint Semantics for Disjunctive Logic Programs , 1990, J. Log. Program..

[19]  Maurizio Gabbrielli,et al.  Fixpoint Semantics for Partial Computed Answer Substitutions and Call Patterns , 1992, ALP.

[20]  Giorgio Levi,et al.  Semantic Models for a Version of PARLOG , 1989, ICLP.

[21]  Kim Marriott,et al.  Bottom-up Abstract Interpretation of Logic Programs , 1988, ICLP/SLP.

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

[23]  Roberto Barbuti,et al.  A Bottom-Up Polymorphic Type Inference in Logic Programming , 1992, Sci. Comput. Program..

[24]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[25]  Michael Kifer,et al.  HILOG: A Foundation for Higher-Order Logic Programming , 1993, J. Log. Program..

[26]  Agostino Dovier,et al.  {log}: A Logic Programming Language with Finite Sets , 1991, ICLP.

[27]  John W. Lloyd,et al.  Partial Evaluation in Logic Programming , 1991, J. Log. Program..

[28]  Michele Bugliesi,et al.  A Declarative View of Inheritance in Logic Programming , 1992, JICSLP.

[29]  John C. Shepherdson,et al.  Unfold/fold transformations of logic programs , 1992, Mathematical Structures in Computer Science.

[30]  Adrian Walker,et al.  Towards a Theory of Declarative Knowledge , 1988, Foundations of Deductive Databases and Logic Programming..

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

[32]  Maurizio Gabbrielli,et al.  A Two Steps Semantics for Logic Programs with Negation , 1992, LPAR.

[33]  Laura Ricci,et al.  Pipeline optimizations in and-parallelism by abstract interpretation , 1990 .

[34]  Haim Gaifman,et al.  Fully abstract compositional semantics for logic programs , 1989, POPL '89.

[35]  Maurice Bruynooghe,et al.  A Practical Framework for the Abstract Interpretation of Logic Programs , 1991, J. Log. Program..

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

[37]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[38]  Maurizio Gabbrielli,et al.  On the Semantics of Logic Programs , 1991, ICALP.

[39]  Giorgio Levi,et al.  Finite Failures and Partial Computations in Concurrent Logic Languages , 1990, Theor. Comput. Sci..

[40]  Dino Pedreschi,et al.  Proving Termination of General Prolog Programs , 1991, TACS.

[41]  G. Kreisel,et al.  Elements of Mathematical Logic: Model Theory , 1971 .

[42]  David A. Plaisted,et al.  Programming with Equations, Subsets, and Relations , 1989, NACLP.

[43]  Robert A. Kowalski,et al.  Abduction Compared with Negation by Failure , 1989, ICLP.

[44]  Jack Minker Foundations of deductive databases and logic programming , 1988 .

[45]  François Bry,et al.  Negation in Logic Programming: A Formalization in Constructive Logic , 1990, IS/KI.

[46]  Peter J. Stuckey,et al.  Eliminating Negation from Normal Logic Programs , 1990, ALP.

[47]  Jan van Leeuwen,et al.  Handbook of Theoretical Computer Science, Vol. B: Formal Models and Semantics , 1994 .

[48]  David Chan,et al.  Constructive Negation Based on the Completed Database , 1988, ICLP/SLP.

[49]  Roberto Giacobazzi,et al.  A Generalized Semantics for Constraint Logic Programs , 1992, Fifth Generation Computer Systems.

[50]  François Bry,et al.  Logic programming as constructivism: a formalization and its application to databases , 1989, PODS.

[51]  Frank S. de Boer,et al.  On the Asynchronous Nature of Communication in Concurrent Logic Languages: A Fully Abstract Model Based on Sequences , 1990, CONCUR.

[52]  T. Moto-Oka,et al.  Fifth Generation Computer Systems , 1982 .

[53]  Krzysztof R. Apt,et al.  Introduction to Logic Programming , 1988 .

[54]  Richard A. O'Keefe,et al.  Towards an Algebra for Constructing Logic Programs , 1985, International Conference on Spoken Language Processing.

[55]  Paolo Mancarella,et al.  An Algebra of Logic Programs , 1988, ICLP/SLP.

[56]  Michael J. Maher Equivalences of Logic Programs , 1988, Foundations of Deductive Databases and Logic Programming..

[57]  Annalisa Bossi,et al.  Basic Transformation Operations which Preserve Computed Answer Substitutions of Logic Programs , 1993, J. Log. Program..

[58]  Daniele Turi Extending S-Models to Logic Programs with Negation , 1991, ICLP.

[59]  Haim Gaifman,et al.  Proof theory and semantics of logic programs , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[60]  R. Sikorski,et al.  The mathematics of metamathematics , 1963 .

[61]  Phan Minh Dung,et al.  A Fixpoint Approach to Declarative Semantics of Logic Programs , 1989, NACLP.

[62]  Giorgio Levi,et al.  A Model-Theoretic Reconstruction of the Operational Semantics of Logic Programs , 1993, Inf. Comput..

[63]  Roberto Giacobazzi,et al.  Compositional analysis of modular logic programs , 1993, POPL '93.

[64]  Roberto Barbuti,et al.  A general framework for semantics-based bottom-up abstract interpretation of logic programs , 1993, TOPL.