induction ls; intuition; simpl in *.
remember (split ls) as z.
destruct z.
unfold unzip.
simpl.
f_equal.
f_equal.
assert (l = fst (l, l0)).
trivial.
rewrite H.
rewrite <- IHls.
trivial.
assert (l0 = snd (l, l0)).
trivial.
rewrite H.
rewrite <- IHls.
f_equal.
Qed.

(* Specifications: *)
Theorem in_split_r_if:
forall (A B : Type) (ls : list (A * B)) (b : B),
In b (snd (split ls)) -> exists a : A, In (a, b) ls.