induction ls; intuition; simpl in *.
comp_simp.
eapply comp_spec_eq_refl.
comp_skip.
comp_skip.
comp_simp.
eapply comp_spec_eq_refl.
Qed.

(* Specifications: *)
Theorem compMap_randomFunc_NoDup :
forall (A B C: Set){eqda : EqDec A}{eqdb : EqDec B}{eqdc : EqDec C}(ls : list A)(f : A -> B -> Comp C)(rndB : Comp B)(lsf : list (A * B)),
NoDup ls ->
(forall a, In a ls -> arrayLookup _ lsf a = None) ->
comp_spec (fun a b => fst a = fst b)
((oc_compMap _ (fun x => y <--$ query x; $ f x y) ls) _ _ (@randomFunc A B rndB _) lsf)
((oc_compMap _ (fun x => y <--$ query x; $ f x y) ls) _ _ (fun s a => b <-$ rndB; ret (b, s)) tt).