@@ -132,7 +132,7 @@ Lemma measurable_fun_kseries (U : set Y) :
132132 measurable U -> measurable_fun [set: X] (kseries ^~ U).
133133Proof .
134134move=> mU.
135- by apply: ge0_emeasurable_fun_sum => // n; exact/measurable_kernel.
135+ by apply: ge0_emeasurable_fun_sum => // n _ ; exact/measurable_kernel.
136136Qed .
137137
138138HB.instance Definition _ :=
@@ -506,7 +506,7 @@ Variable k : X * Y -> \bar R.
506506
507507Lemma measurable_fun_xsection_integral
508508 (l : X -> {measure set Y -> \bar R})
509- (k_ : ( {nnsfun [the measurableType _ of X * Y] >-> R}) ^nat)
509+ (k_ : {nnsfun ( X * Y) >-> R}^nat)
510510 (ndk_ : nondecreasing_seq (k_ : (X * Y -> R)^nat))
511511 (k_k : forall z, (k_ n z)%:E @[n --> \oo] --> k z) :
512512 (forall n r,
@@ -585,7 +585,7 @@ have [l_ hl_] := sfinite_kernel l.
585585rewrite (_ : (fun x => _) = (fun x =>
586586 mseries (l_ ^~ x) 0 (xsection (k_ n @^-1` [set r]) x))); last first.
587587 by apply/funext => x; rewrite hl_//; exact/measurable_xsection.
588- apply: ge0_emeasurable_fun_sum => // m.
588+ apply: ge0_emeasurable_fun_sum => // m _ .
589589by apply: measurable_fun_xsection_finite_kernel => // /[!inE].
590590Qed .
591591
614614HB.instance Definition _ := isKernel.Build _ _ _ _ _ (kdirac mf)
615615 measurable_fun_kdirac.
616616
617- Let kdirac_prob x : kdirac mf x setT = 1.
617+ Let kdirac_prob x : kdirac mf x [set: Y] = 1.
618618Proof . by rewrite /kdirac/= diracT. Qed .
619619
620620HB.instance Definition _ := Kernel_isProbability.Build _ _ _ _ _
@@ -717,46 +717,14 @@ HB.instance Definition _ t :=
717717 Kernel_isFinite.Build _ _ _ _ R (kadd k1 k2) kadd_finite_uub.
718718End fkadd.
719719
720- Lemma measurable_fun_mnormalize d d' (X : measurableType d)
721- (Y : measurableType d') (R : realType) (k : R.-ker X ~> Y) :
722- measurable_fun [set: X] (fun x =>
723- [the probability _ _ of mnormalize (k x) point] : pprobability Y R).
724- Proof .
725- apply: (@measurability _ _ _ _ _ _
726- (@pset _ _ _ : set (set (pprobability Y R)))) => //.
727- move=> _ -[_ [r r01] [Ys mYs <-]] <-.
728- rewrite /mnormalize /mset /preimage/=.
729- apply: emeasurable_fun_infty_o => //.
730- rewrite /mnormalize/=.
731- rewrite (_ : (fun x => _) = (fun x => if (k x setT == 0) || (k x setT == +oo)
732- then \d_point Ys else k x Ys * ((fine (k x setT))^-1)%:E)); last first.
733- by apply/funext => x/=; case: ifPn.
734- apply: measurable_fun_if => //.
735- - apply: (measurable_fun_bool true) => //.
736- rewrite (_ : _ @^-1` _ = [set t | k t setT == 0] `|`
737- [set t | k t setT == +oo]); last first.
738- by apply/seteqP; split=> x /= /orP//.
739- by apply: measurableU; exact: kernel_measurable_eq_cst.
740- - apply/emeasurable_funM; first exact/measurable_funTS/measurable_kernel.
741- apply/EFin_measurable_fun; rewrite setTI.
742- apply: (@measurable_comp _ _ _ _ _ _ [set r : R | r != 0%R]).
743- + exact: open_measurable.
744- + by move=> /= _ [x /norP[s0 soo]] <-; rewrite -eqe fineK ?ge0_fin_numE ?ltey.
745- + apply: open_continuous_measurable_fun => //; apply/in_setP => x /= x0.
746- exact: inv_continuous.
747- + by apply: measurableT_comp => //; exact/measurable_funS/measurable_kernel.
748- Qed .
749-
750720Section knormalize.
751721Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
752722Variable f : R.-ker X ~> Y.
753723
754724Definition knormalize (P : probability Y R) : X -> {measure set Y -> \bar R} :=
755- fun x => [the measure _ _ of mnormalize (f x) P].
756-
757- Variable P : probability Y R.
725+ fun x => mnormalize (f x) P.
758726
759- Let measurable_fun_knormalize U :
727+ Let measurable_knormalize (P : probability Y R) U :
760728 measurable U -> measurable_fun [set: X] (knormalize P ^~ U).
761729Proof .
762730move=> mU; rewrite /knormalize/= /mnormalize /=.
@@ -773,7 +741,7 @@ apply: measurable_fun_if => //.
773741- apply: (@measurable_funS _ _ _ _ setT) => //.
774742 exact: kernel_measurable_fun_eq_cst.
775743- apply: emeasurable_funM.
776- by have := measurable_kernel f U mU; exact: measurable_funS .
744+ exact: measurable_funS ( measurable_kernel f U mU) .
777745 apply/EFin_measurable_fun.
778746 apply: (@measurable_comp _ _ _ _ _ _ [set r : R | r != 0%R]) => //.
779747 + exact: open_measurable.
@@ -786,17 +754,48 @@ apply: measurable_fun_if => //.
786754 by have := measurable_kernel f _ measurableT; exact: measurable_funS.
787755Qed .
788756
789- HB.instance Definition _ := isKernel.Build _ _ _ _ R (knormalize P)
790- measurable_fun_knormalize .
757+ HB.instance Definition _ (P : probability Y R) :=
758+ isKernel.Build _ _ _ _ R (knormalize P) (measurable_knormalize P) .
791759
792- Let knormalize1 x : knormalize P x [set: Y] = 1.
760+ Let knormalize1 (P : probability Y R) x : knormalize P x [set: Y] = 1.
793761Proof . by rewrite /knormalize/= probability_setT. Qed .
794762
795- HB.instance Definition _ :=
796- @Kernel_isProbability.Build _ _ _ _ _ (knormalize P) knormalize1.
763+ HB.instance Definition _ (P : probability Y R) :=
764+ @Kernel_isProbability.Build _ _ _ _ _ (knormalize P) ( knormalize1 P) .
797765
798766End knormalize.
799767
768+ (* TODO: useful? *)
769+ Lemma measurable_fun_mnormalize d d' (X : measurableType d)
770+ (Y : measurableType d') (R : realType) (k : R.-ker X ~> Y) :
771+ measurable_fun [set: X] (fun x =>
772+ [the probability _ _ of mnormalize (k x) point] : pprobability Y R).
773+ Proof .
774+ apply: (@measurability _ _ _ _ _ _
775+ (@pset _ _ _ : set (set (pprobability Y R)))) => //.
776+ move=> _ -[_ [r r01] [Ys mYs <-]] <-.
777+ rewrite /mnormalize /mset /preimage/=.
778+ apply: emeasurable_fun_infty_o => //.
779+ rewrite /mnormalize/=.
780+ rewrite (_ : (fun x => _) = (fun x => if (k x setT == 0) || (k x setT == +oo)
781+ then \d_point Ys else k x Ys * ((fine (k x setT))^-1)%:E)); last first.
782+ by apply/funext => x/=; case: ifPn.
783+ apply: measurable_fun_if => //.
784+ - apply: (measurable_fun_bool true) => //.
785+ rewrite (_ : _ @^-1` _ = [set t | k t setT == 0] `|`
786+ [set t | k t setT == +oo]); last first.
787+ by apply/seteqP; split=> x /= /orP//.
788+ by apply: measurableU; exact: kernel_measurable_eq_cst.
789+ - apply/emeasurable_funM; first exact/measurable_funTS/measurable_kernel.
790+ apply/EFin_measurable_fun; rewrite setTI.
791+ apply: (@measurable_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+ + by apply: measurableT_comp => //; exact/measurable_funS/measurable_kernel.
797+ Qed .
798+
800799Section kcomp_def.
801800Context d1 d2 d3 (X : measurableType d1) (Y : measurableType d2)
802801 (Z : measurableType d3) (R : realType).
0 commit comments