End ZCGevalDef.
Definition ZCG_solve (f : ZCGForm) :=
CG_solve Z 0%Z Zplus Zopp Zle_bool 1%Z (ZCGtranslate f).

(* Specifications: *)
Theorem ZCG_solve_correct :
forall f : ZCGForm,
ZCG_solve f = true -> {rho : ad -> Z | ZCGeval rho f /\ rho N0 = 0%Z}.
Theorem ZCG_solve_complete :
forall (f : ZCGForm) (rho : ad -> Z),
ZCGeval rho f -> rho N0 = 0%Z -> ZCG_solve f = true.