ValueDomain.S
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
val affecting_vars : t -> GoblintCil.varinfo list
val is_dynamically_safe_cast : GoblintCil.typ -> GoblintCil.typ -> t -> bool
val bot_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> t
val is_bot_value : t -> bool
val init_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> t
val top_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> t
val is_top_value : t -> GoblintCil.typ -> bool
val zero_init_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> t
val project :
VDQ.t ->
PrecisionUtil.int_precision option ->
(GoblintCil.attributes * GoblintCil.attributes) option ->
t ->
t