Module Bounds.Bound
val mk_MultB : (Z.t * t * t) -> tIt makes a bound of
Bound.MultB, which represents a multiplication of two bounds. For example,MultB (1, x, y)represents1 + x × y.
type eval_sym= t Symb.Symbol.eval
val compare : t -> t -> intval equal : t -> t -> boolval pp_mark : markup:bool -> F.formatter -> t -> unitval of_int : int -> tval of_big_int : Z.t -> tval of_foreign_id : int -> 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 of_minmax_bound_min : t -> t -> tval of_minmax_bound_max : t -> t -> 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 le : t -> t -> boolval lt : t -> t -> boolval gt : t -> t -> boolval eq : t -> t -> boolval xcompare : t IStdlib.PartialOrder.xcompareval underapprox_min : t -> t -> tval overapprox_min : t -> t -> tval underapprox_max : t -> t -> tval overapprox_max : t -> t -> tval widen_l : t -> t -> tval widen_l_thresholds : thresholds:Z.t list -> t -> t -> tval widen_u : t -> t -> tval widen_u_thresholds : thresholds:Z.t list -> t -> t -> tval get_const : t -> Z.t optionval plus_l : weak:bool -> t -> t -> tval plus_u : weak:bool -> t -> t -> tval mult_const_l : Ints.NonZeroInt.t -> t -> tval mult_const_u : Ints.NonZeroInt.t -> t -> tval neg : t -> tval div_const_l : t -> Ints.NonZeroInt.t -> t optionval div_const_u : t -> Ints.NonZeroInt.t -> t optionval get_symbols : t -> BO.Symb.SymbolSet.tval has_void_ptr_symb : t -> boolval are_similar : t -> t -> boolval subst_lb : t -> eval_sym -> t Absint.AbstractDomain.Types.bottom_liftedval subst_ub : t -> eval_sym -> t Absint.AbstractDomain.Types.bottom_liftedval simplify_bound_ends_from_paths : t -> tval simplify_min_one : t -> tval simplify_minimum_length : t -> tSimplifies c1 +/- min(c2, length) to c1 +- min(0,c2)
val remove_positive_length_symbol : t -> tRemoves positive symbols that are coming from length paths
val get_same_one_symbol : t -> t -> Symb.SymbolPath.t optionIt returns a symbol
swhen the two bounds are all linear expressions of the symbol1⋅s.
val is_same_one_symbol : t -> t -> boolIt returns
truewhen the two bounds are linear expressions of the same one symbol1⋅s.
val is_incr_of : Symb.SymbolPath.partial -> t -> boolCheck if
boundispath+1when calledis_incr_of path bound
val exists_str : f:(string -> bool) -> t -> bool