Skip to content

Commit 7244ef8

Browse files
committed
fix
1 parent 4ab51ed commit 7244ef8

File tree

2 files changed

+42
-57
lines changed

2 files changed

+42
-57
lines changed

theories/prob_lang.v

Lines changed: 33 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ Lemma measurable_fun_mscore U : measurable_fun setT f ->
9595
measurable_fun setT (mscore ^~ U).
9696
Proof.
9797
move=> mr; under eq_fun do rewrite mscoreE/=.
98-
have [U0|U0] := eqVneq U set0; first exact: measurable_fun_cst.
99-
by apply: measurable_funT_comp => //; exact: measurable_funT_comp.
98+
have [U0|U0] := eqVneq U set0; first exact: measurable_cst.
99+
by apply: measurableT_comp => //; exact: measurableT_comp.
100100
Qed.
101101

102102
End mscore.
@@ -160,13 +160,12 @@ Lemma measurable_fun_k i U : measurable U -> measurable_fun setT (k mf i ^~ U).
160160
Proof.
161161
move=> /= mU; rewrite /k /= (_ : (fun x => _) =
162162
(fun x => if i%:R%:E <= x < i.+1%:R%:E then x else 0) \o (mscore f ^~ U)) //.
163-
apply: measurable_funT_comp => /=; last exact/measurable_fun_mscore.
163+
apply: measurableT_comp => /=; last exact/measurable_fun_mscore.
164164
rewrite (_ : (fun x => _) = (fun x => x *
165165
(\1_(`[i%:R%:E, i.+1%:R%:E [%classic : set _) x)%:E)); last first.
166166
apply/funext => x; case: ifPn => ix; first by rewrite indicE/= mem_set ?mule1.
167167
by rewrite indicE/= memNset ?mule0// /= in_itv/=; exact/negP.
168-
apply: emeasurable_funM => /=; first exact: measurable_fun_id.
169-
apply/EFin_measurable_fun.
168+
apply: emeasurable_funM => //=; apply/EFin_measurable_fun.
170169
by rewrite (_ : \1__ = mindic R (emeasurable_itv `[(i%:R)%:E, (i.+1%:R)%:E[)).
171170
Qed.
172171

@@ -259,9 +258,8 @@ move=> /= mcU; rewrite /kiteT.
259258
rewrite (_ : (fun _ => _) =
260259
(fun x => if x.2 then k x.1 U else mzero U)); last first.
261260
by apply/funext => -[t b]/=; case: ifPn.
262-
apply: (@measurable_fun_if_pair _ _ _ _ (k ^~ U) (fun=> mzero U)).
263-
exact/measurable_kernel.
264-
exact: measurable_fun_cst.
261+
apply: (@measurable_fun_if_pair _ _ _ _ (k ^~ U) (fun=> mzero U)) => //.
262+
exact/measurable_kernel.
265263
Qed.
266264

267265
#[export]
@@ -276,7 +274,7 @@ Let sfinite_kiteT : exists2 k_ : (R.-ker _ ~> _)^nat,
276274
forall n, measure_fam_uub (k_ n) &
277275
forall x U, measurable U -> kiteT k x U = mseries (k_ ^~ x) 0 U.
278276
Proof.
279-
have [k_ hk /=] := sfinite k.
277+
have [k_ hk /=] := sfinite_kernel k.
280278
exists (fun n => [the _.-ker _ ~> _ of kiteT (k_ n)]) => /=.
281279
move=> n; have /measure_fam_uubP[r k_r] := measure_uub (k_ n).
282280
by exists r%:num => /= -[x []]; rewrite /kiteT//= /mzero//.
@@ -316,8 +314,7 @@ move=> /= mcU; rewrite /kiteF.
316314
rewrite (_ : (fun x => _) =
317315
(fun x => if x.2 then mzero U else k x.1 U)); last first.
318316
by apply/funext => -[t b]/=; rewrite if_neg//; case: ifPn.
319-
apply: (@measurable_fun_if_pair _ _ _ _ (fun=> mzero U) (k ^~ U)).
320-
exact: measurable_fun_cst.
317+
apply: (@measurable_fun_if_pair _ _ _ _ (fun=> mzero U) (k ^~ U)) => //.
321318
exact/measurable_kernel.
322319
Qed.
323320

@@ -334,7 +331,7 @@ Let sfinite_kiteF : exists2 k_ : (R.-ker _ ~> _)^nat,
334331
forall n, measure_fam_uub (k_ n) &
335332
forall x U, measurable U -> kiteF k x U = mseries (k_ ^~ x) 0 U.
336333
Proof.
337-
have [k_ hk /=] := sfinite k.
334+
have [k_ hk /=] := sfinite_kernel k.
338335
exists (fun n => [the _.-ker _ ~> _ of kiteF (k_ n)]) => /=.
339336
move=> n; have /measure_fam_uubP[r k_r] := measure_uub (k_ n).
340337
by exists r%:num => /= -[x []]; rewrite /kiteF//= /mzero//.
@@ -409,7 +406,7 @@ Definition ret (f : X -> Y) (mf : measurable_fun setT f)
409406
: R.-pker X ~> Y := [the R.-pker _ ~> _ of kdirac mf].
410407

411408
Definition sample (P : pprobability Y R) : R.-pker X ~> Y :=
412-
[the R.-pker _ ~> _ of kprobability (measurable_fun_cst P)].
409+
[the R.-pker _ ~> _ of kprobability (measurable_cst P)].
413410

414411
Definition normalize (k : R.-sfker X ~> Y) P : X -> probability Y R :=
415412
fun x => [the probability _ _ of mnormalize k P x].
@@ -486,9 +483,8 @@ Lemma letin_kret (k : R.-sfker X ~> Y)
486483
Proof.
487484
move=> mU; rewrite letinE.
488485
under eq_integral do rewrite retE.
489-
rewrite integral_indic ?setIT//.
490-
move/measurable_fun_prod1 : mf => /(_ x measurableT U mU).
491-
by rewrite setTI.
486+
rewrite integral_indic ?setIT// -[X in measurable X]setTI.
487+
exact: (measurableT_comp mf).
492488
Qed.
493489

494490
Lemma letin_retk
@@ -498,8 +494,7 @@ Lemma letin_retk
498494
letin (ret mf) k x U = k (x, f x) U.
499495
Proof.
500496
move=> mU; rewrite letinE retE integral_dirac ?indicT ?mul1e//.
501-
have /measurable_fun_prod1 := measurable_kernel k _ mU.
502-
exact.
497+
exact: (measurableT_comp (measurable_kernel k _ mU)).
503498
Qed.
504499

505500
End letin_return.
@@ -517,8 +512,8 @@ Section hard_constraint.
517512
Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
518513

519514
Definition fail :=
520-
letin (score (@measurable_fun_cst _ _ X _ setT (0%R : R)))
521-
(ret (@measurable_fun_cst _ _ _ Y setT point)).
515+
letin (score (@measurable_cst _ _ X _ setT (0%R : R)))
516+
(ret (@measurable_cst _ _ _ Y setT point)).
522517

523518
Lemma failE x U : fail x U = 0.
524519
Proof. by rewrite /fail letinE ge0_integral_mscale//= normr0 mul0e. Qed.
@@ -528,13 +523,13 @@ Arguments fail {d d' X Y R}.
528523

529524
Module Notations.
530525

531-
Notation var1of2 := (@measurable_fun_fst _ _ _ _).
532-
Notation var2of2 := (@measurable_fun_snd _ _ _ _).
533-
Notation var1of3 := (measurable_funT_comp (@measurable_fun_fst _ _ _ _)
534-
(@measurable_fun_fst _ _ _ _)).
535-
Notation var2of3 := (measurable_funT_comp (@measurable_fun_snd _ _ _ _)
536-
(@measurable_fun_fst _ _ _ _)).
537-
Notation var3of3 := (@measurable_fun_snd _ _ _ _).
526+
Notation var1of2 := (@measurable_fst _ _ _ _).
527+
Notation var2of2 := (@measurable_snd _ _ _ _).
528+
Notation var1of3 := (measurableT_comp (@measurable_fst _ _ _ _)
529+
(@measurable_fst _ _ _ _)).
530+
Notation var2of3 := (measurableT_comp (@measurable_snd _ _ _ _)
531+
(@measurable_fst _ _ _ _)).
532+
Notation var3of3 := (@measurable_snd _ _ _ _).
538533

539534
Notation mR := Real_sort__canonical__measure_Measurable.
540535
Notation munit := Datatypes_unit__canonical__measure_Measurable.
@@ -545,10 +540,10 @@ End Notations.
545540
Section cst_fun.
546541
Context d (T : measurableType d) (R : realType).
547542

548-
Definition kr (r : R) := @measurable_fun_cst _ _ T _ setT r.
543+
Definition kr (r : R) := @measurable_cst _ _ T _ setT r.
549544
Definition k3 : measurable_fun _ _ := kr 3%:R.
550545
Definition k10 : measurable_fun _ _ := kr 10%:R.
551-
Definition ktt := @measurable_fun_cst _ _ T _ setT tt.
546+
Definition ktt := @measurable_cst _ _ T _ setT tt.
552547

553548
End cst_fun.
554549
Arguments kr {d T R}.
@@ -572,7 +567,7 @@ Qed.
572567
Lemma scoreE d' (T' : measurableType d') (x : T * T') (U : set T') (f : R -> R)
573568
(r : R) (r0 : (0 <= r)%R)
574569
(f0 : (forall r, 0 <= r -> 0 <= f r)%R) (mf : measurable_fun setT f) :
575-
score (measurable_funT_comp mf var2of2)
570+
score (measurableT_comp mf var2of2)
576571
(x, r) (curry (snd \o fst) x @^-1` U) =
577572
(f r)%:E * \d_x.2 U.
578573
Proof. by rewrite /score/= /mscale/= ger0_norm// f0. Qed.
@@ -581,7 +576,7 @@ Lemma score_score (f : R -> R) (g : R * unit -> R)
581576
(mf : measurable_fun setT f)
582577
(mg : measurable_fun setT g) :
583578
letin (score mf) (score mg) =
584-
score (measurable_funM mf (measurable_fun_prod2 tt mg)).
579+
score (measurable_funM mf (measurableT_comp mg (measurable_pair2 tt))).
585580
Proof.
586581
apply/eq_sfkernel => x U.
587582
rewrite {1}/letin; unlock.
@@ -653,8 +648,7 @@ rewrite integral_kcomp; [|by []|].
653648
- apply: eq_integral => y _.
654649
apply: eq_integral => z _.
655650
by rewrite (vv' y).
656-
have /measurable_fun_prod1 := @measurable_kernel _ _ _ _ _ v _ mA.
657-
exact.
651+
exact: (measurableT_comp (measurable_kernel v _ mA)).
658652
Qed.
659653

660654
End letinA.
@@ -699,10 +693,10 @@ HB.instance Definition _ z := @Measure_isSFinite_subdef.Build _ Y R
699693
Lemma letinC z A : measurable A ->
700694
letin t
701695
(letin u'
702-
(ret (measurable_fun_pair var2of3 var3of3))) z A =
696+
(ret (measurable_fun_prod var2of3 var3of3))) z A =
703697
letin u
704698
(letin t'
705-
(ret (measurable_fun_pair var3of3 var2of3))) z A.
699+
(ret (measurable_fun_prod var3of3 var2of3))) z A.
706700
Proof.
707701
move=> mA.
708702
rewrite !letinE.
@@ -774,11 +768,7 @@ Qed.
774768

775769
Lemma mpoisson k : measurable_fun setT (poisson k).
776770
Proof.
777-
apply: measurable_funM => /=.
778-
apply: measurable_funM => //=; last exact: measurable_fun_cst.
779-
exact/measurable_fun_exprn/measurable_fun_id.
780-
apply: measurable_funT_comp; last exact: measurable_fun_opp.
781-
by apply: continuous_measurable_fun; exact: continuous_expR.
771+
by apply: measurable_funM => /=; [exact: measurable_funM|exact: measurableT_comp].
782772
Qed.
783773

784774
Definition poisson3 := poisson 4 3%:R. (* 0.168 *)
@@ -801,11 +791,8 @@ Proof. by move=> r0; rewrite /exp_density mulr_ge0// expR_ge0. Qed.
801791

802792
Lemma mexp_density x : measurable_fun setT (exp_density x).
803793
Proof.
804-
apply: measurable_funM => /=; first exact: measurable_fun_id.
805-
apply: measurable_funT_comp.
806-
by apply: continuous_measurable_fun; exact: continuous_expR.
807-
apply: measurable_funM => /=; first exact: measurable_fun_opp.
808-
exact: measurable_fun_cst.
794+
apply: measurable_funM => //=; apply: measurableT_comp => //.
795+
exact: measurable_funM.
809796
Qed.
810797

811798
End exponential.
@@ -909,7 +896,7 @@ Definition kstaton_bus : R.-sfker T ~> mbool :=
909896
letin (sample [the probability _ _ of bernoulli p27])
910897
(letin
911898
(letin (ite var2of2 (ret k3) (ret k10))
912-
(score (measurable_funT_comp mh var3of3)))
899+
(score (measurableT_comp mh var3of3)))
913900
(ret var2of3)).
914901

915902
Definition staton_bus := normalize kstaton_bus.

theories/wip.v

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,13 @@ Definition mgauss01 (V : set R) :=
5151
Lemma measurable_fun_gauss_density m s :
5252
measurable_fun setT (gauss_density m s).
5353
Proof.
54-
apply: measurable_funM; first exact: measurable_fun_cst.
55-
apply: measurable_funT_comp => /=.
56-
by apply: continuous_measurable_fun; apply continuous_expR.
57-
apply: measurable_funM; last exact: measurable_fun_cst.
58-
apply: measurable_funT_comp => /=; first exact: measurable_fun_opp.
59-
apply: measurable_fun_exprn.
60-
apply: measurable_funM => /=; last exact: measurable_fun_cst.
61-
apply: measurable_funD => //; first exact: measurable_fun_id.
62-
exact: measurable_fun_cst.
54+
apply: measurable_funM => //=.
55+
apply: measurableT_comp => //=.
56+
apply: measurable_funM => //=.
57+
apply: measurableT_comp => //=.
58+
apply: measurableT_comp (measurable_exprn _) _ => /=.
59+
apply: measurable_funM => //=.
60+
exact: measurable_funD.
6361
Qed.
6462

6563
Let mgauss010 : mgauss01 set0 = 0%E.
@@ -112,7 +110,7 @@ Let f1 (x : R) := (gauss01_density x) ^-1.
112110

113111
Let mf1 : measurable_fun setT f1.
114112
Proof.
115-
apply: (measurable_fun_comp (F := [set r : R | r != 0%R])) => //.
113+
apply: (measurable_comp (F := [set r : R | r != 0%R])) => //.
116114
- exact: open_measurable.
117115
- by move=> /= r [t _ <-]; rewrite gt_eqF// gauss_density_gt0.
118116
- apply: open_continuous_measurable_fun => //.
@@ -125,7 +123,7 @@ Variable mu : {measure set mR R -> \bar R}.
125123
Definition staton_lebesgue : R.-sfker T ~> _ :=
126124
letin (sample (@gauss01 R))
127125
(letin
128-
(score (measurable_funT_comp mf1 var2of2))
126+
(score (measurableT_comp mf1 var2of2))
129127
(ret var2of3)).
130128

131129
Lemma staton_lebesgueE x U : measurable U ->

0 commit comments

Comments
 (0)