Skip to content

Commit f7e5826

Browse files
committed
upd
1 parent a241ec4 commit f7e5826

File tree

2 files changed

+19
-85
lines changed

2 files changed

+19
-85
lines changed

theories/kernel.v

Lines changed: 12 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -41,72 +41,6 @@ Local Open Scope classical_set_scope.
4141
Local Open Scope ring_scope.
4242
Local Open Scope ereal_scope.
4343

44-
(* TODO: PR*)
45-
Lemma emeasurable_itv1 (R : realType) (i : nat) :
46-
measurable (`[(i%:R)%:E, (i.+1%:R)%:E[%classic : set \bar R).
47-
Proof.
48-
rewrite -[X in measurable X]setCK.
49-
apply: measurableC.
50-
rewrite set_interval.setCitv /=.
51-
apply: measurableU.
52-
exact: emeasurable_itv_ninfty_bnd.
53-
exact: emeasurable_itv_bnd_pinfty.
54-
Qed.
55-
56-
Section sfinite_fubini.
57-
Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
58-
Variables (m1 : {sfinite_measure set X -> \bar R}).
59-
Variables (m2 : {sfinite_measure set Y -> \bar R}).
60-
Variables (f : X * Y -> \bar R) (f0 : forall xy, 0 <= f xy).
61-
Hypothesis mf : measurable_fun setT f.
62-
63-
Lemma sfinite_fubini :
64-
\int[m1]_x \int[m2]_y f (x, y) = \int[m2]_y \int[m1]_x f (x, y).
65-
Proof.
66-
have [s1 m1E] := sfinite_measure m1.
67-
have [s2 m2E] := sfinite_measure m2.
68-
rewrite [LHS](eq_measure_integral [the measure _ _ of mseries s1 0]); last first.
69-
by move=> A mA _; rewrite /= -m1E.
70-
transitivity (\int[mseries s1 0]_x \int[mseries s2 0]_y f (x, y)).
71-
apply eq_integral => x _; apply: eq_measure_integral => ? ? _.
72-
by rewrite /= -m2E.
73-
transitivity (\sum_(n <oo) \int[s1 n]_x \sum_(m <oo) \int[s2 m]_y f (x, y)).
74-
rewrite ge0_integral_measure_series; [|by []| |]; last 2 first.
75-
by move=> t _; exact: integral_ge0.
76-
rewrite [X in measurable_fun _ X](_ : _ =
77-
fun x => \sum_(n <oo) \int[s2 n]_y f (x, y)); last first.
78-
apply/funext => x.
79-
by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod1.
80-
apply: ge0_emeasurable_fun_sum; first by move=> k x; exact: integral_ge0.
81-
by move=> k; apply: measurable_fun_fubini_tonelli_F.
82-
apply: eq_eseries => n _; apply eq_integral => x _.
83-
by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod1.
84-
transitivity (\sum_(n <oo) \sum_(m <oo) \int[s1 n]_x \int[s2 m]_y f (x, y)).
85-
apply eq_eseries => n _; rewrite integral_nneseries//.
86-
by move=> m; exact: measurable_fun_fubini_tonelli_F.
87-
by move=> m x _; exact: integral_ge0.
88-
transitivity (\sum_(n <oo) \sum_(m <oo) \int[s2 m]_y \int[s1 n]_x f (x, y)).
89-
apply eq_eseries => n _; apply eq_eseries => m _.
90-
by rewrite fubini_tonelli//; exact: finite_measure_sigma_finite.
91-
transitivity (\sum_(n <oo) \int[mseries s2 0]_y \int[s1 n]_x f (x, y)).
92-
apply eq_eseries => n _ /=. rewrite ge0_integral_measure_series//.
93-
by move=> y _; exact: integral_ge0.
94-
exact: measurable_fun_fubini_tonelli_G.
95-
transitivity (\int[mseries s2 0]_y \sum_(n <oo) \int[s1 n]_x f (x, y)).
96-
rewrite integral_nneseries//.
97-
by move=> n; apply: measurable_fun_fubini_tonelli_G.
98-
by move=> n y _; exact: integral_ge0.
99-
transitivity (\int[mseries s2 0]_y \int[mseries s1 0]_x f (x, y)).
100-
apply eq_integral => y _.
101-
by rewrite ge0_integral_measure_series//; exact/measurable_fun_prod2.
102-
transitivity (\int[m2]_y \int[mseries s1 0]_x f (x, y)).
103-
by apply eq_measure_integral => A mA _ /=; rewrite m2E.
104-
by apply eq_integral => y _; apply eq_measure_integral => A mA _ /=; rewrite m1E.
105-
Qed.
106-
107-
End sfinite_fubini.
108-
Arguments sfinite_fubini {d d' X Y R} m1 m2 f.
109-
11044
Reserved Notation "R .-ker X ~> Y" (at level 42, format "R .-ker X ~> Y").
11145
Reserved Notation "R .-sfker X ~> Y" (at level 42, format "R .-sfker X ~> Y").
11246
Reserved Notation "R .-fker X ~> Y" (at level 42, format "R .-fker X ~> Y").
@@ -255,7 +189,7 @@ exists (fun n => if n is O then [the _.-ker _ ~> _ of k] else
255189
by case => [|_]; [exact: measure_uub|exact: kzero_uub].
256190
move=> t U mU/=; rewrite /mseries.
257191
rewrite (nneseries_split 1%N)// big_ord_recl/= big_ord0 adde0.
258-
rewrite ereal_series (@eq_eseries _ _ (fun=> 0%E)); last by case.
192+
rewrite ereal_series (@eq_eseriesr _ _ (fun=> 0%E)); last by case.
259193
by rewrite eseries0// adde0.
260194
Qed.
261195

@@ -298,12 +232,12 @@ End sfinite.
298232

299233
Lemma sfinite_kernel_measure d d' (Z : measurableType d) (X : measurableType d')
300234
(R : realType) (k : R.-sfker Z ~> X) (z : Z) :
301-
sfinite_measure_def (k z).
235+
sfinite_measure (k z).
302236
Proof.
303237
have [s ks] := sfinite k.
304238
exists (s ^~ z).
305239
move=> n; have [r snr] := measure_uub (s n).
306-
by rewrite /finite_measure (lt_le_trans (snr _))// leey.
240+
by apply: lty_fin_num_fun; rewrite (lt_le_trans (snr _))// leey.
307241
by move=> U mU; rewrite ks.
308242
Qed.
309243

@@ -398,10 +332,10 @@ HB.end.
398332

399333
Lemma finite_kernel_measure d d' (X : measurableType d)
400334
(Y : measurableType d') (R : realType) (k : R.-fker X ~> Y) (x : X) :
401-
finite_measure (k x).
335+
fin_num_fun (k x).
402336
Proof.
403337
have [r k_r] := measure_uub k.
404-
by rewrite /finite_measure (@lt_trans _ _ r%:E) ?ltey.
338+
by apply: lty_fin_num_fun; rewrite (@lt_trans _ _ r%:E) ?ltey.
405339
Qed.
406340

407341
(* see measurable_prod_subset in lebesgue_integral.v;
@@ -714,7 +648,7 @@ exists (fun n => [the _.-ker _ ~> _ of kadd (f1 n) (f2 n)]).
714648
by rewrite /msum !big_ord_recr/= big_ord0 add0e EFinD lte_add.
715649
move=> x U mU.
716650
rewrite /kadd/= -/(measure_add (k1 x) (k2 x)) measure_addE hk1//= hk2//=.
717-
rewrite /mseries -nneseriesD//; apply: eq_eseries => n _ /=.
651+
rewrite /mseries -nneseriesD//; apply: eq_eseriesr => n _ /=.
718652
by rewrite -/(measure_add (f1 n x) (f2 n x)) measure_addE.
719653
Qed.
720654

@@ -996,7 +930,7 @@ transitivity (([the _.-ker _ ~> _ of kseries l_] \; [the _.-ker _ ~> _ of kserie
996930
rewrite /= /kcomp/= integral_nneseries//=; last first.
997931
by move=> n; have /measurable_fun_prod1 := measurable_kernel (k_ n) _ mU; exact.
998932
transitivity (\sum_(i <oo) \sum_(j <oo) (l_ j \; k_ i) x U).
999-
apply: eq_eseries => i _; rewrite integral_kseries//.
933+
apply: eq_eseriesr => i _; rewrite integral_kseries//.
1000934
by have /measurable_fun_prod1 := measurable_kernel (k_ i) _ mU; exact.
1001935
rewrite /mseries -hkl/=.
1002936
rewrite (_ : setT = setT `*`` (fun=> setT)); last by apply/seteqP; split.
@@ -1098,7 +1032,7 @@ Let integral_kcomp_indic x E (mE : measurable E) :
10981032
\int[(l \; k) x]_z (\1_E z)%:E = \int[l x]_y (\int[k (x, y)]_z (\1_E z)%:E).
10991033
Proof.
11001034
rewrite integral_indic//= /kcomp.
1101-
by apply eq_integral => y _; rewrite integral_indic.
1035+
by apply: eq_integral => y _; rewrite integral_indic.
11021036
Qed.
11031037

