Skip to content

Commit 9bda506

Browse files
committed
expectation of product
1 parent 47e0e0f commit 9bda506

6 files changed

Lines changed: 827 additions & 4 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,25 @@
1414
+ lemma `partition_disjoint_bigfcup`
1515
- in `lebesgue_measure.v`:
1616
+ lemma `measurable_indicP`
17+
- in `constructive_ereal.v`:
18+
+ notation `\prod_( i <- r | P ) F` for extended real numbers and its variants
19+
20+
- in `numfun.v`:
21+
+ defintions `funrpos`, `funrneg` with notations `^\+` and `^\-`
22+
+ lemmas `funrpos_ge0`, `funrneg_ge0`, `funrposN`, `funrnegN`, `ge0_funrposE`,
23+
`ge0_funrnegE`, `le0_funrposE`, `le0_funrnegE`, `ge0_funrposM`, `ge0_funrnegM`,
24+
`le0_funrposM`, `le0_funrnegM`, `funr_normr`, `funrposneg`, `funrD_Dpos`,
25+
`funrD_posD`, `funrpos_le`, `funrneg_le`
26+
+ lemmas `funerpos`, `funerneg`
27+
28+
- in `measure.v`:
29+
+ lemma `preimage_class_comp`
30+
+ defintions `mapping_display`, `g_sigma_algebra_mappingType`, `g_sigma_algebra_mapping`,
31+
notations `.-mapping`, `.-mapping.-measurable`
32+
33+
- in `lebesgue_measure.v`:
34+
+ lemma `measurable_indicP`
35+
+ lemmas `measurable_funrpos`, `measurable_funrneg`
1736

1837
- in `lebesgue_integral.v`:
1938
+ definition `dyadic_approx` (was `Let A`)
@@ -27,6 +46,19 @@
2746
- in `probability.v`:
2847
+ lemma `expectation_def`
2948
+ notation `'M_`
49+
- in `probability.v`:
50+
+ lemma `expectationM_ge0`
51+
+ definition `independent_events`
52+
+ definition `mutual_independence`
53+
+ definition `independent_RVs`
54+
+ definition `independent_RVs2`
55+
+ lemmas `g_sigma_algebra_mapping_comp`, `g_sigma_algebra_mapping_funrpos`,
56+
`g_sigma_algebra_mapping_funrneg`
57+
+ lemmas `independent_RVs2_comp`, `independent_RVs2_funrposneg`,
58+
`independent_RVs2_funrnegpos`, `independent_RVs2_funrnegneg`,
59+
`independent_RVs2_funrpospos`
60+
+ lemma `expectationM_ge0`, `integrable_expectationM`, `independent_integrableM`,
61+
` expectation_prod`
3062

3163
- in `lebesgue_integral.v`:
3264
+ lemmas `integrable_pushforward`, `integral_pushforward`
@@ -40,6 +72,61 @@
4072
- in `lebesgue_integrale.v`
4173
+ change implicits of `measurable_funP`
4274

75+
76+
- in file `normedtype.v`,
77+
changed `completely_regular_space` to depend on uniform separators
78+
which removes the dependency on `R`. The old formulation can be
79+
recovered easily with `uniform_separatorP`.
80+
81+
- moved from `Rstruct.v` to `Rstruct_topology.v`
82+
+ lemmas `continuity_pt_nbhs`, `continuity_pt_cvg`,
83+
`continuity_ptE`, `continuity_pt_cvg'`, `continuity_pt_dnbhs`
84+
and `nbhs_pt_comp`
85+
86+
- moved from `real_interval.v` to `normedtype.v`
87+
+ lemmas `set_itvK`, `RhullT`, `RhullK`, `set_itv_setT`,
88+
`Rhull_smallest`, `le_Rhull`, `neitv_Rhull`, `Rhull_involutive`,
89+
`disj_itv_Rhull`
90+
- in `topology.v`:
91+
+ lemmas `subspace_pm_ball_center`, `subspace_pm_ball_sym`,
92+
`subspace_pm_ball_triangle`, `subspace_pm_entourage` turned
93+
into local `Let`'s
94+
95+
- in `lebesgue_integral.v`:
96+
+ structure `SimpleFun` now inside a module `HBSimple`
97+
+ structure `NonNegSimpleFun` now inside a module `HBNNSimple`
98+
+ lemma `cst_nnfun_subproof` has now a different statement
99+
+ lemma `indic_nnfun_subproof` has now a different statement
100+
- in `mathcomp_extra.v`:
101+
+ definition `idempotent_fun`
102+
103+
- in `topology_structure.v`:
104+
+ definitions `regopen`, `regclosed`
105+
+ lemmas `closure_setC`, `interiorC`, `closureU`, `interiorU`,
106+
`closureEbigcap`, `interiorEbigcup`,
107+
`closure_open_regclosed`, `interior_closed_regopen`,
108+
`closure_interior_idem`, `interior_closure_idem`
109+
110+
- in file `topology_structure.v`,
111+
+ mixin `isContinuous`, type `continuousType`, structure `Continuous`
112+
+ new lemma `continuousEP`.
113+
+ new definition `mkcts`.
114+
115+
- in file `subspace_topology.v`,
116+
+ new lemmas `continuous_subspace_setT`, `nbhs_prodX_subspace_inE`, and
117+
`continuous_subspace_prodP`.
118+
+ type `continuousFunType`, HB structure `ContinuousFun`
119+
120+
- in file `subtype_topology.v`,
121+
+ new lemmas `subspace_subtypeP`, `subspace_sigL_continuousP`,
122+
`subspace_valL_continuousP'`, `subspace_valL_continuousP`, `sigT_of_setXK`,
123+
`setX_of_sigTK`, `setX_of_sigT_continuous`, and `sigT_of_setX_continuous`.
124+
125+
- in `lebesgue_integrale.v`
126+
+ change implicits of `measurable_funP`
127+
128+
### Changed
129+
43130
### Renamed
44131

