Section ListDenotePred.
Context {A B : Type}.
Variables (f : A -> pred B) (b : pred B).
Proof with auto.
induction l; simpl... apply extensionality; intro x.
apply prop_ext; split; intro H. right... destruct H... inversion H.
rewrite IHl, union_assoc...
Qed.

Lemma listd_flat_map_inter h l s
(H : forall a b', inter (f a) b' s -> listd f inter b' (h a) s) :
listd f inter b l s -> listd f inter b (flat_map h l) s.