induction ls; intuition; simpl in *.
inversion H1; clear H1; subst.
inversion H2; clear H2; subst.
inversion H; clear H; subst.
rewrite H3.
rewrite H1.
rewrite H2.
rewrite <- ratAdd_0_l.
intuition.
inversion H1; clear H1; subst.
inversion H2; clear H2; subst.
inversion H; clear H; subst.
assert (r7 == r3 + r5).
eauto.
assert (r6 == r0 + r4).
eauto.
rewrite H12.
rewrite H8.
rewrite H10.
rewrite H.
rewrite H1.
repeat rewrite <- ratAdd_assoc.
eapply ratAdd_eqRat_compat; intuition.
rewrite ratAdd_assoc.
rewrite (ratAdd_comm r5).
rewrite <- ratAdd_assoc.
intuition.
Qed.

(* Specifications: *)
Lemma sumList_rel_left_total : forall (A : Type)(rel : A -> Rat -> Prop)(ls : list A),
(forall a, In a ls -> exists r, rel a r) ->
exists r, sumList_rel rel ls r.