induction a; intuition; simpl in *.
inversion H; clear H; subst.
trivial.
inversion H; clear H; subst.
simpl.
rewrite fst_split_app_eq.
f_equal.
eapply list_pred_fst_split_eq_l .
trivial.
eauto.
Qed.

Theorem fold_add_const_mult :
forall (A : Type)(ls : list A)(c : nat) init,
(fold_left (fun acc _ => acc + c) ls init =
(length ls) * c + init)%nat.