Module Arith.Poly


module Poly: sig .. end

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