Section SetDenoteLems.
Context (B : Type). Variables (f : clause -> pred B) (b : pred B).
Variable (h : M.t -> clause -> M.t).
Variable (H : forall c cls s, setd f inter b cls s -> f c s ->
setd f inter b (h cls c) s).
Proof with simpl; auto.
revert cls0; induction l... intros s0 [A C] D; apply IHl...
Qed.
Proof with simpl; auto.
rewrite M.fold_spec; intros; apply setd_fold_left; auto.
Qed.

Lemma setd_un cls1 cls2 s :
setd f inter TT cls1 s -> setd f inter TT cls2 s ->
setd f inter TT (M.union cls1 cls2) s.