unfold G2_1, G2_2.
comp_skip.
eapply comp_spec_eq_impl_eq.
comp_skip.
eapply (@oc_comp_spec_eq _ _ _ _ _ _ _ _ _ _ _ _ _ _ (fun a b => list_pred (fun c d =>  fst c = (snd (fst d)) /\ snd c = snd d) a b)).
econstructor.
intuition.
unfold randomFunc_mem, F_randomFunc.

Theorem arrayLookup_f_equiv :
forall (A B C : Set) (eqdb : EqDec B) (x1 : list (B * C)) (x2 : list (A * B * C)) (a : B),
list_pred
(fun c0 d =>
fst c0 = snd (fst d) /\ snd c0 = snd d) x1 x2 ->
arrayLookup _ x1 a = arrayLookup_f _ x2 a.