Skip to content

Commit 2fb4502

Browse files
committed
expectation of product
1 parent c3c9a35 commit 2fb4502

File tree

6 files changed

+827
-4
lines changed

6 files changed

+827
-4
lines changed

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`
@@ -53,6 +85,61 @@
5385
- in `lebesgue_integrale.v`
5486
+ change implicits of `measurable_funP`
5587

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

58145
- in `lebesgue_measure.v`:
@@ -77,6 +164,7 @@
77164

78165
- in `probability.v`:
79166
+ `integral_distribution` -> `ge0_integral_distribution`
167+
+ `expectationM` -> `expectationMl`
80168

81169
- file `homotopy_theory/path.v` -> `homotopy_theory/continuous_path.v`
82170

@@ -107,6 +195,26 @@
107195

108196
### Removed
109197

198+
- in `topology_structure.v`:
199+
+ lemma `closureC`
200+
201+
- in file `lebesgue_integral.v`:
202+
+ lemma `approximation`
203+
204+
### Removed
205+
206+
- in `lebesgue_integral.v`:
207+
+ definition `cst_mfun`
208+
+ lemma `mfun_cst`
209+
210+
- in `cardinality.v`:
211+
+ lemma `cst_fimfun_subproof`
212+
213+
- in `lebesgue_integral.v`:
214+
+ lemma `cst_mfun_subproof` (use lemma `measurable_cst` instead)
215+
+ lemma `cst_nnfun_subproof` (turned into a `Let`)
216+
+ lemma `indic_mfun_subproof` (use lemma `measurable_fun_indic` instead)
217+
110218
- in `lebesgue_integral.v`:
111219
+ lemma `measurable_indic` (was uselessly specializing `measurable_fun_indic` (now `measurable_indic`) from `lebesgue_measure.v`)
112220
+ 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
@@ -1604,7 +1604,11 @@ move=> m n mn; rewrite (nnsfun_approxE n) (nnsfun_approxE m).
16041604
exact: nd_approx.
16051605
Qed.
16061606

1607+
<<<<<<< HEAD
16071608
#[deprecated(since="mathcomp-analysis 1.8.0", note="use `nnsfun_approx`, `cvg_nnsfun_approx`, and `nd_nnsfun_approx` instead")]
1609+
=======
1610+
#[deprecated(since="mathcomp-analysis 1.7.0", note="use `nnsfun_approx`, `cvg_nnsfun_approx`, and `nd_nnsfun_approx` instead")]
1611+
>>>>>>> da1f3437 (expectation of product)
16081612
Lemma approximation : (forall t, D t -> (0 <= f t)%E) ->
16091613
exists g : {nnsfun T >-> R}^nat, nondecreasing_seq (g : (T -> R)^nat) /\
16101614
(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
@@ -1049,6 +1049,12 @@ by move=> mf mg mD; move: (mD); apply: measurable_fun_if => //;
10491049
[exact: measurable_fun_ltr|exact: measurable_funS mg|exact: measurable_funS mf].
10501050
Qed.
10511051

1052+
Lemma measurable_funrpos D f : measurable_fun D f -> measurable_fun D f^\+.
1053+
Proof. by move=> mf; exact: measurable_maxr. Qed.
1054+
1055+
Lemma measurable_funrneg D f : measurable_fun D f -> measurable_fun D f^\-.
1056+
Proof. by move=> mf; apply: measurable_maxr => //; exact: measurableT_comp. Qed.
1057+
10521058
Lemma measurable_minr D f g :
10531059
measurable_fun D f -> measurable_fun D g -> measurable_fun D (f \min g).
10541060
Proof.

theories/measure.v

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ From HB Require Import structures.
6565
(* G.-sigma.-measurable A == A is measurable for the sigma-algebra <<s G >> *)
6666
(* g_sigma_algebraType G == the measurableType corresponding to <<s G >> *)
6767
(* This is an HB alias. *)
68+
(* g_sigma_algebra_mapping f == sigma-algebra generated by the mapping f *)
69+
(* g_sigma_algebra_mappingType f == the measurableType corresponding to *)
70+
(* g_sigma_algebra_mapping f *)
71+
(* This is an HB alias. *)
72+
(* f.-mapping.-measurable A == A is measurable for g_sigma_algebra_mapping f *)
6873
(* mu .-cara.-measurable == sigma-algebra of Caratheodory measurable sets *)
6974
(* ``` *)
7075
(* *)
@@ -291,6 +296,9 @@ Reserved Notation "'\d_' a" (at level 8, a at level 2, format "'\d_' a").
291296
Reserved Notation "G .-sigma" (at level 1, format "G .-sigma").
292297
Reserved Notation "G .-sigma.-measurable"
293298
(at level 2, format "G .-sigma.-measurable").
299+
Reserved Notation "f .-mapping" (at level 1, format "f .-mapping").
300+
Reserved Notation "f .-mapping.-measurable"
301+
(at level 2, format "f .-mapping.-measurable").
294302
Reserved Notation "d .-ring" (at level 1, format "d .-ring").
295303
Reserved Notation "d .-ring.-measurable"
296304
(at level 2, format "d .-ring.-measurable").
@@ -1699,6 +1707,16 @@ Definition preimage_class (aT rT : Type) (D : set aT) (f : aT -> rT)
16991707
(G : set (set rT)) : set (set aT) :=
17001708
[set D `&` f @^-1` B | B in G].
17011709

1710+
Lemma preimage_class_comp (aT : Type)
1711+
d (rT : measurableType d) d' (T : sigmaRingType d')
1712+
(g : rT -> T) (f : aT -> rT) (D : set aT) :
1713+
measurable_fun setT g ->
1714+
preimage_class D (g \o f) measurable `<=` preimage_class D f measurable.
1715+
Proof.
1716+
move=> mg A; rewrite /preimage_class/= => -[B GB]; exists (g @^-1` B) => //.
1717+
by rewrite -[X in measurable X]setTI; exact: mg.
1718+
Qed.
1719+
17021720
(* f is measurable on the sigma-algebra generated by itself *)
17031721
Lemma preimage_class_measurable_fun d (aT : pointedType) (rT : measurableType d)
17041722
(D : set aT) (f : aT -> rT) :
@@ -1783,6 +1801,58 @@ Qed.
17831801

