Proof with simpl; auto.
revert cls0; induction l... intros s0 [A C] D; apply IHl...
Qed.
End FoldLem.
Section FoldLemWeak.
Context (B : Type). Variables (f : clause -> pred B) (b : pred B).
Variable (h : list clause -> clause -> list clause).
Variable (H : forall c cls s, listd f inter b cls s -> (forall s, f c s) ->
listd f inter b (h cls c) s).

(* Specifications: *)
Lemma listd_fold_left_wk cls0 l s :
listd (fun c => forall s, f c s) and True l -> listd f inter b cls0 s ->
listd f inter b (fold_left h l cls0) s.