Proof using A B C.
induction l as [|b' l']; simpl in *; intuition; subst.
destruct (in_dec B_eq_dec b l'); intuition.
find_eapply_lem_hyp fold_left_for_each_not_in; eauto.
Qed.

(* Specifications: *)
Lemma hd_error_tl_exists :
forall (l : list A) x,
hd_error l = Some x ->
exists tl,
l = x :: tl.
Lemma hd_error_None :
forall (l : list A),
hd_error l = None ->
l = [].