45132
- in `lebesgue_measure.v`:
@@ -64,6 +151,7 @@
64151

65152
- in `probability.v`:
66153
+ `integral_distribution` -> `ge0_integral_distribution`
154+
+ `expectationM` -> `expectationMl`
67155

68156
### Generalized
69157

@@ -89,6 +177,26 @@
89177

90178
### Removed
91179

180+
- in `topology_structure.v`:
181+
+ lemma `closureC`
182+
183+
- in file `lebesgue_integral.v`:
184+
+ lemma `approximation`
185+
186+
### Removed
187+
188+
- in `lebesgue_integral.v`:
189+
+ definition `cst_mfun`
190+
+ lemma `mfun_cst`
191+
192+
- in `cardinality.v`:
193+
+ lemma `cst_fimfun_subproof`
194+
195+
- in `lebesgue_integral.v`:
196+
+ lemma `cst_mfun_subproof` (use lemma `measurable_cst` instead)
197+
+ lemma `cst_nnfun_subproof` (turned into a `Let`)
198+
+ lemma `indic_mfun_subproof` (use lemma `measurable_fun_indic` instead)
199+
92200
- in `lebesgue_integral.v`:
93201
+ lemma `measurable_indic` (was uselessly specializing `measurable_fun_indic` (now `measurable_indic`) from `lebesgue_measure.v`)
94202
+ notation `measurable_fun_indic` (deprecation since 0.6.3)

theories/lebesgue_integral.v

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1608,7 +1608,11 @@ move=> m n mn; rewrite (nnsfun_approxE n) (nnsfun_approxE m).
16081608
exact: nd_approx.
16091609
Qed.
16101610

1611+
<<<<<<< HEAD
16111612
#[deprecated(since="mathcomp-analysis 1.8.0", note="use `nnsfun_approx`, `cvg_nnsfun_approx`, and `nd_nnsfun_approx` instead")]
1613+
=======
1614+
#[deprecated(since="mathcomp-analysis 1.7.0", note="use `nnsfun_approx`, `cvg_nnsfun_approx`, and `nd_nnsfun_approx` instead")]
1615+
>>>>>>> da1f3437 (expectation of product)
16121616
Lemma approximation : (forall t, D t -> (0 <= f t)%E) ->
16131617
exists g : {nnsfun T >-> R}^nat, nondecreasing_seq (g : (T -> R)^nat) /\
16141618
(forall x, D x -> EFin \o g^~ x @ \oo --> f x).

theories/lebesgue_measure.v

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,12 @@ by move=> mf mg mD; move: (mD); apply: measurable_fun_if => //;
10531053
[exact: measurable_fun_ltr|exact: measurable_funS mg|exact: measurable_funS mf].
10541054
Qed.
10551055

1056+
Lemma measurable_funrpos D f : measurable_fun D f -> measurable_fun D f^\+.
1057+
Proof. by move=> mf; exact: measurable_maxr. Qed.
1058+
1059+
Lemma measurable_funrneg D f : measurable_fun D f -> measurable_fun D f^\-.
1060+
Proof. by move=> mf; apply: measurable_maxr => //; exact: measurableT_comp. Qed.
1061+
10561062
Lemma measurable_minr D f g :
10571063
measurable_fun D f -> measurable_fun D g -> measurable_fun D (f \min g).
10581064
Proof.

