Bounds.BoundIt makes a bound of Bound.MultB, which represents a multiplication of two bounds. For example, MultB (1, x, y) represents 1 + x × y.
type eval_sym = t Symb.Symbol.evalval pp_mark : markup:bool -> F.formatter -> t -> unitval of_int : int -> tval of_big_int : Z.t -> tval minf : tval mone : tval zero : tval one : tval z255 : tval pinf : tval of_normal_path :
Symb.Symbol.make_t ->
unsigned:bool ->
?non_int:bool ->
Symb.SymbolPath.partial ->
tval of_offset_path :
is_void:bool ->
Symb.Symbol.make_t ->
Symb.SymbolPath.partial ->
tval of_length_path :
is_void:bool ->
Symb.Symbol.make_t ->
Symb.SymbolPath.partial ->
tval of_modeled_path : Symb.Symbol.make_t -> Symb.SymbolPath.partial -> tval is_offset_path_of : Symb.SymbolPath.partial -> t -> boolval is_length_path_of : Symb.SymbolPath.partial -> t -> boolval is_zero : t -> boolval is_infty : t -> boolval is_not_infty : t -> boolval is_minf : t -> boolval is_pinf : t -> boolval is_symbolic : t -> boolval xcompare : t IStdlib.PartialOrder.xcompareval get_const : t -> Z.t optionval mult_const_l : Ints.NonZeroInt.t -> t -> tval mult_const_u : Ints.NonZeroInt.t -> t -> tval div_const_l : t -> Ints.NonZeroInt.t -> t optionval div_const_u : t -> Ints.NonZeroInt.t -> t optionval get_symbols : t -> Symb.SymbolSet.tval has_void_ptr_symb : t -> boolval subst_lb : t -> eval_sym -> t Absint.AbstractDomain.Types.bottom_liftedval subst_ub : t -> eval_sym -> t Absint.AbstractDomain.Types.bottom_liftedRemoves positive symbols that are coming from length paths
val get_same_one_symbol : t -> t -> Symb.SymbolPath.t optionIt returns a symbol s when the two bounds are all linear expressions of the symbol 1⋅s.
It returns true when the two bounds are linear expressions of the same one symbol 1⋅s.
val is_incr_of : Symb.SymbolPath.partial -> t -> boolCheck if bound is path+1 when called is_incr_of path bound
val exists_str : f:(string -> bool) -> t -> bool