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).
Proof with simpl; auto.
revert cls0 s; induction l... intros s0 s H1.
assert (H2: forall s, f a s). intros s'. destruct H1 as [H1 H2]. spec H1 s'...
intros D; apply IHl... destruct H1...
Qed.
End FoldLemWeak.

Lemma listd_inter_map: forall {A B C} (l:list A) (f:B -> C -> Prop) h s,
(forall x, In x l -> f (h x) s) ->
inter
(listd f inter TT (map h l)) TT s.