Skip to content

Commit b185302

Browse files
Trying to fix the R sigma-algebra issue (#1986)
* Keeping definitionally identical display on R --------- Co-authored-by: Cyril Cohen <cyril.cohen@inria.fr>
1 parent 7e9f1af commit b185302

6 files changed

Lines changed: 32 additions & 27 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,9 @@
128128
* lemmas `zornS_ex`, `domain_extend`, `hahn_banach_witness`
129129
+ theorems `hahn_banach_extension`, `hahn_banach_extension_normed`
130130

131+
- in `lebesgue_stieltjes_measure.v`:
132+
+ definition `lebesgue_display`
133+
131134
### Changed
132135

133136
- moved from `measurable_structure.v` to `classical_sets.v`:

theories/ftc.v

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,7 @@ Corollary FTC1 f a :
263263
{ae mu, forall x, a < BRight x -> derivable F x 1 /\ F^`() x = f x}.
264264
Proof.
265265
move=> intf locf F; move: (locf) => /lebesgue_differentiation.
266-
apply: filterS; first exact: (ae_filter_ringOfSetsType mu).
267-
move=> i fi ai.
266+
apply: filterS => i fi ai.
268267
by apply: (@FTC1_lebesgue_pt _ _ _ (i + 1)%R) => //; rewrite ltrDl.
269268
Qed.
270269

@@ -274,8 +273,7 @@ Corollary FTC1Ny f :
274273
let F x := (\int[mu]_(t in [set` `]-oo, x]]) (f t))%R in
275274
{ae mu, forall x, derivable F x 1 /\ F^`() x = f x}.
276275
Proof.
277-
move=> intf locf F; have := FTC1 intf locf.
278-
apply: filterS; first exact: (ae_filter_ringOfSetsType mu).
276+
move=> intf locf F; have := FTC1 intf locf; apply: filterS.
279277
by move=> r /=; apply; rewrite ltNyr.
280278
Qed.
281279

theories/lebesgue_integral_theory/lebesgue_integral_differentiation.v

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,14 +1016,14 @@ have incl n : Ee `<=` B k `&` (HLf_g_Be n `|` f_g_Be n) by move=> ?; apply.
10161016
near \oo => n.
10171017
rewrite (@le_trans _ _ (mu (B k `&` (HLf_g_Be n `|` f_g_Be n))))//.
10181018
rewrite le_measure// inE//; apply: measurableI; first exact: measurable_ball.
1019-
by apply: measurableU => //; [exact: mEHL|exact: mfge].
1019+
by apply: measurableU => //; exact: mfge.
10201020
rewrite (@le_trans _ _ ((4 / (e / 2))%:E * n.+1%:R^-1%:E))//.
10211021
rewrite (@le_trans _ _ (mu (HLf_g_Be n `|` f_g_Be n)))//.
10221022
rewrite le_measure// inE//.
10231023
apply: measurableI => //.
1024-
by apply: measurableU => //; [exact: mEHL|exact: mfge].
1025-
by apply: measurableU => //; [exact: mEHL|exact: mfge].
1026-
rewrite (le_trans (measureU2 _ _ _))//=; [exact: mEHL|exact: mfge|].
1024+
by apply: measurableU => //; exact: mfge.
1025+
by apply: measurableU => //; exact: mfge.
1026+
rewrite (le_trans (measureU2 _ _ _))//=.
10271027
apply: le_trans; first by apply: leeD; [exact: HL_null|exact: fgn_null].
10281028
rewrite -muleDl// lee_pmul2r// -EFinD lee_fin -{2}(mul1r (_^-1)%R).
10291029
by rewrite -mulrDl natr1.
@@ -1109,7 +1109,7 @@ Lemma lebesgue_density (A : set R) : measurable A ->
11091109
@[r --> 0^'+] --> (\1_A x)%:E}.
11101110
Proof.
11111111
move=> mA; have := lebesgue_differentiation (locally_integrable_indic openT mA).
1112-
apply: filter_app; first exact: (ae_filter_ringOfSetsType mu).
1112+
apply: filter_app.
11131113
apply: aeW => /= x Ax.
11141114
apply: (sube_cvg0 _ _).1 => //.
11151115
move: Ax; rewrite /lebesgue_pt /davg /= -/mu => Ax.

theories/lebesgue_measure.v

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,7 @@ End hlength_extension.
336336

337337
End LebesgueMeasure.
338338

339-
Definition lebesgue_measure {R : realType} :
340-
set (measurableTypeR R) -> \bar R :=
339+
Definition lebesgue_measure {R : realType} : set R -> \bar R :=
341340
lebesgue_stieltjes_measure idfun.
342341
HB.instance Definition _ (R : realType) := Measure.on (@lebesgue_measure R).
343342
HB.instance Definition _ (R : realType) :=
@@ -989,7 +988,7 @@ have : mu \o Dn @ \oo --> mu (\bigcup_n Dn n).
989988
rewrite -setI_bigcupr; rewrite bigcup_itvT setIT.
990989
have finDn n : mu (Dn n) \is a fin_num.
991990
rewrite ge0_fin_numE// (le_lt_trans _ Dfin)//.
992-
by rewrite le_measure// ?inE//=; [exact: mDn|exact: subIsetl].
991+
by rewrite le_measure// ?inE//=; exact: subIsetl.
993992
have finD : mu D \is a fin_num by rewrite fin_num_abs gee0_abs.
994993
rewrite -[mu D]fineK// => /fine_cvg/(_ (interior (ball (fine (mu D)) eps)))[].
995994
exact/nbhs_interior/nbhsx_ballx.
@@ -1001,7 +1000,7 @@ have finDDn : mu D - mu (Dn n) \is a fin_num
10011000
by rewrite ?fin_numB ?finD /= ?(finDn n).
10021001
rewrite -fine_abse // gee0_abs ?sube_ge0 ?finD ?(finDn _) //; last first.
10031002
by rewrite -[_ - _]fineK // lte_fin fine.
1004-
by rewrite le_measure// ?inE//; [exact: measurableI |exact: subIsetl].
1003+
by rewrite le_measure// ?inE//; exact: subIsetl.
10051004
Qed.
10061005

10071006
Lemma lebesgue_regularity_inner (D : set R) (eps : R) :

theories/lebesgue_stieltjes_measure.v

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ From mathcomp Require Import realfun.
3333
(* R.-ocitv.-measurable == semiring of sets of open-closed intervals *)
3434
(* wlength f A := f b - f a with the hull of the set of real *)
3535
(* numbers A being delimited by a and b *)
36+
(* @measurableTypeR R == measurableType generated by R.-ocitv *)
37+
(* @lebesgue_display R == (measure_)display for the sigma-algebra *)
38+
(* generated by R.-ocitv *)
39+
(* @measurableR R == measurable sets generated by R.-ocitv *)
3640
(* lebesgue_stieltjes_measure f == Lebesgue-Stieltjes measure for f *)
3741
(* f is a cumulative function. *)
3842
(* completed_lebesgue_stieltjes_measure f == the completed Lebesgue-Stieltjes *)
@@ -513,12 +517,23 @@ Definition measurableTypeR (R : realType) :=
513517

514518
Section lebesgue_stieltjes_measure.
515519
Context {R : realType}.
516-
Variable f : cumulative R R.
520+
521+
Definition lebesgue_display : measure_display :=
522+
(R.-ocitv.-measurable).-sigma.
523+
Definition measurableR : set (set R) :=
524+
(R.-ocitv.-measurable).-sigma.-measurable.
525+
526+
HB.instance Definition _ : Measurable lebesgue_display (measurableTypeR R) :=
527+
Measurable.on (measurableTypeR R).
528+
(* Presumably it is safe to use NFI here because morally R is unique
529+
and nothing else can be used here *)
530+
#[non_forgetful_inheritance]
531+
HB.instance Definition _ := Measurable.copy R (measurableTypeR R).
517532

518533
Lemma lebesgue_stieltjes_measure_unique
519-
(mu : {measure set (measurableTypeR R) -> \bar R}) :
534+
(f : cumulative R R) (mu : {measure set R -> \bar R}) :
520535
(forall X, ocitv X -> lebesgue_stieltjes_measure f X = mu X) ->
521-
forall A, measurable A -> lebesgue_stieltjes_measure f A = mu A.
536+
forall A : set R, measurable A -> lebesgue_stieltjes_measure f A = mu A.
522537
Proof.
523538
move=> muE A mA; apply: measure_extension_unique => //=.
524539
exact: wlength_sigma_finite.
@@ -551,16 +566,6 @@ Arguments completed_lebesgue_stieltjes_measure {R}.
551566
Section salgebra_R_ssets.
552567
Variable R : realType.
553568

554-
Definition measurableR : set (set R) :=
555-
(R.-ocitv.-measurable).-sigma.-measurable.
556-
557-
HB.instance Definition _ := Pointed.on R.
558-
HB.instance Definition R_isMeasurable :
559-
isMeasurable default_measure_display R :=
560-
@isMeasurable.Build _ (measurableTypeR R) measurableR
561-
measurable0 (@measurableC _ _) (@bigcupT_measurable _ _).
562-
(*HB.instance (Real.sort R) R_isMeasurable.*)
563-
564569
Lemma measurable_set1 (r : R) : measurable [set r].
565570
Proof.
566571
rewrite set1_bigcap_oc; apply: bigcap_measurable => // k _.

theories/measurable_realfun.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1088,7 +1088,7 @@ split=> [|f g|f g]; rewrite !inE/=.
10881088
- exact: measurable_funM.
10891089
Qed.
10901090
HB.instance Definition _ := GRing.isSubringClosed.Build _
1091-
(@mfun d default_measure_display aT rT) mfun_subring_closed.
1091+
(@mfun d lebesgue_display aT rT) mfun_subring_closed.
10921092

10931093
HB.instance Definition _ := [SubChoice_isSubComPzRing of {mfun aT >-> rT} by <:].
10941094

0 commit comments

Comments
 (0)