(* ========================================================================= *)
(* Trivial restriction of complex Groebner bases to reals. *)
(* ========================================================================= *)
let GROBNER_REAL_ARITH =
let trans_conv = GEN_REWRITE_CONV TOP_SWEEP_CONV
[GSYM CX_INJ; CX_POW; CX_MUL; CX_ADD; CX_NEG; CX_SUB] in
fun tm -> let th = trans_conv tm in
EQ_MP (SYM th) (COMPLEX_ARITH(rand(concl th)));;