induction ls1; intuition; simpl in *.
inversion H; clear H; subst.
simpl.
trivial.
inversion H; clear H; subst.
simpl.
intuition.
subst.
simpl in *.
subst.
destruct a2.
simpl in *.
unfold eqbPair.
simpl.
rewrite eqb_refl.
simpl.
case_eq (eqb b1 b); intuition.
Qed.

Theorem arrayLookup_pred_2 :
forall (A B C: Set)(eqda : EqDec A) (P : list B -> list C -> Prop) (ls1 : list (A * list B))(ls2 : list (A * list C)) a,
list_pred (fun x y => (fst x = a \/ fst y = a) -> (fst x = a /\ fst y = a /\ P (snd x) (snd y))) ls1 ls2 ->
P nil nil ->
P (arrayLookupList _ ls1 a) (arrayLookupList _ ls2 a).