AddressDomain.AddressSet
Address set lattice.
module Mval : Mval.Lattice
module ID : IntDomain.Z
module Addr : sig ... end
include SetDomain.S with type elt = Addr.t
include Lattice.S
include Lattice.PO
widen x y
assumes leq x y
. Solvers guarantee this by calling widen old (join old new)
.
val bot : unit -> t
val is_bot : t -> bool
val top : unit -> t
val is_top : t -> bool
type elt = Addr.t
val empty : unit -> t
val is_empty : t -> bool
See Set.S.remove
.
NB! On set abstractions this is a strong removal, i.e. all subsumed elements are also removed.
See Set.S.diff
.
NB! On set abstractions this is a strong removal, i.e. all subsumed elements are also removed.
See Set.S.iter
.
On set abstractions this iterates only over canonical elements, not all subsumed elements.
See Set.S.map
.
On set abstractions this maps only canonical elements, not all subsumed elements.
See Set.S.fold
.
On set abstractions this folds only over canonical elements, not all subsumed elements.
See Set.S.for_all
.
On set abstractions this checks only canonical elements, not all subsumed elements.
See Set.S.exists
.
On set abstractions this checks only canonical elements, not all subsumed elements.
See Set.S.filter
.
On set abstractions this filters only canonical elements, not all subsumed elements.
See Set.S.partition
.
On set abstractions this partitions only canonical elements, not all subsumed elements.
val cardinal : t -> int
See Set.S.cardinal
.
On set abstractions this counts only canonical elements, not all subsumed elements.
See Set.S.elements
.
On set abstractions this lists only canonical elements, not all subsumed elements.
See Set.S.min_elt
.
On set abstractions this chooses only a canonical element, not any subsumed element.
See Set.S.max_elt
.
On set abstractions this chooses only a canonical element, not any subsumed element.
val null_ptr : t
Address set containing only the NULL
pointer.
val unknown_ptr : t
Address set containing the unknown pointer, which is non-NULL
.
val not_null : t
Address set containing the unknown pointer, which is non-NULL
.
val top_ptr : t
Address set containing any pointer, NULL
or not.
val is_null : t -> bool
Whether address set contains only the NULL
pointer.
val is_not_null : t -> bool
Whether address set does not contain the NULL
pointer.
val may_be_null : t -> bool
Whether address set contains the NULL
pointer.
val may_be_unknown : t -> bool
Whether address set contains the unknown pointer.
val is_definite : t -> bool
Whether address set is a single NULL
pointer or mvalue that has only definite integer indexing (and fields).
val of_var : GoblintCil.varinfo -> t
Convert from variable (without offset).
val to_var_may : t -> GoblintCil.varinfo list
Convert to variables with any offset.
val to_var_must : t -> GoblintCil.varinfo list
Convert to variables without offset.
val to_bool : t -> bool option
Convert to boolean if possible.
val type_of : t -> GoblintCil.typ
Type of address set.
val of_string : string -> t
Convert from string literal.
val to_string : t -> string list
Convert to string literals.
val string_writing_defined : t -> bool