(*s Formula are solved by looking at their simplified form *)

Definition CG_solve (f : CGForm) := CGS_solve false (CGFormSimplify f).

(* Specifications: *)
Theorem CG_solve_correct : forall f : CGForm, CG_solve f = true -> {rho : ad -> D | CGeval rho f}.
Theorem CG_solve_correct_anchored : forall (anchor : ad) (anchor_value : D) (f : CGForm), CG_solve f = true -> {rho : ad -> D | CGeval rho f /\ rho anchor = anchor_value}.
Theorem CG_solve_complete : forall (f : CGForm) (rho : ad -> D), CGeval rho f -> CG_solve f = true.