sig
type varexp = Var.t * int
type monomial = Arith.Poly.varexp list
type term = Mpqf.t * Arith.Poly.monomial
type expr = Arith.Poly.term list
val compare_varexp : Arith.Poly.varexp -> Arith.Poly.varexp -> int
val compare_monomial : Arith.Poly.monomial -> Arith.Poly.monomial -> int
val normalize_monomial : Arith.Poly.monomial -> Arith.Poly.monomial
val normalize : Arith.Poly.expr -> Arith.Poly.expr
val normalize_full : Arith.Poly.expr -> Arith.Poly.expr
val compare : Arith.Poly.expr -> Arith.Poly.expr -> int
val cst : Mpqf.t -> Arith.Poly.expr
val var : Var.t -> Arith.Poly.expr
val add : Arith.Poly.expr -> Arith.Poly.expr -> Arith.Poly.expr
val sub : Arith.Poly.expr -> Arith.Poly.expr -> Arith.Poly.expr
val scale :
Mpqf.t * Arith.Poly.monomial -> Arith.Poly.expr -> Arith.Poly.expr
val mul : Arith.Poly.expr -> Arith.Poly.expr -> Arith.Poly.expr
val div : Arith.Poly.expr -> Arith.Poly.expr -> Arith.Poly.expr
val negate : Arith.Poly.expr -> Arith.Poly.expr
val support : Arith.Poly.expr -> Var.Set.t
val rename : Arith.Poly.expr -> Var.t Var.Map.t -> Arith.Poly.expr
val normalize_as_constraint : Arith.Poly.expr -> Arith.Poly.expr
val print : Format.formatter -> Arith.Poly.expr -> unit
end