@@ -766,6 +766,37 @@ HB.instance Definition _ x :=
766766
767767End mnormalize.
768768
769+ Lemma measurable_fun_mnormalize d d' (X : measurableType d) (Y : measurableType d')
770+ (R : realType) (k : R.-sfker X ~> Y) :
771+ measurable_fun setT (fun x => mnormalize k point x : pprobability Y R).
772+ Proof .
773+ apply: (@measurability _ _ _ _ _ _
774+ (@pset _ _ _ : set (set (pprobability Y R)))) => //.
775+ move=> _ -[_ [r r01] [Ys mYs <-]] <-.
776+ rewrite /mnormalize /mset /preimage/=.
777+ apply: emeasurable_fun_infty_o => //.
778+ rewrite /mnormalize/=.
779+ rewrite (_ : (fun x => _) = (fun x => if (k x setT == 0) || (k x setT == +oo)
780+ then \d_point Ys else k x Ys * ((fine (k x setT))^-1)%:E)); last first.
781+ by apply/funext => x/=; case: ifPn.
782+ apply: measurable_fun_if => //.
783+ - apply: (measurable_fun_bool true) => //.
784+ rewrite (_ : _ @^-1` _ = [set t | k t setT == 0] `|`
785+ [set t | k t setT == +oo]); last first.
786+ by apply/seteqP; split=> x /= /orP//.
787+ by apply: measurableU; exact: kernel_measurable_eq_cst.
788+ - exact: measurable_fun_cst.
789+ - apply/emeasurable_funM; first exact/measurable_funTS/measurable_kernel.
790+ apply/EFin_measurable_fun; rewrite setTI.
791+ apply: (@measurable_fun_comp _ _ _ _ _ _ [set r : R | r != 0%R]).
792+ + exact: open_measurable.
793+ + by move=> /= _ [x /norP[s0 soo]] <-; rewrite -eqe fineK ?ge0_fin_numE ?ltey.
794+ + apply: open_continuous_measurable_fun => //; apply/in_setP => x /= x0.
795+ exact: inv_continuous.
796+ + apply: measurable_funT_comp; last exact/measurable_funS/measurable_kernel.
797+ exact: measurable_fun_fine.
798+ Qed .
799+
769800Section knormalize.
770801Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
771802Variable f : R.-ker X ~> Y.
0 commit comments