#[local]
Hint Resolve set_inter_elim1 set_inter_elim2 : core.

(* Specifications: *)
Lemma set_inter_elim :
forall (a:A) (x y:set),
set_In a (set_inter x y) -> set_In a x /\ set_In a y.
Lemma set_inter_iff a l l' : In a (set_inter l l') <-> In a l /\ In a l'.
Lemma set_inter_nodup l l' : NoDup l -> NoDup l' -> NoDup (set_inter l l').
Lemma set_diff_intro :
forall (a:A) (x y:set),
set_In a x -> ~ set_In a y -> set_In a (set_diff x y).
Lemma set_diff_elim1 :
forall (a:A) (x y:set), set_In a (set_diff x y) -> set_In a x.
Lemma set_diff_elim2 :
forall (a:A) (x y:set), set_In a (set_diff x y) -> ~ set_In a y.