intuition.
unfold F_randomFunc in *.
case_eq (arrayLookup_f (Bvector_EqDec b) c0 (F x d)); intuition.
rewrite H2 in H1.
repeat simp_in_support.
simpl in *.
remember (split c0) as z.
destruct z.
simpl in *.
eapply funcCollision_true_cons; eauto.
rewrite H2 in H1.
repeat simp_in_support.
simpl in *.
remember (split c0) as z.
destruct z.
simpl in *.
eapply funcCollision_true_cons; eauto.
Qed.

(* Specifications: *)
Theorem randomFunc_mem_preserves_coll :
forall (D1 D2 R : Set)(eqdd : EqDec D1)(eqdd2 : EqDec D2)(eqdr : EqDec R) (RndR : Comp R) (c0 : list ((D1 * D2) * R)) d a b0,
funcCollision _ _ (fst (split c0)) = true ->
In (a, b0) (getSupport (randomFunc_mem _ _  RndR c0 d)) ->
funcCollision _ _ (fst (split b0)) = true.
Theorem randomFunc_mem_preserves_coll :
forall (D1 D2 R : Set)(eqdd : EqDec D1)(eqdd2 : EqDec D2)(eqdr : EqDec R) (RndR : Comp R) (c0 : list ((D1 * D2) * R)) d a b0,
funcCollision _ _ (fst (split c0)) = true ->
In (a, b0) (getSupport (randomFunc_mem _ _  RndR c0 d)) ->
funcCollision _ _ (fst (split b0)) = true.