induction ls; intuition; simpl in *.
intuition.
pairInv.
remember (split ls) as z.
destruct z.
simpl.
intuition.
remember (split ls) as z.
destruct z.
simpl in *.
right.
eapply IHls.
eauto.
Qed.

(* Specifications: *)
Theorem map_pair_fst_eq :
forall (A B C D: Type)(f1 : B -> D)(f2 : C -> D)(ls1 : list B)(ls2 : list C)(a1 a2 : A),
map (fun x => (a1, f1 x)) ls1 = map (fun x => (a2, f2 x)) ls2 ->
ls1 <> nil ->
a1 = a2.