Module Gauges_domain.G.Bounds

module Bounds: sig .. end

include struct ... end
val pretty : Format.formatter -> t -> unit
val pretty_debug : Format.formatter -> t -> unit
val inject_range : int -> int -> t
val enlarge : Integer.t -> t -> t
val lift : (Datatype.Integer.t -> Datatype.Integer.t -> Datatype.Integer.t) ->
(Datatype.Integer.t -> Datatype.Integer.t -> Datatype.Integer.t) ->
t -> t -> t
val equal : t -> t -> bool
val is_included : t -> t -> bool
val sub : t -> t -> t
val join : t -> t -> t
val add : t -> t -> t
val narrow : t -> t -> t Bottom.or_bottom
val succ : t -> t
val neg : t -> t
val mul_ct : Integer.t -> t -> t
val mul : t -> t -> t
val zero : Integer.t option * Integer.t option
val widen : ?threshold:Datatype.Integer.t -> t -> t -> t
val to_ival : t -> Ival.t
val from_ival : Ival.t -> t
type classify = 
| ContainsZero
| Positive of Integer.t * Integer.t option
| Negative of Integer.t option * Integer.t
val classify_sign : t -> classify
val div_towards_minus_infty : Integer.t -> Integer.t -> Integer.t
val div_towards_plus_infty : Integer.t -> Integer.t -> Integer.t
val backward_nb : b:t -> r:Ival.t -> [> `Value of Integer.t option * Integer.t option ]