Proof with simpl; auto. intro H1; rewrite <-rewrite_by_eqv... Qed.

(* Specifications: *)
Lemma clause_denote_foldl (f: clause -> clause -> clause) l c0 s :
listd clause_denote inter TT l s -> clause_denote c0 s ->
(forall c d, clause_denote c s -> clause_denote d s ->
clause_denote (f c d) s) ->
clause_denote (fold_left f l c0) s.