@@ -101,35 +101,12 @@ Lemma xsection_preimage_snd (X Y Z : Type) (f : Y -> Z) (A : set Z) (x : X) :
101101 xsection ((f \o snd) @^-1` A) x = f @^-1` A.
102102Proof . by apply/seteqP; split; move=> y/=; rewrite /xsection/= inE. Qed .
103103
104- Canonical unit_pointedType := PointedType unit tt.
105-
106- Section discrete_measurable_unit.
107-
108- Definition discrete_measurable_unit : set (set unit) := [set: set unit].
109-
110- Let discrete_measurable0 : discrete_measurable_unit set0. Proof . by []. Qed .
111-
112- Let discrete_measurableC X :
113- discrete_measurable_unit X -> discrete_measurable_unit (~` X).
114- Proof . by []. Qed .
115-
116- Let discrete_measurableU (F : (set unit)^nat) :
117- (forall i, discrete_measurable_unit (F i)) ->
118- discrete_measurable_unit (\bigcup_i F i).
119- Proof . by []. Qed .
120-
121- HB.instance Definition _ := @isMeasurable.Build default_measure_display unit
122- (Pointed.class _) discrete_measurable_unit discrete_measurable0
123- discrete_measurableC discrete_measurableU.
124-
125- End discrete_measurable_unit.
126-
127104Lemma measurable_curry (T1 T2 : Type ) d (T : semiRingOfSetsType d)
128105 (G : T1 * T2 -> set T) (x : T1 * T2) :
129106 measurable (G x) <-> measurable (curry G x.1 x.2).
130107Proof . by case: x. Qed .
131108
132- Lemma emeasurable_itv (R : realType) (i : nat) :
109+ Lemma emeasurable_itv1 (R : realType) (i : nat) :
133110 measurable (`[(i%:R)%:E, (i.+1%:R)%:E[%classic : set \bar R).
134111Proof .
135112rewrite -[X in measurable X]setCK.
@@ -143,13 +120,13 @@ Qed.
143120Lemma measurable_fun_fst d1 d2 (T1 : measurableType d1)
144121 (T2 : measurableType d2) : measurable_fun setT (@fst T1 T2).
145122Proof .
146- by have /prod_measurable_funP[] := @measurable_fun_id _ (T1 * T2)%type setT.
123+ by have /prod_measurable_funP[] := @measurable_fun_id _ [the measurableType _ of (T1 * T2)%type] setT.
147124Qed .
148125
149126Lemma measurable_fun_snd d1 d2 (T1 : measurableType d1)
150127 (T2 : measurableType d2) : measurable_fun setT (@snd T1 T2).
151128Proof .
152- by have /prod_measurable_funP[] := @measurable_fun_id _ (T1 * T2)%type setT.
129+ by have /prod_measurable_funP[] := @measurable_fun_id _ [the measurableType _ of (T1 * T2)%type] setT.
153130Qed .
154131
155132Definition swap (T1 T2 : Type) (x : T1 * T2) := (x.2, x.1).
@@ -243,10 +220,6 @@ Proof. by rewrite -fubini_tonelli1// fubini_tonelli2. Qed.
243220End fubini_tonelli.
244221(* /TODO: PR *)
245222
246- Definition finite_measure d (T : measurableType d) (R : realType)
247- (mu : set T -> \bar R) :=
248- mu setT < +oo.
249-
250223Definition sfinite_measure d (T : measurableType d) (R : realType)
251224 (mu : set T -> \bar R) :=
252225 exists2 s : {measure set T -> \bar R}^nat,
@@ -274,7 +247,7 @@ Lemma sfinite_fubini :
274247Proof .
275248have [s1 fm1 m1E] := sfm1.
276249have [s2 fm2 m2E] := sfm2.
277- rewrite [LHS](eq_measure_integral ( mseries s1 0) ); last first.
250+ rewrite [LHS](eq_measure_integral [the measure _ _ of mseries s1 0] ); last first.
278251 by move=> A mA _; rewrite m1E.
279252transitivity (\int[mseries s1 0]_x \int[mseries s2 0]_y f (x, y)).
280253 by apply eq_integral => x _; apply: eq_measure_integral => ? ? _; rewrite m2E.
@@ -352,7 +325,7 @@ Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
352325Variable k : (R.-ker X ~> Y)^nat.
353326
354327Definition kseries : X -> {measure set Y -> \bar R} :=
355- fun x => mseries (k ^~ x) 0.
328+ fun x => [the measure _ _ of mseries (k ^~ x) 0] .
356329
357330Lemma measurable_fun_kseries (U : set Y) :
358331 measurable U ->
@@ -441,7 +414,7 @@ HB.factory Record Kernel_isFinite d d' (X : measurableType d)
441414Section kzero.
442415Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
443416
444- Definition kzero : X -> {measure set Y -> \bar R} := fun _ : X => mzero.
417+ Definition kzero : X -> {measure set Y -> \bar R} := fun _ : X => [the measure _ _ of mzero] .
445418
446419Let measurable_fun_kzero U : measurable U ->
447420 measurable_fun setT (kzero ^~ U).
@@ -463,7 +436,7 @@ Lemma sfinite_finite :
463436 forall x U, measurable U -> k x U = mseries (k_ ^~ x) 0 U.
464437Proof .
465438exists (fun n => if n is O then [the _.-ker _ ~> _ of k] else
466- @kzero _ _ X Y R).
439+ [the _.-ker _ ~> _ of @kzero _ _ X Y R] ).
467440 by case => [|_]; [exact: measure_uub|exact: kzero_uub].
468441move=> t U mU/=; rewrite /mseries.
469442rewrite (nneseries_split 1%N)// big_ord_recl/= big_ord0 adde0.
@@ -503,7 +476,7 @@ HB.instance Definition _ n :=
503476Lemma sfinite : exists s : (R.-fker X ~> Y)^nat,
504477 forall x U, measurable U -> k x U = kseries s x U.
505478Proof .
506- by exists s => x U mU; rewrite /s /= /s; by case: cid2 => ? ? ->.
479+ by exists (fun n => [the _.-fker _ ~> _ of s n]) => x U mU; rewrite /s /= /s; by case: cid2 => ? ? ->.
507480Qed .
508481
509482End sfinite.
@@ -703,7 +676,7 @@ Variable k : X * Y -> \bar R.
703676
704677Lemma measurable_fun_xsection_integral
705678 (l : X -> {measure set Y -> \bar R})
706- (k_ : ({nnsfun (X * Y)%type >-> R})^nat)
679+ (k_ : ({nnsfun [the measurableType _ of (X * Y)%type] >-> R})^nat)
707680 (ndk_ : nondecreasing_seq (k_ : (X * Y -> R)^nat))
708681 (k_k : forall z, EFin \o (k_ ^~ z) --> k z) :
709682 (forall n r, measurable_fun setT (fun x => l x (xsection (k_ n @^-1` [set r]) x))) ->
@@ -738,7 +711,8 @@ rewrite [X in measurable_fun _ X](_ : _ = (fun x => \sum_(r \in range (k_ n))
738711 - by apply: eq_integral => y _; rewrite -fsumEFin.
739712 - move=> r.
740713 apply/EFin_measurable_fun/measurable_funrM/measurable_fun_prod1 => /=.
741- by rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) r)).
714+ rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) r))//.
715+ exact/measurable_funP.
742716 - by move=> m y _; rewrite nnfun_muleindic_ge0.
743717apply: emeasurable_fun_fsum => // r.
744718rewrite [X in measurable_fun _ X](_ : _ = (fun x => r%:E *
@@ -747,7 +721,8 @@ rewrite [X in measurable_fun _ X](_ : _ = (fun x => r%:E *
747721 have [r0|r0] := leP 0%R r.
748722 rewrite ge0_integralM//; last by move=> y _; rewrite lee_fin.
749723 apply/EFin_measurable_fun/measurable_fun_prod1 => /=.
750- by rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) r)).
724+ rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) r))//.
725+ exact/measurable_funP.
751726 rewrite integral_eq0; last first.
752727 by move=> y _; rewrite preimage_nnfun0// indic0 mule0.
753728 by rewrite integral_eq0 ?mule0// => y _; rewrite preimage_nnfun0// indic0.
@@ -805,7 +780,7 @@ Variable f : X -> Y.
805780
806781Definition kdirac (mf : measurable_fun setT f)
807782 : X -> {measure set Y -> \bar R} :=
808- fun x => dirac (f x).
783+ fun x => [the measure _ _ of dirac (f x)] .
809784
810785Hypothesis mf : measurable_fun setT f.
811786
@@ -831,7 +806,7 @@ Arguments kdirac {d d' X Y R f}.
831806Section dist_salgebra_instance.
832807Context d (T : measurableType d) (R : realType).
833808
834- Let p0 : probability T R := dirac point.
809+ Let p0 : probability T R := [the probability _ _ of dirac point] .
835810
836811Definition prob_pointed := Pointed.Class
837812 (Choice.Class gen_eqMixin (Choice.Class gen_eqMixin gen_choiceMixin)) p0.
857832Definition pset : set (set (probability T R)) :=
858833 [set mset U r | r in `[0%R,1%R] & U in measurable].
859834
860- Definition pprobability : measurableType pset.-sigma := salgebraType pset.
835+ Definition pprobability : measurableType pset.-sigma := [the measurableType _ of salgebraType pset] .
861836
862837End dist_salgebra_instance.
863838
@@ -898,7 +873,7 @@ Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
898873Variables k1 k2 : R.-ker X ~> Y.
899874
900875Definition kadd : X -> {measure set Y -> \bar R} :=
901- fun x => measure_add (k1 x) (k2 x).
876+ fun x => [the measure _ _ of measure_add (k1 x) (k2 x)] .
902877
903878Let measurable_fun_kadd U : measurable U ->
904879 measurable_fun setT (kadd ^~ U).
@@ -922,7 +897,7 @@ Let sfinite_kadd : exists2 k_ : (R.-ker _ ~> _)^nat, forall n, measure_fam_uub (
922897 kadd k1 k2 x U = mseries (k_ ^~ x) 0 U.
923898Proof .
924899have [f1 hk1] := sfinite k1; have [f2 hk2] := sfinite k2.
925- exists (fun n => kadd (f1 n) (f2 n)).
900+ exists (fun n => [the _.-ker _ ~> _ of kadd (f1 n) (f2 n)] ).
926901 move=> n.
927902 have [r1 f1r1] := measure_uub (f1 n).
928903 have [r2 f2r2] := measure_uub (f2 n).
@@ -1046,7 +1021,7 @@ Context d d' (X : measurableType d) (Y : measurableType d') (R : realType).
10461021Variable f : R.-ker X ~> Y.
10471022
10481023Definition knormalize (P : probability Y R) : X -> {measure set Y -> \bar R} :=
1049- mnormalize f P.
1024+ fun x => [the measure _ _ of mnormalize f P x] .
10501025
10511026Variable P : probability Y R.
10521027
@@ -1113,7 +1088,7 @@ Section kcomp_is_measure.
11131088Context d1 d2 d3 (X : measurableType d1) (Y : measurableType d2)
11141089 (Z : measurableType d3) (R : realType).
11151090Variable l : R.-ker X ~> Y.
1116- Variable k : R.-ker (X * Y)%type ~> Z.
1091+ Variable k : R.-ker [the measurableType _ of (X * Y)%type] ~> Z.
11171092
11181093Local Notation "l \; k" := (kcomp l k).
11191094
@@ -1139,7 +1114,7 @@ Qed.
11391114HB.instance Definition _ x := isMeasure.Build _ R _
11401115 ((l \; k) x) (kcomp0 x) (kcomp_ge0 x) (@kcomp_sigma_additive x).
11411116
1142- Definition mkcomp : X -> {measure set Z -> \bar R} := l \; k.
1117+ Definition mkcomp : X -> {measure set Z -> \bar R} := fun x => [the measure _ _ of ( l \; k) x] .
11431118
11441119End kcomp_is_measure.
11451120
@@ -1150,7 +1125,7 @@ Module KCOMP_FINITE_KERNEL.
11501125Section kcomp_finite_kernel_kernel.
11511126Context d d' d3 (X : measurableType d) (Y : measurableType d')
11521127 (Z : measurableType d3) (R : realType) (l : R.-fker X ~> Y)
1153- (k : R.-ker (X * Y)%type ~> Z).
1128+ (k : R.-ker [the measurableType _ of (X * Y)%type] ~> Z).
11541129
11551130Lemma measurable_fun_kcomp_finite U :
11561131 measurable U -> measurable_fun setT ((l \; k) ^~ U).
@@ -1168,7 +1143,7 @@ Section kcomp_finite_kernel_finite.
11681143Context d d' d3 (X : measurableType d) (Y : measurableType d')
11691144 (Z : measurableType d3) (R : realType).
11701145Variable l : R.-fker X ~> Y.
1171- Variable k : R.-fker (X * Y)%type ~> Z.
1146+ Variable k : R.-fker [the measurableType _ of (X * Y)%type] ~> Z.
11721147
11731148Let mkcomp_finite : measure_fam_uub (l \; k).
11741149Proof .
@@ -1194,7 +1169,7 @@ Section kcomp_sfinite_kernel.
11941169Context d d' d3 (X : measurableType d) (Y : measurableType d')
11951170 (Z : measurableType d3) (R : realType).
11961171Variable l : R.-sfker X ~> Y.
1197- Variable k : R.-sfker (X * Y)%type ~> Z.
1172+ Variable k : R.-sfker [the measurableType _ of (X * Y)%type] ~> Z.
11981173
11991174Import KCOMP_FINITE_KERNEL.
12001175
@@ -1206,10 +1181,10 @@ have [kl hkl] : exists kl : (R.-fker X ~> Z) ^nat, forall x U,
12061181 \esum_(i in setT) (l_ i.2 \; k_ i.1) x U = \sum_(i <oo) kl i x U.
12071182 have /ppcard_eqP[f] : ([set: nat] #= [set: nat * nat])%card.
12081183 by rewrite card_eq_sym; exact: card_nat2.
1209- exists (fun i => l_ (f i).2 \; k_ (f i).1) => x U.
1184+ exists (fun i => [the _.-fker _ ~> _ of l_ (f i).2 \; k_ (f i).1] ) => x U.
12101185 by rewrite (reindex_esum [set: nat] _ f)// nneseries_esum// fun_true.
12111186exists kl => x U mU.
1212- transitivity ((kseries l_ \; kseries k_) x U).
1187+ transitivity (([the _.-ker _ ~> _ of kseries l_] \; [the _.-ker _ ~> _ of kseries k_] ) x U).
12131188 rewrite /= /kcomp [in RHS](eq_measure_integral (l x)); last first.
12141189 by move=> *; rewrite hl_.
12151190 by apply: eq_integral => y _; rewrite hk_.
@@ -1239,7 +1214,7 @@ Section kcomp_sfinite_kernel.
12391214Context d d' d3 (X : measurableType d) (Y : measurableType d')
12401215 (Z : measurableType d3) (R : realType).
12411216Variable l : R.-sfker X ~> Y.
1242- Variable k : R.-sfker (X * Y)%type ~> Z.
1217+ Variable k : R.-sfker [the measurableType _ of (X * Y)%type] ~> Z.
12431218
12441219HB.instance Definition _ :=
12451220 isKernel.Build _ _ X Z R (l \; k) (measurable_fun_mkcomp_sfinite l k).
@@ -1283,7 +1258,8 @@ Lemma measurable_fun_preimage_integral (l : X -> {measure set Y -> \bar R}) :
12831258 (forall n r, measurable_fun setT (l ^~ (k_ n @^-1` [set r]))) ->
12841259 measurable_fun setT (fun x => \int[l x]_z k z).
12851260Proof .
1286- move=> h; apply: (measurable_fun_xsection_integral (k \o snd) l k_2) => /=.
1261+ move=> h; apply: (measurable_fun_xsection_integral (k \o snd) l
1262+ (fun n => [the {nnsfun _ >-> _} of k_2 n])) => /=.
12871263- by rewrite /k_2 => m n mn; apply/lefP => -[x y] /=; exact/lefP/ndk_.
12881264- by move=> [x y]; exact: k_k.
12891265- move=> n r _ /= B mB.
@@ -1310,7 +1286,7 @@ Qed.
13101286Section integral_kcomp.
13111287Context d d2 d3 (X : measurableType d) (Y : measurableType d2)
13121288 (Z : measurableType d3) (R : realType).
1313- Variables (l : R.-sfker X ~> Y) (k : R.-sfker (X * Y)%type ~> Z).
1289+ Variables (l : R.-sfker X ~> Y) (k : R.-sfker [the measurableType _ of (X * Y)%type] ~> Z).
13141290
13151291Let integral_kcomp_indic x E (mE : measurable E) :
13161292 \int[(l \; k) x]_z (\1_E z)%:E = \int[l x]_y (\int[k (x, y)]_z (\1_E z)%:E).
@@ -1351,7 +1327,7 @@ rewrite /= ge0_integral_fsum//; last 2 first.
13511327 - move=> n y _.
13521328 have := mulemu_ge0 (fun n => f @^-1` [set n]).
13531329 by apply; exact: preimage_nnfun0.
1354- apply eq_fsbigr => r _.
1330+ apply: eq_fsbigr => r _.
13551331rewrite (integralM_indic _ (fun r => f @^-1` [set r]))//; last first.
13561332 exact: preimage_nnfun0.
13571333rewrite /= integral_kcomp_indic; last exact/measurable_sfunP.
0 commit comments