Fixpoint getUnique(A : Set)(ls : list A)(pf : eq_dec A) : list A :=
  match ls with
    | nil => nil
    | a :: ls' => 
      let ls'' := (getUnique ls' pf) in
        if (in_dec pf a ls'') 
          then ls''
          else a :: ls''
  end.

Lemma getUnique_NoDup : forall (A : Set)(ls : list A)(eqd: eq_dec A), NoDup (getUnique ls eqd).