17841802
End measurability.
17851803

1804+
Definition mapping_display {T T'} : (T -> T') -> measure_display.
1805+
Proof. exact. Qed.
1806+
1807+
Definition g_sigma_algebra_mappingType d' (T : pointedType)
1808+
(T' : measurableType d') (f : T -> T') : Type := T.
1809+
1810+
Definition g_sigma_algebra_mapping d' (T : pointedType)
1811+
(T' : measurableType d') (f : T -> T') :=
1812+
preimage_class setT f (@measurable _ T').
1813+
1814+
Section mapping_generated_sigma_algebra.
1815+
Context {d'} (T : pointedType) (T' : measurableType d').
1816+
Variable f : T -> T'.
1817+
1818+
Let mapping_set0 : g_sigma_algebra_mapping f set0.
1819+
Proof.
1820+
rewrite /g_sigma_algebra_mapping /preimage_class/=.
1821+
by exists set0 => //; rewrite preimage_set0 setI0.
1822+
Qed.
1823+
1824+
Let mapping_setC A :
1825+
g_sigma_algebra_mapping f A -> g_sigma_algebra_mapping f (~` A).
1826+
Proof.
1827+
rewrite /g_sigma_algebra_mapping /preimage_class/= => -[B mB] <-{A}.
1828+
by exists (~` B); [exact: measurableC|rewrite !setTI preimage_setC].
1829+
Qed.
1830+
1831+
Let mapping_bigcup (F : (set T)^nat) :
1832+
(forall i, g_sigma_algebra_mapping f (F i)) ->
1833+
g_sigma_algebra_mapping f (\bigcup_i (F i)).
1834+
Proof.
1835+
move=> mF; rewrite /g_sigma_algebra_mapping /preimage_class/=.
1836+
pose g := fun i => sval (cid2 (mF i)).
1837+
pose mg := fun i => svalP (cid2 (mF i)).
1838+
exists (\bigcup_i g i).
1839+
by apply: bigcup_measurable => k; case: (mg k).
1840+
rewrite setTI /g preimage_bigcup; apply: eq_bigcupr => k _.
1841+
by case: (mg k) => _; rewrite setTI.
1842+
Qed.
1843+
1844+
HB.instance Definition _ := Pointed.on (g_sigma_algebra_mappingType f).
1845+
1846+
HB.instance Definition _ := @isMeasurable.Build (mapping_display f)
1847+
(g_sigma_algebra_mappingType f) (g_sigma_algebra_mapping f)
1848+
mapping_set0 mapping_setC mapping_bigcup.
1849+
1850+
End mapping_generated_sigma_algebra.
1851+
1852+
Notation "f .-mapping" := (mapping_display f) : measure_display_scope.
1853+
Notation "f .-mapping.-measurable" :=
1854+
(measurable : set (set (g_sigma_algebra_mappingType f))) : classical_set_scope.
1855+
17861856
Local Open Scope ereal_scope.
17871857

17881858
Definition subset_sigma_subadditive {T} {R : numFieldType}

0 commit comments

Comments
 (0)