Skip to content

Commit 00fed87

Browse files
authored
add a type for finite measures (#836)
* add a type for finite measures - s-finite measures from branch kernels - add subprobabilities - dirac instance of probability - rm finite_measure - renaming - minor fix
1 parent 3587d5d commit 00fed87

File tree

4 files changed

+398
-118
lines changed

4 files changed

+398
-118
lines changed

CHANGELOG_UNRELEASED.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
- in `classical_sets.v`:
88
+ canonical `unit_pointedType`
99
- in `measure.v`:
10-
+ definition `finite_measure`
1110
+ mixin `isProbability`, structure `Probability`, type `probability`
1211
+ lemma `probability_le1`
1312
+ definition `discrete_measurable_unit`
@@ -36,7 +35,7 @@
3635
+ lemmas `measurable_curry`, `measurable_fun_fst`, `measurable_fun_snd`,
3736
`measurable_fun_swap`, `measurable_fun_pair`, `measurable_fun_if_pair`
3837
+ lemmas `dirac0`, `diracT`
39-
+ lemma `finite_measure_sigma_finite`
38+
+ lemma `fin_num_fun_sigma_finite`
4039
- in `lebesgue_measure.v`:
4140
+ lemma `measurable_fun_opp`
4241
- in `lebesgue_integral.v`
@@ -88,6 +87,8 @@
8887
+ new lemmas `weak_sep_cvg`, `weak_sep_nbhsE`, `weak_sep_openE`,
8988
`join_product_continuous`, `join_product_open`, `join_product_inj`, and
9089
`join_product_weak`.
90+
- in `measure.v`:
91+
+ structure `FiniteMeasure`, notation `{finite_measure set _ -> \bar _}`
9192

9293
- in file `topology.v`,
9394
+ new definition `clopen`.
@@ -98,6 +99,24 @@
9899
- in file `topology.v`,
99100
+ new lemmas `powerset_filter_fromP` and `compact_cluster_set1`.
100101

102+
- in `measure.v`:
103+
+ definition `sfinite_measure_def`
104+
+ mixin `Measure_isSFinite_subdef`, structure `SFiniteMeasure`,
105+
notation `{sfinite_measure set _ -> \bar _}`
106+
+ mixin `SigmaFinite_isFinite` with field `fin_num_measure`, structure `FiniteMeasure`,
107+
notation `{finite_measure set _ -> \bar _}`
108+
+ lemmas `sfinite_measure_sigma_finite`, `sfinite_mzero`, `sigma_finite_mzero`
109+
+ factory `Measure_isFinite`, `Measure_isSFinite`
110+
+ defintion `sfinite_measure_seq`, lemma `sfinite_measure_seqP`
111+
+ mixin `FiniteMeasure_isSubProbability`, structure `SubProbability`,
112+
notation `subprobability`
113+
+ factory `Measure_isSubProbability`
114+
+ factory `FiniteMeasure_isSubProbability`
115+
+ factory `Measure_isSigmaFinite`
116+
+ lemmas `fin_num_fun_lty`, `lty_fin_num_fun`
117+
+ definition `fin_num_fun`
118+
+ structure `FinNumFun`
119+
101120
### Changed
102121

103122
- in `fsbigop.v`:
@@ -120,6 +139,10 @@
120139
+ lemma `compact_near_coveringP`
121140
- in `functions.v`:
122141
+ notation `mem_fun_`
142+
- in `measure.v`:
143+
+ order of arguments of `isContent`, `Content`, `measure0`, `isMeasure0`,
144+
`Measure`, `isSigmaFinite`, `SigmaFiniteContent`, `SigmaFiniteMeasure`
145+
123146
### Renamed
124147

125148
- in `measurable.v`:
@@ -171,6 +194,8 @@
171194
- in `lebesgue_integral.v`:
172195
+ lemma `integrable_abse`
173196

197+
+ `sigma_finite` generalized from `numFieldType` to `numDomainType`
198+
+ `fin_num_fun_sigma_finite` generalized from `measurableType` to `algebraOfSetsType`
174199

175200
### Deprecated
176201

theories/lebesgue_integral.v

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3732,9 +3732,10 @@ End integrable_fune.
37323732

37333733
Section integral_counting.
37343734
Local Open Scope ereal_scope.
3735-
Variables (R : realType).
3735+
Variable R : realType.
37363736

3737-
Lemma counting_dirac (A : set nat) : counting R A = \sum_(n <oo) \d_ n A.
3737+
Lemma counting_dirac (A : set nat) :
3738+
counting A = \sum_(n <oo) \d_ n A :> \bar R.
37383739
Proof.
37393740
have -> : \sum_(n <oo) \d_ n A = \esum_(i in A) \d_ i A :> \bar R.
37403741
rewrite nneseries_esum// (_ : [set _ | _] = setT); last exact/seteqP.
@@ -3753,13 +3754,12 @@ apply: (@le_lt_trans _ _ (\sum_(i <oo) `|fine (a i)|%:E)).
37533754
apply: lee_nneseries => // n _; rewrite integral_dirac//.
37543755
move: (@summable_pinfty _ _ _ _ sa n Logic.I).
37553756
by case: (a n) => //= r _; rewrite indicE/= mem_set// mul1r.
3756-
move: (sa); rewrite /summable (_ : [set: nat] = (fun=> true))//; last exact/seteqP.
3757-
rewrite -nneseries_esum//; apply: le_lt_trans.
3758-
by apply: lee_nneseries => // n _ /=; case: (a n) => //; rewrite leey.
3757+
move: (sa); rewrite /summable -fun_true -nneseries_esum//; apply: le_lt_trans.
3758+
by apply lee_nneseries => // n _ /=; case: (a n) => //; rewrite leey.
37593759
Qed.
37603760

37613761
Lemma integral_count (a : nat -> \bar R) : summable setT a ->
3762-
\int[counting R]_t (a t) = \sum_(k <oo) (a k).
3762+
\int[counting]_t (a t) = \sum_(k <oo) (a k).
37633763
Proof.
37643764
move=> sa.
37653765
transitivity (\int[mseries (fun n => [the measure _ _ of \d_ n]) O]_t a t).

theories/lebesgue_measure.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ apply/andP; split=> //; apply: contraTneq xbj => ->.
331331
by rewrite in_itv/= le_gtF// (itvP xabi).
332332
Qed.
333333

334-
HB.instance Definition _ := isContent.Build _ R _
334+
HB.instance Definition _ := isContent.Build _ _ R
335335
(hlength : set ocitv_type -> _) (@hlength_ge0') hlength_semi_additive.
336336

337337
Hint Extern 0 ((_ .-ocitv).-measurable _) => solve [apply: is_ocitv] : core.
@@ -378,7 +378,7 @@ do !case: ifPn => //= ?; do ?by rewrite ?adde_ge0 ?lee_fin// ?subr_ge0// ?ltW.
378378
by rewrite addrAC lee_fin ler_add// subr_le0 leNgt.
379379
Qed.
380380

381-
Lemma hlength_sigma_finite : sigma_finite [set: ocitv_type] hlength.
381+
Lemma hlength_sigma_finite : sigma_finite setT (hlength : set ocitv_type -> _).
382382
Proof.
383383
exists (fun k : nat => `] (- k%:R)%R, k%:R]%classic).
384384
apply/esym; rewrite -subTset => x _ /=; exists `|(floor `|x| + 1)%R|%N => //=.

0 commit comments

Comments
 (0)