The s-Semantics Approach: Theory and Applications

Abstract This paper is a general overview of an approach to the semantics of logic programs whose aim is to find notions of models which really capture the 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 (top-down) and a fixpoint (bottom-up) construction. It can also be characterized from the model-theoretic viewpoint, by defining a set of extended models which contains standard Herbrand models. We discuss the original construction modeling computed answer substitutions, its compositional version, and various semantics modeling more concrete observables. We then show how the approach can be applied to several extensions of positive logic programs. We finally consider some applications, mainly in the area of semantics-based program transformation and analysis.

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

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

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

[4]  Chandrabose Aravindan,et al.  On the Correctness of Unfold/Fold Transformation of Normal and Extended Logic Programs , 1995, J. Log. Program..

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

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

[7]  PadovaVia,et al.  Diierential Logic Programming , 1993 .

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

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

[10]  Laura Ricci,et al.  Detecting Determinate Computations by Bottom-up Abstract Interpretation , 1992, ESOP.

[11]  John W. Lloyd,et al.  Analysis of Meta-Programs , 1989, META.

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

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

[14]  Kjell Post,et al.  Analysis and Transformation of Logic Programs , 1994 .

[15]  Melvin Fitting,et al.  Stratified and Three-valued Logic Programming Semantics , 1988, ICLP/SLP.

[16]  Saumya K. DebrayDepartment Generalized Horn Clause Programs , 1994 .

[17]  David Chan,et al.  An Extension of Constructive Negation and its Application in Coroutining , 1989, NACLP.

[18]  Evelina Lamma,et al.  Modularity in Logic Programming , 1994, J. Log. Program..

[19]  Hirohisa Seki,et al.  Unfold/Fold Transformation of Stratified Programs. , 1989 .

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

[21]  Dana S. Scott,et al.  Concurrent constraint programming languages , 1989 .

[22]  Melvin Fitting,et al.  A Kripke-Kleene Semantics for Logic Programs , 1985, J. Log. Program..

[23]  Akikazu Takeuchi,et al.  Partial Evaluation of Prolog Programs and its Application to Meta Programming , 1986, IFIP Congress.

[24]  L. Vielle,et al.  Recursive query processing: the power of logic , 1989 .

[25]  Danny De Schreye,et al.  A sensible least Herbrand semantics for untyped Vanilla meta-programming and its extension to a limited form of amalgamation , 1992, CNKBS.

[26]  Tadashi Kanamori,et al.  Preservation of Stronger Equivalence in Unfold/Fold Logic Program Transformation , 1990, Theor. Comput. Sci..

[27]  María Alpuente,et al.  Narrowing as an Incremental Constraint Satisfaction Algorithm , 1991, PLILP.

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

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

[30]  Giorgio Levi,et al.  Compilative Constructive Negation in Constraint Logic Programs , 1994, CAAP.

[31]  Gerda Janssens,et al.  Deriving Descriptions of Possible Values of Program Variables by Means of Abstract Interpretation , 1990, J. Log. Program..

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

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

[34]  Peter J. Stuckey,et al.  Constructive negation for constraint logic programming , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

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

[36]  Saumya K. Debray,et al.  Formal bases for dataflow analysis of logic programs , 1995 .

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

[38]  Kotagiri Ramamohanarao,et al.  A Generalization of the Differential Approach to Recursive Query Evaluation , 1987, J. Log. Program..

[39]  Maurizio Gabbrielli,et al.  Declarative Interpretations Reconsidered , 1994, ICLP.

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

[41]  Giorgio Delzanno,et al.  A Bottom-Up Characterization of Finite Success , 1993, ILPS.

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

[43]  Giorgio Levi,et al.  A Formalization of Metaprogramming for real , 1993, ICLP.

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

[45]  Gérard Ferrand Error Diagnosis in Logic Programming, an Adaption of E. Y. Shapiro's Method , 1987, J. Log. Program..

[46]  中川 裕志,et al.  UNFOLD/FOLD TRANSFORMATION OF STRATIFIED PROGRAMS , 1989 .

