Proof using.
intros a l1; generalize a; elim l1; simpl in |- *; auto; clear a l1.
Qed.

(* Specifications: *)
Theorem fold_left_eta :
forall l a f1,
(forall a b, In b l -> f a b = f1 a b) -> fold_left f l a = fold_left f1 l a.