Skip to content

Commit abd9408

Browse files
committed
nitpick
1 parent 4796495 commit abd9408

3 files changed

Lines changed: 41 additions & 47 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@
5353
+ lemma `nicely_shrinking_fin_num`
5454

5555
- in `probability.v`:
56-
+ lemmas `measurable_idTR`, `cdf_lebesgue_stieltjes_id`
56+
+ lemma `cdf_lebesgue_stieltjes_id`
57+
58+
- in `real_interval.v`:
59+
+ lemma `itvNybndEbigcup`
5760

5861
### Changed
5962

reals/real_interval.v

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,15 @@ rewrite in_itv /= andbT => xy; exists (trunc y).+1 => //=.
167167
by rewrite in_itv /= xy /= truncnS_gt.
168168
Qed.
169169

170+
Lemma itvNybndEbigcup b x : [set` Interval -oo%O (BSide b x)] =
171+
\bigcup_k [set` Interval (BRight (- k%:R)) (BSide b x)].
172+
Proof.
173+
rewrite predeqE => y; split=> /=; last first.
174+
by move=> [n _]/=; rewrite in_itv => /andP[ny yx]; rewrite in_itv.
175+
rewrite in_itv /= => yx; exists (trunc `|y|).+1 => //=; rewrite in_itv/=.
176+
by rewrite yx /= andbT ltrNl (le_lt_trans (ler_norm _))// normrN truncnS_gt.
177+
Qed.
178+
170179
Lemma itvoyEbigcup x :
171180
`]x, +oo[%classic = \bigcup_k `[x + k.+1%:R^-1, +oo[%classic.
172181
Proof.

theories/probability.v

Lines changed: 28 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -253,65 +253,47 @@ Let lsf := lebesgue_stieltjes_measure f.
253253

254254
Let lebesgue_stieltjes_setT : lsf setT = 1%E.
255255
Proof.
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.
276271
Unshelve. all: end_near. Qed.
277272

278273
HB.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.
292282
Proof.
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.
315297
Unshelve. all: by end_near. Qed.
316298

317299
End cdf_of_lebesgue_stieltjes_mesure.

0 commit comments

Comments
 (0)