ValueDomain.Unions
include Lattice.S with type t = UnionDomain.Field.t * Compound.t
include Lattice.PO with type t = UnionDomain.Field.t * Compound.t
include Printable.S with type t = UnionDomain.Field.t * Compound.t
type t = UnionDomain.Field.t * Compound.t
val hash : t -> int
val show : t -> string
val printXml : 'a BatInnerIO.output -> t -> unit
val to_yojson : t -> Yojson.Safe.t
val tag : t -> int
Unique ID, given by HConsed, for context identification in witness
val arbitrary : unit -> t QCheck.arbitrary
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 value = Compound.t
val invariant :
value_invariant:
(offset:GoblintCil.Cil.offset ->
lval:GoblintCil.Cil.lval ->
value ->
Invariant.t) ->
offset:GoblintCil.Cil.offset ->
lval:GoblintCil.Cil.lval ->
t ->
Invariant.t