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

Commit 2a9c21c

Browse files
feat(measure_theory/interval_integral): improve integral_comp lemmas (#6795)
I expand our collection of `integral_comp` lemmas so that they can handle all interval integrals of the form `∫ x in a..b, f (c * x + d)`, for any function `f : ℝ → E` and any real constants `c` and `d` such that `c ≠ 0`. This PR now also removes the `ae_measurable` assumptions from the preexisting `interval_comp` lemmas (thank you @sgouezel!). Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
1 parent 36e5ff4 commit 2a9c21c

File tree

7 files changed

+237
-35
lines changed

7 files changed

+237
-35
lines changed

src/data/equiv/mul_add.lean

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Johannes Hölzl, Callum Sutton, Yury Kudryashov
66
import algebra.group.hom
77
import algebra.group.type_tags
88
import algebra.group.units_hom
9+
import algebra.group_with_zero
910

1011
/-!
1112
# Multiplicative and additive equivs
@@ -478,6 +479,37 @@ lemma inv_symm : (equiv.inv G).symm = equiv.inv G := rfl
478479

479480
end group
480481

482+
section group_with_zero
483+
variables [group_with_zero G]
484+
485+
/-- Left multiplication by a nonzero element in a `group_with_zero` is a permutation of the
486+
underlying type. -/
487+
protected def mul_left' (a : G) (ha : a ≠ 0) : perm G :=
488+
{ to_fun := λ x, a * x,
489+
inv_fun := λ x, a⁻¹ * x,
490+
left_inv := λ x, by { dsimp, rw [← mul_assoc, inv_mul_cancel ha, one_mul] },
491+
right_inv := λ x, by { dsimp, rw [← mul_assoc, mul_inv_cancel ha, one_mul] } }
492+
493+
@[simp] lemma coe_mul_left' (a : G) (ha : a ≠ 0) : ⇑(equiv.mul_left' a ha) = (*) a := rfl
494+
495+
@[simp] lemma mul_left'_symm_apply (a : G) (ha : a ≠ 0) :
496+
((equiv.mul_left' a ha).symm : G → G) = (*) a⁻¹ := rfl
497+
498+
/-- Right multiplication by a nonzero element in a `group_with_zero` is a permutation of the
499+
underlying type. -/
500+
protected def mul_right' (a : G) (ha : a ≠ 0) : perm G :=
501+
{ to_fun := λ x, x * a,
502+
inv_fun := λ x, x * a⁻¹,
503+
left_inv := λ x, by { dsimp, rw [mul_assoc, mul_inv_cancel ha, mul_one] },
504+
right_inv := λ x, by { dsimp, rw [mul_assoc, inv_mul_cancel ha, mul_one] } }
505+
506+
@[simp] lemma coe_mul_right' (a : G) (ha : a ≠ 0) : ⇑(equiv.mul_right' a ha) = λ x, x * a := rfl
507+
508+
@[simp] lemma mul_right'_symm_apply (a : G) (ha : a ≠ 0) :
509+
((equiv.mul_right' a ha).symm : G → G) = λ x, x * a⁻¹ := rfl
510+
511+
end group_with_zero
512+
481513
end equiv
482514

483515
section type_tags

src/measure_theory/bochner_integration.lean

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,8 +1095,7 @@ by { simp_rw [← of_real_norm_eq_coe_nnnorm], apply ennreal.of_real_le_of_le_to
10951095
exact norm_integral_le_lintegral_norm f }
10961096

10971097
lemma integral_eq_zero_of_ae {f : α → E} (hf : f =ᵐ[μ] 0) : ∫ a, f a ∂μ = 0 :=
1098-
if hfm : ae_measurable f μ then by simp [integral_congr_ae hf, integral_zero]
1099-
else integral_non_ae_measurable hfm
1098+
by simp [integral_congr_ae hf, integral_zero]
11001099

11011100
/-- If `f` has finite integral, then `∫ x in s, f x ∂μ` is absolutely continuous in `s`: it tends
11021101
to zero as `μ s` tends to zero. -/
@@ -1549,6 +1548,17 @@ let g := hfm.mk f in calc
15491548
... = ∫ x, g (φ x) ∂μ : integral_map_of_measurable hφ hfm.measurable_mk
15501549
... = ∫ x, f (φ x) ∂μ : integral_congr_ae $ ae_eq_comp hφ (hfm.ae_eq_mk).symm
15511550

1551+
lemma integral_map_of_closed_embedding {β} [topological_space α] [borel_space α]
1552+
[topological_space β] [measurable_space β] [borel_space β]
1553+
{φ : α → β} (hφ : closed_embedding φ) (f : β → E) :
1554+
∫ y, f y ∂(measure.map φ μ) = ∫ x, f (φ x) ∂μ :=
1555+
begin
1556+
by_cases hfm : ae_measurable f (measure.map φ μ),
1557+
{ exact integral_map hφ.continuous.measurable hfm },
1558+
{ rw [integral_non_ae_measurable hfm, integral_non_ae_measurable],
1559+
rwa ae_measurable_comp_right_iff_of_closed_embedding hφ }
1560+
end
1561+
15521562
lemma integral_dirac' (f : α → E) (a : α) (hfm : measurable f) :
15531563
∫ x, f x ∂(measure.dirac a) = f a :=
15541564
calc ∫ x, f x ∂(measure.dirac a) = ∫ x, f a ∂(measure.dirac a) :

src/measure_theory/borel_space.lean

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,10 @@ lemma continuous.measurable {f : α → γ} (hf : continuous f) :
387387
hf.borel_measurable.mono opens_measurable_space.borel_le
388388
(le_of_eq $ borel_space.measurable_eq)
389389

390+
lemma closed_embedding.measurable {f : α → γ} (hf : closed_embedding f) :
391+
measurable f :=
392+
hf.continuous.measurable
393+
390394
@[priority 100, to_additive]
391395
instance has_continuous_mul.has_measurable_mul [has_mul γ] [has_continuous_mul γ] :
392396
has_measurable_mul γ :=
@@ -428,6 +432,9 @@ rfl
428432
(h.to_measurable_equiv.symm : γ₂ → γ) = h.symm :=
429433
rfl
430434

435+
lemma homeomorph.measurable (h : α ≃ₜ γ) : measurable h :=
436+
h.continuous.measurable
437+
431438
end homeomorph
432439

433440
lemma measurable_of_continuous_on_compl_singleton [t1_space α] {f : α → γ} (a : α)
@@ -524,7 +531,7 @@ end
524531
lemma measurable_comp_iff_of_closed_embedding {f : δ → β} (g : β → γ) (hg : closed_embedding g) :
525532
measurable (g ∘ f) ↔ measurable f :=
526533
begin
527-
refine ⟨λ hf, _, λ hf, hg.continuous.measurable.comp hf⟩,
534+
refine ⟨λ hf, _, λ hf, hg.measurable.comp hf⟩,
528535
apply measurable_of_is_closed, intros s hs,
529536
convert hf (hg.is_closed_map s hs).measurable_set,
530537
rw [@preimage_comp _ _ _ f g, preimage_image_eq _ hg.to_embedding.inj]
@@ -535,7 +542,7 @@ lemma ae_measurable_comp_iff_of_closed_embedding {f : δ → β} {μ : measure
535542
begin
536543
by_cases h : nonempty β,
537544
{ resetI,
538-
refine ⟨λ hf, _, λ hf, hg.continuous.measurable.comp_ae_measurable hf⟩,
545+
refine ⟨λ hf, _, λ hf, hg.measurable.comp_ae_measurable hf⟩,
539546
convert hg.measurable_inv_fun.comp_ae_measurable hf,
540547
ext x,
541548
exact (function.left_inverse_inv_fun hg.to_embedding.inj (f x)).symm },
@@ -544,6 +551,26 @@ begin
544551
(measurable_of_not_nonempty H f).ae_measurable] }
545552
end
546553

554+
lemma ae_measurable_comp_right_iff_of_closed_embedding {g : α → β} {μ : measure α}
555+
{f : β → δ} (hg : closed_embedding g) :
556+
ae_measurable (f ∘ g) μ ↔ ae_measurable f (measure.map g μ) :=
557+
begin
558+
refine ⟨λ h, _, λ h, h.comp_measurable hg.measurable⟩,
559+
by_cases hα : nonempty α,
560+
swap, { simp [measure.eq_zero_of_not_nonempty hα μ] },
561+
resetI,
562+
refine ⟨(h.mk _) ∘ (function.inv_fun g), h.measurable_mk.comp hg.measurable_inv_fun, _⟩,
563+
have : μ = measure.map (function.inv_fun g) (measure.map g μ),
564+
by rw [measure.map_map hg.measurable_inv_fun hg.measurable,
565+
(function.left_inverse_inv_fun hg.to_embedding.inj).comp_eq_id, measure.map_id],
566+
rw this at h,
567+
filter_upwards [ae_of_ae_map hg.measurable_inv_fun h.ae_eq_mk,
568+
ae_map_mem_range g hg.closed_range.measurable_set μ],
569+
assume x hx₁ hx₂,
570+
convert hx₁,
571+
exact ((function.left_inverse_inv_fun hg.to_embedding.inj).right_inv_on_range hx₂).symm,
572+
end
573+
547574
section linear_order
548575

549576
variables [linear_order α] [order_topology α] [second_countable_topology α]
@@ -1302,7 +1329,7 @@ protected lemma map [opens_measurable_space α] [measurable_space β] [topologic
13021329
[t2_space β] [borel_space β] (hμ : μ.regular) (f : α ≃ₜ β) :
13031330
(measure.map f μ).regular :=
13041331
begin
1305-
have hf := f.continuous.measurable,
1332+
have hf := f.measurable,
13061333
have h2f := f.to_equiv.injective.preimage_surjective,
13071334
have h3f := f.to_equiv.surjective,
13081335
split,

src/measure_theory/interval_integral.lean

Lines changed: 96 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ notation `∫` binders ` in ` a `..` b `, ` r:(scoped:60 f, interval_integral f
278278

279279
namespace interval_integral
280280

281-
section
281+
section basic
282282

283283
variables {a b c d : α} {f g : α → E} {μ : measure α}
284284

@@ -370,39 +370,109 @@ lemma integral_smul_measure (c : ℝ≥0∞) :
370370
∫ x in a..b, f x ∂(c • μ) = c.to_real • ∫ x in a..b, f x ∂μ :=
371371
by simp only [interval_integral, measure.restrict_smul, integral_smul_measure, smul_sub]
372372

373-
lemma integral_comp_add_right {a b : ℝ} (c : ℝ) {f : ℝ → E} (hfm : ae_measurable f) :
374-
∫ x in a..b, f (x + c) = ∫ x in a+c..b+c, f x :=
375-
have A : ae_measurable f (measure.map (λ x, x + c) volume), by rwa [real.map_volume_add_right],
376-
calc ∫ x in a..b, f (x + c) = ∫ x in a+c..b+c, f x ∂(measure.map (λ x, x + c) volume) :
377-
by simp only [interval_integral, set_integral_map measurable_set_Ioc A (measurable_add_const _),
378-
preimage_add_const_Ioc, add_sub_cancel]
379-
... = ∫ x in a+c..b+c, f x : by rw [real.map_volume_add_right]
373+
end basic
374+
375+
section comp
380376

381-
lemma integral_comp_mul_right {a b c : ℝ} {f : ℝ → E} (hc : 0 < c) (hfm : ae_measurable f) :
377+
variables {a b c : ℝ} (f : ℝ → E)
378+
379+
lemma integral_comp_mul_right_of_pos (hc : 0 < c) :
382380
∫ x in a..b, f (x * c) = c⁻¹ • ∫ x in a*c..b*c, f x :=
383381
begin
384-
have A : ae_measurable f (measure.map (λ (x : ℝ), x*c) volume),
385-
by { rw real.map_volume_mul_right (ne_of_gt hc), exact hfm.smul_measure _ },
386-
conv_rhs { rw [← real.smul_map_volume_mul_right (ne_of_gt hc)] },
382+
have A : closed_embedding (λ x, x * c) := (homeomorph.mul_right' c hc.ne').closed_embedding,
383+
conv_rhs { rw [← real.smul_map_volume_mul_right hc.ne'] },
387384
rw [integral_smul_measure],
388-
simp only [interval_integral, set_integral_map measurable_set_Ioc A (measurable_mul_const _),
389-
hc, preimage_mul_const_Ioc, mul_div_cancel _ (ne_of_gt hc), abs_of_pos,
390-
ennreal.to_real_of_real (le_of_lt hc), inv_smul_smul' (ne_of_gt hc)],
385+
simp only [interval_integral, hc, preimage_mul_const_Ioc, mul_div_cancel _ hc.ne',
386+
abs_of_pos, set_integral_map_of_closed_embedding measurable_set_Ioc A,
387+
ennreal.to_real_of_real hc.le, inv_smul_smul' hc.ne'],
391388
end
392389

393-
lemma integral_comp_mul_left {a b c : ℝ} {f : ℝ → E} (hc : 0 < c) (hfm : ae_measurable f) :
390+
lemma integral_comp_neg : ∫ x in a..b, f (-x) = ∫ x in -b..-a, f x :=
391+
begin
392+
have A : closed_embedding (λ x, -x) := (homeomorph.neg ℝ).closed_embedding,
393+
conv_rhs { rw ← real.map_volume_neg },
394+
simp only [interval_integral, set_integral_map_of_closed_embedding measurable_set_Ioc A,
395+
neg_preimage, preimage_neg_Ioc, neg_neg, restrict_congr_set Ico_ae_eq_Ioc],
396+
end
397+
398+
lemma integral_comp_mul_right_of_neg (hc : c < 0) :
399+
∫ x in a..b, f (x * c) = c⁻¹ • ∫ x in a*c..b*c, f x :=
400+
begin
401+
let g := λ x, f (-x),
402+
have h : (λ x, f (x * c)) = λ x, g (x * -c) := by simp_rw [g, neg_mul_eq_mul_neg, neg_neg],
403+
rw [h, integral_comp_mul_right_of_pos g (neg_pos.mpr hc), integral_comp_neg f, integral_symm],
404+
simp only [neg_mul_eq_mul_neg, neg_neg, inv_neg, neg_smul, ← smul_neg],
405+
end
406+
407+
lemma integral_comp_mul_right (hc : c ≠ 0) :
408+
∫ x in a..b, f (x * c) = c⁻¹ • ∫ x in a*c..b*c, f x :=
409+
begin
410+
cases lt_or_gt_of_ne hc with hneg hpos,
411+
exacts [integral_comp_mul_right_of_neg f hneg, integral_comp_mul_right_of_pos f hpos],
412+
end
413+
414+
lemma integral_comp_mul_left (hc : c ≠ 0) :
394415
∫ x in a..b, f (c * x) = c⁻¹ • ∫ x in c*a..c*b, f x :=
395-
by simpa only [mul_comm c] using integral_comp_mul_right hc hfm
416+
by simpa only [mul_comm c] using integral_comp_mul_right f hc
417+
418+
lemma integral_comp_div (hc : c ≠ 0) :
419+
∫ x in a..b, f (x / c) = c • ∫ x in a/c..b/c, f x :=
420+
by simpa only [inv_inv'] using integral_comp_mul_right f (inv_ne_zero hc)
396421

397-
lemma integral_comp_neg {a b : ℝ} {f : ℝ → E} (hfm : ae_measurable f) :
398-
∫ x in a..b, f (-x) = ∫ x in -b..-a, f x :=
422+
lemma integral_comp_add_right (d : ℝ) :
423+
∫ x in a..b, f (x + d) = ∫ x in a+d..b+d, f x :=
424+
have A : closed_embedding (λ x, x + d) := (homeomorph.add_right d).closed_embedding,
425+
calc ∫ x in a..b, f (x + d) = ∫ x in a+d..b+d, f x ∂(measure.map (λ x, x + d) volume) :
426+
by simp only [interval_integral, set_integral_map_of_closed_embedding measurable_set_Ioc A,
427+
preimage_add_const_Ioc, add_sub_cancel]
428+
... = ∫ x in a+d..b+d, f x : by rw [real.map_volume_add_right]
429+
430+
lemma integral_comp_mul_add (hc : c ≠ 0) (d : ℝ) :
431+
∫ x in a..b, f (c * x + d) = c⁻¹ • ∫ x in c*a+d..c*b+d, f x :=
432+
by rw [← integral_comp_add_right f d, ← integral_comp_mul_left _ hc]
433+
434+
lemma integral_comp_add_mul (hc : c ≠ 0) (d : ℝ) :
435+
∫ x in a..b, f (d + c * x) = c⁻¹ • ∫ x in d+c*a..d+c*b, f x :=
436+
by simpa only [add_comm] using integral_comp_mul_add f hc d
437+
438+
lemma integral_comp_div_add (hc : c ≠ 0) (d : ℝ) :
439+
∫ x in a..b, f (x / c + d) = c • ∫ x in a/c+d..b/c+d, f x :=
440+
by simpa only [div_eq_inv_mul, inv_inv'] using integral_comp_mul_add f (inv_ne_zero hc) d
441+
442+
lemma integral_comp_add_div (hc : c ≠ 0) (d : ℝ) :
443+
∫ x in a..b, f (d + x / c) = c • ∫ x in d+a/c..d+b/c, f x :=
444+
by simpa only [div_eq_inv_mul, inv_inv'] using integral_comp_add_mul f (inv_ne_zero hc) d
445+
446+
lemma integral_comp_mul_sub (hc : c ≠ 0) (d : ℝ) :
447+
∫ x in a..b, f (c * x - d) = c⁻¹ • ∫ x in c*a-d..c*b-d, f x :=
448+
by simpa only [sub_eq_add_neg] using integral_comp_mul_add f hc (-d)
449+
450+
lemma integral_comp_sub_mul (hc : c ≠ 0) (d : ℝ) :
451+
∫ x in a..b, f (d - c * x) = c⁻¹ • ∫ x in d-c*b..d-c*a, f x :=
399452
begin
400-
have A : ae_measurable f (measure.map (λ (x : ℝ), -x) volume), by rwa real.map_volume_neg,
401-
conv_rhs { rw ← real.map_volume_neg },
402-
simp only [interval_integral, set_integral_map measurable_set_Ioc A measurable_neg, neg_preimage,
403-
preimage_neg_Ioc, neg_neg, restrict_congr_set Ico_ae_eq_Ioc]
453+
simp only [sub_eq_add_neg, neg_mul_eq_neg_mul],
454+
rw [integral_comp_add_mul f (neg_ne_zero.mpr hc) d, integral_symm],
455+
simp only [inv_neg, smul_neg, neg_neg, neg_smul],
404456
end
405457

458+
lemma integral_comp_div_sub (hc : c ≠ 0) (d : ℝ) :
459+
∫ x in a..b, f (x / c - d) = c • ∫ x in a/c-d..b/c-d, f x :=
460+
by simpa only [div_eq_inv_mul, inv_inv'] using integral_comp_mul_sub f (inv_ne_zero hc) d
461+
462+
lemma integral_comp_sub_div (hc : c ≠ 0) (d : ℝ) :
463+
∫ x in a..b, f (d - x / c) = c • ∫ x in d-b/c..d-a/c, f x :=
464+
by simpa only [div_eq_inv_mul, inv_inv'] using integral_comp_sub_mul f (inv_ne_zero hc) d
465+
466+
lemma integral_comp_sub_right (d : ℝ) :
467+
∫ x in a..b, f (x - d) = ∫ x in a-d..b-d, f x :=
468+
by simpa only [sub_eq_add_neg] using integral_comp_add_right f (-d)
469+
470+
lemma integral_comp_sub_left (d : ℝ) :
471+
∫ x in a..b, f (d - x) = ∫ x in d-b..d-a, f x :=
472+
by simpa only [one_mul, one_smul, inv_one] using integral_comp_sub_mul f one_ne_zero d
473+
474+
end comp
475+
406476
/-!
407477
### Integral is an additive function of the interval
408478
@@ -411,14 +481,13 @@ as well as a few other identities trivially equivalent to this one. We also prov
411481
`∫ x in a..b, f x ∂μ = ∫ x, f x ∂μ` provided that `support f ⊆ Ioc a b`.
412482
-/
413483

414-
variables [topological_space α] [opens_measurable_space α]
415-
416484
section order_closed_topology
417485

418-
variables [order_closed_topology α]
486+
variables [topological_space α] [order_closed_topology α] [opens_measurable_space α]
487+
{a b c d : α} {f g : α → E} {μ : measure α}
419488

420489
/-- If two functions are equal in the relevant interval, their interval integrals are also equal. -/
421-
lemma integral_congr {a b : α} {f g : α → E} (h : eq_on f g (interval a b)) :
490+
lemma integral_congr {a b : α} (h : eq_on f g (interval a b)) :
422491
∫ x in a..b, f x ∂μ = ∫ x in a..b, g x ∂μ :=
423492
by cases le_total a b with hab hab; simpa [hab, integral_of_le, integral_of_ge]
424493
using set_integral_congr measurable_set_Ioc (h.mono Ioc_subset_Icc_self)
@@ -497,8 +566,6 @@ end
497566

498567
end order_closed_topology
499568

500-
end
501-
502569
lemma integral_eq_zero_iff_of_le_of_nonneg_ae {f : ℝ → ℝ} {a b : ℝ} (hab : a ≤ b)
503570
(hf : 0 ≤ᵐ[volume.restrict (Ioc a b)] f) (hfi : interval_integrable f volume a b) :
504571
∫ x in a..b, f x = 0 ↔ f =ᵐ[volume.restrict (Ioc a b)] 0 :=

src/measure_theory/measure_space.lean

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1519,10 +1519,33 @@ lemma mem_ae_map_iff {f : α → β} (hf : measurable f) {s : set β} (hs : meas
15191519
s ∈ (map f μ).ae ↔ (f ⁻¹' s) ∈ μ.ae :=
15201520
by simp only [mem_ae_iff, map_apply hf hs.compl, preimage_compl]
15211521

1522+
lemma mem_ae_of_mem_ae_map {f : α → β} (hf : measurable f) {s : set β} (hs : s ∈ (map f μ).ae) :
1523+
f ⁻¹' s ∈ μ.ae :=
1524+
begin
1525+
apply le_antisymm _ bot_le,
1526+
calc μ (f ⁻¹' sᶜ) ≤ (map f μ) sᶜ : le_map_apply hf sᶜ
1527+
... = 0 : hs
1528+
end
1529+
15221530
lemma ae_map_iff {f : α → β} (hf : measurable f) {p : β → Prop} (hp : measurable_set {x | p x}) :
15231531
(∀ᵐ y ∂ (map f μ), p y) ↔ ∀ᵐ x ∂ μ, p (f x) :=
15241532
mem_ae_map_iff hf hp
15251533

1534+
lemma ae_of_ae_map {f : α → β} (hf : measurable f) {p : β → Prop} (h : ∀ᵐ y ∂ (map f μ), p y) :
1535+
∀ᵐ x ∂ μ, p (f x) :=
1536+
mem_ae_of_mem_ae_map hf h
1537+
1538+
lemma ae_map_mem_range (f : α → β) (hf : measurable_set (range f)) (μ : measure α) :
1539+
∀ᵐ x ∂(map f μ), x ∈ range f :=
1540+
begin
1541+
by_cases h : measurable f,
1542+
{ change range f ∈ (map f μ).ae,
1543+
rw mem_ae_map_iff h hf,
1544+
apply eventually_of_forall,
1545+
exact mem_range_self },
1546+
{ simp [map_of_not_measurable h] }
1547+
end
1548+
15261549
lemma ae_restrict_iff {p : α → Prop} (hp : measurable_set {x | p x}) :
15271550
(∀ᵐ x ∂(μ.restrict s), p x) ↔ ∀ᵐ x ∂μ, x ∈ s → p x :=
15281551
begin
@@ -1534,7 +1557,7 @@ lemma ae_imp_of_ae_restrict {s : set α} {p : α → Prop} (h : ∀ᵐ x ∂(μ.
15341557
∀ᵐ x ∂μ, x ∈ s → p x :=
15351558
begin
15361559
simp only [ae_iff] at h ⊢,
1537-
simpa [set_of_and, inter_comm] using measure_inter_eq_zero_of_restrict h
1560+
simpa [set_of_and, inter_comm] using measure_inter_eq_zero_of_restrict h
15381561
end
15391562

15401563
lemma ae_restrict_iff' {s : set α} {p : α → Prop} (hp : measurable_set s) :

src/measure_theory/set_integral.lean

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,12 @@ begin
435435
exact measure.map_mono g measure.restrict_le_self
436436
end
437437

438+
lemma set_integral_map_of_closed_embedding [topological_space α] [borel_space α]
439+
{β} [measurable_space β] [topological_space β] [borel_space β]
440+
{g : α → β} {f : β → E} {s : set β} (hs : measurable_set s) (hg : closed_embedding g) :
441+
∫ y in s, f y ∂(measure.map g μ) = ∫ x in g ⁻¹' s, f (g x) ∂μ :=
442+
by rw [measure.restrict_map hg.measurable hs, integral_map_of_closed_embedding hg]
443+
438444
lemma norm_set_integral_le_of_norm_le_const_ae {C : ℝ} (hs : μ s < ∞)
439445
(hC : ∀ᵐ x ∂μ.restrict s, ∥f x∥ ≤ C) :
440446
∥∫ x in s, f x ∂μ∥ ≤ C * (μ s).to_real :=

0 commit comments

Comments
 (0)