sig
  type 'a varexp = 'a * int
  type 'a monomial = 'Apronexpr.Poly.varexp list
  type 'a term = Mpqf.t * 'Apronexpr.Poly.monomial
  type 'a t = 'Apronexpr.Poly.term list
  val compare_varexp :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.varexp -> 'Apronexpr.Poly.varexp -> int
  val compare_monomial :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.monomial -> 'Apronexpr.Poly.monomial -> int
  val normalize_monomial :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.monomial -> 'Apronexpr.Poly.monomial
  val normalize :
    'Apronexpr.symbol -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val normalize_full :
    'Apronexpr.symbol -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val compare :
    'Apronexpr.symbol -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t -> int
  val cst : Mpqf.t -> 'Apronexpr.Poly.t
  val var : '-> 'Apronexpr.Poly.t
  val add :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.t -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val sub :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.t -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val scale :
    'Apronexpr.symbol ->
    Mpqf.t * 'Apronexpr.Poly.monomial ->
    'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val mul :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.t -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val div :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.t -> 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val negate : 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val support : 'Apronexpr.symbol -> 'Apronexpr.Poly.t -> 'PSette.t
  val substitute_by_var :
    'Apronexpr.symbol ->
    'Apronexpr.Poly.t -> ('a, 'a) PMappe.t -> 'Apronexpr.Poly.t
  val normalize_as_constraint : 'Apronexpr.Poly.t -> 'Apronexpr.Poly.t
  val print :
    'Apronexpr.symbol -> Format.formatter -> 'Apronexpr.Poly.t -> unit
end