theories/measure.v

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ From HB Require Import structures.
7070
(* G.-sigma.-measurable A == A is measurable for the sigma-algebra <<s G >> *)
7171
(* g_sigma_algebraType G == the measurableType corresponding to <<s G >> *)
7272
(* This is an HB alias. *)
73+
(* g_sigma_algebra_mapping f == sigma-algebra generated by the mapping f *)
74+
(* g_sigma_algebra_mappingType f == the measurableType corresponding to *)
75+
(* g_sigma_algebra_mapping f *)
76+
(* This is an HB alias. *)
77+
(* f.-mapping.-measurable A == A is measurable for g_sigma_algebra_mapping f *)
7378
(* mu .-cara.-measurable == sigma-algebra of Caratheodory measurable sets *)
7479
(* ``` *)
7580
(* *)
@@ -296,6 +301,9 @@ Reserved Notation "'\d_' a" (at level 8, a at level 2, format "'\d_' a").
296301
Reserved Notation "G .-sigma" (at level 1, format "G .-sigma").
297302
Reserved Notation "G .-sigma.-measurable"
298303
(at level 2, format "G .-sigma.-measurable").
304+
Reserved Notation "f .-mapping" (at level 1, format "f .-mapping").
305+
Reserved Notation "f .-mapping.-measurable"
306+
(at level 2, format "f .-mapping.-measurable").
299307
Reserved Notation "d .-ring" (at level 1, format "d .-ring").
300308
Reserved Notation "d .-ring.-measurable"
301309
(at level 2, format "d .-ring.-measurable").
@@ -1729,6 +1737,16 @@ Definition preimage_class (aT rT : Type) (D : set aT) (f : aT -> rT)
17291737
(G : set (set rT)) : set (set aT) :=
17301738
[set D `&` f @^-1` B | B in G].
17311739

1740+
Lemma preimage_class_comp (aT : Type)
1741+
d (rT : measurableType d) d' (T : sigmaRingType d')
1742+
(g : rT -> T) (f : aT -> rT) (D : set aT) :
1743+
measurable_fun setT g ->
1744+
preimage_class D (g \o f) measurable `<=` preimage_class D f measurable.
1745+
Proof.
1746+
move=> mg A; rewrite /preimage_class/= => -[B GB]; exists (g @^-1` B) => //.
1747+
by rewrite -[X in measurable X]setTI; exact: mg.
1748+
Qed.
1749+
17321750
(* f is measurable on the sigma-algebra generated by itself *)
17331751
Lemma preimage_class_measurable_fun d (aT : pointedType) (rT : measurableType d)
17341752
(D : set aT) (f : aT -> rT) :
@@ -1813,6 +1831,58 @@ Qed.
18131831

18141832
End measurability.
18151833

1834+
Definition mapping_display {T T'} : (T -> T') -> measure_display.
1835+
Proof. exact. Qed.
1836+
1837+
Definition g_sigma_algebra_mappingType d' (T : pointedType)
1838+
(T' : measurableType d') (f : T -> T') : Type := T.
1839+
1840+
Definition g_sigma_algebra_mapping d' (T : pointedType)
1841+
(T' : measurableType d') (f : T -> T') :=
1842+
preimage_class setT f (@measurable _ T').
1843+
1844+
Section mapping_generated_sigma_algebra.
1845+
Context {d'} (T : pointedType) (T' : measurableType d').
1846+
Variable f : T -> T'.
1847+
1848+
Let mapping_set0 : g_sigma_algebra_mapping f set0.
1849+
Proof.
1850+
rewrite /g_sigma_algebra_mapping /preimage_class/=.
1851+
by exists set0 => //; rewrite preimage_set0 setI0.
1852+
Qed.
1853+
1854+
Let mapping_setC A :
1855+
g_sigma_algebra_mapping f A -> g_sigma_algebra_mapping f (~` A).
1856+
Proof.
1857+
rewrite /g_sigma_algebra_mapping /preimage_class/= => -[B mB] <-{A}.
1858+
by exists (~` B); [exact: measurableC|rewrite !setTI preimage_setC].
1859+
Qed.
1860+
1861+
Let mapping_bigcup (F : (set T)^nat) :
1862+
(forall i, g_sigma_algebra_mapping f (F i)) ->
1863+
g_sigma_algebra_mapping f (\bigcup_i (F i)).
1864+
Proof.
1865+
move=> mF; rewrite /g_sigma_algebra_mapping /preimage_class/=.
1866+
pose g := fun i => sval (cid2 (mF i)).
1867+
pose mg := fun i => svalP (cid2 (mF i)).
1868+
exists (\bigcup_i g i).
1869+
by apply: bigcup_measurable => k; case: (mg k).
1870+
rewrite setTI /g preimage_bigcup; apply: eq_bigcupr => k _.
1871+
by case: (mg k) => _; rewrite setTI.
1872+
Qed.
1873+
1874+
HB.instance Definition _ := Pointed.on (g_sigma_algebra_mappingType f).
1875+
1876+
HB.instance Definition _ := @isMeasurable.Build (mapping_display f)
1877+
(g_sigma_algebra_mappingType f) (g_sigma_algebra_mapping f)
1878+
mapping_set0 mapping_setC mapping_bigcup.
1879+
1880+
End mapping_generated_sigma_algebra.
1881+
1882+
Notation "f .-mapping" := (mapping_display f) : measure_display_scope.
1883+
Notation "f .-mapping.-measurable" :=
1884+
(measurable : set (set (g_sigma_algebra_mappingType f))) : classical_set_scope.
1885+
18161886
Local Open Scope ereal_scope.
18171887

18181888
Definition subset_sigma_subadditive {T} {R : numFieldType}

0 commit comments

Comments
 (0)