End AbelianGroup1.
(** Sum *)
Section Sums.
Context {G : AbelianGroup}.
Definition sum_n_m (a : nat -> G) n m :=
iter_nat plus zero a n m.
Definition sum_n (a : nat -> G) n :=
sum_n_m a O n.

Lemma sum_n_switch :
forall (u : nat -> nat -> G) (m n : nat),
sum_n (fun i => sum_n (u i) n) m = sum_n (fun j => sum_n (fun i => u i j) m) n.