Module Dalton_sig.GROUND.Lb


module Lb: sig  end
The module Lb specifies the set of constant lower bounds.


type t
The type of constant lower bound.

val bottom : t
bottom is a distinguished lower bound. It is the bottom element of the semi-lattice.
val is_bottom : t -> bool
is_bottom lb must return true if and only if lb is bottom.
val union : t -> t -> t
union lb1 lb2 gives the union (according to the semi-lattice structure) of the lower bounds lb1 and lb2.
val leq : t -> t -> bool
leq env lb1 lb2 tells wether lb1 is less than or equal to lb2 in the semi-lattice of constant lower bounds, i.e.: for all alpha, lb2 < alpha implies lb1 < alpha.
val compare : t -> t -> int
A comparison function on constant lower 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 lb pretty-prints the constant lower bound lb 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 lb is used to prints the constant lower bound lb 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 lb = Format.fprintf ppf "> %a" fprint lb

val draw : t -> string list