IntDomain.IntervalSetFunctormodule Ints_t : IntOps.IntOpsinclude IntDomain_intf.S
with type int_t = Ints_t.t
with type t = (Ints_t.t * Ints_t.t) listinclude IntDomain_intf.B
with type int_t = Ints_t.t
with type t = (Ints_t.t * Ints_t.t) listinclude Lattice.PO with type t = (Ints_t.t * Ints_t.t) listtype int_t = Ints_t.tAccessing values of the ADT
val bot_of : GoblintCil.Cil.ikind -> tval top_of : ?bitfield:int -> GoblintCil.Cil.ikind -> tReturn a single integer value if the value is a known constant, otherwise * don't return anything.
val to_bool : t -> bool optionGive a boolean interpretation of an abstract value if possible, otherwise * don't return anything.
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
include IntDomain_intf.ArithIkind with type t := tComparison operators
Bit operators
Logical operators
val of_bool : GoblintCil.Cil.ikind -> 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 is_top_of : GoblintCil.Cil.ikind -> t -> boolval invariant_ikind :
GoblintCil.Cil.exp ->
GoblintCil.Cil.ikind ->
t ->
Invariant.tval project : GoblintCil.Cil.ikind -> PrecisionUtil.int_precision -> t -> tval arbitrary : GoblintCil.Cil.ikind -> t QCheck.arbitraryval add :
?no_ov:bool ->
GoblintCil.Cil.ikind ->
t ->
t ->
t * IntDomain_intf.overflow_infoval sub :
?no_ov:bool ->
GoblintCil.Cil.ikind ->
t ->
t ->
t * IntDomain_intf.overflow_infoval mul :
?no_ov:bool ->
GoblintCil.Cil.ikind ->
t ->
t ->
t * IntDomain_intf.overflow_infoval div :
?no_ov:bool ->
GoblintCil.Cil.ikind ->
t ->
t ->
t * IntDomain_intf.overflow_infoval neg :
?no_ov:bool ->
GoblintCil.Cil.ikind ->
t ->
t * IntDomain_intf.overflow_infoval cast_to :
?torg:GoblintCil.Cil.typ ->
?no_ov:bool ->
GoblintCil.Cil.ikind ->
t ->
t * IntDomain_intf.overflow_infoval of_int : GoblintCil.Cil.ikind -> int_t -> t * IntDomain_intf.overflow_infoval of_interval :
GoblintCil.Cil.ikind ->
(int_t * int_t) ->
t * IntDomain_intf.overflow_infoval starting :
GoblintCil.Cil.ikind ->
int_t ->
t * IntDomain_intf.overflow_infoval ending : GoblintCil.Cil.ikind -> int_t -> t * IntDomain_intf.overflow_infoval shift_left :
GoblintCil.Cil.ikind ->
t ->
t ->
t * IntDomain_intf.overflow_infoval shift_right :
GoblintCil.Cil.ikind ->
t ->
t ->
t * IntDomain_intf.overflow_info