sig
type r
type t
val compare : Polynome.T.t -> Polynome.T.t -> int
val hash : Polynome.T.t -> int
val create :
(Num.num * Polynome.T.r) list -> Num.num -> Ty.t -> Polynome.T.t
val add : Polynome.T.t -> Polynome.T.t -> Polynome.T.t
val sub : Polynome.T.t -> Polynome.T.t -> Polynome.T.t
val mult : Polynome.T.t -> Polynome.T.t -> Polynome.T.t
val mult_const : Num.num -> Polynome.T.t -> Polynome.T.t
val div : Polynome.T.t -> Polynome.T.t -> Polynome.T.t * bool
val modulo : Polynome.T.t -> Polynome.T.t -> Polynome.T.t
val is_empty : Polynome.T.t -> bool
val find : Polynome.T.r -> Polynome.T.t -> Num.num
val choose : Polynome.T.t -> Num.num * Polynome.T.r
val subst : Polynome.T.r -> Polynome.T.t -> Polynome.T.t -> Polynome.T.t
val remove : Polynome.T.r -> Polynome.T.t -> Polynome.T.t
val to_list : Polynome.T.t -> (Num.num * Polynome.T.r) list * Num.num
val print : Format.formatter -> Polynome.T.t -> unit
val type_info : Polynome.T.t -> Ty.t
val is_monomial : Polynome.T.t -> (Num.num * Polynome.T.r * Num.num) option
val ppmc_denominators : Polynome.T.t -> Num.num
val pgcd_numerators : Polynome.T.t -> Num.num
val normal_form : Polynome.T.t -> Polynome.T.t * Num.num * Num.num
val normal_form_pos : Polynome.T.t -> Polynome.T.t * Num.num * Num.num
end