Proof with simpl; auto.
induction atms... intros s [H1 H2]. split...
Qed.

(* Specifications: *)
Theorem cnf_correct1 : forall (e : entailment),
entailment_denote e ->
forall s, ~ list_denote clause_denote (@andp state) TT (cnf e) s.
Theorem cnf_correct2 : forall (e : entailment),
(forall s, ~ list_denote clause_denote (@andp state) TT (cnf e) s) ->
entailment_denote e.
Theorem cnf_correct : forall (e : entailment),
entailment_denote e =
forall s, ~ list_denote clause_denote (@andp state) TT (cnf e) s.