induction ls; intuition; simpl in *;
econstructor.
inversion H; clear H; subst.
intuition.
eapply in_map_iff in H.
destruct H.
intuition.
eapply H0.
right.
eauto.
left.
eauto.
intuition.
subst.
intuition.
intuition.
inversion H; clear H; subst.
eapply IHls; intuition.
eapply H0.
right.
eapply H.
right.
eapply H1.
intuition.
trivial.
Qed.

(* Specifications: *)
Lemma getUnique_cons :
forall (A : Set)(eqd : eq_dec A)(ls2 ls1 : list A) a,
a :: ls1 = (getUnique ls2 eqd) ->
exists ls3 ls4,
ls2 = ls3 ++ (a :: ls4) /\
ls1 = (getUnique ls4 eqd).