Proof using.
intros.
rewrite <- app_ass in *.
find_apply_lem_hyp NoDup_remove_2.
rewrite app_ass in *.
auto 10 with *.
Qed.

(* Specifications: *)
Lemma NoDup_app3_not_in_3 :
forall (xs ys zs : list A) b,
NoDup (xs ++ ys ++ b :: zs) ->
In b zs ->
False.
Lemma In_cons_2_3 :
forall xs ys zs x y a,
In (A:=A) a (xs ++ ys ++ zs) ->
In a (xs ++ x :: ys ++ y :: zs).