7474End integralM_0ifneg.
7575Arguments integralM_0ifneg {d T R} m {D} mD f.
7676
77- Section integralM_indic.
78- Local Open Scope ereal_scope.
79- Variables (d : measure_display) (T : measurableType d) (R : realType).
80- Variables (m : {measure set T -> \bar R}) (D : set T) (mD : measurable D).
81-
82- Let integralM_indic (f : R -> set T) (k : R) :
83- ((k < 0)%R -> f k = set0) -> measurable (f k) ->
84- \int[m]_(x in D) (k * \1_(f k) x)%:E = k%:E * \int[m]_(x in D) (\1_(f k) x)%:E.
85- Proof .
86- move=> fk0 mfk.
87- under eq_integral do rewrite EFinM.
88- apply: (integralM_0ifneg _ _ (fun k x => (\1_(f k) x)%:E)) => //=.
89- - by move=> r t Dt; rewrite lee_fin.
90- - by move/fk0 => -> /=; apply/funext => x; rewrite indicE in_set0.
91- - apply/EFin_measurable_fun.
92- by rewrite (_ : \1_(f k) = mindic R mfk).
93- Qed .
94-
95- End integralM_indic.
96- Arguments integralM_indic {d T R} m {D} mD f.
97-
98- (* NB: PR in progress *)
99- Section integral_mscale.
100- Variables (R : realType) (k : {nonneg R}).
101- Variables (d : measure_display) (T : measurableType d).
102- Variable (m : {measure set T -> \bar R}) (D : set T) (f : T -> \bar R).
103- Hypotheses (mD : measurable D).
104-
105- Let integral_mscale_indic (E : set T) (mE : measurable E) :
106- \int[mscale k m]_(x in D) (\1_E x)%:E =
107- k%:num%:E * \int[m]_(x in D) (\1_E x)%:E.
108- Proof . by rewrite !integral_indic. Qed .
109-
110- Let integral_mscale_nnsfun (h : {nnsfun T >-> R}) :
111- \int[mscale k m]_(x in D) (h x)%:E = k%:num%:E * \int[m]_(x in D) (h x)%:E.
112- Proof .
113- rewrite -ge0_integralM//; last 2 first.
114- apply/EFin_measurable_fun.
115- exact: measurable_funS (@measurable_funP _ _ _ h).
116- by move=> x _; rewrite lee_fin.
117- under eq_integral do rewrite fimfunE -sumEFin.
118- under [LHS]eq_integral do rewrite fimfunE -sumEFin.
119- rewrite /=.
120- rewrite ge0_integral_sum//; last 2 first.
121- move=> r.
122- apply/EFin_measurable_fun/measurable_funrM.
123- apply: (@measurable_funS _ _ _ _ setT) => //.
124- have fr : measurable (h @^-1` [set r]) by exact/measurable_sfunP.
125- by rewrite (_ : \1__ = mindic R fr).
126- by move=> n x Dx; rewrite EFinM muleindic_ge0.
127- under eq_integral.
128- move=> x xD.
129- rewrite ge0_sume_distrr//; last first.
130- by move=> r _; rewrite EFinM muleindic_ge0.
131- over.
132- rewrite /=.
133- rewrite ge0_integral_sum//; last 2 first.
134- move=> r.
135- apply/EFin_measurable_fun/measurable_funrM/measurable_funrM.
136- apply: (@measurable_funS _ _ _ _ setT) => //.
137- have fr : measurable (h @^-1` [set r]) by exact/measurable_sfunP.
138- by rewrite (_ : \1__ = mindic R fr).
139- move=> n x Dx.
140- by rewrite EFinM mule_ge0// muleindic_ge0.
141- apply eq_bigr => r _.
142- rewrite ge0_integralM//; last 2 first.
143- apply/EFin_measurable_fun/measurable_funrM.
144- apply: (@measurable_funS _ _ _ _ setT) => //.
145- have fr : measurable (h @^-1` [set r]) by exact/measurable_sfunP.
146- by rewrite (_ : \1__ = mindic R fr).
147- by move=> t Dt; rewrite muleindic_ge0.
148- by rewrite !integralM_indic_nnsfun//= integral_mscale_indic// muleCA.
149- Qed .
150-
151- Lemma ge0_integral_mscale (mf : measurable_fun D f) :
152- (forall x, D x -> 0 <= f x) ->
153- \int[mscale k m]_(x in D) f x = k%:num%:E * \int[m]_(x in D) f x.
154- Proof .
155- move=> f0; have [f_ [ndf_ f_f]] := approximation mD mf f0.
156- transitivity (lim (fun n => \int[mscale k m]_(x in D) (f_ n x)%:E)).
157- rewrite -monotone_convergence//=; last 3 first.
158- move=> n; apply/EFin_measurable_fun.
159- by apply: (@measurable_funS _ _ _ _ setT).
160- by move=> n x Dx; rewrite lee_fin.
161- by move=> x Dx a b /ndf_ /lefP; rewrite lee_fin.
162- apply eq_integral => x /[!inE] xD; apply/esym/cvg_lim => //=.
163- exact: f_f.
164- rewrite (_ : \int[m]_(x in D) _ = lim (fun n => \int[m]_(x in D) (f_ n x)%:E)); last first.
165- rewrite -monotone_convergence//.
166- apply: eq_integral => x /[!inE] xD.
167- apply/esym/cvg_lim => //.
168- exact: f_f.
169- move=> n.
170- apply/EFin_measurable_fun.
171- by apply: (@measurable_funS _ _ _ _ setT).
172- by move=> n x Dx; rewrite lee_fin.
173- by move=> x Dx a b /ndf_ /lefP; rewrite lee_fin.
174- rewrite -ereal_limrM//; last first.
175- apply/ereal_nondecreasing_is_cvg => a b ab.
176- apply ge0_le_integral => //.
177- by move=> x Dx; rewrite lee_fin.
178- apply/EFin_measurable_fun.
179- by apply: (@measurable_funS _ _ _ _ setT).
180- by move=> x Dx; rewrite lee_fin.
181- apply/EFin_measurable_fun.
182- by apply: (@measurable_funS _ _ _ _ setT).
183- move=> x Dx.
184- rewrite lee_fin.
185- by move/ndf_ : ab => /lefP.
186- congr (lim _); apply/funext => n /=.
187- by rewrite integral_mscale_nnsfun.
188- Qed .
189-
190- End integral_mscale.
191-
19277(* TODO: PR *)
19378Canonical unit_pointedType := PointedType unit tt.
19479
@@ -232,23 +117,6 @@ HB.instance Definition _ := @isMeasurable.Build default_measure_display bool (Po
232117
233118End discrete_measurable_bool.
234119
235- (* NB: PR in progress *)
236- Lemma measurable_fun_fine (R : realType) (D : set (\bar R)) : measurable D ->
237- measurable_fun D fine.
238- Proof .
239- move=> mD _ /= B mB; rewrite [X in measurable X](_ : _ `&` _ = if 0%R \in B then
240- D `&` ((EFin @` B) `|` [set -oo; +oo]) else D `&` EFin @` B); last first.
241- apply/seteqP; split=> [[r [Dr Br]|[Doo B0]|[Doo B0]]|[r| |]].
242- - by case: ifPn => _; split => //; left; exists r.
243- - by rewrite mem_set//; split => //; right; right.
244- - by rewrite mem_set//; split => //; right; left.
245- - by case: ifPn => [_ [Dr [[s + [sr]]|[]//]]|_ [Dr [s + [sr]]]]; rewrite sr.
246- - by case: ifPn => [/[!inE] B0 [Doo [[]//|]] [//|_]|B0 [Doo//] []].
247- - by case: ifPn => [/[!inE] B0 [Doo [[]//|]] [//|_]|B0 [Doo//] []].
248- case: ifPn => B0; apply/measurableI => //; last exact: measurable_EFin.
249- by apply: measurableU; [exact: measurable_EFin|exact: measurableU].
250- Qed .
251-
252120(* TODO: PR *)
253121Lemma measurable_fun_fst (d1 d2 : _) (T1 : measurableType d1)
254122 (T2 : measurableType d2) : measurable_fun setT (@fst T1 T2).
@@ -293,25 +161,6 @@ Qed.
293161
294162End measurable_fun_comp.
295163
296- Lemma open_continuousP (S T : topologicalType) (f : S -> T) (D : set S) :
297- open D ->
298- {in D, continuous f} <-> (forall A, open A -> open (D `&` f @^-1` A)).
299- Proof .
300- move=> oD; split=> [fcont|fcont s /[!inE] sD A].
301- rewrite !openE => A Aop s [Ds] /Aop /fcont; rewrite inE => /(_ Ds) fsA.
302- by rewrite interiorI; split => //; move: oD; rewrite openE; exact.
303- rewrite nbhs_simpl /= !nbhsE => - [B [[oB Bfs] BA]].
304- by exists (D `&` f @^-1` B); split=> [|t [Dt] /BA//]; split => //; exact/fcont.
305- Qed .
306-
307- Lemma open_continuous_measurable_fun (R : realType) (f : R -> R) D :
308- open D -> {in D, continuous f} -> measurable_fun D f.
309- Proof .
310- move=> oD /(open_continuousP _ oD) cf.
311- apply: (measurability (RGenOpens.measurableE R)) => _ [_ [a [b ->] <-]].
312- by apply: open_measurable; exact/cf/interval_open.
313- Qed .
314-
315164Lemma set_boolE (B : set bool) : [\/ B == [set true], B == [set false], B == set0 | B == setT].
316165Proof .
317166have [Bt|Bt] := boolP (true \in B).
@@ -771,7 +620,7 @@ rewrite [X in measurable_fun _ X](_ : _ = (fun x =>
771620 apply/EFin_measurable_fun/measurable_funrM/measurable_fun_prod1 => /=.
772621 rewrite (_ : \1_ _ = mindic R (measurable_sfunP (k_ n) r))//.
773622 exact/measurable_funP.
774- - by move=> m y _; rewrite muleindic_ge0 .
623+ - by move=> m y _; rewrite nnfun_muleindic_ge0 .
775624apply emeasurable_fun_sum => r.
776625rewrite [X in measurable_fun _ X](_ : _ = (fun x => r%:E *
777626 \int[l x]_y (\1_(k_ n @^-1` [set r]) (x, y))%:E)); last first.
@@ -1103,7 +952,7 @@ rewrite ge0_integral_sum//; last 2 first.
1103952 move=> r; apply/EFin_measurable_fun/measurable_funrM.
1104953 have fr : measurable (f @^-1` [set r]) by exact/measurable_sfunP.
1105954 by rewrite (_ : \1__ = mindic R fr).
1106- by move=> r z _; rewrite EFinM muleindic_ge0 .
955+ by move=> r z _; rewrite EFinM nnfun_muleindic_ge0 .
1107956under [in RHS]eq_integral.
1108957 move=> y _.
1109958 under eq_integral.
@@ -1114,7 +963,7 @@ under [in RHS]eq_integral.
1114963 move=> r; apply/EFin_measurable_fun/measurable_funrM.
1115964 have fr : measurable (f @^-1` [set r]) by exact/measurable_sfunP.
1116965 by rewrite (_ : \1__ = mindic R fr).
1117- by move=> r z _; rewrite EFinM muleindic_ge0 .
966+ by move=> r z _; rewrite EFinM nnfun_muleindic_ge0 .
1118967 under eq_bigr.
1119968 move=> r _.
1120969 rewrite (@integralM_indic _ _ _ _ _ _ (fun r => f @^-1` [set r]))//; last first.
@@ -1127,7 +976,7 @@ rewrite /= ge0_integral_sum//; last 2 first.
1127976 have := measurable_kernel k (f @^-1` [set r]) (measurable_sfunP f r).
1128977 by move=> /measurable_fun_prod1; exact.
1129978 - move=> n y _.
1130- have := @mulem_ge0 _ _ _ (k (x, y)) n (fun n => f @^-1` [set n]).
979+ have := @mulemu_ge0 _ _ _ (k (x, y)) n (fun n => f @^-1` [set n]).
1131980 by apply; exact: preimage_nnfun0.
1132981apply eq_bigr => r _.
1133982rewrite (@integralM_indic _ _ _ _ _ _ (fun r => f @^-1` [set r]))//; last first.
0 commit comments