Proof using.
induction xs; intros.
- constructor.
- simpl. invc_NoDup. constructor.
+ intro. do_in_map.
assert (x = a) by intuition.
congruence.
+ intuition.
Qed.

Lemma NoDup_disjoint_append :
forall (l : list A) l',
NoDup l ->
NoDup l' ->
(forall a, In a l -> ~ In a l') ->
NoDup (l ++ l').