type poly
val poly_isconst : poly -> bool
val poly_neg : poly -> poly
val poly_mul : poly -> poly -> poly
val poly_pow : poly -> int -> poly
val poly_const : Num.num -> poly
val poly_of_term : Sos_types.term -> poly
val term_of_poly : poly -> Sos_types.term
val term_of_sos : (Sos_types.positivstellensatz * (Num.num * poly) list) -> Sos_types.positivstellensatz
val string_of_poly : poly -> string
val real_positivnullstellensatz_general : bool -> int -> poly list -> (poly * Sos_types.positivstellensatz) list -> poly -> poly list * (Sos_types.positivstellensatz * (Num.num * poly) list) list
val sumofsquares : poly -> Num.num * (Num.num * poly) list