induction 1; intros; simpl in *.
intuition.
discriminate.
destruct a1.
destruct a2.
destruct H.
simpl in *.
subst.
intuition.
case_eq (eqb v a0); intuition.
rewrite H4 in H3.
inversion H3; clear H3; subst.
econstructor; eauto.
rewrite H4 in H3.
edestruct H.
eauto.
intuition.
case_eq (eqb v a0); intuition.
rewrite H4 in H3.
discriminate.
rewrite H4 in H3.
eauto.
Qed.

(* Specifications: *)
Theorem arrayLookup_In_NoDup :
forall (A B : Set)(eqda : EqDec A)(ls : list (A * B)) a b,
In (a, b) ls ->
NoDup (fst (split ls)) ->
arrayLookup _ ls a = Some b.