@@ -76,22 +76,23 @@ Import numFieldTopology.Exports.
7676Local Open Scope classical_set_scope.
7777Local Open Scope ring_scope.
7878
79- Definition random_variable (d : _) (T : measurableType d) (R : realType )
80- (P : probability T R) := {mfun T >-> R }.
79+ Definition random_variable (d d' : _) (T : measurableType d)
80+ (T' : measurableType d') (R : realType) ( P : probability T R) := {mfun T >-> T' }.
8181
82- Notation "{ 'RV' P >-> R }" := (@random_variable _ _ R P) : form_scope.
82+ Notation "{ 'RV' P >-> T }" := (@random_variable _ _ _ T _ P) : form_scope.
8383
8484Lemma notin_range_measure d (T : measurableType d) (R : realType)
8585 (P : {measure set T -> \bar R}) (X : T -> R) r :
8686 r \notin range X -> P (X @^-1` [set r]) = 0%E.
8787Proof . by rewrite notin_setE => hr; rewrite preimage10. Qed .
8888
89- Lemma probability_range d (T : measurableType d) (R : realType)
90- (P : probability T R) (X : {RV P >-> R}) : P (X @^-1` range X) = 1%E.
89+ Lemma probability_range d d' (T : measurableType d) (T' : measurableType d')
90+ (R : realType) (P : probability T R) (X : {RV P >-> T'}) :
91+ P (X @^-1` range X) = 1%E.
9192Proof . by rewrite preimage_range probability_setT. Qed .
9293
93- Definition distribution d (T : measurableType d) (R : realType )
94- (P : probability T R) (X : {mfun T >-> R }) :=
94+ Definition distribution d d' (T : measurableType d) (T' : measurableType d' )
95+ (R : realType) ( P : probability T R) (X : {mfun T >-> T' }) :=
9596 pushforward P (@measurable_funP _ _ _ _ X).
9697
9798Section distribution_is_probability.
@@ -122,14 +123,15 @@ End distribution_is_probability.
122123
123124Section transfer_probability.
124125Local Open Scope ereal_scope.
125- Context d (T : measurableType d) (R : realType) (P : probability T R).
126+ Context d d' (T : measurableType d) (T' : measurableType d') (R : realType).
127+ Variable (P : probability T R).
126128
127- Lemma probability_distribution (X : {RV P >-> R }) r :
129+ Lemma probability_distribution (X : {RV P >-> T' }) r :
128130 P [set x | X x = r] = distribution P X [set r].
129131Proof . by []. Qed .
130132
131- Lemma integral_distribution (X : {RV P >-> R }) (f : R -> \bar R) :
132- measurable_fun [set: R ] f -> (forall y, 0 <= f y) ->
133+ Lemma integral_distribution (X : {RV P >-> T' }) (f : T' -> \bar R) :
134+ measurable_fun [set: T' ] f -> (forall y, 0 <= f y) ->
133135 \int[distribution P X]_y f y = \int[P]_x (f \o X) x.
134136Proof . by move=> mf f0; rewrite ge0_integral_pushforward. Qed .
135137
@@ -1033,6 +1035,28 @@ apply: mh.
10331035by rewrite inE orbC ny.
10341036Qed .
10351037
1038+ Section pairRV.
1039+ Context d d' {T : measurableType d} {T' : measurableType d'} {R : realType}
1040+ (P : probability T R).
1041+
1042+ Definition pairRV (X Y : {RV P >-> T'}) : T * T -> T' * T' :=
1043+ (fun x => (X x.1, Y x.2)).
1044+
1045+ Lemma pairM (X Y : {RV P >-> T'}) : measurable_fun setT (pairRV X Y).
1046+ Proof .
1047+ rewrite /pairRV.
1048+ apply/prod_measurable_funP; split => //=.
1049+ rewrite (_ : (fst \o (fun x : T * T => (X x.1, Y x.2))) = (fun x => X x.1))//.
1050+ by apply/measurableT_comp => //=.
1051+ rewrite (_ : (snd \o (fun x : T * T => (X x.1, Y x.2))) = (fun x => Y x.2))//.
1052+ by apply/measurableT_comp => //=.
1053+ Qed .
1054+
1055+ HB.instance Definition _ (X Y : {RV P >-> T'}) :=
1056+ @isMeasurableFun.Build _ _ _ _ (pairRV X Y) (pairM X Y).
1057+
1058+ End pairRV.
1059+
10361060Section product_expectation.
10371061Context {R : realType} d (T : measurableType d).
10381062Variable P : probability T R.
@@ -1067,19 +1091,30 @@ by exists B2 => //; rewrite setTI.
10671091by exists B1 => //; rewrite setTI.
10681092Qed .
10691093
1094+ Lemma tmp1 (X Y : {RV P >-> R}) (B1 B2 : set R) :
1095+ measurable B1 -> measurable B2 ->
1096+ independent_RVs2 P X Y ->
1097+ P (X @^-1` B1 `&` Y @^-1` B2) = (P \x P) (pairRV X Y @^-1` (B1 `*` B2)).
1098+ Proof .
1099+ move=> mB1 mB2 XY.
1100+ rewrite (_ : ((fun x : T * T => (X x.1, Y x.2)) @^-1` (B1 `*` B2)) =
1101+ (X @^-1` B1) `*` (Y @^-1` B2)); last first.
1102+ by apply/seteqP; split => [[x1 x2]|[x1 x2]]//.
1103+ rewrite product_measure1E; last 2 first.
1104+ rewrite -[_ @^-1` _]setTI.
1105+ by apply: (measurable_funP X).
1106+ rewrite -[_ @^-1` _]setTI.
1107+ by apply: (measurable_funP Y).
1108+ by rewrite tmp0//.
1109+ Qed .
1110+
10701111Let phi (x : R * R) := (x.1 * x.2)%R.
10711112Let mphi : measurable_fun setT phi.
10721113Proof .
10731114rewrite /= /phi.
10741115by apply: measurable_funM.
10751116Qed .
10761117
1077- Lemma tmp (X Y : {RV P >-> R}) :
1078- independent_RVs2 P X Y ->
1079- distribution P (X * Y)%R = pushforward (distribution P X \x distribution P Y) mphi.
1080- Proof .
1081- Admitted .
1082-
10831118Lemma PP : (P \x P) setT = 1.
10841119Proof .
10851120rewrite /product_measure1 /=.
@@ -1097,61 +1132,73 @@ Qed.
10971132
10981133HB.instance Definition _ := @Measure_isProbability.Build _ _ R (P \x P) PP.
10991134
1100- Definition mulRV (X Y : {RV P >-> R}) := (fun x => X x.1 * Y x.2)%R.
1101-
1102- Lemma pairM (X Y : {RV P >-> R}) : measurable_fun setT (mulRV X Y).
1103- Proof .
1104- apply/measurable_funM => //.
1105- by apply/measurableT_comp.
1106- by apply/measurableT_comp.
1107- Qed .
1108-
1109- HB.instance Definition _ (X Y : {RV P >-> R}) :=
1110- @isMeasurableFun.Build _ _ _ _ (mulRV X Y) (pairM X Y).
1111-
11121135Lemma integrable_expectationM (X Y : {RV P >-> R}) :
11131136 independent_RVs2 P X Y ->
11141137 P.-integrable setT (EFin \o X) -> P.-integrable setT (EFin \o Y) ->
1115- `|'E_(P \x P) [mulRV X Y]| < +oo.
1138+ 'E_(P \x P) [(fun x => `|X x.1 * Y x.2|)%R] < +oo
1139+ (* `|'E_(P) [(fun x => X x * Y x)%R]| < +oo *) .
11161140Proof .
11171141move=> indeXY iX iY.
1118- apply: (@le_lt_trans _ _ 'E_(P \x P)[(fun x => `|X x.1 * Y x.2|%R)]).
1142+ (*apply: (@le_lt_trans _ _ 'E_(P \x P)[(fun x => `|(X x.1 * Y x.2)|%R)]
1143+ (* 'E_(P)[(fun x => `|(X x * Y x)|%R)] *) ).
11191144 rewrite unlock/=.
11201145 rewrite (le_trans (le_abse_integral _ _ _))//.
11211146 apply/measurable_EFinP/measurable_funM.
11221147 by apply/measurableT_comp => //.
1123- by apply/measurableT_comp => //.
1148+ by apply/measurableT_comp => //.*)
11241149rewrite unlock.
1150+ rewrite [ltLHS](_ : _ =
1151+ \int[distribution (P \x P) (pairRV X Y)%R]_x `|x.1 * x.2|%:E); last first.
1152+ rewrite integral_distribution//=; last first.
1153+ apply/measurable_EFinP => //=.
1154+ by apply/measurableT_comp => //=.
1155+ (* admit. (* NG *)*)
11251156rewrite [ltLHS](_ : _ =
11261157 \int[distribution P X \x distribution P Y]_x `|x.1 * x.2|%:E); last first.
1127- transitivity (\int[(distribution (P \x P) (mulRV X Y))]_x (normr x)%:E).
1128- rewrite integral_distribution//=.
1129- exact/measurable_EFinP.
1130- transitivity (
1131- \int[pushforward (distribution P X \x distribution P Y) mphi]_x (normr x)%:E
1132- ); last first.
1133- rewrite ge0_integral_pushforward//=.
1134- exact/measurable_EFinP.
1135- apply: eq_measure_integral => /= A mA _.
1136- rewrite /product_measure1/= /pushforward/=.
1137- rewrite integral_distribution//=.
1138- admit.
1158+ apply: eq_measure_integral => //= A mA _.
1159+ apply/esym.
1160+ apply: product_measure_unique => //= A1 A2 mA1 mA2.
1161+ rewrite /pushforward/=.
1162+ rewrite -tmp1//.
1163+ by rewrite tmp0//.
11391164rewrite fubini_tonelli1//=; last first.
11401165 by apply/measurable_EFinP => /=; apply/measurableT_comp => //=.
11411166rewrite /fubini_F/= -/mu.
1142- rewrite [ltLHS](_ : _ = \int[distribution P X]_x `|x|%:E * \int[distribution P Y]_y `|y|%:E); last first.
1143- admit.
1144- move/integrableP : iX => [mX].
1145- rewrite -(@integral_distribution _ _ _ _ _ (EFin \o normr))//; last 2 first.
1146- exact/measurable_EFinP.
1147- by move=> y; rewrite /= lee_fin.
1148- move=> iX.
1149- move/integrableP : iY => [mY].
1150- rewrite -(@integral_distribution _ _ _ _ _ (EFin \o normr))//; last 2 first.
1167+ rewrite [ltLHS](_ : _ = \int[distribution P X]_x `|x|%:E *
1168+ \int[distribution P Y]_y `|y|%:E); last first.
1169+ rewrite -ge0_integralZr//=; last 2 first.
1170+ exact/measurable_EFinP.
1171+ by apply: integral_ge0 => //.
1172+ apply: eq_integral => x _.
1173+ rewrite -ge0_integralZl//=.
1174+ by under eq_integral do rewrite normrM.
11511175 exact/measurable_EFinP.
1152- by move=> y; rewrite /= lee_fin .
1153- move=> iY .
1176+ rewrite integral_distribution//=; last exact/measurable_EFinP .
1177+ rewrite integral_distribution//=; last exact/measurable_EFinP .
11541178rewrite lte_mul_pinfty//.
1179+ by apply: integral_ge0 => //.
1180+ apply: integral_fune_fin_num => //=.
1181+ by move/integrable_abse : iX => //.
1182+ apply: integral_fune_lt_pinfty => //.
1183+ by move/integrable_abse : iY => //.
1184+ Qed .
1185+
1186+ Lemma expectation_prod (X Y : {RV P >-> R}) :
1187+ independent_RVs2 P X Y ->
1188+ P.-integrable setT (EFin \o X) -> P.-integrable setT (EFin \o Y) ->
1189+ 'E_(P \x P) [(fun x => X x.1 * Y x.2)%R] = 'E_P [X] * 'E_P [Y].
1190+ Proof .
1191+ move=> indeXY iX iY.
1192+ rewrite unlock.
1193+ rewrite -fubini1//=; last first.
1194+ apply/integrableP; split.
1195+ admit.
1196+ have := integrable_expectationM indeXY iX iY.
1197+ rewrite unlock.
1198+ apply: le_lt_trans.
1199+ rewrite le_eqVlt; apply/orP; left.
1200+ by apply/eqP/eq_integral => y _//.
1201+ rewrite /fubini_F/=.
11551202Admitted .
11561203
11571204End product_expectation.
0 commit comments