sig
type inequality = Le | Gt | Eq
type t
exception UnsupportedConstraint
exception NonRegularBounds
val top : Constraint.t
val constraint_atom :
Indexes.t -> Constraint.inequality -> Indexes.t -> Constraint.t
val bounds_constraint :
Indexes.t -> Constraint.inequality -> Indexes.t -> Constraint.t
val bounds_conjunction : Constraint.t -> Constraint.t -> Constraint.t
val is_false : Constraint.t -> bool
val is_equality : Constraint.t -> bool
val to_string : ?parenthesized:bool -> Constraint.t -> string
val print : Constraint.t -> unit
val equal : Constraint.t -> Constraint.t -> bool
val always_greater : ?hyp:Constraint.t -> Indexes.t -> Indexes.t -> bool
val always_different : ?hyp:Constraint.t -> Indexes.t -> Indexes.t -> bool
val normalize_index : Constraint.t -> idx:Indexes.t -> Indexes.t
end