(*s A formula is proved when its negation cannot be satisfied *)
Definition CG_prove (f : CGForm) := negb (CG_solve (CGnot f)).

(* Specifications: *)
Theorem CG_prove_correct :
forall f : CGForm, CG_prove f = true -> forall rho : ad -> D, CGeval rho f.
Theorem CG_prove_complete :
forall f : CGForm, (forall rho : ad -> D, CGeval rho f) -> CG_prove f = true.
Theorem CG_prove_complete_anchored :
forall (f : CGForm) (anchor : ad) (anchor_value : D),
(forall rho : ad -> D, rho anchor = anchor_value -> CGeval rho f) ->
CG_prove f = true.