Widening operators for powerset domains

The finite powerset construction upgrades an abstract domain by allowing for the representation of finite disjunctions of its elements. While most of the operations on the finite powerset abstract domain are easily obtained by “lifting” the corresponding operations on the base-level domain, the problem of endowing finite powersets with a provably correct widening operator is still open. In this paper we define three generic widening methodologies for the finite powerset abstract domain. The widenings are obtained by lifting any widening operator defined on the base-level abstract domain and are parametric with respect to the specification of a few additional operators that allow all the flexibility required to tune the complexity/precision trade-off. As far as we know, this is the first time that the problem of deriving non-trivial, provably correct widening operators in a domain refinement is tackled successfully. We illustrate the proposed techniques by instantiating our widening methodologies on powersets of convex polyhedra, a domain for which no non-trivial widening operator was previously known.

[1]  Samson Abramsky,et al.  Domain theory , 1995, LICS 1995.

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

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

[4]  H. L. Verge A Note on Chernikova's algorithm , 1992 .

[5]  Roberto Bagnara,et al.  A Hierarchy of Constraint Systems for Data-Flow Analysis of Constraint Logic-Based Languages , 1998, Sci. Comput. Program..

[6]  Patrick Cousot,et al.  Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation , 1992, PLILP.

[7]  Giorgio Delzanno,et al.  Model Checking in CLP , 1999, TACAS.

[8]  Pascal Van Hentenryck,et al.  Type analysis of Prolog using type graphs , 1994, PLDI '94.

[9]  Pascal Van Hentenryck,et al.  Combinations of abstract domains for logic programming: open product and generic pattern construction , 2000, Sci. Comput. Program..

[10]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[11]  Zohar Manna,et al.  Proving termination with multiset orderings , 1979, CACM.

[12]  Jean-Pierre Talpin,et al.  Polyhedral Analysis for Synchronous Languages , 1999, SAS.

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

[14]  Patrick Cousot,et al.  Abstract Interpretation Frameworks , 1992, J. Log. Comput..

[15]  Roberto Bagnara,et al.  Possibly Not Closed Convex Polyhedra and the Parma Polyhedra Library , 2002, SAS.

[16]  Nicolas Halbwachs,et al.  Delay Analysis in Synchronous Programs , 1993, CAV.

[17]  Divesh Srivastava,et al.  Subsumption and indexing in constraint query languages with linear arithmetic constraints , 1993, Annals of Mathematics and Artificial Intelligence.

[18]  Nicolas Halbwachs,et al.  Détermination automatique de relations linéaires vérifiées par les variables d'un programme , 1979 .

[19]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[20]  François Bourdoncle,et al.  Abstract interpretation by dynamic partitioning , 1992, Journal of Functional Programming.

[21]  Nicolas Halbwachs,et al.  Verification of Real-Time Systems using Linear Relation Analysis , 1997, Formal Methods Syst. Des..

[22]  Roberto Bagnara,et al.  Widening Operators for Weakly-Relational Numeric Abstractions , 2005, SAS.

[23]  Vincent Loechner PolyLib: A Library for Manipulating Parameterized Polyhedra , 1999 .

[24]  Doran Wilde,et al.  A LIBRARY FOR DOING POLYHEDRAL OPERATIONS , 2000 .

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

[26]  Philippe Granger,et al.  Static Analyses of Congruence Properties on Rational Numbers (Extended Abstract) , 1997, SAS.

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

[28]  Richard Gerber,et al.  Model-checking concurrent systems with unbounded integer variables: symbolic representations, approximations, and experimental results , 1999, TOPL.

[29]  Roberto Bagnara,et al.  Precise widening operators for convex polyhedra , 2003, Sci. Comput. Program..

[30]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[31]  Christian Holzbaur OFAI clp(Q,R) Manual , 1995 .

[32]  William Pugh,et al.  The Omega Library interface guide , 1995 .