proposition: Lemma Σ_mult_bound n m f: Σ (n * m) f == Σ n (fun i => Σ m (fun j => f (i * m + j)%nat)).
proof: Proof. induction n; intros. reflexivity. unfold Σ in *. simpl. rewrite <- IHn. change (Σ (m + n * m) f == Σ m (fun j => f (n * m + j)%nat) + Σ (n * m) f). rewrite Σ_plus_bound. unfold Basics.compose. ring. Qed.
imports: CoRN.stdlib_omissions.List Coq.QArith.QArith Coq.QArith.Qabs CoRN.model.totalorder.QposMinMax CoRN.model.metric2.Qmetric Coq.Program.Program CoRN.stdlib_omissions.N CoRN.stdlib_omissions.Z CoRN.stdlib_omissions.Q