@@ -541,3 +541,102 @@ HB.instance Definition _ (f : cumulative R) :=
541541
542542End completed_lebesgue_stieltjes_measure.
543543Arguments completed_lebesgue_stieltjes_measure {R}.
544+
545+ Section salgebra_R_ssets.
546+ Variable R : realType.
547+
548+ Definition measurableTypeR := g_sigma_algebraType (R.-ocitv.-measurable).
549+ Definition measurableR : set (set R) :=
550+ (R.-ocitv.-measurable).-sigma.-measurable.
551+
552+ HB.instance Definition _ := Pointed.on R.
553+ HB.instance Definition R_isMeasurable :
554+ isMeasurable default_measure_display R :=
555+ @isMeasurable.Build _ measurableTypeR measurableR
556+ measurable0 (@measurableC _ _) (@bigcupT_measurable _ _).
557+ (*HB.instance (Real.sort R) R_isMeasurable. *)
558+
559+ Lemma measurable_set1 (r : R) : measurable [set r].
560+ Proof .
561+ rewrite set1_bigcap_oc; apply: bigcap_measurable => // k _.
562+ by apply: sub_sigma_algebra; exact/is_ocitv.
563+ Qed .
564+ #[local] Hint Resolve measurable_set1 : core.
565+
566+ Lemma measurable_itv (i : interval R) : measurable [set` i].
567+ Proof .
568+ have moc (a b : R) : measurable `]a, b].
569+ by apply: sub_sigma_algebra; apply: is_ocitv.
570+ have mopoo (x : R) : measurable `]x, +oo[.
571+ by rewrite itv_bndy_bigcup_BRight; exact: bigcup_measurable.
572+ have mnooc (x : R) : measurable `]-oo, x].
573+ by rewrite -setCitvr; exact/measurableC.
574+ have ooE (a b : R) : `]a, b[%classic = `]a, b] `\ b.
575+ case: (boolP (a < b)) => ab; last by rewrite !set_itv_ge ?set0D.
576+ by rewrite -setUitv1// setUDK// => x [->]; rewrite /= in_itv/= ltxx andbF.
577+ have moo (a b : R) : measurable `]a, b[.
578+ by rewrite ooE; exact: measurableD.
579+ have mcc (a b : R) : measurable `[a, b].
580+ case: (boolP (a <= b)) => ab; last by rewrite set_itv_ge.
581+ by rewrite -setU1itv//; apply/measurableU.
582+ have mco (a b : R) : measurable `[a, b[.
583+ case: (boolP (a < b)) => ab; last by rewrite set_itv_ge.
584+ by rewrite -setU1itv//; apply/measurableU.
585+ have oooE (b : R) : `]-oo, b[%classic = `]-oo, b] `\ b.
586+ by rewrite -setUitv1// setUDK// => x [->]; rewrite /= in_itv/= ltxx.
587+ case: i => [[[] a|[]] [[] b|[]]] => //; do ?by rewrite set_itv_ge.
588+ - by rewrite -setU1itv//; exact/measurableU.
589+ - by rewrite oooE; exact/measurableD.
590+ - by rewrite set_itvNyy.
591+ Qed .
592+ #[local] Hint Resolve measurable_itv : core.
593+
594+ End salgebra_R_ssets.
595+ #[global]
596+ Hint Extern 0 (measurable [set _]) => solve [apply: measurable_set1] : core.
597+ #[global]
598+ Hint Extern 0 (measurable [set` _] ) => exact: measurable_itv : core.
599+
600+ HB.mixin Record isCumulative01 (R : numFieldType) (f : R -> R) := {
601+ cumulativeNy0 : f @ -oo --> (0:R) ;
602+ cumulativey1 : f @ +oo --> (1:R) }.
603+
604+ #[short(type=cumulative01)]
605+ HB.structure Definition Cumulative01 (R : numFieldType) :=
606+ { f of isCumulative01 R f & Cumulative R f}.
607+
608+ Arguments cumulativeNy0 {R} s.
609+ Arguments cumulativey1 {R} s.
610+
611+ Section probability_measure_of_lebesgue_stieltjes_mesure.
612+ Context {R : realType} (f : cumulative01 R).
613+ Local Open Scope measure_display_scope.
614+
615+ Let T := g_sigma_algebraType R.-ocitv.-measurable.
616+ Let lsf := lebesgue_stieltjes_measure f.
617+
618+ Let lebesgue_stieltjes_setT : lsf setT = 1%E.
619+ Proof .
620+ rewrite -(bigcup_itvT false false).
621+ pose I n : set R := `]- (n%:R), n%:R]%classic.
622+ have : (lsf \o I) n @[n --> \oo] --> 1%E.
623+ have -> : lsf \o I = (fun n => (f n%:R)%:E - (f (- n%:R))%:E)%E.
624+ apply/funext=> n; rewrite /= /lsf/= /lebesgue_stieltjes_measure.
625+ rewrite /measure_extension measurable_mu_extE/=; last exact: is_ocitv.
626+ by rewrite wlength_itv_bnd// ge0_cp.
627+ rewrite -(sube0 1); apply: cvgeB => //.
628+ - by apply/cvg_EFin; [near=> F
629+ |exact/(cvg_comp _ _ (@cvgr_idn R))/cumulativey1].
630+ - apply/cvg_EFin; [by near=> F|apply: (cvg_ninftyP _ _).1 => //].
631+ exact: cumulativeNy0.
632+ by apply: (cvg_comp _ _ (@cvgr_idn R)); rewrite ninfty.
633+ have : (lsf \o I) n @[n --> \oo] --> lsf (\bigcup_n I n).
634+ apply: nondecreasing_cvg_mu; rewrite /I//; first exact: bigcup_measurable.
635+ by move=> *; apply/subsetPset/subset_itv; rewrite leBSide/= ?lerN2 ler_nat.
636+ exact: cvg_unique.
637+ Unshelve. all: end_near. Qed .
638+
639+ HB.instance Definition _ := @Measure_isProbability.Build _ _ _
640+ (lebesgue_stieltjes_measure f) lebesgue_stieltjes_setT.
641+
642+ End probability_measure_of_lebesgue_stieltjes_mesure.
0 commit comments