Evaluation of the Domain Prop

Abstract The domain Prop [11, 30] is a conceptually simple and elegant abstract domain to compute groundness information for Prolog programs, where abstract substitutions are represented by Boolean functions. Prop has raised much theoretical interest recently, but little is known about the practical accuracy and efficiency of this domain. Experimental evaluation of Prop is particularly important since Prop theoretically needs to solve a co-NP-Complete problem. However, this complexity issue may not matter much in practice because the size of the abstract substitutions is bounded since Prop would only work on the clause variables in many frameworks. The purpose of this paper is to study the performance of domain Prop . Its first contribution is to describe an implementation of the domain Prop and to use it to instantiate a generic abstract interpretation algorithm [17, 23, 27]. A key feature of the implementation is the use of ordered binary decision graphs to provide a compact representation of many Boolean functions. Its second contribution is to describe the design and implementation of a new domain, Pat(Prop) , combining the domain Prop with structural information about the subterms. This new domain may significantly improve the accuracy of the domain Prop on programs manipulating difference-lists. Both implementations (resp. 6000 and 12,000 lines of C) have been evaluated systematically, and their efficiency and accuracy for groundness inference have been compared with several other abstract domains. The interest of Pat(Prop) and Prop for on-line analysis is also investigated.

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

[2]  Gerda Janssens,et al.  An Instance of Abstract Interpretation Integrating Type and Mode Inferencing , 1988, ICLP/SLP.

[3]  Gerda Janssens,et al.  Propagation: A New Operation in a Framework for Abstract Interpretation of Logic Programs , 1992, META.

[4]  Bart Demoen,et al.  Abstract Interpretation: Towards the Global Optimization of Prolog Programs , 1987, SLP.

[5]  Manuel V. Hermenegildo,et al.  Determination of Variable Dependence Information through Abstract Interpretation , 1989, NACLP.

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

[7]  Manuel V. Hermenegildo,et al.  Compile-Time Derivation of Variable Dependency Using Abstract Interpretation , 1992, J. Log. Program..

[8]  Saumya K. Debray,et al.  Global Flow Analysis as a Practical Compilation Tool , 1992, J. Log. Program..

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

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

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

[12]  P. H. Lindsay Human Information Processing , 1977 .

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

[14]  Pascal Van Hentenryck,et al.  Generic abstract interpretation algorithms for Prolog: Two optimization techniques and their experimental evaluation , 1992, Softw. Pract. Exp..

[15]  Leon Sterling,et al.  The Art of Prolog - Advanced Programming Techniques , 1986 .

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

[17]  Saumya K. Debray,et al.  On the Practicality of Global Flow Analysis of Logic Programs , 1988, ICLP/SLP.

[18]  Pascal Van Hentenryck,et al.  Reexecution in abstract interpretation of Prolog , 1995 .

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

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

[21]  Antoine Rauzy,et al.  Efficient Bottom-up Abstract Interpretation of Prolog by Means of Constraint Solving over Symbolic Finite Domains , 1993, PLILP.

[22]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[23]  Ehud Shapiro,et al.  Third International Conference on Logic Programming , 1986 .

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

[25]  Richard A. O'Keefe Finite Fixed-Point Problems , 1987, ICLP.

[26]  A. Deutsch,et al.  A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations , 1992, Proceedings of the 1992 International Conference on Computer Languages.

[27]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[28]  Pascal Van Hentenryck,et al.  Experimental evaluation of a generic abstract interpretation algorithm for PROLOG , 1994, TOPL.

[29]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

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

[31]  Gerda Janssens,et al.  Global analysis of constraint logic programs , 1996, TOPL.

[32]  Pascal Van Hentenryck,et al.  A Universal Top-Down Fixpoint Algorithm , 1992 .

[33]  Pascal Van Hentenryck,et al.  Solving Large Combinatorial Problems in Logic Programming , 1990, J. Log. Program..

[34]  Chris Mellish,et al.  Abstract Interpretation of Prolog Programs , 1986, ICLP.

[35]  William H. Winsborough,et al.  Multiple Specialization using Minimal-Function Graph Semantics , 1992, J. Log. Program..

[36]  Alan K. Mackworth Constraint Satisfaction , 1985 .

[37]  Kim Marriott,et al.  Analysis of Constraint Logic Programs , 1990, NACLP.

[38]  Pascal Van Hentenryck,et al.  A Generic Abstract Interpretation Algorithm and its Complexity Analysis , 1990, ICLP.

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