@@ -169,6 +169,11 @@ Lemma cdf_ge0 r : 0 <= cdf X r. Proof. by []. Qed.
169169
170170Lemma cdf_le1 r : cdf X r <= 1. Proof . exact: probability_le1. Qed .
171171
172+ Lemma cdf_fin_num r : cdf X r \is a fin_num.
173+ Proof .
174+ by rewrite ge0_fin_numE ?cdf_ge0//; exact/(le_lt_trans (cdf_le1 r))/ltry.
175+ Qed .
176+
172177Lemma cdf_nondecreasing : nondecreasing_fun (cdf X).
173178Proof . by move=> r s rs; rewrite le_measure ?inE//; exact: subitvPr. Qed .
174179
@@ -252,17 +257,16 @@ HB.instance Definition _ := isCumulative.Build R _ (\bar R) (cdf X)
252257
253258End cumulative_distribution_function.
254259
255- Section cdf_of_lebesgue_stieltjes_mesure .
260+ Section cdf_of_lebesgue_stieltjes_measure .
256261Context {R : realType} (f : cumulativeBounded (0:R) (1:R)).
257262Local Open Scope measure_display_scope.
258263
259- Let T := g_sigma_algebraType R.-ocitv.-measurable.
260- Let lsf := lebesgue_stieltjes_measure f.
261-
262- Let idTR : T -> R := idfun.
264+ Let idTR : measurableTypeR R -> R := idfun.
263265
264266#[local] HB.instance Definition _ :=
265- @isMeasurableFun.Build _ _ T R idTR (@measurable_id _ _ setT).
267+ @isMeasurableFun.Build _ _ _ _ idTR (@measurable_id _ _ setT).
268+
269+ Let lsf := lebesgue_stieltjes_measure f.
266270
267271Lemma cdf_lebesgue_stieltjes_id r : cdf (idTR : {RV lsf >-> R}) r = (f r)%:E.
268272Proof .
@@ -277,12 +281,65 @@ have : lsf `]-n%:R, r] @[n --> \oo] --> (f r)%:E.
277281 apply: (cvg_comp _ _ (cvg_comp _ _ _ (cumulativeNy f))) => //.
278282 by apply: (cvg_comp _ _ cvgr_idn); rewrite ninfty.
279283have : lsf `]- n%:R, r] @[n --> \oo] --> lsf (\bigcup_n `]-n%:R, r]%classic).
280- apply: nondecreasing_cvg_mu; rewrite /I //; first exact: bigcup_measurable.
284+ apply: nondecreasing_cvg_mu => //; first exact: bigcup_measurable.
281285 by move=> *; apply/subsetPset/subset_itv; rewrite leBSide//= lerN2 ler_nat.
282286exact: cvg_unique.
283287Unshelve. all: by end_near. Qed .
284288
285- End cdf_of_lebesgue_stieltjes_mesure.
289+ End cdf_of_lebesgue_stieltjes_measure.
290+
291+ Section lebesgue_stieltjes_measure_of_cdf.
292+ Context {R : realType} (P : probability (measurableTypeR R) R).
293+ Local Open Scope measure_display_scope.
294+
295+ Let idTR : measurableTypeR R -> R := idfun.
296+
297+ #[local] HB.instance Definition _ :=
298+ @isMeasurableFun.Build _ _ _ _ idTR (@measurable_id _ _ setT).
299+
300+ Let fcdf r := fine (cdf (idTR : {RV P >-> R}) r).
301+
302+ Let fcdf_nd : nondecreasing fcdf.
303+ Proof .
304+ by move=> *; apply: fine_le; [exact: cdf_fin_num.. | exact: cdf_nondecreasing].
305+ Qed .
306+
307+ Let fcdf_rc : right_continuous fcdf.
308+ Proof .
309+ move=> a; apply: fine_cvg.
310+ by rewrite fineK; [exact: cdf_right_continuous | exact: cdf_fin_num].
311+ Qed .
312+
313+ #[local] HB.instance Definition _ :=
314+ isCumulative.Build R _ R fcdf fcdf_nd fcdf_rc.
315+
316+ Let fcdf_Ny0 : fcdf @ -oo --> (0:R).
317+ Proof . exact/fine_cvg/cvg_cdfNy0. Qed .
318+
319+ Let fcdf_y1 : fcdf @ +oo --> (1:R).
320+ Proof . exact/fine_cvg/cvg_cdfy1. Qed .
321+
322+ #[local] HB.instance Definition _ :=
323+ isCumulativeBounded.Build R 0 1 fcdf fcdf_Ny0 fcdf_y1.
324+
325+ Let lscdf := lebesgue_stieltjes_measure fcdf.
326+
327+ Lemma lebesgue_stieltjes_cdf_id (A : set _) (mA : measurable A) : lscdf A = P A.
328+ Proof .
329+ apply: lebesgue_stieltjes_measure_unique => [I [[a b]]/= _ <- | //].
330+ rewrite /lebesgue_stieltjes_measure /measure_extension/=.
331+ rewrite measurable_mu_extE/=; last exact: is_ocitv.
332+ have [ab | ba] := leP a b; last first.
333+ by rewrite set_itv_ge ?wlength0 ?measure0// bnd_simp -leNgt ltW.
334+ rewrite wlength_itv_bnd// EFinB !fineK ?cdf_fin_num//.
335+ rewrite /cdf /distribution /pushforward !preimage_id.
336+ have : `]a, b]%classic = `]-oo, b] `\` `]-oo, a] => [|->].
337+ by rewrite -[RHS]setCK setCD setCitvl setUC -[LHS]setCK setCitv.
338+ rewrite measureD ?setIidr//; first exact: subset_itvl.
339+ by rewrite -ge0_fin_numE// fin_num_measure.
340+ Qed .
341+
342+ End lebesgue_stieltjes_measure_of_cdf.
286343
287344HB.lock Definition expectation {d} {T : measurableType d} {R : realType}
288345 (P : probability T R) (X : T -> R) := (\int[P]_w (X w)%:E)%E.
0 commit comments