Module InferModules.ArrayBlk

module Bound = Bounds.Bound
module F = Stdlib.Format
module L = InferBase.Logging
module ArrInfo : sig ... end
include sig ... end
type key = AbsLoc.Allocsite.t
type value = ArrInfo.t
type t = InferModules__AbstractDomain.Map(InferModules.AbsLoc.Allocsite)(ArrInfo).t
val empty : t
val is_empty : t -> bool
val mem : key -> t -> bool
val add : key -> value -> t -> t
val update : key -> (value option -> value option) -> t -> t
val singleton : key -> value -> t
val remove : key -> t -> t
val merge : (key -> value option -> value option -> value option) -> t -> t -> t
val union : (key -> value -> value -> value option) -> t -> t -> t
val compare : (value -> value -> int) -> t -> t -> int
val equal : (value -> value -> bool) -> t -> t -> bool
val iter : (key -> value -> unit) -> t -> unit
val fold : (key -> value -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (key -> value -> bool) -> t -> bool
val exists : (key -> value -> bool) -> t -> bool
val filter : (key -> value -> bool) -> t -> t
val partition : (key -> value -> bool) -> t -> t * t
val cardinal : t -> int
val bindings : t -> (key * value) list
val min_binding : t -> key * value
val min_binding_opt : t -> (key * value) option
val max_binding : t -> key * value
val max_binding_opt : t -> (key * value) option
val choose : t -> key * value
val choose_opt : t -> (key * value) option
val split : key -> t -> t * value option * t
val find : key -> t -> value
val find_opt : key -> t -> value option
val find_first : (key -> bool) -> t -> key * value
val find_first_opt : (key -> bool) -> t -> (key * value) option
val find_last : (key -> bool) -> t -> key * value
val find_last_opt : (key -> bool) -> t -> (key * value) option
val map : (value -> value) -> t -> t
val mapi : (key -> value -> value) -> t -> t
val is_singleton_or_more : t -> (key * value) InferStdlib.IContainer.singleton_or_more
val pp_key : InferStdlib.PrettyPrintable.F.formatter -> key -> unit
val pp : InferStdlib.PrettyPrintable.F.formatter -> t -> unit
val (<=) : lhs:t -> rhs:t -> bool
val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val bottom : t
val is_bottom : t -> bool
val compare : t -> t -> int
val bot : t
val unknown : t
val is_bot : t -> bool
val make_c : AbsLoc.Allocsite.t -> offset:Itv.t -> size:Itv.t -> stride:Itv.t -> t
val make_java : AbsLoc.Allocsite.t -> length:Itv.t -> t
val join_itv : f:(ArrInfo.t -> Itv.t) -> t -> Itv.t
val offsetof : t -> Itv.t
val sizeof : t -> Itv.t
val plus_offset : t -> Itv.t -> t
val minus_offset : t -> Itv.t -> t
val diff : t -> t -> Itv.t
val get_pow_loc : t -> AbsLoc.PowLoc.t
val subst : t -> Bound.eval_sym -> AbsLoc.PowLoc.eval_locpath -> AbsLoc.PowLoc.t * t
val is_symbolic : t -> bool
val get_symbols : t -> InferModules.Itv.SymbolSet.t
val normalize : t -> t
val do_prune : (ArrInfo.t -> ArrInfo.t -> ArrInfo.t) -> t -> t -> t
val prune_comp : InferIR.Binop.t -> t -> t -> t
val prune_eq : t -> t -> t
val prune_ne : t -> t -> t
val set_length : Itv.t -> t -> t
val set_stride : Z.t -> t -> t
val set_offset : Itv.t -> t -> t
val lift_cmp_itv : (Itv.t -> Itv.t -> Boolean.t) -> Boolean.EqualOrder.t -> t -> t -> Boolean.EqualOrder.b
val transform_length : f:(Itv.t -> Itv.t) -> t -> t