Skip to content

Commit 486cd46

Browse files
committed
mscore using mscale and dirac
1 parent 709f74e commit 486cd46

2 files changed

Lines changed: 41 additions & 213 deletions

File tree

theories/kernel.v

Lines changed: 4 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -74,121 +74,6 @@ Qed.
7474
End integralM_0ifneg.
7575
Arguments 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 *)
19378
Canonical unit_pointedType := PointedType unit tt.
19479

@@ -232,23 +117,6 @@ HB.instance Definition _ := @isMeasurable.Build default_measure_display bool (Po
232117

233118
End 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 *)
253121
Lemma measurable_fun_fst (d1 d2 : _) (T1 : measurableType d1)
254122
(T2 : measurableType d2) : measurable_fun setT (@fst T1 T2).
@@ -293,25 +161,6 @@ Qed.
293161

294162
End 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-
315164
Lemma set_boolE (B : set bool) : [\/ B == [set true], B == [set false], B == set0 | B == setT].
316165
Proof.
317166
have [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.
775624
apply emeasurable_fun_sum => r.
776625
rewrite [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.
1107956
under [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.
1132981
apply eq_bigr => r _.
1133982
rewrite (@integralM_indic _ _ _ _ _ _ (fun r => f @^-1` [set r]))//; last first.

0 commit comments

Comments
 (0)