intuition.
unfold shuffle in *.
comp_skip.
eapply rndListElem_pred.
eapply getAllPerms_permute_eq.
simpl in H1.
eapply comp_spec_ret; intuition.
destruct a.
destruct H1.
intuition.
subst.
trivial.
subst.
simpl.
intuition.
Qed.

(* Specifications: *)
Theorem shuffle_RndPerm_spec_eq :
forall (A : Set)(eqd : EqDec A)(ls : list A),
comp_spec eq
(shuffle eqd ls)
(x <-$ RndPerm (length ls); ret permute ls x).