Add set of lemmas for esum - #2062
Conversation
[CI] Update Nix toolbox
fixes math-comp#2043 (missing useful instances)
| have // : (\esum_(i in I) a i = 0); by apply pos_esum1. | ||
| Qed. | ||
|
|
||
| Lemma pos_esum_ge1 (I : set T) (f: T -> \bar R) : |
There was a problem hiding this comment.
| Lemma pos_esum_ge1 (I : set T) (f: T -> \bar R) : | |
| Lemma pos_esum_ge1 (I : set T) (f : T -> \bar R) : |
|
|
||
| Lemma le_pos_esum S f g : (forall i, S i -> f i <= g i) -> | ||
| Lemma pos_neq0_esum (I : set T) (a : T -> \bar R) : | ||
| \esum_(i in I) a i <> 0 -> exists i, a i <> 0. |
There was a problem hiding this comment.
| \esum_(i in I) a i <> 0 -> exists i, a i <> 0. | |
| \esum_(i in I) a i <> 0 -> exists i, a i <> 0. |
|
|
||
| Lemma le_pos_esum_fine {U : choiceType} (f: T -> U -> \bar R): | ||
| (forall x y, 0 <= f x y)%E -> | ||
| (\esum_(i in [set: U]) (fine (\esum_(x in [set: T]) f x i))%:E <= |
There was a problem hiding this comment.
Can't this be generalized to any A : set U and B : set T?
| by rewrite sube0. | ||
| Qed. | ||
|
|
||
| Lemma esum_pos_esum S f : (forall x, S x -> 0 <= f x) -> |
There was a problem hiding this comment.
This lemma does not look necessary since it is essentially ge0_esum.
| (* Lemma le_esum S f g : (forall x, S x -> 0 <= f x) -> *) | ||
| (* (forall x, S x -> f x <= g x) -> *) | ||
| (* \esum_(x in S) f x <= \esum_(x in S) g x. *) | ||
| (* Proof. *) | ||
| (* move=> f0 leS; have g0 x : S x -> 0 <= g x. *) | ||
| (* by move=> /[dup] Ax /leS; apply: le_trans; exact: f0 Ax. *) | ||
| (* by rewrite !ge0_esum// PosEsum.le_pos_esum. *) | ||
| (* Qed. *) |
There was a problem hiding this comment.
| (* Lemma le_esum S f g : (forall x, S x -> 0 <= f x) -> *) | |
| (* (forall x, S x -> f x <= g x) -> *) | |
| (* \esum_(x in S) f x <= \esum_(x in S) g x. *) | |
| (* Proof. *) | |
| (* move=> f0 leS; have g0 x : S x -> 0 <= g x. *) | |
| (* by move=> /[dup] Ax /leS; apply: le_trans; exact: f0 Ax. *) | |
| (* by rewrite !ge0_esum// PosEsum.le_pos_esum. *) | |
| (* Qed. *) |
| rewrite esum_if_eq_op. | ||
| by rewrite esum_set1. |
There was a problem hiding this comment.
| rewrite esum_if_eq_op. | |
| by rewrite esum_set1. | |
| rewrite esum_if_eq_op. | |
| by rewrite esum_set1. |
| Qed. | ||
|
|
||
| Lemma neq0_esum {R : realType} {T : choiceType} (I : set T) (a : T -> \bar R) : | ||
| \esum_(i in I) a i <> 0 -> exists i, a i <> 0. |
There was a problem hiding this comment.
| \esum_(i in I) a i <> 0 -> exists i, a i <> 0. | |
| \esum_(i in I) a i <> 0 -> exists i, a i <> 0. |
| have // : (\esum_(i in I) a i = 0); by apply esum1. | ||
| Qed. | ||
|
|
||
| Lemma esum_ge1 {R : realType} {T : choiceType} (I : set T) (f: T -> \bar R) : |
There was a problem hiding this comment.
| Lemma esum_ge1 {R : realType} {T : choiceType} (I : set T) (f: T -> \bar R) : | |
| Lemma esum_ge1 {R : realType} {T : choiceType} (I : set T) (f : T -> \bar R) : |
| Proof. by move=> ??; apply/summable_muleC /summableZ. Qed. | ||
|
|
||
| Lemma summableMl D f1 f2 : | ||
| (exists M, (forall x, D x -> `|f1 x| <= M) /\ M \is a fin_num) -> |
There was a problem hiding this comment.
Use exists2 is often a good idea.
|
Sorry for the random, minor comments. |
Motivation for this change
Set of lemmas for
esumextracted from #2049.Checklist
CHANGELOG_UNRELEASED.mdReminder to reviewers