Skip to content

Commit e14297c

Browse files
affeldt-aistadjevahihoheinzollern
committed
switch from sigma-algebra generated by ocitv to open sets
Co-authored-by: adjevahi <arthur.djevahirdjian@ens-lyon.fr> Co-authored-by: Alessandro Bruni <brun@itu.dk>
1 parent 0106dd8 commit e14297c

34 files changed

Lines changed: 875 additions & 453 deletions

CHANGELOG_UNRELEASED.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,24 @@
234234
- in `measurable_structure.v`:
235235
+ lemmas `countable_bigcap_measurable`, `countable_bigcup_measurable`
236236

237+
- in `lebesgue_stieltjes_measure.v`:
238+
+ module `MeasurableRocitv`
239+
+ definition `open_type`
240+
+ notations `.-open`, `.-open.-measurable`
241+
+ module `MeasurableRopen`
242+
* definition `measurableTypeR`
243+
+ definition `lebesgue_display`
244+
* definition `measurableR`
245+
+ lemmas `measurable_set1`, `measurable_itv` (also declared as hints)
246+
+ definition `ocitv_measure`, lemma `ocitv_measure_ext`
247+
+ module `MeasurableR`
248+
+ module `RGenOpenSets`
249+
* lemma `measurableE`
250+
+ lemma `open_lebesgue_stieltjes_measure_unique`
251+
252+
- in `real_interval.v`:
253+
+ lemma `set1_bigcap_oo`
254+
237255
### Changed
238256

239257
- in `realsum.v`:
@@ -354,6 +372,15 @@
354372
- in `classical_sets.v`
355373
+ lemma `bigcupDr` -> `setD_bigcupr` (deprecating `bigcupDr`)
356374

375+
- moved from `measurable_realfun.v` to `lebesgue_stieltjes_measure.v`
376+
+ module `RGenOInfty`
377+
+ module `RGenInftyO`
378+
+ module `RGenCInfty`
379+
+ module `RGenOpens`
380+
381+
- moved inside module `MeasurableRocitv` (`lebesgue_stieltjes_measure.v`):
382+
+ lemmas `measurable_set1`, `measurable_itv`
383+
357384
### Renamed
358385

359386
- in `tvs.v`:
@@ -407,6 +434,9 @@
407434
- in `functions.v`
408435
+ lemma `scalrfctE` -> `scalerfctE` (deprecating `scalrfctE`)
409436

437+
- in `lebesgue_stieltjes_measure.v`:
438+
+ lemma `lebesgue_stieltjes_measure_unique` -> `ocitv_lebesgue_stieltjes_measure_unique`
439+
410440
### Generalized
411441

412442
- in `measurable_structure.v`:

reals/real_interval.v

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,18 @@ Qed.
235235

236236
End set_ereal.
237237

238+
Lemma set1_bigcap_oo {R : realType} (x : R) :
239+
[set x] = \bigcap_(k : nat) `]x - k.+1%:R^-1, x + k.+1%:R^-1[%classic.
240+
Proof.
241+
apply/seteqP; split => [_ -> k _|y xy] /=.
242+
by rewrite in_itv/= ltrBlDr andbb ltrDl invr_gt0 ltr0n.
243+
apply/eqP; rewrite eq_sym -subr_eq0 -normr_eq0 eq_le normr_ge0 andbT.
244+
apply/ler_addgt0Pl => e e0; rewrite addr0.
245+
have /= := xy (truncn e^-1) I.
246+
rewrite in_itv/= -ltr_distlC => /ltW/le_trans; apply.
247+
by rewrite invf_ple ?posrE ?ltr0n ?invr_gt0//; apply/ltW/truncnS_gt.
248+
Qed.
249+
238250
Lemma set1_bigcap_oc (R : realType) (r : R) :
239251
[set r] = \bigcap_i `]r - i.+1%:R^-1, r]%classic.
240252
Proof.

theories/borel_hierarchy.v

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ Proof. by exists (fun=> S)=> //; rewrite bigcup_const. Qed.
4747

4848
End Gdelta_Fsigma.
4949

50+
Import MeasurableR.
51+
5052
Lemma Gdelta_measurable {R : realType} (S : set R) : Gdelta S -> measurable S.
5153
Proof.
5254
move=> [] B oB ->; apply: bigcapT_measurable => i.

theories/ftc.v

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ Notation mu := (@lebesgue_measure R).
6868
Local Open Scope ereal_scope.
6969
Implicit Types (f : R -> R) (a : itv_bound R).
7070

