SEMIRING_NORMALIZERS_CONV : thm -> thm -> (term -> bool) * conv * conv * conv -> (term -> term -> bool) -> (term -> thm) * (term -> thm) * (term -> thm) * (term -> thm) * (term -> thm) * (term -> thm)
|- (!x y z. x + (y + z) = (x + y) + z) /\
(!x y. x + y = y + x) /\
(!x. ZERO + x = x) /\
(!x y z. x * (y * z) = (x * y) * z) /\
(!x y. x * y = y * x) /\
(!x. ONE * x = x) /\
(!x. ZERO * x = ZERO) /\
(!x y z. x * (y + z) = x * y + x * z) /\
(!x. x^0 = ONE) /\
(!x n. x^(SUC n) = x * x^n)
|- (!x. neg x = MINUS1 * x) /\
(!x y. x - y = x + MINUS1 * y)
# let REAL_POLY_NEG_CONV,REAL_POLY_ADD_CONV,REAL_POLY_SUB_CONV,
REAL_POLY_MUL_CONV,REAL_POLY_POW_CONV,REAL_POLY_CONV =
SEMIRING_NORMALIZERS_CONV REAL_POLY_CLAUSES REAL_POLY_NEG_CLAUSES
(is_ratconst,
REAL_RAT_ADD_CONV,REAL_RAT_MUL_CONV,REAL_RAT_POW_CONV)
(<);;
val ( REAL_POLY_NEG_CONV ) : term -> thm =
val ( REAL_POLY_ADD_CONV ) : term -> thm =
val ( REAL_POLY_SUB_CONV ) : term -> thm =
val ( REAL_POLY_MUL_CONV ) : term -> thm =
val ( REAL_POLY_POW_CONV ) : term -> thm =
val ( REAL_POLY_CONV ) : term -> thm =