Skip to content

Commit 75028f0

Browse files
authored
sigma-algebra generated by a function (#1890)
* sigma-algebra generated by a function
1 parent e605221 commit 75028f0

4 files changed

Lines changed: 85 additions & 6 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@
8787
+ lemma `convex_setW`
8888
- in `num_topology.v`:
8989
+ lemmas `cvg_dnbhs_at_right`, `cvg_dnbhs_at_left`
90+
- in `measurable_structure.v`:
91+
+ definitions `preimage_display`, `g_sigma_algebra_preimageType`,
92+
`g_sigma_algebra_preimage`
93+
+ notations `.-preimage`, `.-preimage.-measurable`
94+
95+
- in `measurable_function.v`:
96+
+ lemma `preimage_set_system_compS`
9097

9198
### Changed
9299

theories/measure_theory/measurable_function.v

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,17 @@ HB.instance Definition _ := isMeasurableFun.Build _ _ _ _ (f \o g)
334334

335335
End mfun_measurableType.
336336

337+
Lemma preimage_set_system_compS (aT : Type)
338+
d (rT : measurableType d) d' (T : sigmaRingType d')
339+
(g : rT -> T) (f : aT -> rT) (D : set aT) :
340+
measurable_fun setT g ->
341+
preimage_set_system D (g \o f) measurable `<=`
342+
preimage_set_system D f measurable.
343+
Proof.
344+
move=> mg A; rewrite /preimage_set_system => -[B GB]; exists (g @^-1` B) => //.
345+
by rewrite -[X in measurable X]setTI; exact: mg.
346+
Qed.
347+
337348
Section measurability.
338349

339350
(* f is measurable on the sigma-algebra generated by itself *)

theories/measure_theory/measurable_structure.v

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,19 @@ From mathcomp Require Import ereal topology normedtype sequences.
8989
(* ## Other measure-theoretic definitions *)
9090
(* *)
9191
(* ``` *)
92-
(* preimage_set_system D f G == set system of the preimages by f of sets in G *)
93-
(* image_set_system D f G == set system of the sets with a preimage by f *)
94-
(* in G *)
95-
(* subset_sigma_subadditive mu == alternative predicate defining *)
96-
(* sigma-subadditivity *)
92+
(* preimage_set_system D f G == set system of the preimages by f of sets *)
93+
(* in G *)
94+
(* g_sigma_algebra_preimage f == sigma-algebra generated by the *)
95+
(* function f *)
96+
(* g_sigma_algebra_preimageType f == the measurableType corresponding to *)
97+
(* g_sigma_algebra_preimage f *)
98+
(* This is an HB alias. *)
99+
(* f.-preimage.-measurable A == A is measurable for *)
100+
(* g_sigma_algebra_preimage f *)
101+
(* image_set_system D f G == set system of the sets with a preimage *)
102+
(* by f in G *)
103+
(* subset_sigma_subadditive mu == alternative predicate defining *)
104+
(* sigma-subadditivity *)
97105
(* ``` *)
98106
(* *)
99107
(* ## Product of measurable spaces *)
@@ -128,6 +136,8 @@ Reserved Notation "'d<<' D '>>'".
128136
Reserved Notation "mu .-measurable" (format "mu .-measurable").
129137
Reserved Notation "G .-sigma" (format "G .-sigma").
130138
Reserved Notation "G .-sigma.-measurable" (format "G .-sigma.-measurable").
139+
Reserved Notation "f .-preimage" (format "f .-preimage").
140+
Reserved Notation "f .-preimage.-measurable" (format "f .-preimage.-measurable").
131141
Reserved Notation "'<<l' D , G '>>'" (format "'<<l' D , G '>>'").
132142
Reserved Notation "'<<l' G '>>'" (format "'<<l' G '>>'").
133143
Reserved Notation "'<<d' G '>>'" (format "'<<d' G '>>'").
@@ -1339,6 +1349,58 @@ case=> h0 hC hU; split; first by exists set0 => //; rewrite preimage_set0 setI0.
13391349
exact: (mF' i).2.
13401350
Qed.
13411351

1352+
Definition preimage_display {T T'} : (T -> T') -> measure_display.
1353+
Proof. exact. Qed.
1354+
1355+
Definition g_sigma_algebra_preimageType d' (T : pointedType)
1356+
(T' : measurableType d') (f : T -> T') : Type := T.
1357+
1358+
Definition g_sigma_algebra_preimage d' (T : pointedType)
1359+
(T' : measurableType d') (f : T -> T') :=
1360+
preimage_set_system setT f (@measurable _ T').
1361+
1362+
Section preimage_generated_sigma_algebra.
1363+
Context {d'} (T : pointedType) (T' : measurableType d').
1364+
Variable f : T -> T'.
1365+
1366+
Let preimage_set0 : g_sigma_algebra_preimage f set0.
1367+
Proof.
1368+
rewrite /g_sigma_algebra_preimage /preimage_set_system/=.
1369+
by exists set0 => //; rewrite preimage_set0 setI0.
1370+
Qed.
1371+
1372+
Let preimage_setC A :
1373+
g_sigma_algebra_preimage f A -> g_sigma_algebra_preimage f (~` A).
1374+
Proof.
1375+
rewrite /g_sigma_algebra_preimage /preimage_set_system/= => -[B mB] <-{A}.
1376+
by exists (~` B); [exact: measurableC|rewrite !setTI preimage_setC].
1377+
Qed.
1378+
1379+
Let preimage_bigcup (F : (set T)^nat) :
1380+
(forall i, g_sigma_algebra_preimage f (F i)) ->
1381+
g_sigma_algebra_preimage f (\bigcup_i (F i)).
1382+
Proof.
1383+
move=> mF; rewrite /g_sigma_algebra_preimage /preimage_set_system/=.
1384+
pose g := fun i => sval (cid2 (mF i)).
1385+
pose mg := fun i => svalP (cid2 (mF i)).
1386+
exists (\bigcup_i g i).
1387+
by apply: bigcup_measurable => k; case: (mg k).
1388+
rewrite setTI /g preimage_bigcup; apply: eq_bigcupr => k _.
1389+
by case: (mg k) => _; rewrite setTI.
1390+
Qed.
1391+
1392+
HB.instance Definition _ := Pointed.on (g_sigma_algebra_preimageType f).
1393+
1394+
HB.instance Definition _ := @isMeasurable.Build (preimage_display f)
1395+
(g_sigma_algebra_preimageType f) (g_sigma_algebra_preimage f)
1396+
preimage_set0 preimage_setC preimage_bigcup.
1397+
1398+
End preimage_generated_sigma_algebra.
1399+
1400+
Notation "f .-preimage" := (preimage_display f) : measure_display_scope.
1401+
Notation "f .-preimage.-measurable" :=
1402+
(measurable : set (set (g_sigma_algebra_preimageType f))) : classical_set_scope.
1403+
13421404
Definition image_set_system (aT rT : Type) (D : set aT) (f : aT -> rT)
13431405
(G : set (set aT)) : set (set rT) :=
13441406
[set B : set rT | G (D `&` f @^-1` B)].

theories/measure_theory/probability_measure.v

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ apply/funext => x; rewrite /mnormalize/= probability_setT.
189189
by rewrite onee_eq0/= invr1 mule1.
190190
Qed.
191191

192-
193192
HB.instance Definition _ d (T : measurableType d) (R : realType) :=
194193
isPointed.Build (probability T R) (dirac point).
195194

0 commit comments

Comments
 (0)