71+
Import MeasurableR.
72+
7173
Let FTC0 f a : mu.-integrable setT (EFin \o f) ->
7274
let F x := (\int[mu]_(t in [set` Interval a (BRight x)]) f t)%R in
7375
forall x, a < BRight x -> lebesgue_pt f x ->
@@ -328,6 +330,8 @@ End FTC.
328330
#[deprecated(since="mathcomp-analysis 1.17.0", note="renamed to `integrable_locally_restrict`")]
329331
Notation integrable_locally := integrable_locally_restrict (only parsing).
330332

333+
Import MeasurableR.
334+
331335
Definition parameterized_integral {R : realType}
332336
(mu : {measure set (measurableTypeR R) -> \bar R})
333337
a x (f : R -> R) : R :=
@@ -524,6 +528,8 @@ rewrite mem_set ?mulr1 /=; first exact: subset_itv_oo_cc.
524528
exact: cvg_patch.
525529
Qed.
526530

531+
Import MeasurableR.
532+
527533
Corollary continuous_FTC2 f F a b : (a < b)%R ->
528534
{within `[a, b], continuous f} ->
529535
derivable_oo_LRcontinuous F a b ->
@@ -772,6 +778,8 @@ Notation mu := lebesgue_measure.
772778
Local Open Scope ereal_scope.
773779
Implicit Types (F G f g : R -> R) (a b : R).
774780

781+
Import MeasurableR.
782+
775783
Lemma integration_by_parts F G f g a b : (a < b)%R ->
776784
{within `[a, b], continuous f} ->
777785
derivable_oo_LRcontinuous F a b ->
@@ -824,6 +832,8 @@ Context {R : realType}.
824832
Notation mu := lebesgue_measure.
825833
Implicit Types (F G f g : R -> R) (a b : R).
826834

835+
Import MeasurableR.
836+
827837
Lemma Rintegration_by_parts F G f g a b :
828838
(a < b)%R ->
829839
{within `[a, b], continuous f} ->
@@ -1030,6 +1040,8 @@ Context {R : realType}.
10301040
Notation mu := lebesgue_measure.
10311041
Implicit Types (F G f : R -> R) (a b : R).
10321042

1043+
Import MeasurableR.
1044+
10331045
Lemma integration_by_substitution_decreasing F G a b : (a <= b)%R ->
10341046
{in `[a, b] &, {homo F : x y /~ (x < y)%R}} ->
10351047
{in `]a, b[, continuous F^`()} ->
@@ -1357,7 +1369,7 @@ transitivity (limn (fun n =>
13571369
rewrite -integral_bigsetU_EFin/=.
13581370
- by move=> k; apply: measurableD => //; exact: bigsetU_measurable.
13591371
- exact: iota_uniq.
1360-
- exact: (@sub_trivIset _ _ _ [set: nat]).
1372+
- exact: (@sub_trivIset _ _ _ setT).
13611373
- apply/measurable_EFinP.
13621374
apply: (measurable_funS (measurable_itv `]a, (a + n.+1%:R)%R[)).
13631375
rewrite big_mkord -bigsetU_seqDU.
@@ -1776,11 +1788,12 @@ Qed.
17761788

17771789
End integration_by_substitution.
17781790

1779-
17801791
Section ge0_integration_by_substitution_shift.
17811792
Context {R : realType}.
17821793
Notation mu := (@lebesgue_measure R).
17831794

1795+
Import MeasurableR.
1796+
17841797
Lemma ge0_integration_by_substitution_shift_itvy (f : R -> R) (r e : R) :
17851798
{within `[r + e, +oo[, continuous f} ->
17861799
{in `]r + e, +oo[, forall x : R, 0 <= f x} ->
@@ -1828,6 +1841,8 @@ Context {R : realType}.
18281841
Let mu := (@lebesgue_measure R).
18291842
Local Open Scope ereal_scope.
18301843

1844+
Import MeasurableR.
1845+
18311846
Lemma integration_by_substitution_onem (G : R -> R) (r : R) :
18321847
(0 <= r <= 1)%R ->
18331848
{within `[0%R, r], continuous G} ->
@@ -1869,6 +1884,8 @@ Context {R : realType}.
18691884
Let mu := @lebesgue_measure R.
18701885
Local Open Scope ereal_scope.
18711886

1887+
Import MeasurableR.
1888+
18721889
Lemma ge0_symfun_integralT (f : R -> R) : (forall x, 0 <= f x)%R ->
18731890
continuous f -> f =1 f \o -%R ->
18741891
\int[mu]_x (f x)%:E = 2%:E * \int[mu]_(x in [set x | (0 <= x)%R]) (f x)%:E.
@@ -1877,10 +1894,10 @@ move=> f0 cf evenf.
18771894
have mf : measurable_fun [set: R] f by exact: continuous_measurable_fun.
18781895
have mposnums : measurable [set x : R | 0 <= x]%R by rewrite -set_itvcy.
18791896
rewrite -(setUv [set x : R | 0 <= x]%R) ge0_integral_setU//=.
1880-
exact: measurableC.
1881-
by apply/measurable_EFinP; rewrite setUv.
1882-
by move=> x _; rewrite lee_fin.
1883-
exact/disj_setPCl.
1897+
- exact: measurableC.
1898+
- by apply/measurable_EFinP; rewrite setUv.
1899+
- by move=> x _; rewrite lee_fin.
1900+
- exact/disj_setPCl.
18841901
rewrite mule_natl mule2n; congr +%E.
18851902
rewrite -set_itvcy// setCitvr.
18861903
rewrite integral_itvbo_itvbc; first exact/measurable_EFinP/measurable_funTS.

theories/gauss_integral.v

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ by apply: (cvg_comp (fun x => x ^+ 2) (fun x => expR (- x)));
4141
[exact: cvgr_expr2|exact: cvgr_expR].
4242
Qed.
4343

44+
Import MeasurableR.
45+
4446
Lemma measurable_gauss_fun : measurable_fun setT gauss_fun.
4547
Proof. by apply: measurableT_comp => //; exact: measurableT_comp. Qed.
4648

@@ -63,6 +65,8 @@ Implicit Type x : R.
6365

6466
Let mu : {measure set _ -> \bar R} := @lebesgue_measure R.
6567

68+
Import MeasurableR.
69+
6670
Definition integral0y_gauss := \int[mu]_(x in `[0%R, +oo[) gauss_fun x.
6771

6872
Let integral0y_gauss_ge0 : 0 <= integral0y_gauss.
@@ -350,6 +354,8 @@ Context {R : realType}.
350354
Import gauss_integral_proof.
351355
Let mu := @lebesgue_measure R.
352356

357+
Import MeasurableR.
358+
353359
Lemma integral0y_gauss :
354360
(\int[mu]_(x in `[0%R, +oo[) (gauss_fun x)%:E)%E = (Num.sqrt pi / 2)%:E.
355361
Proof.

theories/hoelder.v

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,13 @@ Qed.
357357
End hoelder_conjugate.
358358

359359
Section hoelder.
360-
Context d {T : measurableType d} {R : realType}.
361-
Variable mu : {measure set T -> \bar R}.
360+
Context {d} {T : measurableType d} {R : realType}
361+
(mu : {measure set T -> \bar R}).
362362
Local Open Scope ereal_scope.
363363
Implicit Types (p q : R) (f g : T -> R).
364364

365+
Import MeasurableR.
366+
365367
Let measurableT_comp_powR f p :
366368
measurable_fun [set: T] f -> measurable_fun setT (fun x => f x `^ p)%R.
367369
Proof. exact: (@measurableT_comp _ _ _ _ _ _ (@powR R ^~ p)). Qed.
@@ -498,6 +500,8 @@ Section hoelder2.
498500
Context {R : realType}.
499501
Local Open Scope ring_scope.
500502

503+
Import MeasurableR.
504+
501505
Lemma hoelder2 (a1 a2 b1 b2 : R) (p q : R) :
502506
0 <= a1 -> 0 <= a2 -> 0 <= b1 -> 0 <= b2 ->
503507
0 < p -> 0 < q -> p^-1 + q^-1 = 1 ->
@@ -534,6 +538,8 @@ Context {R : realType}.
534538
Local Open Scope ring_scope.
535539
Local Open Scope convex_scope.
536540

541+
Import MeasurableR.
542+
537543
Lemma convex_powR p : 1 <= p ->
538544
convex_function (`[0, +oo[%classic : set R) (@powR R ^~ p).
539545
Proof.
@@ -579,8 +585,8 @@ Qed.
579585
End convex_powR.
580586

581587
Section minkowski.
582-
Context d (T : measurableType d) (R : realType).
583-
Variable mu : {measure set T -> \bar R}.
588+
Context {d} {T : measurableType d} {R : realType}
589+
(mu : {measure set T -> \bar R}).
584590
Implicit Types (f g : T -> R) (p : R).
585591

586592
Let convex_powR_abs_half f g p x : 1 <= p ->
@@ -595,6 +601,8 @@ by apply: (convex_powR p1 (Itv01 _ _)) => //=;
595601
rewrite ?inE/= ?in_itv/= ?normr_ge0// ?invr_ge0// invf_le1 ?ler1n.
596602
Qed.
597603

604+
Import MeasurableR.
605+
598606
Let measurableT_comp_powR f p :
599607
measurable_fun setT f -> measurable_fun setT (fun x => f x `^ p)%R.
600608
Proof. exact: (@measurableT_comp _ _ _ _ _ _ (@powR R ^~ p)). Qed.
@@ -788,6 +796,8 @@ Definition finite_norm d (T : measurableType d) (R : realType)
788796
(mu : {measure set T -> \bar R}) (p : \bar R) (f : T -> R) :=
789797
('N[ mu ]_p [ EFin \o f ] < +oo)%E.
790798

799+
Import MeasurableR.
800+
791801
HB.mixin Record isLfunction d (T : measurableType d) (R : realType)
792802
(mu : {measure set T -> \bar R}) (p : \bar R) (p1 : (1 <= p)%E) (f : T -> R)
793803
& @MeasurableFun d _ T R f := {

theories/independence.v

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -427,19 +427,21 @@ Qed.
427427
End independent_generators.
428428

429429
Section independent_RVs2.
430-
Context {R : realType} d d' (T : measurableType d) (T' : measurableType d').
431-
Variable P : probability T R.
430+
Context {R : realType} {d d'} {T : measurableType d} {T' : measurableType d'}
431+
(P : probability T R).
432432

433433
Definition independent_RVs2 (X Y : {mfun T >-> T'}) :=
434434
independent_RVs P [set: bool] (fun b => if b then Y else X).
435435

436436
End independent_RVs2.
437437

438438
Section independent_RVs2_properties.
439-
Context {R : realType} d d' (T : measurableType d) (T' : measurableType d').
440-
Variable P : probability T R.
439+
Context {R : realType} {d d'} {T : measurableType d} {T' : measurableType d'}
440+
(P : probability T R).
441441
Local Open Scope ring_scope.
442442

443+
Import MeasurableR.
444+
443445
Lemma independent_RVs2_comp (X Y : {RV P >-> R}) (f g : {mfun R >-> R}) :
444446
independent_RVs2 P X Y -> independent_RVs2 P (f \o X) (g \o Y).
445447
Proof.
@@ -517,10 +519,11 @@ HB.instance Definition _ (X Y : {RV P >-> T'}) :=
517519
End pairRV.
518520

519521
Section independent_RVs2_properties_realType.
520-
Context {R : realType} d (T : measurableType d).
521-
Variable P : probability T R.
522+
Context {R : realType} {d} {T : measurableType d} (P : probability T R).
522523
Local Open Scope ereal_scope.
523524

525+
Import MeasurableR.
526+
524527
Lemma independent_RVs2_setI_preimage (X Y : {mfun T >-> R}) (A1 A2 : set R) :
525528
measurable A1 -> measurable A2 ->
526529
independent_RVs2 P X Y ->
@@ -551,10 +554,11 @@ Qed.
551554
End independent_RVs2_properties_realType.
552555

553556
Section product_expectation_over_product_measure.
554-
Context {R : realType} d (T : measurableType d).
555-
Variable P : probability T R.
557+
Context {R : realType} {d} {T : measurableType d} (P : probability T R).
556558
Local Open Scope ereal_scope.
557559

560+
Import MeasurableR.
561+
558562
Lemma independent_Lfun1_expectation_product_measure_lty (X Y : {RV P >-> R}) :
559563
independent_RVs2 P X Y ->
560564
(X : _ -> _) \in Lfun P 1 -> (Y : _ -> _) \in Lfun P 1 ->
@@ -598,11 +602,11 @@ Qed.
598602
End product_expectation_over_product_measure.
599603

600604
Section expectationM.
601-
Context {R : realType} d (T : measurableType d).
602-
Variable P : probability T R.
605+
Context {R : realType} {d} {T : measurableType d} (P : probability T R).
603606
Local Open Scope ereal_scope.
604607

605608
Import HBNNSimple.
609+
Import MeasurableR.
606610

607611
#[local] Lemma expectationM_nnsfun (f g : {nnsfun T >-> R}) :
608612
(forall y y', y \in range f -> y' \in range g ->
@@ -773,11 +777,11 @@ Qed.
773777
End expectationM.
774778

775779
Section product_expectation.
776-
Context {R : realType} d (T : measurableType d).
777-
Variable P : probability T R.
780+
Context {R : realType} {d} {T : measurableType d} (P : probability T R).
778781
Local Open Scope ereal_scope.
779782

780783
Import HBNNSimple.
784+
Import MeasurableR.
781785

782786
Lemma independent_Lfun1_expectationM_lty (X Y : {RV P >-> R}) :
783787
independent_RVs2 P X Y ->

0 commit comments

Comments
 (0)