Blob.Valueinclude Lattice.Sinclude Lattice.POinclude Printable.Sval hash : t -> intval show : t -> stringval pretty : unit -> t -> Printable.Pretty.docval printXml : 'a BatInnerIO.output -> t -> unitval to_yojson : t -> Yojson.Safe.tval tag : t -> intUnique ID, given by HConsed, for context identification in witness
val arbitrary : unit -> t QCheck.arbitrarywiden x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
val pretty_diff : unit -> (t * t) -> Lattice.Pretty.docIf leq x y = false, then pretty_diff () (x, y) should explain why.
val bot : unit -> tval is_bot : t -> boolval top : unit -> tval is_top : t -> boolval eval_offset :
VDQ.t ->
(AD.t -> t) ->
t ->
offs ->
GoblintCil.exp option ->
GoblintCil.lval option ->
GoblintCil.typ ->
tval update_offset :
VDQ.t ->
t ->
offs ->
t ->
GoblintCil.exp option ->
GoblintCil.lval ->
GoblintCil.typ ->
tval update_array_lengths :
(GoblintCil.exp -> t) ->
t ->
GoblintCil.Cil.typ ->
tval affect_move :
?replace_with_const:bool ->
VDQ.t ->
t ->
GoblintCil.varinfo ->
(GoblintCil.exp -> int option) ->
tval affecting_vars : t -> GoblintCil.varinfo listval invalidate_value : VDQ.t -> GoblintCil.typ -> t -> tval is_safe_cast : GoblintCil.typ -> GoblintCil.typ -> boolval cast : ?torg:GoblintCil.typ -> GoblintCil.typ -> t -> tval smart_join :
(GoblintCil.exp -> BI.t option) ->
(GoblintCil.exp -> BI.t option) ->
t ->
t ->
tval smart_widen :
(GoblintCil.exp -> BI.t option) ->
(GoblintCil.exp -> BI.t option) ->
t ->
t ->
tval smart_leq :
(GoblintCil.exp -> BI.t option) ->
(GoblintCil.exp -> BI.t option) ->
t ->
t ->
boolval is_immediate_type : GoblintCil.typ -> boolval is_mutex_type : GoblintCil.typ -> boolval bot_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> tval is_bot_value : t -> boolval init_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> tval top_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> tval is_top_value : t -> GoblintCil.typ -> boolval zero_init_value : ?varAttr:GoblintCil.attributes -> GoblintCil.typ -> tval project :
VDQ.t ->
PrecisionUtil.int_precision option ->
(GoblintCil.attributes * GoblintCil.attributes) option ->
t ->
t