The powerset operator on abstract interpretations
In the context of the standard Cousot and Cousot framework, refinement operators that systematically produce more precise abstract interpretations from simpler ones are useful. We present a theoretical study of one such operator: the powerset. For any given abstract interpretation, i.e. an abstract domain equipped with corresponding abstract operations, the powerset operator yields a new abstract interpretation, where the abstract domain is (very close to) the powerset of the original one and the operations are accordingly extended. It turns out that the refined powerset domain is able to represent in the best possible way the concrete disjunction. Conditions that guarantee the correctness of the powerset operator are given, and the relationship, with respect to the precision, between any abstract interpretation and its powerset is studied. The general theory is applied to the well-known abstract interpretation POS, typically used for ground-dependency analysis of logic languages. We show that the powerset P(POS) is strictly more precise than POS both at the domain and operations level. Furthermore, the standard bottom-up abstract semantics of logic programs based on POS and P(POS) are compared by exhibiting a completeness relationship between them, i.e. the first semantics can be obtained by abstracting back the second one. (C) 1999 Elsevier Science B.V. All rights reserved.
powerset operator abstract interpretation logic program ground-dependency analysis