@@ -314,8 +314,8 @@ Definition finite_measure d (T : measurableType d) (R : realType)
314314
315315Definition sfinite_measure d (T : measurableType d) (R : realType)
316316 (mu : set T -> \bar R) :=
317- exists2 mu_ : {measure set T -> \bar R}^nat,
318- forall n, finite_measure (mu_ n) & forall U, measurable U -> mu U = mseries mu_ 0 U.
317+ exists2 s : {measure set T -> \bar R}^nat,
318+ forall n, finite_measure (s n) & forall U, measurable U -> mu U = mseries s 0 U.
319319
320320Lemma finite_measure_sigma_finite d (T : measurableType d) (R : realType)
321321 (mu : {measure set T -> \bar R}) :
@@ -337,49 +337,47 @@ Variable (mf : measurable_fun setT f).
337337Lemma sfinite_fubini :
338338 \int[m1]_x \int[m2]_y f (x, y) = \int[m2]_y \int[m1]_x f (x, y).
339339Proof .
340- have [m1_ fm1 m1E] := sfm1.
341- have [m2_ fm2 m2E] := sfm2.
342- rewrite [LHS](eq_measure_integral [the measure _ _ of mseries m1_ 0]); last first.
340+ have [s1 fm1 m1E] := sfm1.
341+ have [s2 fm2 m2E] := sfm2.
342+ rewrite [LHS](eq_measure_integral [the measure _ _ of mseries s1 0]); last first.
343343 by move=> A mA _; rewrite m1E.
344- transitivity (\int[[the measure _ _ of mseries m1_ 0]]_x
345- \int[[the measure _ _ of mseries m2_ 0]]_y f (x, y)).
346- by apply eq_integral => x _; apply: eq_measure_integral => U mA _; rewrite m2E.
347- transitivity (\sum_(n <oo) \int[m1_ n]_x \sum_(m <oo) \int[m2_ m]_y f (x, y)).
344+ transitivity (\int[mseries s1 0]_x \int[mseries s2 0]_y f (x, y)).
345+ by apply eq_integral => x _; apply: eq_measure_integral => ? ? _; rewrite m2E.
346+ transitivity (\sum_(n <oo) \int[s1 n]_x \sum_(m <oo) \int[s2 m]_y f (x, y)).
348347 rewrite ge0_integral_measure_series; [|by []| |]; last 2 first.
349348 by move=> t _; exact: integral_ge0.
350349 rewrite [X in measurable_fun _ X](_ : _ =
351- fun x => \sum_(n <oo) \int[m2_ n]_y f (x, y)); last first.
350+ fun x => \sum_(n <oo) \int[s2 n]_y f (x, y)); last first.
352351 apply/funext => x.
353352 by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod1.
354353 apply: ge0_emeasurable_fun_sum; first by move=> k x; exact: integral_ge0.
355354 move=> k; apply: measurable_fun_fubini_tonelli_F => //=.
356355 exact: finite_measure_sigma_finite.
357356 apply: eq_nneseries => n _; apply eq_integral => x _.
358357 by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod1.
359- transitivity (\sum_(n <oo) \sum_(m <oo) \int[m1_ n]_x \int[m2_ m]_y f (x, y)).
358+ transitivity (\sum_(n <oo) \sum_(m <oo) \int[s1 n]_x \int[s2 m]_y f (x, y)).
360359 apply eq_nneseries => n _.
361360 rewrite integral_sum//.
362361 move=> m; apply: measurable_fun_fubini_tonelli_F => //=.
363362 exact: finite_measure_sigma_finite.
364363 by move=> m x _; exact: integral_ge0.
365- transitivity (\sum_(n <oo) \sum_(m <oo) \int[m2_ m]_y \int[m1_ n]_x f (x, y)).
364+ transitivity (\sum_(n <oo) \sum_(m <oo) \int[s2 m]_y \int[s1 n]_x f (x, y)).
366365 apply eq_nneseries => n _; apply eq_nneseries => m _.
367366 by rewrite fubini_tonelli//; exact: finite_measure_sigma_finite.
368- transitivity (\sum_(n <oo) \int[[the measure _ _ of mseries m2_ 0]] _y \int[m1_ n]_x f (x, y)).
367+ transitivity (\sum_(n <oo) \int[mseries s2 0]_y \int[s1 n]_x f (x, y)).
369368 apply eq_nneseries => n _ /=. rewrite ge0_integral_measure_series//.
370369 by move=> y _; exact: integral_ge0.
371370 apply: measurable_fun_fubini_tonelli_G => //=.
372371 by apply: finite_measure_sigma_finite; exact: fm1.
373- transitivity (\int[[the measure _ _ of mseries m2_ 0]] _y \sum_(n <oo) \int[m1_ n]_x f (x, y)).
372+ transitivity (\int[mseries s2 0]_y \sum_(n <oo) \int[s1 n]_x f (x, y)).
374373 rewrite integral_sum//.
375374 move=> n; apply: measurable_fun_fubini_tonelli_G => //=.
376375 by apply: finite_measure_sigma_finite; exact: fm1.
377376 by move=> n y _; exact: integral_ge0.
378- transitivity (\int[[the measure _ _ of mseries m2_ 0]]_y
379- \int[[the measure _ _ of mseries m1_ 0]]_x f (x, y)).
377+ transitivity (\int[mseries s2 0]_y \int[mseries s1 0]_x f (x, y)).
380378 apply eq_integral => y _.
381379 by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod2.
382- transitivity (\int[m2]_y \int[mseries m1_ 0]_x f (x, y)).
380+ transitivity (\int[m2]_y \int[mseries s1 0]_x f (x, y)).
383381 by apply eq_measure_integral => A mA _ /=; rewrite m2E.
384382by apply eq_integral => y _; apply eq_measure_integral => A mA _ /=; rewrite m1E.
385383Qed .
@@ -867,34 +865,21 @@ Arguments measurable_fun_xsection_integral {_ _ _ _ _} k l.
867865Arguments measurable_fun_integral_finite_kernel {_ _ _ _ _} k l.
868866Arguments measurable_fun_integral_sfinite_kernel {_ _ _ _ _} k l.
869867
870- Section kprobability.
871- Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
872- Variables (R : realType) (P : probability Y R).
873-
874- Definition kprobability : X -> {measure set Y -> \bar R} := fun=> P.
875-
876- Let measurable_fun_kprobability U : measurable U ->
877- measurable_fun setT (kprobability ^~ U).
878- Proof . by move=> mU; exact: measurable_fun_cst. Qed .
879-
880- HB.instance Definition _ :=
881- @isKernel.Build _ _ X Y R kprobability measurable_fun_kprobability.
868+ Section pdirac.
869+ Variables (d : _) (T : measurableType d) (R : realType).
882870
883- Let kprobability_prob x : kprobability x setT = 1.
884- Proof . by rewrite /kprobability/= probability_setT. Qed .
885-
886- HB.instance Definition _ :=
887- @Kernel_isProbability.Build _ _ X Y R kprobability kprobability_prob.
871+ HB.instance Definition _ x :=
872+ isProbability.Build _ _ _ (@dirac _ T x R) (diracT R x).
888873
889- End kprobability .
874+ End pdirac .
890875
891876Section kdirac.
892877Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
893878Variables (R : realType) (f : X -> Y).
894879
895880Definition kdirac (mf : measurable_fun setT f)
896881 : X -> {measure set Y -> \bar R} :=
897- fun x : X => [the measure _ _ of dirac (f x)].
882+ fun x => [the measure _ _ of dirac (f x)].
898883
899884Hypothesis mf : measurable_fun setT f.
900885
@@ -917,6 +902,49 @@ HB.instance Definition _ := Kernel_isProbability.Build _ _ _ _ _
917902End kdirac.
918903Arguments kdirac {d d' X Y R f}.
919904
905+ Section dist_salgebra_instance.
906+ Variables (d : measure_display) (T : measurableType d) (R : realType).
907+
908+ Let p0 : probability T R := [the probability T R of @dirac d T point R].
909+
910+ Definition prob_pointed := Pointed.Class
911+ (Choice.Class gen_eqMixin (Choice.Class gen_eqMixin gen_choiceMixin)) p0.
912+
913+ Canonical probability_eqType := EqType (probability T R) prob_pointed.
914+ Canonical probability_choiceType := ChoiceType (probability T R) prob_pointed.
915+ Canonical probability_ptType := PointedType (probability T R) prob_pointed.
916+
917+ Definition mset (U : set T) (r : R) := [set mu : probability T R | mu U < r%:E].
918+
919+ Definition pset : set (set (probability T R)) :=
920+ [set mset U r | r in `[0%R,1%R]%classic & U in @measurable d T].
921+
922+ Definition pprobability := [the measurableType pset.-sigma of salgebraType pset].
923+
924+ End dist_salgebra_instance.
925+
926+ Section kprobability.
927+ Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
928+ Variables (R : realType) (P : probability Y R).
929+
930+ Definition kprobability
931+ : X -> {measure set Y -> \bar R} := fun=> P.
932+
933+ Let measurable_fun_kprobability U : measurable U ->
934+ measurable_fun setT (kprobability ^~ U).
935+ Proof . by move=> mU; exact: measurable_fun_cst. Qed .
936+
937+ HB.instance Definition _ :=
938+ @isKernel.Build _ _ X Y R kprobability measurable_fun_kprobability.
939+
940+ Let kprobability_prob x : kprobability x setT = 1.
941+ Proof . by rewrite /kprobability/= probability_setT. Qed .
942+
943+ HB.instance Definition _ :=
944+ @Kernel_isProbability.Build _ _ X Y R kprobability kprobability_prob.
945+
946+ End kprobability.
947+
920948Section kadd.
921949Variables (d d' : _) (X : measurableType d) (Y : measurableType d').
922950Variables (R : realType) (k1 k2 : R.-ker X ~> Y).
@@ -1041,12 +1069,11 @@ Qed.
10411069Let mnormalize_ge0 x U : 0 <= mnormalize x U.
10421070Proof . by rewrite /mnormalize; case: ifPn => //; case: ifPn. Qed .
10431071
1044- Lemma mnormalize_sigma_additive x : semi_sigma_additive (mnormalize x).
1072+ Let mnormalize_sigma_additive x : semi_sigma_additive (mnormalize x).
10451073Proof .
10461074move=> F mF tF mUF; rewrite /mnormalize/=.
1047- case: ifPn => [_|_].
1048- exact: measure_semi_sigma_additive.
1049- rewrite (_ : (fun n => _) = ((fun n => \sum_(0 <= i < n) f x (F i)) \*
1075+ case: ifPn => [_|_]; first exact: measure_semi_sigma_additive.
1076+ rewrite (_ : (fun _ => _) = ((fun n => \sum_(0 <= i < n) f x (F i)) \*
10501077 cst ((fine (f x setT))^-1)%:E)); last first.
10511078 by apply/funext => n; rewrite -ge0_sume_distrl.
10521079by apply: ereal_cvgMr => //; exact: measure_semi_sigma_additive.
@@ -1055,7 +1082,7 @@ Qed.
10551082HB.instance Definition _ x := isMeasure.Build _ _ _ (mnormalize x)
10561083 (mnormalize0 x) (mnormalize_ge0 x) (@mnormalize_sigma_additive x).
10571084
1058- Lemma mnormalize1 x : mnormalize x setT = 1.
1085+ Let mnormalize1 x : mnormalize x setT = 1.
10591086Proof .
10601087rewrite /mnormalize; case: ifPn; first by rewrite probability_setT.
10611088rewrite negb_or => /andP[ft0 ftoo].
0 commit comments