induction ls; intuition; simpl in *.
intuition.
inversion H1; clear H1; subst.
inversion H; clear H; subst.
intuition; subst.
rewrite H10.
rewrite (H3 r2); eauto.
rewrite (sumList_rel_all_0_inv H5).
rewrite <- ratAdd_0_r.
intuition.
intuition.
eapply H2.
right.
eauto.
intuition; subst.
eauto.
trivial.
eapply eqRat_trans.
rewrite H10.
eapply ratAdd_eqRat_compat.
eapply H2.
left.
eauto.
intuition; subst; intuition.
trivial.
eauto.
rewrite <- ratAdd_0_l.
intuition.
Qed.

(* Specifications: *)
Lemma sumList_rel_body_eq : forall (A : Type)(rel1 rel2 : A -> Rat -> Prop)(ls1 : list A) r1,
sumList_rel rel1 ls1 r1 ->
forall ls2 r2,
(forall a r', rel1 a r' -> rel2 a r') ->
r1 == r2 ->
ls1 = ls2 ->
sumList_rel rel2 ls2 r2.