@@ -95,8 +95,8 @@ Lemma measurable_fun_mscore U : measurable_fun setT f ->
9595 measurable_fun setT (mscore ^~ U).
9696Proof .
9797move=> 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 .
100100Qed .
101101
102102End mscore.
@@ -160,13 +160,12 @@ Lemma measurable_fun_k i U : measurable U -> measurable_fun setT (k mf i ^~ U).
160160Proof .
161161move=> /= 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.
164164rewrite (_ : (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.
170169by rewrite (_ : \1__ = mindic R (emeasurable_itv `[(i%:R)%:E, (i.+1%:R)%:E[)).
171170Qed .
172171
@@ -259,9 +258,8 @@ move=> /= mcU; rewrite /kiteT.
259258rewrite (_ : (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.
265263Qed .
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.
278276Proof .
279- have [k_ hk /=] := sfinite k.
277+ have [k_ hk /=] := sfinite_kernel k.
280278exists (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.
316314rewrite (_ : (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)) => //.
321318exact/measurable_kernel.
322319Qed .
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.
336333Proof .
337- have [k_ hk /=] := sfinite k.
334+ have [k_ hk /=] := sfinite_kernel k.
338335exists (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
411408Definition 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
414411Definition 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)
486483Proof .
487484move=> mU; rewrite letinE.
488485under 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).
492488Qed .
493489
494490Lemma letin_retk
@@ -498,8 +494,7 @@ Lemma letin_retk
498494 letin (ret mf) k x U = k (x, f x) U.
499495Proof .
500496move=> 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)).
503498Qed .
504499
505500End letin_return.
@@ -517,8 +512,8 @@ Section hard_constraint.
517512Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
518513
519514Definition 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
523518Lemma failE x U : fail x U = 0.
524519Proof . by rewrite /fail letinE ge0_integral_mscale//= normr0 mul0e. Qed .
@@ -528,13 +523,13 @@ Arguments fail {d d' X Y R}.
528523
529524Module 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
539534Notation mR := Real_sort__canonical__measure_Measurable.
540535Notation munit := Datatypes_unit__canonical__measure_Measurable.
@@ -545,10 +540,10 @@ End Notations.
545540Section cst_fun.
546541Context 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.
549544Definition k3 : measurable_fun _ _ := kr 3%:R.
550545Definition k10 : measurable_fun _ _ := kr 10%:R.
551- Definition ktt := @measurable_fun_cst _ _ T _ setT tt.
546+ Definition ktt := @measurable_cst _ _ T _ setT tt.
552547
553548End cst_fun.
554549Arguments kr {d T R}.
572567Lemma 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.
578573Proof . 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) )).
585580Proof .
586581apply/eq_sfkernel => x U.
587582rewrite {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)).
658652Qed .
659653
660654End letinA.
@@ -699,10 +693,10 @@ HB.instance Definition _ z := @Measure_isSFinite_subdef.Build _ Y R
699693Lemma 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.
706700Proof .
707701move=> mA.
708702rewrite !letinE.
@@ -774,11 +768,7 @@ Qed.
774768
775769Lemma mpoisson k : measurable_fun setT (poisson k).
776770Proof .
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].
782772Qed .
783773
784774Definition poisson3 := poisson 4 3%:R. (* 0.168 *)
@@ -801,11 +791,8 @@ Proof. by move=> r0; rewrite /exp_density mulr_ge0// expR_ge0. Qed.
801791
802792Lemma mexp_density x : measurable_fun setT (exp_density x).
803793Proof .
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.
809796Qed .
810797
811798End 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
915902Definition staton_bus := normalize kstaton_bus.
0 commit comments