[47]  Maurizio Martelli,et al.  A New SLDNF-Tree , 1992, Inf. Process. Lett..

[48]  A. Cortesi,et al.  Prop revisited: propositional formula as abstract domain for groundness analysis , 1991, [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science.

[49]  Ulf Nilsson Abstract Interpretation: A Kind of Magic , 1991, PLILP.

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

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

[52]  Marianne Baudinet,et al.  Proving termination properties of Prolog programs: a semantic approach , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

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

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

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

[56]  Michael J. Maher,et al.  Oracle Semantics for Prolog , 1992, Inf. Comput..

[57]  Maurizio Gabbrielli,et al.  The semantics of equational logic programming as an instance of CLP , 1993 .

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

[59]  Jan Komorowski,et al.  Partial evaluation as a means for inferencing data structures in an applicative language: a theory and implementation in the case of prolog , 1982, POPL '82.

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

[61]  Michael J. Maher,et al.  Déjà Vu in Fixpoints of Logic Programs ∗ , 1989 .

[62]  Maurizio Gabbrielli,et al.  Observational Equivalences for Logic Programs , 1992, Joint International Conference and Symposium on Logic Programming.

[63]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

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

[65]  Elisa Bertino,et al.  CLP(AD) as a Deductive Database Language with Updates , 1992, ELP.

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

[67]  Maurizio Gabbrielli,et al.  Goal independency and call patterns in the analysis of logic programs , 1994, SAC '94.

[68]  Jorge Lobo,et al.  Foundations of disjunctive logic programming , 1992, Logic Programming.

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

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

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

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

[73]  Chan Kwok Hung Equivalent Logic Programs , 1990, J. Log. Program..

[74]  Jens Palsberg,et al.  A Denotational Semantics af Inheritance and its Correctness , 1989 .

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

[76]  Raf Venken A Prolog Meta-Interpreter for Partial Evaluation and its Application to Source to Source Transformation and Query-Optimisation , 1984, ECAI.

[77]  Jean-Paul Delahaye,et al.  Unfolding, Procedural and Fixpoint Semantics of Logic Programs , 1991, JTASPEFT/WSA.

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

[79]  Sandro Etalle,et al.  On Safe Folding , 1992, PLILP.

[80]  John Potter,et al.  Characterisation of Terminating Logic Programs , 1986, SLP.

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

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

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

[84]  Maurizio Gabbrielli,et al.  Nested Guarded Horn Clauses , 1990, Int. J. Found. Comput. Sci..

[85]  Keith L. Clark Predicate logic as a computational formalism , 1979 .

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

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

[88]  Elena Marchiori,et al.  A Theory of First-Order Built-in's of Prolog , 1992, ALP.

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

[90]  Roberto Bagnara,et al.  An application of constraint propagation to data-flow analysis , 1993, Proceedings of 9th IEEE Conference on Artificial Intelligence for Applications.

[91]  Laurent Vieille,et al.  Recursive Query Processing: The Power of Logic , 1989, Theor. Comput. Sci..

[92]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[93]  Maurizio Gabbrielli,et al.  Unfolding and Fixpoint Semantics of Concurrent Constraint Logic Programs , 1992, Theor. Comput. Sci..

[94]  A. Bansal,et al.  Programming Language Implementation and Logic Programming , 1991, Lecture Notes in Computer Science.

[95]  Peter J. Stuckey,et al.  Transforming Normal Logic Programs to Constraint Logic Programs , 1992, Theor. Comput. Sci..

[96]  I. S. Gradshtein,et al.  THE ELEMENTS OF MATHEMATICAL LOGIC , 1963 .

[97]  Dean Jacobs,et al.  Static Analysis of Logic Programs for Independent And-Parallelism , 1992, J. Log. Program..

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

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

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

[101]  Bart Demoen,et al.  Analysing Logic Programs Using 'Prop'-ositional Logic Programs and a Magic Wand , 1993, ILPS.