@@ -253,65 +253,47 @@ Let lsf := lebesgue_stieltjes_measure f.
253253
254254Let lebesgue_stieltjes_setT : lsf setT = 1%E.
255255Proof .
256- pose I n := `]-(n%:R):R, n%:R]%classic.
257- have <- : \bigcup_n I n = setT.
258- rewrite -subTset=> x _; rewrite /bigcup/=; exists (truncn`|x|).+1=>//.
259- by rewrite /I/= subset_itv_oo_oc// in_itv/= -real_ltr_norml//= truncnS_gt.
260- have cvg_cup : (lsf \o I) n @[n --> \oo] --> lsf (\bigcup_n I n).
256+ rewrite -(bigcup_itvT false false).
257+ pose I n : set R := `]- (n%:R), n%:R]%classic.
258+ have : (lsf \o I) n @[n --> \oo] --> 1%E.
259+ have -> : lsf \o I = (fun n => (f n%:R)%:E - (f (- n%:R))%:E)%E.
260+ apply/funext=> n; rewrite /= /lsf/= /lebesgue_stieltjes_measure.
261+ rewrite /measure_extension measurable_mu_extE/=; last exact: is_ocitv.
262+ by rewrite wlength_itv_bnd// ge0_cp.
263+ rewrite -(sube0 1); apply: cvgeB => //.
264+ - by apply/cvg_EFin; [near=> F|exact/(cvg_comp _ _ (@cvgr_idn R))/f_y1].
265+ - apply/cvg_EFin; [by near=> F|apply: (cvg_ninftyP _ _).1 => //].
266+ by apply: (cvg_comp _ _ (@cvgr_idn R)); rewrite ninfty.
267+ have : (lsf \o I) n @[n --> \oo] --> lsf (\bigcup_n I n).
261268 apply: nondecreasing_cvg_mu; rewrite /I//; first exact: bigcup_measurable.
262269 by move=> *; apply/subsetPset/subset_itv; rewrite leBSide/= ?lerN2 ler_nat.
263- have cvg_1 : (lsf \o I) n @[n --> \oo] --> 1%E.
264- rewrite /comp/I/lsf/lebesgue_stieltjes_measure/measure_extension/=.
265- suff : ((f n%:R)%:E - (f (1 *- n))%:E)%E @[n --> \oo] --> 1%E => ?.
266- under eq_cvg=> n.
267- rewrite measurable_mu_extE/=; last exact: is_ocitv.
268- rewrite wlength_itv_bnd; last exact: (le_trans _ (ler0n R n)).
269- over.
270- assumption.
271- rewrite -(sube0 1); apply: cvgeB=>//; apply: cvg_EFin; try by near=> F.
272- by rewrite /comp; apply/(cvg_comp _ _ (@cvgr_idn R))/f_y1.
273- rewrite /comp/=; apply: ((iffLR (cvg_ninftyP _ _)) f_Ny0).
274- by apply: (cvg_comp _ _ (@cvgr_idn R)); rewrite ninfty.
275- by rewrite -(cvg_unique _ cvg_cup cvg_1).
270+ exact: cvg_unique.
276271Unshelve. all: end_near. Qed .
277272
278273HB.instance Definition _ := @Measure_isProbability.Build _ _ _
279274 (lebesgue_stieltjes_measure f) lebesgue_stieltjes_setT.
280275
281- Let idTR : T -> R := (fun x => x).
282-
283- Lemma measurable_idTR : measurable_fun setT idTR.
284- Proof . by apply: measurable_id. Qed .
276+ Let idTR : T -> R := idfun.
285277
286278#[local] HB.instance Definition _ :=
287- @isMeasurableFun.Build _ _ T R idTR measurable_idTR.
288-
289- Let Xid : {RV lsf >-> R} := idTR.
279+ @isMeasurableFun.Build _ _ T R idTR (@measurable_id _ _ setT).
290280
291- Lemma cdf_lebesgue_stieltjes_id r : cdf Xid r = EFin (f r).
281+ Lemma cdf_lebesgue_stieltjes_id r : cdf (idTR : {RV lsf >-> R}) r = (f r)%:E .
292282Proof .
293- rewrite /= preimage_id.
294- have <- : (\bigcup_n `]-n%:R, r]%classic) = `]-oo, r]%classic.
295- apply/seteqP; split=> x/=; first by case=> n _/=; rewrite !in_itv/=; case/andP.
296- rewrite in_itv/= => xr; exists (truncn`|x|).+1=>//=; rewrite in_itv/=.
297- apply/andP; split=>//; rewrite ltrNl -normrN.
298- apply: le_lt_trans; [exact: ler_norm | exact: truncnS_gt].
299- have cvg_cup : (lsf `]-n%:R, r])@[n --> \oo] -->
300- lsf (\bigcup_n `]-n%:R, r]%classic).
301- apply: nondecreasing_cvg_mu; rewrite /I//; first exact: bigcup_measurable.
302- by move=> *; apply/subsetPset/subset_itv; rewrite leBSide//= lerN2 ler_nat//.
303- have cvg_fr : (lsf `]-n%:R, r])@[n --> \oo] --> (f r)%:E.
304- suff : ((f r)%:E - (f (-n%:R))%:E)%E@[n --> \oo] --> (f r)%:E.
283+ rewrite /= preimage_id itvNybndEbigcup.
284+ have : lsf `]-n%:R, r] @[n --> \oo] --> (f r)%:E.
285+ suff : ((f r)%:E - (f (-n%:R))%:E)%E @[n --> \oo] --> (f r)%:E.
305286 apply: cvg_trans; apply: near_eq_cvg; near=> n.
306- rewrite /lsf/lebesgue_stieltjes_measure/measure_extension/=.
287+ rewrite /lsf /lebesgue_stieltjes_measure /measure_extension/=.
307288 rewrite measurable_mu_extE/= ?wlength_itv_bnd//; last exact: is_ocitv.
308- near: n; exists (truncn`|r|).+1=>// n/=; rewrite truncn_lt_nat// lerNl.
309- by move/ltW; apply /le_trans; rewrite -normrN ler_norm.
310- rewrite -[X in _ --> X](sube0 (f r)%:E).
311- apply: cvgeB=>//; first exact: cvg_cst.
312- apply: cvg_comp; [apply: cvg_comp; last exact: f_Ny0 | by[]].
313- by apply: cvg_comp; [exact: cvgr_idn | rewrite ninfty].
314- by rewrite -(cvg_unique _ cvg_cup cvg_fr).
289+ by rewrite lerNl; near: n; exact: nbhs_infty_ger.
290+ rewrite -[X in _ --> X](sube0 (f r)%:E); apply: (cvgeB _ (cvg_cst _ )) => //.
291+ apply: (cvg_comp _ _ (cvg_comp _ _ _ f_Ny0)) => //.
292+ by apply: (cvg_comp _ _ cvgr_idn); rewrite ninfty.
293+ have : lsf `]- n%:R, r] @[n --> \oo] --> lsf (\bigcup_n `]-n%:R, r]%classic).
294+ apply: nondecreasing_cvg_mu; rewrite /I//; first exact: bigcup_measurable.
295+ by move=> *; apply/subsetPset/subset_itv; rewrite leBSide//= lerN2 ler_nat.
296+ exact: cvg_unique.
315297Unshelve. all: by end_near. Qed .
316298
317299End cdf_of_lebesgue_stieltjes_mesure.
0 commit comments