(*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.