Abstract Interpretation of Logic Programs

Domain and Concretization Function • The domain ℘(D) can be represented by an “abstract” domain Dα of finite representations of (possibly) infinite objects in ℘(D) • The representation of ℘(D) by Dα is expressed by a (monotonic) function called a concretization function: γ : Dα → ℘(D) such that γ(λ) = d if d is the largest element (under ⊆) of ℘(D) that λ describes [ (℘(D),⊆) is obviously a complete lattice ] e.g. in the “signs” example, with Dα = {[−], [0], [+],⊤}, γ is given by γ([−]) = {x ∈ Z|x < 0} γ([0]) = {0} γ([+]) = {x ∈ Z|x > 0} γ(⊤) = Z • γ(?) = ∅ → we define ⊥ | γ(⊥) = ∅