11041038
Let integral_kcomp_nnsfun x (f : {nnsfun Z >-> R}) :
@@ -1141,7 +1075,7 @@ have [r0|r0] := leP 0%R r.
11411075
rewrite ge0_integralM//; last first.
11421076
have := measurable_kernel k (f @^-1` [set r]) (measurable_sfunP f (measurable_set1 r)).
11431077
by move/measurable_fun_prod1; exact.
1144-
by congr (_ * _); apply eq_integral => y _; rewrite integral_indic// setIT.
1078+
by congr (_ * _); apply: eq_integral => y _; rewrite integral_indic// setIT.
11451079
rewrite integral0_eq ?mule0; last first.
11461080
by move=> y _; rewrite integral0_eq// => z _; rewrite preimage_nnfun0// indic0.
11471081
by rewrite integral0_eq// => y _; rewrite preimage_nnfun0// measure0 mule0.
@@ -1168,18 +1102,18 @@ transitivity (\int[l x]_y lim (fun n => \int[k (x, y)]_z (f_ n z)%:E)).
11681102
by move=> /measurable_fun_prod1; exact.
11691103
+ by move=> z; rewrite lee_fin.
11701104
+ exact/EFin_measurable_fun.
1171-
- by move=> n y _; apply integral_ge0 => // z _; rewrite lee_fin.
1105+
- by move=> n y _; apply: integral_ge0 => // z _; rewrite lee_fin.
11721106
- move=> y _ a b ab; apply: ge0_le_integral => //.
11731107
+ by move=> z _; rewrite lee_fin.
11741108
+ exact/EFin_measurable_fun.
11751109
+ by move=> z _; rewrite lee_fin.
11761110
+ exact/EFin_measurable_fun.
11771111
+ by move: ab => /ndf_ /lefP ab z _; rewrite lee_fin.
1178-
apply eq_integral => y _; rewrite -monotone_convergence//; last 3 first.
1112+
apply: eq_integral => y _; rewrite -monotone_convergence//; last 3 first.
11791113
- by move=> n; exact/EFin_measurable_fun.
11801114
- by move=> n z _; rewrite lee_fin.
11811115
- by move=> z _ a b /ndf_ /lefP; rewrite lee_fin.
1182-
by apply eq_integral => z _; apply/cvg_lim => //; exact: f_f.
1116+
by apply: eq_integral => z _; apply/cvg_lim => //; exact: f_f.
11831117
Qed.
11841118

11851119
End integral_kcomp.

theories/prob_lang.v

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ rewrite (_ : (fun x => _) = (fun x => x *
164164
(\1_(`[i%:R%:E, i.+1%:R%:E [%classic : set _) x)%:E)); last first.
165165
apply/funext => x; case: ifPn => ix; first by rewrite indicE/= mem_set ?mule1.
166166
by rewrite indicE/= memNset ?mule0// /= in_itv/=; exact/negP.
167-
apply emeasurable_funM => /=; first exact: measurable_fun_id.
167+
apply: emeasurable_funM => /=; first exact: measurable_fun_id.
168168
apply/EFin_measurable_fun.
169-
by rewrite (_ : \1__ = mindic R (emeasurable_itv1 R i)).
169+
by rewrite (_ : \1__ = mindic R (emeasurable_itv `[(i%:R)%:E, (i.+1%:R)%:E[)).
170170
Qed.
171171

172172
Definition mk i t := [the measure _ _ of k mf i t].
@@ -615,15 +615,15 @@ Lemma letin_iteT : f t -> letin (ite mf k1 k2) u t U = letin k1 u t U.
615615
Proof.
616616
move=> ftT.
617617
rewrite !letinE/=.
618-
apply eq_measure_integral => V mV _.
618+
apply: eq_measure_integral => V mV _.
619619
by rewrite iteE ftT.
620620
Qed.
621621

622622
Lemma letin_iteF : ~~ f t -> letin (ite mf k1 k2) u t U = letin k2 u t U.
623623
Proof.
624624
move=> ftF.
625625
rewrite !letinE/=.
626-
apply eq_measure_integral => V mV _.
626+
apply: eq_measure_integral => V mV _.
627627
by rewrite iteE (negbTE ftF).
628628
Qed.
629629

@@ -679,7 +679,7 @@ Proof. exact: measure_semi_sigma_additive. Qed.
679679
HB.instance Definition _ z := @isMeasure.Build _ R X (T z) (T0 z) (T_ge0 z)
680680
(@T_semi_sigma_additive z).
681681

682-
Let sfinT z : sfinite_measure_def (T z). Proof. exact: sfinite_kernel_measure. Qed.
682+
Let sfinT z : sfinite_measure (T z). Proof. exact: sfinite_kernel_measure. Qed.
683683
HB.instance Definition _ z := @Measure_isSFinite_subdef.Build _ X R
684684
(T z) (sfinT z).
685685

@@ -691,7 +691,7 @@ Proof. exact: measure_semi_sigma_additive. Qed.
691691
HB.instance Definition _ z := @isMeasure.Build _ R Y (U z) (U0 z) (U_ge0 z)
692692
(@U_semi_sigma_additive z).
693693

694-
Let sfinU z : sfinite_measure_def (U z). Proof. exact: sfinite_kernel_measure. Qed.
694+
Let sfinU z : sfinite_measure (U z). Proof. exact: sfinite_kernel_measure. Qed.
695695
HB.instance Definition _ z := @Measure_isSFinite_subdef.Build _ Y R
696696
(U z) (sfinU z).
697697

@@ -710,7 +710,7 @@ under eq_integral.
710710
rewrite letinE -uu'.
711711
under eq_integral do rewrite retE /=.
712712
over.
713-
rewrite (sfinite_fubini
713+
rewrite (sfinite_Fubini
714714
[the {sfinite_measure set X -> \bar R} of T z]
715715
[the {sfinite_measure set Y -> \bar R} of U z]
716716
(fun x => \d_(x.1, x.2) A ))//; last first.

0 commit comments

Comments
 (0)