Uniform Closures: Order-Theoretically Reconstructing Logic Program Semantics and Abstract Domain Refinements

The notion of uniform closure operator is introduced, and it is shown how this concept surfaces in two different areas of application of abstract interpretation, notably in semantics design for logic programs and in the theory of abstract domain refinements. In logic programming, uniform closures permit generalization, from an order-theoretic perspective, of the standard hierarchy of declarative semantics. In particular, we show how to reconstruct the model-theoretic characterization of the well-known s-semantics using pure order-theoretic concepts only. As far as the systematic refinement operators on abstract domains are concerned, we show that uniform closures capture precisely the property of a refinement of being invertible, namely of admitting a related operator that simplifies as much as possible a given abstract domain of input for that refinement. Exploiting the same argument used to reconstruct the s-semantics of logic programming, we yield a precise relationship between refinements and their inverse operators: we demonstrate that they form an adjunction with respect to a conveniently modified complete order among abstract domains.

[1]  Patrick Cousot,et al.  Constructive design of a hierarchy of semantics of a transition system by abstract interpretation , 2002, MFPS.

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

[3]  Flemming Nielson,et al.  Abstract interpretation using domain theory , 1984 .

[4]  K. Hofmann,et al.  A Compendium of Continuous Lattices , 1980 .

[5]  Pascal Van Hentenryck,et al.  Combinations of abstract domains for logic programming , 1994, POPL '94.

[6]  Patrick Cousot,et al.  Types as abstract interpretations , 1997, POPL '97.

[7]  Giorgio Levi,et al.  Properties of the Lattice of Observables in Logic Programming , 1997, APPIA-GULP-PRODE.

[8]  Gilberto Filé,et al.  The Powerset Operator on Abstract Interpretations , 1999, Theor. Comput. Sci..

[9]  John S. Conery,et al.  An Abstract Interpretation Scheme for Groundedness, Freeness, and Sharing Analysis of Logic Programs , 1992, FSTTCS.

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

[11]  H. Keisler,et al.  Handbook of mathematical logic , 1977 .

[12]  Gilberto Filé,et al.  A unifying view of abstract domain design , 1996, CSUR.

[13]  Roberto Giacobazzi,et al.  Complementing Logic Program Semantics , 1996, ALP.

[14]  S. L. Édel'man Closure operators on a lattice , 1980 .

[15]  Patrick Cousot,et al.  Abstract Interpretation and Application to Logic Programs , 1992, J. Log. Program..

[16]  Giorgio Levi,et al.  An Algebraic Theory of Observables , 1994, ILPS.

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

[18]  Maurice Bruynooghe,et al.  Improving abstract interpretations by combining domains , 1995, TOPL.

[19]  Thomas P. Jensen,et al.  Disjunctive program analysis for algebraic data types , 1997, TOPL.

[20]  C. A. R. Hoare,et al.  Laws of programming , 1987, CACM.

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

[22]  Roberto Giacobazzi,et al.  Optimal Domains for Disjunctive Abstract Intepretation , 1998, Sci. Comput. Program..

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

[24]  BolRoland,et al.  The meaning of negative premises in transition system specifications , 1996 .

[25]  P. H. Dwinger,et al.  On the Closure Operators of a Complete Lattice , 1954 .

[26]  Roberto Giacobazzi,et al.  Weak relative pseudo-complements of closure operators , 1996 .

[27]  Patrick Cousot,et al.  Compositional and Inductive Semantic Definitions in Fixpoint, Equational, Constraint, Closure-condition, Rule-based and Game-Theoretic Form , 1995, CAV.

[28]  Jan Friso Groote,et al.  The meaning of negative premises in transition system specifications , 1991, JACM.

[29]  Radhia Cousot,et al.  Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages) , 1994, Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94).

[30]  Peter Aczel,et al.  An Introduction to Inductive Definitions , 1977 .

[31]  Roberto Giacobazzi,et al.  "Optimal" Collecting Semantics for Analysis in a Hierarchy of Logic Program Semantics , 1996, STACS.

[32]  Nielson Flemming,et al.  Abstract interpretation using domain theory , 1984 .

[33]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[34]  Patrick Cousot,et al.  Inductive definitions, semantics and abstract interpretations , 1992, POPL '92.

[35]  François Fages,et al.  A Hierarchy of Semantics for Normal Constraint Logic Programs , 1996, ALP.

[36]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

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

[38]  José Morgado On complete congruences of complete lattices , 1962 .

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

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

[41]  Roberto Giacobazzi,et al.  Refining and Compressing Abstract Domains , 1997, ICALP.

[42]  Maurizio Gabbrielli,et al.  The s-Semantics Approach: Theory and Applications , 1994, J. Log. Program..

[43]  Roberto Giacobazzi,et al.  Functional Dependencies and Moore-Set Completions of Abstract Interpretations and Semantics , 1995, ILPS.

[44]  Manuel V. Hermenegildo,et al.  Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation , 1991, ICLP.

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

[46]  Agostino Cortesi,et al.  Complementation in abstract interpretation , 1997, TOPL.

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

[48]  Kira Adaricheva,et al.  Equational closure operator and forbidden semidistributive lattices , 1989 .

[49]  Giorgio Levi,et al.  Compositionality in SLD-Derivations and their Abstractions , 1995, ILPS.

[50]  Maurizio Gabbrielli,et al.  A Compositional Semantics for Logic Programs , 1994, Theor. Comput. Sci..

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