Skip to content

Commit bfe024c

Browse files
authored
Merge pull request #243 from math-comp/measure_minor_cleaning
minor fix, generalizations, cleaning
2 parents 1b1c6be + bc0e4b2 commit bfe024c

File tree

3 files changed

+30
-26
lines changed

3 files changed

+30
-26
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@
6767
valid for a `uniformType`
6868
+ moved `continuous_withinNx` from `normedType.v` to `topology.v` and
6969
generalised it to `uniformType`
70+
- moved from `measure.v` to `sequences.v`
71+
+ `ereal_nondecreasing_series`
72+
+ `ereal_nneg_series_lim_ge` (renamed from `series_nneg`)
7073

7174
### Renamed
7275

theories/measure.v

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@ Require Import boolp reals ereal.
66
Require Import classical_sets posnum topology normedtype sequences.
77

88
(******************************************************************************)
9-
(* This file provides basic elements of a theory of measure illustrated *)
10-
(* by a formalization of Boole's inequality. *)
9+
(* This file provides basic elements of a theory of measure. *)
1110
(* *)
1211
(* {measure set T -> {ereal R}} == type of a measure over sets of elements of *)
1312
(* type T where R is expected to be a *)
1413
(* a realFieldType or a realType *)
14+
(* *)
15+
(* Theorems: Boole_inequality, generalized_Boole_inequality *)
1516
(******************************************************************************)
1617

1718
Set Implicit Arguments.
@@ -24,7 +25,7 @@ Local Open Scope ring_scope.
2425

2526
(* TODO: move to classical_sets *)
2627
Definition triviset T (U : nat -> set T) :=
27-
forall j i, (i != j)%nat -> U i `&` U j = set0.
28+
forall i j, (i != j)%nat -> U i `&` U j = set0.
2829

2930
Module Measurable.
3031

@@ -256,7 +257,7 @@ Definition B_of (A : (set T) ^nat) :=
256257
Lemma triviset_B_of (A : (set T) ^nat) :
257258
{homo A : n m / (n <= m)%nat >-> n `<=` m} -> triviset (B_of A).
258259
Proof.
259-
move=> ndA j i; wlog : j i / (i < j)%N.
260+
move=> ndA i j; wlog : i j / (i < j)%N.
260261
move=> h; rewrite neq_ltn => /orP[|] ?; by
261262
[rewrite h // ltn_eqF|rewrite setIC h // ltn_eqF].
262263
move=> ij _; move: j i ij; case => // j [_ /=|n].
@@ -362,25 +363,6 @@ Qed.
362363
End boole_inequality.
363364
Notation le_mu_bigsetU := Boole_inequality.
364365

365-
(* NB: see also nondecreasing_series *)
366-
Lemma ereal_nondecreasing_series (R : realFieldType) (u_ : {ereal R} ^nat) :
367-
(forall n, 0%:E <= u_ n)%E ->
368-
nondecreasing_seq (fun n => \sum_(i < n) u_ i)%E.
369-
Proof.
370-
move=> u_ge0 n m nm; rewrite -(subnKC nm).
371-
rewrite -[X in (_ <= X)%E](big_mkord xpredT) /index_iota subn0 iota_add.
372-
rewrite big_cat -[in X in (_ <= X + _)%E](subn0 n) big_mkord lee_addl //=.
373-
by rewrite sume_ge0.
374-
Qed.
375-
376-
Lemma series_nneg (R : realType) (u_ : {ereal R} ^nat) k :
377-
(forall n, (0%:E <= u_ n)%E) ->
378-
(\sum_(i < k.+1) u_ i <= lim (fun n : nat => \sum_(i < n) u_ i))%E.
379-
Proof.
380-
move/ereal_nondecreasing_series/nondecreasing_seq_ereal_cvg/cvg_lim => -> //.
381-
by apply ereal_sup_ub; exists k.+1.
382-
Qed.
383-
384366
Section generalized_boole_inequality.
385367
Variables (R : realType) (T : measurableType).
386368
Variable (mu : {measure set T -> {ereal R}}).
@@ -409,7 +391,7 @@ have -> : lim (mu \o B) = ereal_sup ((mu \o B) @` setT).
409391
exact: subset_bigsetU.
410392
have BA : forall m, (mu (B m) <= lim (fun n : nat => \sum_(i < n) mu (A i)))%E.
411393
move=> m; rewrite (le_trans (le_mu_bigsetU mu mA m.+1)) // -/(B m).
412-
by apply: (@series_nneg _ (mu \o A)) => n; exact: measure_ge0.
394+
by apply: (@ereal_nneg_series_lim_ge _ (mu \o A)) => n; exact: measure_ge0.
413395
by apply ub_ereal_sup => /= x [n _ <-{x}]; apply BA.
414396
Qed.
415397

theories/sequences.v

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -775,7 +775,7 @@ Qed.
775775

776776
Section sequences_of_extended_real_numbers.
777777

778-
(* TODO: worth keeping in addition to cvgPpinfty? *)
778+
(* NB: worth keeping in addition to cvgPpinfty? *)
779779
Lemma cvgPpinfty_lt (R : realFieldType) (u_ : R^o ^nat) :
780780
u_ --> +oo <-> forall A, A > 0 -> \forall n \near \oo, A < u_ n.
781781
Proof.
@@ -786,7 +786,7 @@ exists n => // m nm; rewrite (@lt_le_trans _ _ (A *+ 2)) // ?mulr2n ?ltr_addr //
786786
exact: uoo.
787787
Qed.
788788

789-
Lemma dvg_ereal_cvg (R : realType) (u_ : (R^o) ^nat) :
789+
Lemma dvg_ereal_cvg (R : realFieldType) (u_ : (R^o) ^nat) :
790790
u_ --> +oo -> (fun n => (u_ n)%:E) --> +oo%E.
791791
Proof.
792792
move/cvgPpinfty_lt => uoo; apply/cvg_ballP => _/posnumP[e]; rewrite near_map.
@@ -909,4 +909,23 @@ rewrite ltr_subl_addr addrC -ltr_subl_addr (lt_le_trans leum) //.
909909
by rewrite le_contract nd_u_//; near: n; exists m.
910910
Grab Existential Variables. all: end_near. Qed.
911911

912+
(* NB: see also nondecreasing_series *)
913+
Lemma ereal_nondecreasing_series (R : realDomainType) (u_ : {ereal R} ^nat) :
914+
(forall n, 0%:E <= u_ n)%E ->
915+
nondecreasing_seq (fun n => \sum_(i < n) u_ i)%E.
916+
Proof.
917+
move=> u_ge0 n m nm; rewrite -(subnKC nm).
918+
rewrite -[X in (_ <= X)%E](big_mkord xpredT) /index_iota subn0 iota_add.
919+
rewrite big_cat -[in X in (_ <= X + _)%E](subn0 n) big_mkord lee_addl //=.
920+
by rewrite sume_ge0.
921+
Qed.
922+
923+
Lemma ereal_nneg_series_lim_ge (R : realType) (u_ : {ereal R} ^nat) k :
924+
(forall n, (0%:E <= u_ n)%E) ->
925+
(\sum_(i < k) u_ i <= lim (fun n : nat => \sum_(i < n) u_ i))%E.
926+
Proof.
927+
move/ereal_nondecreasing_series/nondecreasing_seq_ereal_cvg/cvg_lim => -> //.
928+
by apply ereal_sup_ub; exists k.
929+
Qed.
930+
912931
End sequences_of_extended_real_numbers.

0 commit comments

Comments
 (0)