Store.S
Signature of stores
include Sigs.ABSTRACT_DOMAIN
val bot : t
The bottom element \bot
(most precise element)
val is_bot : t -> bool
Tests whether an element is \bot
val top : t
The top element \top
(less precise element)
Inclusion test between abstract values. Smaller elements are more precise; larger elements are less precise. This might not be a total order, and might not be anti-symmetric either.
Abstract union of abstract values. This need not be the least upper bound for leq
, nor an upper bound at all.
Widening operator, i.e., an approximation of the concrete union, that is used the ensure the convergence of Kleene-based iterations.
Abstract intersection of abstract values. This need not be the greatest lower bound for leq
, nor a lower bound at all.
val pp : Stdlib.Format.formatter -> t -> unit
Pretty-printer for abstract values
val empty : t
Abstract value that represents the empty store
Adds or replaces the entry of a key in a store. If an entry was present for that key, the new entry is the join of the former value and the provided value.