sig
type tt = {
h : int;
v : Abstract_value.Unhashconsed_Int_Intervals.t;
tag : int;
}
type widen_hint = Abstract_value.Unhashconsed_Int_Intervals.widen_hint
exception Error_Bottom
exception Error_Top
val tag : Abstract_value.Int_Intervals.tt -> int
val pretty_debug :
Format.formatter -> Abstract_value.Int_Intervals.tt -> unit
val pretty : Format.formatter -> Abstract_value.Int_Intervals.tt -> unit
val hash_internal : Abstract_value.Int_Intervals.tt -> int
val equal_internal :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt -> bool
val name : string
module IntIntervalsHashtbl :
sig
type data = tt
type t
val create : int -> t
val merge : t -> data -> data
val iter : t -> (data -> unit) -> unit
val clear : t -> unit
val release : t -> unit
val shallow_copy : t -> t
val addr : t -> int
val overwrite : old:t -> fresh:t -> unit
val pretty_debug : Format.formatter -> t -> int -> unit
end
val table : Abstract_value.Int_Intervals.IntIntervalsHashtbl.t
val current_tag : int Pervasives.ref
val wrap :
Abstract_value.Unhashconsed_Int_Intervals.t ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val top : Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val bottom : Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val compare :
Abstract_value.Int_Intervals.tt -> Abstract_value.Int_Intervals.tt -> int
type t = tt
val ty : t Type.t
val name : string
val descr : t Descr.t
val packed_descr : Structural_descr.pack
val reprs : t list
val equal : t -> t -> bool
val compare : t -> t -> int
val hash : t -> int
val pretty_code : Format.formatter -> t -> unit
val internal_pretty_code : Type.precedence -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val varname : t -> string
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
val copy : t -> t
val fold_enum :
split_non_enumerable:'a ->
'b -> Abstract_value.Int_Intervals.tt -> 'c -> 'd
val diff_if_one : 'a -> 'b
val diff :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val cardinal_less_than : Abstract_value.Int_Intervals.tt -> int -> int
val splitting_cardinal_less_than :
split_non_enumerable:int -> Abstract_value.Int_Intervals.tt -> int -> int
val meet :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val link :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val join :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val narrow :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val widen :
Abstract_value.Unhashconsed_Int_Intervals.widen_hint ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val cardinal_zero_or_one : Abstract_value.Int_Intervals.tt -> bool
val intersects :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt -> bool
val is_included :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt -> bool
val is_included_exn :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Int_Intervals.tt -> unit
val inject :
Abstract_value.Unhashconsed_Int_Intervals.elt list ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val pretty_typ :
Cil_types.typ option ->
Format.formatter -> Abstract_value.Int_Intervals.tt -> unit
val from_ival_size :
Ival.tt ->
Int_Base.tt -> Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val fold :
(Abstract_value.Unhashconsed_Int_Intervals.elt -> 'a -> 'a) ->
Abstract_value.Int_Intervals.tt -> 'a -> 'a
val is_top : t -> bool
exception Not_a_set
val project_set :
Abstract_value.Int_Intervals.tt ->
Abstract_value.Unhashconsed_Int_Intervals.elt list
val inject_zero_max :
Int_Base.tt -> Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
val inject_bounds :
Abstract_interp.Int.t ->
Abstract_interp.Int.t ->
Abstract_value.Int_Intervals.IntIntervalsHashtbl.data
end