@@ -1245,13 +1245,12 @@ Section independent_RVs.
12451245Context {R : realType} d d' (T : measurableType d) (T' : measurableType d').
12461246Variable P : probability T R.
12471247
1248- Definition independent_RVs (I0 : choiceType) (I : set I0)
1249- (X : I0 -> {mfun T >-> T'}) : Prop :=
1248+ Definition independent_RVs (I0 : choiceType)
1249+ (I : set I0) ( X : I0 -> {mfun T >-> T'}) : Prop :=
12501250 mutual_independence P I (fun i => g_sigma_algebra_mapping (X i)).
12511251
12521252Definition independent_RVs2 (X Y : {mfun T >-> T'}) :=
1253- independent_RVs [set 0%N; 1%N]
1254- [eta (fun => cst point) with 0%N |-> X, 1%N |-> Y].
1253+ independent_RVs [set: bool] [eta (fun=> cst point) with false |-> X, true |-> Y].
12551254
12561255End independent_RVs.
12571256
@@ -1286,54 +1285,54 @@ Local Open Scope ring_scope.
12861285Lemma independent_RVs2_comp (X Y : {RV P >-> R}) (f g : {mfun R >-> R}) :
12871286 independent_RVs2 P X Y -> independent_RVs2 P (f \o X) (g \o Y).
12881287Proof .
1289- move=> indeXY; split => [i [|]->{i}/= Z/=|J J01 E JE] .
1290- - by rewrite /g_sigma_algebra_mapping/= /preimage_set_system/= => -[B mB <-];
1291- exact/measurableT_comp.
1292- - by rewrite /g_sigma_algebra_mapping/= /preimage_set_system/= => -[B mB <-];
1293- exact/measurableT_comp.
1294- - apply indeXY => //= i iJ; have := JE _ iJ .
1295- have : i \in [set 0%N; 1%N] by rewrite inE; apply: J01 .
1296- rewrite inE/= => -[|] /eqP ->/=; rewrite !inE .
1297- + exact: g_sigma_algebra_mapping_comp.
1298- + by case: ifPn => [/eqP ->|i0]; exact: g_sigma_algebra_mapping_comp.
1288+ move=> indeXY; split => /= .
1289+ - move=> [] _ /= A.
1290+ + by rewrite /g_sigma_algebra_mapping/= /preimage_set_system/= => -[B mB <-];
1291+ exact/measurableT_comp.
1292+ + by rewrite /g_sigma_algebra_mapping/= /preimage_set_system/= => -[B mB <-];
1293+ exact/measurableT_comp .
1294+ - move=> J _ E JE .
1295+ apply indeXY => //= i iJ; have := JE _ iJ .
1296+ by move: i {iJ} =>[|]//=; rewrite !inE => Eg;
1297+ exact: g_sigma_algebra_mapping_comp Eg .
12991298Qed .
13001299
13011300Lemma independent_RVs2_funrposneg (X Y : {RV P >-> R}) :
13021301 independent_RVs2 P X Y -> independent_RVs2 P X^\+ Y^\-.
13031302Proof .
1304- move=> indeXY; split=> [/= i [|] -> /=|J J01 E JE].
1305- - exact: g_sigma_algebra_mapping_funrpos.
1303+ move=> indeXY; split=> [[|]/= _|J J2 E JE].
13061304- exact: g_sigma_algebra_mapping_funrneg.
1305+ - exact: g_sigma_algebra_mapping_funrpos.
13071306- apply indeXY => //= i iJ; have := JE _ iJ.
1308- move/J01 : (iJ) => /= -[|] ->//=; rewrite !inE.
1309- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
1310- exact: measurable_funrpos.
1307+ move/J2 : iJ; move: i => [|]// _; rewrite !inE.
13111308 + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
13121309 exact: measurable_funrneg.
1310+ + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R) => //.
1311+ exact: measurable_funrpos.
13131312Qed .
13141313
13151314Lemma independent_RVs2_funrnegpos (X Y : {RV P >-> R}) :
13161315 independent_RVs2 P X Y -> independent_RVs2 P X^\- Y^\+.
13171316Proof .
1318- move=> indeXY; split=> [/= i [|] -> /=|J J01 E JE].
1319- - exact: g_sigma_algebra_mapping_funrneg.
1317+ move=> indeXY; split=> [/= [|]// _ |J J2 E JE].
13201318- exact: g_sigma_algebra_mapping_funrpos.
1319+ - exact: g_sigma_algebra_mapping_funrneg.
13211320- apply indeXY => //= i iJ; have := JE _ iJ.
1322- move/J01 : (iJ) => /= -[|] ->//=; rewrite !inE.
1323- + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
1324- exact: measurable_funrneg.
1321+ move/J2 : iJ; move: i => [|]// _; rewrite !inE.
13251322 + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
13261323 exact: measurable_funrpos.
1324+ + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
1325+ exact: measurable_funrneg.
13271326Qed .
13281327
13291328Lemma independent_RVs2_funrnegneg (X Y : {RV P >-> R}) :
13301329 independent_RVs2 P X Y -> independent_RVs2 P X^\- Y^\-.
13311330Proof .
1332- move=> indeXY; split=> [/= i [|] -> /= |J J01 E JE].
1331+ move=> indeXY; split=> [/= [|]// _ |J J2 E JE].
13331332- exact: g_sigma_algebra_mapping_funrneg.
13341333- exact: g_sigma_algebra_mapping_funrneg.
13351334- apply indeXY => //= i iJ; have := JE _ iJ.
1336- move/J01 : (iJ) => /= - [|] ->//= ; rewrite !inE.
1335+ move/J2 : iJ; move: i => [|]// _ ; rewrite !inE.
13371336 + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
13381337 exact: measurable_funrneg.
13391338 + apply: (g_sigma_algebra_mapping_comp (fun x => maxr (- x) 0)%R).
@@ -1343,11 +1342,11 @@ Qed.
13431342Lemma independent_RVs2_funrpospos (X Y : {RV P >-> R}) :
13441343 independent_RVs2 P X Y -> independent_RVs2 P X^\+ Y^\+.
13451344Proof .
1346- move=> indeXY; split=> [/= i [|] -> /= |J J01 E JE].
1345+ move=> indeXY; split=> [/= [|]//= _ |J J2 E JE].
13471346- exact: g_sigma_algebra_mapping_funrpos.
13481347- exact: g_sigma_algebra_mapping_funrpos.
13491348- apply indeXY => //= i iJ; have := JE _ iJ.
1350- move/J01 : (iJ) => /= - [|] ->//= ; rewrite !inE.
1349+ move/J2 : iJ; move: i => [|]// _ ; rewrite !inE.
13511350 + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
13521351 exact: measurable_funrpos.
13531352 + apply: (g_sigma_algebra_mapping_comp (fun x => maxr x 0)%R).
@@ -1486,23 +1485,22 @@ have {EX EY}EXY' : 'E_P[X_ n] * 'E_P[Y_ n] @[n --> \oo] --> 'E_P[X] * 'E_P[Y].
14861485suff : forall n, 'E_P[X_ n \* Y_ n] = 'E_P[X_ n] * 'E_P[Y_ n].
14871486 by move=> suf; apply: (cvg_unique _ EXY) => //=; under eq_fun do rewrite suf.
14881487move=> n; apply: expectationM_nnsfun => x y xX_ yY_.
1489- suff : P (\big[setI/setT]_(j <- [fset 0%N; 1%N ]%fset)
1488+ suff : P (\big[setI/setT]_(j <- [fset false; true ]%fset)
14901489 [eta fun=> set0 with 0%N |-> X_ n @^-1` [set x],
14911490 1%N |-> Y_ n @^-1` [set y]] j) =
1492- \prod_(j <- [fset 0%N; 1%N ]%fset)
1491+ \prod_(j <- [fset false; true ]%fset)
14931492 P ([eta fun=> set0 with 0%N |-> X_ n @^-1` [set x],
14941493 1%N |-> Y_ n @^-1` [set y]] j).
14951494 by rewrite !big_fsetU1/= ?inE//= !big_seq_fset1/=.
14961495move: indeXY => [/= _]; apply => // i.
1497- by rewrite /= !inE => /orP[|]/eqP ->; auto.
14981496pose AX := dyadic_approx setT (EFin \o X).
14991497pose AY := dyadic_approx setT (EFin \o Y).
15001498pose BX := integer_approx setT (EFin \o X).
15011499pose BY := integer_approx setT (EFin \o Y).
15021500have mA (Z : {RV P >-> R}) m k : (k < m * 2 ^ m)%N ->
15031501 g_sigma_algebra_mapping Z (dyadic_approx setT (EFin \o Z) m k).
15041502 move=> mk; rewrite /g_sigma_algebra_mapping /dyadic_approx mk setTI.
1505- rewrite /preimage_class /=; exists [set` dyadic_itv R m k] => //.
1503+ rewrite /preimage_set_system /=; exists [set` dyadic_itv R m k] => //.
15061504 rewrite setTI/=; apply/seteqP; split => z/=.
15071505 by rewrite inE/= => Zz; exists (Z z).
15081506 by rewrite inE/= => -[r rmk] [<-].
0 commit comments