Definition QReval_formula (e: PolEnv R) (k: Tauto.kind) (ff : Formula Q) :=
let (lhs,o,rhs) := ff in Reval_op2 k o (QReval_expr e lhs) (QReval_expr e rhs).
Definition QReval_formula' :=
eval_formula  Rplus Rmult Rminus Ropp (@eq R) Rle Rlt Q2R N.to_nat pow.

(* Specifications: *)
Lemma QReval_formula_compat : forall env b f, Tauto.hold b (QReval_formula env b f) <-> QReval_formula' env f.
Definition Qeval_nformula :=
eval_nformula 0 Rplus Rmult  (@eq R) Rle Rlt Q2R.
Lemma Reval_nformula_dec : forall env d, (Qeval_nformula env d) \/ ~ (Qeval_nformula env d).
Definition RWitness := Psatz Q.