@@ -34,6 +34,7 @@ Reserved Notation "f `o X" (at level 50, format "f `o '/ ' X").
3434Reserved Notation "X '`^+' n" (at level 11).
3535Reserved Notation "X `+ Y" (at level 50).
3636Reserved Notation "X `- Y" (at level 50).
37+ Reserved Notation "X `* Y" (at level 49).
3738Reserved Notation "k `\o* X" (at level 49).
3839Reserved Notation "''E' X" (format "''E' X", at level 5).
3940Reserved Notation "''V' X" (format "''V' X", at level 5).
@@ -75,6 +76,9 @@ apply/set0P/negP => /eqP setT0; have := probability0.
7576by rewrite -setT0 probability_setT; apply/eqP; rewrite oner_neq0.
7677Qed .
7778
79+ Lemma probability_ge0 (A : set T) : (0 <= P A)%E.
80+ Proof . exact: measure_ge0. Qed .
81+
7882Lemma probability_le1 (A : set T) : measurable A -> (P A <= 1)%E.
7983Proof .
8084move=> mA; rewrite -(@probability_setT _ _ _ P).
@@ -120,6 +124,21 @@ Qed.
120124HB.instance Definition _ m := subr_mfun_subproof m.
121125Definition subr_mfun m := [the {mfun _ >-> R} of subr m].
122126
127+ Definition mabs : R -> R := fun x => `| x |.
128+
129+ Lemma measurable_fun_mabs : measurable_fun setT (mabs).
130+ Proof . exact: measurable_fun_normr. Qed .
131+
132+ HB.instance Definition _ := @IsMeasurableFun.Build _ _ R
133+ (mabs) (measurable_fun_mabs).
134+
135+ Let measurable_fun_mmul d (T : measurableType d) (f g : {mfun T >-> R}) :
136+ measurable_fun setT (f \* g).
137+ Proof . exact/measurable_funM. Qed .
138+
139+ HB.instance Definition _ d (T : measurableType d) (f g : {mfun T >-> R}) :=
140+ @IsMeasurableFun.Build _ _ R (f \* g) (measurable_fun_mmul f g).
141+
123142End mfun.
124143
125144Section comp_mfun.
@@ -158,11 +177,15 @@ Definition sub_RV (X Y : {RV P >-> R}) : {RV P >-> R} :=
158177Definition scale_RV k (X : {RV P >-> R}) : {RV P >-> R} :=
159178 [the {mfun _ >-> _} of k \o* X].
160179
180+ Definition mul_RV (X Y : {RV P >-> R}) : {RV P >-> R} :=
181+ [the {mfun _ >-> _} of (X \* Y)].
182+
161183End random_variables.
162184Notation "f `o X" := (comp_RV f X).
163185Notation "X '`^+' n" := (exp_RV X n).
164186Notation "X `+ Y" := (add_RV X Y).
165187Notation "X `- Y" := (sub_RV X Y).
188+ Notation "X `* Y" := (mul_RV X Y).
166189Notation "k `\o* X" := (scale_RV k X).
167190
168191Section expectation.
0 commit comments