@@ -120,8 +120,7 @@ Definition kseries : X -> {measure set Y -> \bar R} :=
120120 fun x => [the measure _ _ of mseries (k ^~ x) 0].
121121
122122Lemma measurable_fun_kseries (U : set Y) :
123- measurable U ->
124- measurable_fun setT (kseries ^~ U).
123+ measurable U -> measurable_fun setT (kseries ^~ U).
125124Proof .
126125move=> mU.
127126by apply: ge0_emeasurable_fun_sum => // n; exact/measurable_kernel.
@@ -210,8 +209,7 @@ Definition kzero : X -> {measure set Y -> \bar R} :=
210209 fun _ : X => [the measure _ _ of mzero].
211210
212211Let measurable_fun_kzero U : measurable U ->
213- measurable_fun setT (kzero ^~ U).
214- Proof . by move=> ?/=; exact: measurable_fun_cst. Qed .
212+ measurable_fun setT (kzero ^~ U). Proof . by []. Qed .
215213
216214HB.instance Definition _ :=
217215 @isKernel.Build _ _ X Y R kzero measurable_fun_kzero.
@@ -422,13 +420,12 @@ have CT : C setT by exists setT => //; exists setT => //; rewrite setMTT.
422420have CXY : C `<=` XY.
423421 move=> _ [A mA [B mB <-]]; split; first exact: measurableM.
424422 rewrite phiM.
425- apply: emeasurable_funM => //; first exact/measurable_kernel/measurableI.
426- by apply/EFin_measurable_fun; rewrite (_ : \1_ _ = mindic R mA).
423+ by apply: emeasurable_funM => //; [exact/measurable_kernel/measurableI|auto].
427424suff monoB : monotone_class setT XY by exact: monotone_class_subset.
428425split => //; [exact: CXY| |exact: xsection_ndseq_closed].
429426move=> A B BA [mA mphiA] [mB mphiB]; split; first exact: measurableD.
430427suff : phi (A `\` B) = (fun x => phi A x - phi B x).
431- by move=> ->; exact: emeasurable_funB .
428+ by move=> ->; auto .
432429rewrite funeqE => x; rewrite /phi/= xsectionD// measureD.
433430- by rewrite setIidr//; exact: le_xsection.
434431- exact: measurable_xsection.
@@ -454,9 +451,9 @@ Let phi A := fun x => k x (xsection A x).
454451Let XY := [set A | measurable A /\ measurable_fun setT (phi A)].
455452
456453Lemma measurable_fun_xsection_finite_kernel A :
457- A \ in measurable -> measurable_fun setT (phi A).
454+ measurable A -> measurable_fun setT (phi A).
458455Proof .
459- move: A; suff : measurable `<=` XY by move=> + A; rewrite inE => /[apply] -[].
456+ move: A; suff : measurable `<=` XY by move=> + A => /[apply] -[].
460457move=> /= A mA; rewrite /XY/=; split => //; rewrite (_ : phi _ =
461458 (fun x => mrestr (k x) measurableT (xsection A x))); last first.
462459 by apply/funext => x//=; rewrite /mrestr setIT.
@@ -487,15 +484,12 @@ rewrite (_ : (fun x => _) =
487484 transitivity (lim (fun n => \int[l x]_y (k_ n (x, y))%:E)); last first.
488485 rewrite is_cvg_lim_esupE//.
489486 apply: ereal_nondecreasing_is_cvg => m n mn.
490- apply: ge0_le_integral => //.
487+ apply: ge0_le_integral => //; [|by auto| |by auto|] .
491488 - by move=> y _; rewrite lee_fin.
492- - exact/EFin_measurable_fun/measurable_fun_prod1.
493489 - by move=> y _; rewrite lee_fin.
494- - exact/EFin_measurable_fun/measurable_fun_prod1.
495490 - by move=> y _; rewrite lee_fin; exact/lefP/ndk_.
496- rewrite -monotone_convergence//.
491+ rewrite -monotone_convergence//; [|by auto| |] .
497492 - by apply: eq_integral => y _; apply/esym/cvg_lim => //; exact: k_k.
498- - by move=> n; exact/EFin_measurable_fun/measurable_fun_prod1.
499493 - by move=> n y _; rewrite lee_fin.
500494 - by move=> y _ m n mn; rewrite lee_fin; exact/lefP/ndk_.
501495apply: measurable_fun_lim_esup => n.
@@ -505,22 +499,15 @@ rewrite [X in measurable_fun _ X](_ : _ = (fun x => \int[l x]_y
505499 by apply/funext => x; apply: eq_integral => y _; rewrite fimfunE.
506500rewrite [X in measurable_fun _ X](_ : _ = (fun x => \sum_(r \in range (k_ n))
507501 (\int[l x]_y (r * \1_(k_ n @^-1` [set r]) (x, y))%:E))); last first.
508- apply/funext => x; rewrite -ge0_integral_fsum//.
502+ apply/funext => x; rewrite -ge0_integral_fsum//; [|by auto|] .
509503 - by apply: eq_integral => y _; rewrite -fsumEFin.
510- - move=> r.
511- apply/EFin_measurable_fun/measurable_funrM/measurable_fun_prod1 => /=.
512- rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) (measurable_set1 r)))//.
513- exact/measurable_funP.
514504 - by move=> m y _; rewrite nnfun_muleindic_ge0.
515505apply: emeasurable_fun_fsum => // r.
516506rewrite [X in measurable_fun _ X](_ : _ = (fun x => r%:E *
517507 \int[l x]_y (\1_(k_ n @^-1` [set r]) (x, y))%:E)); last first.
518508 apply/funext => x; under eq_integral do rewrite EFinM.
519509 have [r0|r0] := leP 0%R r.
520- rewrite ge0_integralM//; last by move=> y _; rewrite lee_fin.
521- apply/EFin_measurable_fun/measurable_fun_prod1 => /=.
522- rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) (measurable_set1 r)))//.
523- exact/measurable_funP.
510+ by rewrite ge0_integralM//; [auto|move=> y _; rewrite lee_fin].
524511 rewrite integral0_eq; last first.
525512 by move=> y _; rewrite preimage_nnfun0// indic0 mule0.
526513 by rewrite integral0_eq ?mule0// => y _; rewrite preimage_nnfun0// indic0.
@@ -785,16 +772,14 @@ apply: measurable_fun_if => //.
785772 [set t | k t setT == +oo]); last first.
786773 by apply/seteqP; split=> x /= /orP//.
787774 by apply: measurableU; exact: kernel_measurable_eq_cst.
788- - exact: measurable_fun_cst.
789775- apply/emeasurable_funM; first exact/measurable_funTS/measurable_kernel.
790776 apply/EFin_measurable_fun; rewrite setTI.
791777 apply: (@measurable_fun_comp _ _ _ _ _ _ [set r : R | r != 0%R]).
792778 + exact: open_measurable.
793779 + by move=> /= _ [x /norP[s0 soo]] <-; rewrite -eqe fineK ?ge0_fin_numE ?ltey.
794780 + apply: open_continuous_measurable_fun => //; apply/in_setP => x /= x0.
795781 exact: inv_continuous.
796- + apply: measurable_funT_comp; last exact/measurable_funS/measurable_kernel.
797- exact: measurable_fun_fine.
782+ + by apply: measurable_funT_comp => //; exact/measurable_funS/measurable_kernel.
798783Qed .
799784
800785Section knormalize.
@@ -815,15 +800,12 @@ rewrite (_ : (fun _ => _) = (fun x =>
815800 else f x U * (fine (f x setT))^-1%:E)); last first.
816801 apply/funext => x; case: ifPn => [/orP[->//|->]|]; first by case: ifPn.
817802 by rewrite negb_or=> /andP[/negbTE -> /negbTE ->].
818- apply: measurable_fun_if => //;
819- [exact: kernel_measurable_fun_eq_cst|exact: measurable_fun_cst|].
803+ apply: measurable_fun_if => //; first exact: kernel_measurable_fun_eq_cst.
820804apply: measurable_fun_if => //.
821805- rewrite setTI [X in measurable X](_ : _ = [set t | f t setT != 0]).
822806 exact: kernel_measurable_neq_cst.
823807 by apply/seteqP; split => [x /negbT//|x /negbTE].
824- - apply: (@measurable_funS _ _ _ _ setT) => //.
825- exact: kernel_measurable_fun_eq_cst.
826- - exact: measurable_fun_cst.
808+ - exact/measurable_funTS/kernel_measurable_fun_eq_cst.
827809- apply: emeasurable_funM.
828810 by have := measurable_kernel f U mU; exact: measurable_funS.
829811 apply/EFin_measurable_fun.
@@ -834,7 +816,7 @@ apply: measurable_fun_if => //.
834816 by rewrite ge0_fin_numE// lt_neqAle leey ftoo.
835817 + apply: open_continuous_measurable_fun => //; apply/in_setP => x /= x0.
836818 exact: inv_continuous.
837- + apply: measurable_funT_comp => /=; first exact: measurable_fun_fine .
819+ + apply: measurable_funT_comp => //= .
838820 by have := measurable_kernel f _ measurableT; exact: measurable_funS.
839821Qed .
840822
@@ -937,7 +919,6 @@ apply: (@le_lt_trans _ _ (\int[l x]__ r%:num%:E)).
937919 apply: ge0_le_integral => //.
938920 - have /measurable_fun_prod1 := measurable_kernel k _ measurableT.
939921 exact.
940- - exact/measurable_fun_cst.
941922 - by move=> y _; exact/ltW/hr.
942923by rewrite integral_cst//= EFinM lte_pmul2l.
943924Qed .
@@ -1026,7 +1007,7 @@ Let k_2_ge0 n x : (0 <= k_2 n x)%R. Proof. by []. Qed.
10261007HB.instance Definition _ n := @isNonNegFun.Build _ _ _ (k_2_ge0 n).
10271008
10281009Let mk_2 n : measurable_fun setT (k_2 n).
1029- Proof . by apply: measurable_funT_comp => //; exact: measurable_fun_snd . Qed .
1010+ Proof . exact: measurable_funT_comp . Qed .
10301011
10311012HB.instance Definition _ n := @isMeasurableFun.Build _ _ _ _ (mk_2 n).
10321013
@@ -1086,19 +1067,13 @@ Let integral_kcomp_nnsfun x (f : {nnsfun Z >-> R}) :
10861067 \int[(l \; k) x]_z (f z)%:E = \int[l x]_y (\int[k (x, y)]_z (f z)%:E).
10871068Proof .
10881069under [in LHS]eq_integral do rewrite fimfunE -fsumEFin//.
1089- rewrite ge0_integral_fsum//; last 2 first.
1090- - move=> r; apply/EFin_measurable_fun/measurable_funrM.
1091- have fr : measurable (f @^-1` [set r]) by exact/measurable_sfunP.
1092- by rewrite (_ : \1__ = mindic R fr).
1070+ rewrite ge0_integral_fsum//; [|by auto|]; last first.
10931071 - by move=> r z _; rewrite EFinM nnfun_muleindic_ge0.
10941072under [in RHS]eq_integral.
10951073 move=> y _.
10961074 under eq_integral.
10971075 by move=> z _; rewrite fimfunE -fsumEFin//; over.
1098- rewrite /= ge0_integral_fsum//; last 2 first.
1099- - move=> r; apply/EFin_measurable_fun/measurable_funrM.
1100- have fr : measurable (f @^-1` [set r]) by exact/measurable_sfunP.
1101- by rewrite (_ : \1__ = mindic R fr).
1076+ rewrite /= ge0_integral_fsum//; [|by auto|]; last first.
11021077 - by move=> r z _; rewrite EFinM nnfun_muleindic_ge0.
11031078 under eq_fsbigr.
11041079 move=> r _.
@@ -1138,32 +1113,27 @@ move=> f0 mf.
11381113have [f_ [ndf_ f_f]] := approximation measurableT mf (fun z _ => f0 z).
11391114transitivity (\int[(l \; k) x]_z (lim (EFin \o f_^~ z))).
11401115 by apply/eq_integral => z _; apply/esym/cvg_lim => //=; exact: f_f.
1141- rewrite monotone_convergence//; last 3 first.
1142- by move=> n; exact/EFin_measurable_fun.
1116+ rewrite monotone_convergence//; [|by auto| |]; last 2 first.
11431117 by move=> n z _; rewrite lee_fin.
11441118 by move=> z _ a b /ndf_ /lefP ab; rewrite lee_fin.
11451119rewrite (_ : (fun _ => _) =
11461120 (fun n => \int[l x]_y (\int[k (x, y)]_z (f_ n z)%:E)))//; last first.
11471121 by apply/funext => n; rewrite integral_kcomp_nnsfun.
11481122transitivity (\int[l x]_y lim (fun n => \int[k (x, y)]_z (f_ n z)%:E)).
11491123 rewrite -monotone_convergence//; last 3 first.
1150- - move=> n; apply: measurable_fun_integral_kernel => //.
1124+ - move=> n; apply: measurable_fun_integral_kernel => //; last by auto .
11511125 + move=> U mU; have := measurable_kernel k _ mU.
11521126 by move=> /measurable_fun_prod1; exact.
11531127 + by move=> z; rewrite lee_fin.
1154- + exact/EFin_measurable_fun.
11551128 - by move=> n y _; apply: integral_ge0 => // z _; rewrite lee_fin.
1156- - move=> y _ a b ab; apply: ge0_le_integral => //.
1129+ - move=> y _ a b ab; apply: ge0_le_integral => //; [|by auto| |by auto|] .
11571130 + by move=> z _; rewrite lee_fin.
1158- + exact/EFin_measurable_fun.
11591131 + by move=> z _; rewrite lee_fin.
1160- + exact/EFin_measurable_fun.
11611132 + by move: ab => /ndf_ /lefP ab z _; rewrite lee_fin.
1162- apply: eq_integral => y _; rewrite -monotone_convergence//; last 3 first.
1163- - by move=> n; exact/EFin_measurable_fun.
1164- - by move=> n z _; rewrite lee_fin.
1165- - by move=> z _ a b /ndf_ /lefP; rewrite lee_fin.
1166- by apply: eq_integral => z _; apply/cvg_lim => //; exact: f_f.
1133+ apply: eq_integral => y _; rewrite -monotone_convergence//; [|auto| |].
1134+ - by apply: eq_integral => z _; apply/cvg_lim => //; exact: f_f.
1135+ - by move=> n z _; rewrite lee_fin.
1136+ - by move=> z _ a b /ndf_ /lefP; rewrite lee_fin.
11671137Qed .
11681138
11691139End integral_kcomp.
0 commit comments