Module Dalton_sig.GROUND.Ub


module Ub: sig  end
The module Ub specifies the set of constant upper bounds.


type t
The type of constant upper bound.

val top : t
top is a distinguished upper bound. It is the top element of the semi-lattice.
val is_top : t -> bool
is_top lb must return true if and only if lb is top.
val inter : t -> t -> t
inter lb1 lb2 gives the intersection (according to the semi-lattice structure) of the lower bounds lb1 and lb2.
val geq : t -> t -> bool
geq lb1 lb2 tells wether lb1 is greater than or equal to lb2 in the semi-lattice of constant upper bounds.
val compare : t -> t -> int
A comparison function on constant upper bounds has to be provided. It is just used for computation and has no semantical meaning.
val normalize : t -> t
normalize lb internally normalizes the lower bound lb.
val fprint : Format.formatter -> t -> unit
fprint ppf ub pretty-prints the constant upper bound ub on the formatter ppf. (This function is used for printing of constants in constraints.)
val fprint_in_term : int -> Format.formatter -> t -> unit
fprint_in_term ppf ub is used to print the constant lower bound ub on the formatter ppf when it appears in a term, in place of a non-negative variable which has no predecessor.

An usual implementation may be: let fprint_in_term _ ppf ub = Format.fprintf ppf "< %a" fprint ub

val draw : t -> string list