Elementary.Make
Functor that creates an abstract domain that abstracts a minimal function graph, from an abstract domain for the input values of the graph, and an abstract domain for the output values of the graph.
The resulting abstract domain for function graphs is "elementary" in the sense of F. Bourdoncle 1
. It is implemented as an association list, that maps elements of the domain to elements of the codomain. The meaning is that of a function that maps an element x
to the join of all the elements of the codomain that are associated to an element of the domain that covers x
, i.e., that intersects with x
.
The widening strategy is simple: when entries that are not covered must be added, they are first widenened with some already present entries.
1
Bourdoncle, F. Abstract Interpretation by Dynamic Partitioning J. Funct. Program., 1992, 2, 407-423
module D1 : sig ... end
module D2 : sig ... end