induction ls; intuition; simpl in *.
eapply IHls; eauto.
eapply ratAdd_eqRat_compat; eauto.
Qed.

(* Specifications: *)
Lemma fold_add_rat_perm : forall (ls1 ls2 : list A)(f1 f2 : A -> Rat),
Permutation ls1 ls2 ->
forall init1 init2,
init1 == init2 ->
(forall (a : A), In a ls1 -> (f1 a) == (f2 a)) ->
fold_left (fun r a => r + (f1 a)) ls1 init1 == fold_left (fun r a => r + (f2 a)) ls2 init2.