Skip to content

Commit 14fc493

Browse files
Brixfolyadjevahiaffeldt-aist
authored
Sigma algebra lemmas (#2013)
--------- Co-authored-by: adjevahi <arthur.djevahirdjian@ens-lyon.fr> Co-authored-by: Reynald Affeldt <reynald.affeldt@aist.go.jp>
1 parent c81c3e5 commit 14fc493

4 files changed

Lines changed: 84 additions & 5 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
- in `measurable_structure.v`:
2020
+ lemmas `g_sigma_algebra_cross`, `g_sigma_algebra_rectangle`
21+
+ lemma `sigma_algebra_sub`
2122

2223
- in `measurable_function.v`:
2324
+ lemma `preimage_measurability`
@@ -224,6 +225,15 @@
224225
- in `functions.v`:
225226
+ lemma `preimageD1`
226227

228+
- in `measure_function.v`:
229+
+ lemmas `cvg_measure_bigcap`, `cvg_measure_bigcup`
230+
231+
- in `classical_sets.v`:
232+
+ lemma `bigcup_bigsetU`
233+
234+
- in `measurable_structure.v`:
235+
+ lemmas `countable_bigcap_measurable`, `countable_bigcup_measurable`
236+
227237
### Changed
228238

229239
- in `realsum.v`:
@@ -361,6 +371,7 @@
361371

362372
- in `measurable_structure.v`:
363373
+ `measurable_prod_measurableType` -> `prod_measurable_rectangle`
374+
+ `sub_sigma_algebra2` -> `sigma_algebra_sub`
364375
- in `measurable_realfun.v`:
365376
+ `measurable_fun_itv_co` -> `measurable_fun_itvbb_itvco`
366377
+ `measurable_fun_itv_oc` -> `measurable_fun_itvbb_itvoc`

classical/classical_sets.v

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2343,6 +2343,17 @@ rewrite -(big_mkord xpredT F) -bigcup_seq.
23432343
by apply: eq_bigcupl; split=> i; rewrite /= mem_index_iota leq0n.
23442344
Qed.
23452345

2346+
Lemma bigcup_bigsetU F :
2347+
\bigcup_k \big[setU/set0]_(i < k.+1) F i =
2348+
\bigcup_k \big[setU/set0]_(i < k) F i.
2349+
Proof.
2350+
transitivity (\bigcup_(k in S @` setT) \big[setU/set0]_(i < k) F i).
2351+
by rewrite bigcup_image.
2352+
rewrite [RHS](bigcup_setD1 0%N)// big_ord0 set0U; apply: eq_bigcupl.
2353+
split=> [x [? _ <-//]|x [_ x0]]/=; exists x.-1 => //; rewrite prednK// lt0n.
2354+
exact/eqP.
2355+
Qed.
2356+
23462357
Lemma bigcup_bigsetU_bigcup F :
23472358
\bigcup_k \big[setU/set0]_(i < k.+1) F i = \bigcup_k F k.
23482359
Proof.

theories/measure_theory/measurable_structure.v

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,13 @@ by apply: (PU) => n; apply: GA.
355355
Qed.
356356
Hint Resolve smallest_sigma_algebra : core.
357357

358-
Lemma sub_sigma_algebra2 M : M `<=` G -> <<s D, M >> `<=` <<s D, G >>.
358+
Lemma sigma_algebra_subl M : M `<=` <<s D, G>> -> <<s D, M >> `<=` <<s D, G >>.
359+
Proof.
360+
move=> MsG A + H [sH GH]; apply; split => //; apply: (subset_trans MsG).
361+
exact: bigcap_inf.
362+
Qed.
363+
364+
Lemma sigma_algebra_sub M : M `<=` G -> <<s D, M >> `<=` <<s D, G >>.
359365
Proof. exact: sub_smallest2r. Qed.
360366

361367
Lemma sigma_algebra_id : sigma_algebra D G -> <<s D, G >> = G.
@@ -1157,6 +1163,24 @@ Lemma bigcapT_measurable F :
11571163
(forall k, measurable (F k)) -> measurable (\bigcap_i F i).
11581164
Proof. by move=> PF; apply: bigcap_measurable => //; exists 1. Qed.
11591165

1166+
Lemma countable_bigcup_measurable {U} {F : U -> set T}
1167+
{P : set U} : countable P -> (forall i, P i -> measurable (F i)) ->
1168+
measurable (\bigcup_(i in P) F i).
1169+
Proof.
1170+
move=>/[dup] cP /pfcard_geP =>[[-> _|/surjfunPex [f ->] mF]].
1171+
by rewrite bigcup0.
1172+
by rewrite bigcup_image; apply: bigcupT_measurable=>// i; exact: mF.
1173+
Qed.
1174+
1175+
Lemma countable_bigcap_measurable {U} {F : U -> set T} (P : set U) :
1176+
P !=set0 -> countable P -> (forall k, P k -> measurable (F k)) ->
1177+
measurable (\bigcap_(i in P) F i).
1178+
Proof.
1179+
move=> [j Pj] /pfcard_geP=>[[P0|/surjfunPex [f ->] mF]].
1180+
by rewrite P0/= in Pj.
1181+
by rewrite bigcap_image; apply: bigcap_measurable=>// k _; exact: mF.
1182+
Qed.
1183+
11601184
End sigmaring_lemmas.
11611185

11621186
(* Adapted from mathlib induction_on_inter *)
@@ -1616,7 +1640,7 @@ move=> sX sY; apply/seteqP; split.
16161640
apply: (@measurableI _ (@g_sigma_algebraType _ (X `x` Y))).
16171641
+ by apply: sub_sigma_algebra; left; exists A1 => //; rewrite setTI.
16181642
+ by apply: sub_sigma_algebra; right; exists A2 => //; rewrite setTI.
1619-
- apply: sub_sigma_algebra2 => A [|].
1643+
- apply: sigma_algebra_sub => A [|].
16201644
+ rewrite /preimage_set_system/= => -[A1 XA1 <-{A}].
16211645
by rewrite -setXT setTI; exact: rectangle_setX.
16221646
+ rewrite /preimage_set_system/= => -[A1 XA1 <-{A}].

theories/measure_theory/measure_function.v

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,7 @@ Qed.
16741674
Section measure_continuity.
16751675
Local Open Scope ereal_scope.
16761676

1677-
Lemma nondecreasing_cvg_mu d (T : ringOfSetsType d) (R : realFieldType)
1677+
Lemma nondecreasing_cvg_measure d (T : ringOfSetsType d) (R : realFieldType)
16781678
(mu : {measure set T -> \bar R}) (F : (set T) ^nat) :
16791679
(forall i, measurable (F i)) -> measurable (\bigcup_n F n) ->
16801680
nondecreasing_seq F ->
@@ -1697,7 +1697,7 @@ under eq_fun do rewrite -(big_mkord predT (mu \o seqD F)).
16971697
exact/(nS m.+1)/(leq_trans nm).
16981698
Qed.
16991699

1700-
Lemma nonincreasing_cvg_mu d (T : algebraOfSetsType d) (R : realFieldType)
1700+
Lemma nonincreasing_cvg_measure d (T : algebraOfSetsType d) (R : realFieldType)
17011701
(mu : {measure set T -> \bar R}) (F : (set T) ^nat) :
17021702
mu (F 0%N) < +oo ->
17031703
(forall i, measurable (F i)) -> measurable (\bigcap_n F n) ->
@@ -1716,14 +1716,47 @@ have -> : \bigcap_n F n = F 0%N `&` \bigcap_n F n.
17161716
rewrite -measureD // setDE setC_bigcap setI_bigcupr -[x in bigcup _ x]/G.
17171717
have -> : (fun n => mu (F 0%N) - mu (F n)) = mu \o G.
17181718
by apply: funext => n /=; rewrite measureD// setIidr//; exact/subsetPset/niF.
1719-
apply: nondecreasing_cvg_mu.
1719+
apply: nondecreasing_cvg_measure.
17201720
- by move=> ?; apply: measurableD; exact: mF.
17211721
- rewrite -setI_bigcupr; apply: measurableI; first exact: mF.
17221722
by rewrite -@setC_bigcap; exact: measurableC.
17231723
- by move=> n m NM; apply/subsetPset; apply: setDS; apply/subsetPset/niF.
17241724
Qed.
17251725

1726+
Lemma cvg_measure_bigcup {d} {M : sigmaRingType d} {R : realFieldType}
1727+
{mu : {measure set M -> \bar R}} (A : (set M)^nat)
1728+
(mA : forall i, measurable (A i)) :
1729+
mu (\bigcup_(i < n) A i) @[n-->\oo] --> mu (\bigcup_n A n).
1730+
Proof.
1731+
rewrite -bigcup_bigsetU_bigcup bigcup_bigsetU.
1732+
under eq_bigcupr do rewrite -bigcup_mkord.
1733+
apply: nondecreasing_cvg_measure => [i||n m nm]; [exact: bigcup_measurable|
1734+
by apply: bigcup_measurable => ? ?; exact: bigcup_measurable|].
1735+
by apply/subsetPset => x [i/= i_n Aix]; exists i => //=; exact: leq_trans nm.
1736+
Qed.
1737+
1738+
Lemma cvg_measure_bigcap {d} {M : measurableType d} {R : realFieldType}
1739+
{mu : {measure set M -> \bar R}} (A : (set M)^nat)
1740+
(mA : forall i, measurable (A i)) :
1741+
mu (A 0%N) \is a fin_num ->
1742+
mu (\bigcap_(i < n.+1) A i) @[n-->\oo] --> mu (\bigcap_n A n).
1743+
Proof.
1744+
move=> muA0.
1745+
rewrite [\bigcap_n A n] (_:_ = \bigcap_n (\bigcap_(i < n.+1) A i)).
1746+
by rewrite eqEsubset/bigcap; split=> [a/= + j _ i _|a/= aIa i _];
1747+
[exact|exact: (aIa i.+1)].
1748+
apply: nonincreasing_cvg_measure.
1749+
- by rewrite bigcap_mkord big_ord1 -ge0_fin_numE.
1750+
- by move=> i; exact: bigcap_measurableType.
1751+
- by apply: bigcap_measurableType=> k _; exact: bigcap_measurableType.
1752+
- by move=> n m nm; apply/subsetPset=> x + i/= i_n; apply; exact: leq_trans nm.
1753+
Qed.
1754+
17261755
End measure_continuity.
1756+
#[deprecated(since="mathcomp-analysis 1.17.0", use=nondecreasing_cvg_measure)]
1757+
Notation nondecreasing_cvg_mu := nondecreasing_cvg_measure.
1758+
#[deprecated(since="mathcomp-analysis 1.17.0", use=nonincreasing_cvg_measure)]
1759+
Notation nonincreasing_cvg_mu := nonincreasing_cvg_measure.
17271760

17281761
Section g_sigma_algebra_measure_unique_trace.
17291762
Context d (R : realType) (T : measurableType d).

0 commit comments

Comments
 (0)