aboutsummaryrefslogtreecommitdiff
path: root/mathcomp/ssreflect/bigop.v
diff options
context:
space:
mode:
authorYves Bertot2021-01-25 11:42:04 +0100
committerGitHub2021-01-25 11:42:04 +0100
commitfb9fb240fe7f6a99035a4db23942cb774458d7a3 (patch)
tree7c39005e536061079a6eb88e69b07c726be40c59 /mathcomp/ssreflect/bigop.v
parent5853de19f08ec7ddb3782ea9bb4783fdc8443558 (diff)
parentf50852b0745b287c0ce8269752507bddd5be9fe2 (diff)
Merge pull request #696 from CohenCyril/sumnB
Adding lemma sumnB
Diffstat (limited to 'mathcomp/ssreflect/bigop.v')
-rw-r--r--mathcomp/ssreflect/bigop.v6
1 files changed, 6 insertions, 0 deletions
diff --git a/mathcomp/ssreflect/bigop.v b/mathcomp/ssreflect/bigop.v
index 10c0849..4455fdd 100644
--- a/mathcomp/ssreflect/bigop.v
+++ b/mathcomp/ssreflect/bigop.v
@@ -1905,6 +1905,12 @@ Lemma leq_sum I r (P : pred I) (E1 E2 : I -> nat) :
\sum_(i <- r | P i) E1 i <= \sum_(i <- r | P i) E2 i.
Proof. by move=> leE12; elim/big_ind2: _ => // m1 m2 n1 n2; apply: leq_add. Qed.
+Lemma sumnB I r (P : pred I) (E1 E2 : I -> nat) :
+ (forall i, P i -> E1 i <= E2 i) ->
+ \sum_(i <- r | P i) (E2 i - E1 i) =
+ \sum_(i <- r | P i) E2 i - \sum_(i <- r | P i) E1 i.
+Proof. by move=> /(_ _ _)/subnK-/(eq_bigr _)<-; rewrite big_split addnK. Qed.
+
Lemma sum_nat_eq0 (I : finType) (P : pred I) (E : I -> nat) :
(\sum_(i | P i) E i == 0)%N = [forall (i | P i), E i == 0%N].
Proof. by rewrite eq_sym -(@leqif_sum I P _ (fun _ => 0%N) E) ?big1_eq. Qed.