Abstract
Type of the abstract product of the product domain mapping property names to abstract domains
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.
Abstract
createCreates an abstract value of the product domain for a given abstract value.
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 product abstract domain as named Cartesian product of sub abstract domains. The sub abstract domains are represented a record mapping property names to abstract domains. The Bottom element is defined as mapping every sub abstract domain to Bottom and the Top element is defined as mapping every sub abstract domain to Top.