induction ls; intuition; simpl in *.
rewrite  fst_split_app_eq .
f_equal.
trivial.
Qed.

(* Specifications: *)
Theorem fst_split_map_eq :
forall (A B C : Type)(ls : list A)(f : A -> B * C),
fst (split (map f ls)) =
map (fun a => fst (f a)) ls.