package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=dba2b664c7c125687e708e871d83fbfb6ba6d9ee98d235b4850d9a238caa84de
sha512=529987cde39691ad9e955000a3603e89c1c8cf14ed5e8b4cd3a7fc26e47d016aff571b472e2329725133c46f8d0cb45a05b88994eeffaa221a4d31b4c543adcd
doc/goblint.lib/Goblint_lib/IntDomain/Flattened/index.html
Module IntDomain.Flattened
This is the typical flattened integer domain used in Kildall's constant * propagation.
include B
with type t = [ `Top | `Lifted of IntOps.Int64Ops.t | `Bot ]
with type int_t = IntOps.Int64Ops.t
include Lattice.S with type t = [ `Top | `Lifted of IntOps.Int64Ops.t | `Bot ]
include Lattice.PO with type t = [ `Top | `Lifted of IntOps.Int64Ops.t | `Bot ]
include Printable.S
with type t = [ `Top | `Lifted of IntOps.Int64Ops.t | `Bot ]
val hash : t -> intval show : t -> stringval pretty : unit -> t -> Goblint_lib.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
widen x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).
val pretty_diff : unit -> (t * t) -> Goblint_lib.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 -> booltype int_t = IntOps.Int64Ops.tAccessing values of the ADT
val bot_of : GoblintCil.Cil.ikind -> tval top_of : GoblintCil.Cil.ikind -> tReturn a single integer value if the value is a known constant, otherwise * don't return anything.
val is_int : t -> boolChecks if the element is a definite integer value. If this function * returns true, the above to_int should return a real value.
val to_bool : t -> bool optionGive a boolean interpretation of an abstract value if possible, otherwise * don't return anything.
val is_bool : t -> boolChecks if the element is a definite boolean value. If this function * returns true, the above to_bool should return a real value.
Gives a list representation of the excluded values from included range of bits if possible.
Creates an exclusion set from a given list of integers.
val is_excl_list : t -> boolChecks if the element is an exclusion set.
Gives a list representation of the included values if possible.
Cast
Cast from original type torg to integer type Cil.ikind. Currently, torg is only present for actual casts. The function is also called to handle overflows/wrap around after operations. In these cases (where the type stays the same) torg is None.
val of_bool : bool -> tTransform a known boolean value to the default internal representation. It * should follow C: of_bool true = of_int 1 and of_bool false = of_int 0.
val arbitrary : unit -> t QCheck.arbitraryval invariant : GoblintCil.Cil.exp -> t -> Invariant.t