Optimal Groundness Analysis Using Propositional Logic

It is well known that propositional formulas form a useful and computationally efficient abstract interpretation for different data-flow analyses of logic programs and, in particular, for groundness analysis. This article gives a complete and precise description of an abstract interpretation, called Prop, composed of a domain of positive, propositional formulas and three operations: abstract unification, least upper bound, and abstract projection. All three abstract operations are known to be correct. They are shown to be optimal in the classical sense. Two alternative stronger notions of optimality of abstract operations are introduced, which characterize very precise analyses. We determine whether the operations of Prop also satisfy these stronger forms of optimality.

[1]  Saumya K. Debray,et al.  Static inference of modes and data dependencies in logic programs , 1989, TOPL.

[2]  James W. Thatcher,et al.  More on Advice on Structuring Compilers and Proving them Correct , 1981, Theor. Comput. Sci..

[3]  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.

[4]  Pascal Van Hentenryck,et al.  Groundness analysis for Prolog: implementation and evaluation of domain prop , 1993, PEPM '93.

[5]  Pascal Van Hentenryck,et al.  Evaluation of the Domain Prop , 1995, J. Log. Program..

[6]  Michael Hanus,et al.  Analysis of Nonlinear Constraints in CLP(R) , 1993, ICLP.

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

[8]  Dean Jacobs,et al.  Accurate and Efficient Approximation of Variable Aliasing in Logic Programs , 1989, NACLP.

[9]  Justin Zobel,et al.  Efficient Run-Time Type Checking of Typed Logic Programs , 1992, J. Log. Program..

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

[11]  Michael J. Maher,et al.  Unification Revisited , 1988, Foundations of Deductive Databases and Logic Programming..

[12]  Agostino Cortesi,et al.  Comparison of Abstract Interpretations , 1992, ICALP.

[13]  Gilberto Filé,et al.  Improving Abstract Interpretations by Systematic Lifting to the Powerset , 1994, ILPS.

[14]  Kim Marriott,et al.  Denotational abstract interpretation of logic programs , 1994, TOPL.

[15]  Philip W. Dart On Derived Dependencies and Connected Databases , 1991, J. Log. Program..

[16]  Simon L. Peyton Jones,et al.  Imperative functional programming , 1993, POPL '93.

[17]  Chris Hankin,et al.  Abstract Interpretation of Declarative Languages , 1987 .

[18]  Pascal Van Hentenryck,et al.  Type Analysis of Prolog Using Type Graphs , 1995, J. Log. Program..

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

[20]  John L. Bell,et al.  A course in mathematical logic , 1977 .

[21]  Emil L. Post The two-valued iterative systems of mathematical logic , 1942 .

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

[23]  Kim Marriott,et al.  Suspension analyses for concurrent logic programs , 1994, TOPL.

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

[25]  Kim Marriott,et al.  Precise and efficient groundness analysis for logic programs , 1993, LOPL.

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

[27]  Agostino Cortesi,et al.  Abstract interpretation of logic programs: an abstract domain for groundness, sharing, freeness and compoundness analysis , 1991, PEPM '91.

[28]  Bart Demoen,et al.  Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop , 1994, SAS.

[29]  Kim Marriott,et al.  Notes for a Tutorial on Abstract Interpretation of Logic Programs , 1989 .