Type of the abstract domain to map the AST node IDs to
The current abstract value of the lattice.
Maps a set of possible concrete values into an abstract value as abstraction function of the abstract domain (should additionally be provided as static function).
Gets the Bottom element (least element) of the complete lattice (should additionally be provided as static function).
Maps the current abstract value into a set of possible concrete values as concretization function of the abstract domain.
The result should be Top
if the number of concrete values would reach the limit
or the resulting set would have infinite many elements.
Checks whether the current abstract value equals to another abstract value.
Checks whether the current abstract value is the Bottom element of the complete lattice.
Checks whether the current abstract value is the Top element of the complete lattice.
Checks whether the current abstract value is an actual value of the complete lattice (this may include the Top or Bottom element if they are also values and no separate symbols, for example).
Joins the current abstract value with other abstract values by creating the least upper bound (LUB) in the lattice.
Checks whether the current abstract value is less than or equal to another abstract value with respect to the partial order of the lattice.
Meets the current abstract value with other abstract values by creating the greatest lower bound (GLB) in the lattice.
Narrows the current abstract value with another abstract value as a sound over-approximation of the meet (greatest lower bound) to refine the value after widening.
Gets the Top element (greatest element) of the complete lattice (should additionally be provided as static function).
Converts the lattice into a human-readable string.
Widens the current abstract value with another abstract value as a sound over-approximation of the join (least upper bound) for fixpoint iteration acceleration.
A state abstract domain as mapping of AST node IDs of a program to abstract values of an abstract domain. The Bottom element is defined as empty mapping and the Top element is defined as mapping every existing mapped AST node ID to Top.
See
NodeId for the node IDs of the AST nodes