Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 3cf8039

Browse files
committed
feat(measure_theory/set_integral): the set integral is continuous (#7931)
Most of the code is dedicated to building a continuous linear map from Lp to the Lp space corresponding to the restriction of the measure to a set. The set integral is then continuous as composition of the integral and that map.
1 parent a31e3c3 commit 3cf8039

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

src/measure_theory/set_integral.lean

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,94 @@ begin
289289
exact (lintegral_mono_set' hst),
290290
end
291291

292+
293+
section continuous_set_integral
294+
/-! ### Continuity of the set integral
295+
296+
We prove that for any set `s`, the function `λ f : α →₁[μ] E, ∫ x in s, f x ∂μ` is continuous. -/
297+
298+
variables [normed_group E] [measurable_space E] [second_countable_topology E] [borel_space E]
299+
{𝕜 : Type*} [is_R_or_C 𝕜] [measurable_space 𝕜]
300+
[normed_group F] [measurable_space F] [second_countable_topology F] [borel_space F]
301+
[normed_space 𝕜 F]
302+
{p : ℝ≥0∞} {μ : measure α}
303+
304+
/-- For `f : Lp E p μ`, we can define an element of `Lp E p (μ.restrict s)` by
305+
`(Lp.mem_ℒp f).restrict s).to_Lp f`. This map is additive. -/
306+
lemma Lp_to_Lp_restrict_add (f g : Lp E p μ) (s : set α) :
307+
((Lp.mem_ℒp (f + g)).restrict s).to_Lp ⇑(f + g)
308+
= ((Lp.mem_ℒp f).restrict s).to_Lp f + ((Lp.mem_ℒp g).restrict s).to_Lp g :=
309+
begin
310+
ext1,
311+
refine (ae_restrict_of_ae (Lp.coe_fn_add f g)).mp _,
312+
refine (Lp.coe_fn_add (mem_ℒp.to_Lp f ((Lp.mem_ℒp f).restrict s))
313+
(mem_ℒp.to_Lp g ((Lp.mem_ℒp g).restrict s))).mp _,
314+
refine (mem_ℒp.coe_fn_to_Lp ((Lp.mem_ℒp f).restrict s)).mp _,
315+
refine (mem_ℒp.coe_fn_to_Lp ((Lp.mem_ℒp g).restrict s)).mp _,
316+
refine (mem_ℒp.coe_fn_to_Lp ((Lp.mem_ℒp (f+g)).restrict s)).mono (λ x hx1 hx2 hx3 hx4 hx5, _),
317+
rw [hx4, hx1, pi.add_apply, hx2, hx3, hx5, pi.add_apply],
318+
end
319+
320+
/-- For `f : Lp E p μ`, we can define an element of `Lp E p (μ.restrict s)` by
321+
`(Lp.mem_ℒp f).restrict s).to_Lp f`. This map commutes with scalar multiplication. -/
322+
lemma Lp_to_Lp_restrict_smul [opens_measurable_space 𝕜] (c : 𝕜) (f : Lp F p μ) (s : set α) :
323+
((Lp.mem_ℒp (c • f)).restrict s).to_Lp ⇑(c • f) = c • (((Lp.mem_ℒp f).restrict s).to_Lp f) :=
324+
begin
325+
ext1,
326+
refine (ae_restrict_of_ae (Lp.coe_fn_smul c f)).mp _,
327+
refine (mem_ℒp.coe_fn_to_Lp ((Lp.mem_ℒp f).restrict s)).mp _,
328+
refine (mem_ℒp.coe_fn_to_Lp ((Lp.mem_ℒp (c • f)).restrict s)).mp _,
329+
refine (Lp.coe_fn_smul c (mem_ℒp.to_Lp f ((Lp.mem_ℒp f).restrict s))).mono
330+
(λ x hx1 hx2 hx3 hx4, _),
331+
rw [hx2, hx1, pi.smul_apply, hx3, hx4, pi.smul_apply],
332+
end
333+
334+
/-- For `f : Lp E p μ`, we can define an element of `Lp E p (μ.restrict s)` by
335+
`(Lp.mem_ℒp f).restrict s).to_Lp f`. This map is non-expansive. -/
336+
lemma norm_Lp_to_Lp_restrict_le (s : set α) (f : Lp E p μ) :
337+
∥((Lp.mem_ℒp f).restrict s).to_Lp f∥ ≤ ∥f∥ :=
338+
begin
339+
rw [Lp.norm_def, Lp.norm_def, ennreal.to_real_le_to_real (Lp.snorm_ne_top _) (Lp.snorm_ne_top _)],
340+
refine (le_of_eq _).trans (snorm_mono_measure _ measure.restrict_le_self),
341+
{ exact s, },
342+
exact snorm_congr_ae (mem_ℒp.coe_fn_to_Lp _),
343+
end
344+
345+
variables (α F 𝕜)
346+
/-- Continuous linear map sending a function of `Lp F p μ` to the same function in
347+
`Lp F p (μ.restrict s)`. -/
348+
def Lp_to_Lp_restrict_clm [borel_space 𝕜] (μ : measure α) (p : ℝ≥0∞) [hp : fact (1 ≤ p)]
349+
(s : set α) :
350+
Lp F p μ →L[𝕜] Lp F p (μ.restrict s) :=
351+
@linear_map.mk_continuous 𝕜 (Lp F p μ) (Lp F p (μ.restrict s)) _ _ _ _ _
352+
⟨λ f, mem_ℒp.to_Lp f ((Lp.mem_ℒp f).restrict s), λ f g, Lp_to_Lp_restrict_add f g s,
353+
λ c f, Lp_to_Lp_restrict_smul c f s⟩
354+
1 (by { intro f, rw one_mul, exact norm_Lp_to_Lp_restrict_le s f, })
355+
356+
variables {α F 𝕜}
357+
358+
variables (𝕜)
359+
lemma Lp_to_Lp_restrict_clm_coe_fn [borel_space 𝕜] [hp : fact (1 ≤ p)] (s : set α) (f : Lp F p μ) :
360+
Lp_to_Lp_restrict_clm α F 𝕜 μ p s f =ᵐ[μ.restrict s] f :=
361+
mem_ℒp.coe_fn_to_Lp ((Lp.mem_ℒp f).restrict s)
362+
variables {𝕜}
363+
364+
@[continuity]
365+
lemma continuous_set_integral [normed_space ℝ E] [complete_space E] (s : set α) :
366+
continuous (λ f : α →₁[μ] E, ∫ x in s, f x ∂μ) :=
367+
begin
368+
haveI : fact ((1 : ℝ≥0∞) ≤ 1) := ⟨le_rfl⟩,
369+
have h_comp : (λ f : α →₁[μ] E, ∫ x in s, f x ∂μ)
370+
= (integral (μ.restrict s)) ∘ (λ f, Lp_to_Lp_restrict_clm α E ℝ μ 1 s f),
371+
{ ext1 f,
372+
rw [function.comp_apply, integral_congr_ae (Lp_to_Lp_restrict_clm_coe_fn ℝ s f)], },
373+
rw h_comp,
374+
exact continuous_integral.comp (Lp_to_Lp_restrict_clm α E ℝ μ 1 s).continuous,
375+
end
376+
377+
end continuous_set_integral
378+
379+
292380
end measure_theory
293381

294382
open measure_theory asymptotics metric

0 commit comments

Comments
 (0)