Skip to content

Commit a073287

Browse files
chore: split Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic (#13756)
1 parent 7bee189 commit a073287

File tree

9 files changed

+118
-83
lines changed

9 files changed

+118
-83
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2968,6 +2968,7 @@ import Mathlib.MeasureTheory.Function.SpecialFunctions.Inner
29682968
import Mathlib.MeasureTheory.Function.SpecialFunctions.RCLike
29692969
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic
29702970
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Inner
2971+
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Lemmas
29712972
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Lp
29722973
import Mathlib.MeasureTheory.Function.UniformIntegrable
29732974
import Mathlib.MeasureTheory.Group.Action

Mathlib/Analysis/Calculus/FDeriv/Measurable.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Authors: Sébastien Gouëzel, Yury Kudryashov
55
-/
66
import Mathlib.Analysis.Calculus.Deriv.Basic
77
import Mathlib.Analysis.Calculus.Deriv.Slope
8+
import Mathlib.Analysis.NormedSpace.BoundedLinearMaps
89
import Mathlib.Analysis.NormedSpace.FiniteDimension
910
import Mathlib.MeasureTheory.Constructions.BorelSpace.ContinuousLinearMap
1011
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic

Mathlib/MeasureTheory/Function/AEEqFun/DomAct.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Authors: Yury Kudryashov
66
import Mathlib.MeasureTheory.Function.AEEqFun
77
import Mathlib.MeasureTheory.Group.Action
88
import Mathlib.GroupTheory.GroupAction.DomAct.Basic
9+
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Lemmas
910
/-!
1011
# Action of `DomMulAct` and `DomAddAct` on `α →ₘ[μ] β`
1112

Mathlib/MeasureTheory/Function/L1Space.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Zhouhang Zhou
55
-/
66
import Mathlib.MeasureTheory.Function.LpOrder
7+
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Lemmas
78

89
#align_import measure_theory.function.l1_space from "leanprover-community/mathlib"@"ccdbfb6e5614667af5aa3ab2d50885e0ef44a46f"
910

Mathlib/MeasureTheory/Function/LpSpace.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Mathlib.MeasureTheory.Function.LpSeminorm.ChebyshevMarkov
1010
import Mathlib.MeasureTheory.Function.LpSeminorm.CompareExp
1111
import Mathlib.MeasureTheory.Function.LpSeminorm.TriangleInequality
1212
import Mathlib.MeasureTheory.Measure.OpenPos
13+
import Mathlib.Analysis.NormedSpace.OperatorNorm.NormedSpace
1314
import Mathlib.Topology.ContinuousFunction.Compact
1415
import Mathlib.Order.Filter.IndicatorFunction
1516

@@ -1254,7 +1255,7 @@ theorem indicatorConstLp_eq_toSpanSingleton_compLp {s : Set α} [NormedSpace ℝ
12541255
dsimp only
12551256
rw [hy]
12561257
simp_rw [ContinuousLinearMap.toSpanSingleton_apply]
1257-
by_cases hy_mem : y ∈ s <;> simp [hy_mem, ContinuousLinearMap.lsmul_apply]
1258+
by_cases hy_mem : y ∈ s <;> simp [hy_mem]
12581259
#align measure_theory.indicator_const_Lp_eq_to_span_singleton_comp_Lp MeasureTheory.indicatorConstLp_eq_toSpanSingleton_compLp
12591260

12601261
namespace Lp

Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean

Lines changed: 1 addition & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ Copyright (c) 2021 Rémy Degenne. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Rémy Degenne, Sébastien Gouëzel
55
-/
6-
import Mathlib.Analysis.NormedSpace.BoundedLinearMaps
7-
import Mathlib.MeasureTheory.Measure.WithDensity
6+
import Mathlib.Analysis.NormedSpace.Basic
87
import Mathlib.MeasureTheory.Function.SimpleFuncDense
9-
import Mathlib.Topology.Algebra.Module.FiniteDimension
108

119
#align_import measure_theory.function.strongly_measurable.basic from "leanprover-community/mathlib"@"3b52265189f3fb43aa631edffce5d060fafaf82f"
1210

@@ -1642,11 +1640,6 @@ theorem comp_quasiMeasurePreserving {γ : Type*} {_ : MeasurableSpace γ} {_ : M
16421640
(hg.mono_ac hf.absolutelyContinuous).comp_measurable hf.measurable
16431641
#align measure_theory.ae_strongly_measurable.comp_quasi_measure_preserving MeasureTheory.AEStronglyMeasurable.comp_quasiMeasurePreserving
16441642

1645-
theorem comp_measurePreserving {γ : Type*} {_ : MeasurableSpace γ} {_ : MeasurableSpace α}
1646-
{f : γ → α} {μ : Measure γ} {ν : Measure α} (hg : AEStronglyMeasurable g ν)
1647-
(hf : MeasurePreserving f μ ν) : AEStronglyMeasurable (g ∘ f) μ :=
1648-
hg.comp_quasiMeasurePreserving hf.quasiMeasurePreserving
1649-
16501643
theorem isSeparable_ae_range (hf : AEStronglyMeasurable f μ) :
16511644
∃ t : Set β, IsSeparable t ∧ ∀ᵐ x ∂μ, f x ∈ t := by
16521645
refine ⟨range (hf.mk f), hf.stronglyMeasurable_mk.isSeparable_range, ?_⟩
@@ -1708,13 +1701,6 @@ theorem _root_.Embedding.aestronglyMeasurable_comp_iff [PseudoMetrizableSpace β
17081701
exact ⟨g ⁻¹' t, hg.isSeparable_preimage ht, h't⟩
17091702
#align embedding.ae_strongly_measurable_comp_iff Embedding.aestronglyMeasurable_comp_iff
17101703

1711-
theorem _root_.MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff {β : Type*}
1712-
{f : α → β} {mα : MeasurableSpace α} {μa : Measure α} {mβ : MeasurableSpace β} {μb : Measure β}
1713-
(hf : MeasurePreserving f μa μb) (h₂ : MeasurableEmbedding f) {g : β → γ} :
1714-
AEStronglyMeasurable (g ∘ f) μa ↔ AEStronglyMeasurable g μb := by
1715-
rw [← hf.map_eq, h₂.aestronglyMeasurable_map_iff]
1716-
#align measure_theory.measure_preserving.ae_strongly_measurable_comp_iff MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff
1717-
17181704
/-- An almost everywhere sequential limit of almost everywhere strongly measurable functions is
17191705
almost everywhere strongly measurable. -/
17201706
theorem _root_.aestronglyMeasurable_of_tendsto_ae {ι : Type*} [PseudoMetrizableSpace β]
@@ -1845,18 +1831,6 @@ theorem smul_measure {R : Type*} [Monoid R] [DistribMulAction R ℝ≥0∞] [IsS
18451831
⟨h.mk f, h.stronglyMeasurable_mk, ae_smul_measure h.ae_eq_mk c⟩
18461832
#align measure_theory.ae_strongly_measurable.smul_measure MeasureTheory.AEStronglyMeasurable.smul_measure
18471833

1848-
section NormedSpace
1849-
1850-
variable {𝕜 : Type*} [NontriviallyNormedField 𝕜] [CompleteSpace 𝕜]
1851-
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
1852-
1853-
theorem _root_.aestronglyMeasurable_smul_const_iff {f : α → 𝕜} {c : E} (hc : c ≠ 0) :
1854-
AEStronglyMeasurable (fun x => f x • c) μ ↔ AEStronglyMeasurable f μ :=
1855-
(closedEmbedding_smul_left hc).toEmbedding.aestronglyMeasurable_comp_iff
1856-
#align ae_strongly_measurable_smul_const_iff aestronglyMeasurable_smul_const_iff
1857-
1858-
end NormedSpace
1859-
18601834
section MulAction
18611835

18621836
variable {M G G₀ : Type*}
@@ -1882,59 +1856,6 @@ theorem _root_.aestronglyMeasurable_const_smul_iff₀ {c : G₀} (hc : c ≠ 0)
18821856

18831857
end MulAction
18841858

1885-
section ContinuousLinearMapNontriviallyNormedField
1886-
1887-
variable {𝕜 : Type*} [NontriviallyNormedField 𝕜]
1888-
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
1889-
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
1890-
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace 𝕜 G]
1891-
1892-
theorem _root_.StronglyMeasurable.apply_continuousLinearMap {_m : MeasurableSpace α}
1893-
{φ : α → F →L[𝕜] E}
1894-
(hφ : StronglyMeasurable φ) (v : F) : StronglyMeasurable fun a => φ a v :=
1895-
(ContinuousLinearMap.apply 𝕜 E v).continuous.comp_stronglyMeasurable hφ
1896-
#align strongly_measurable.apply_continuous_linear_map StronglyMeasurable.apply_continuousLinearMap
1897-
1898-
@[measurability]
1899-
theorem apply_continuousLinearMap {φ : α → F →L[𝕜] E} (hφ : AEStronglyMeasurable φ μ) (v : F) :
1900-
AEStronglyMeasurable (fun a => φ a v) μ :=
1901-
(ContinuousLinearMap.apply 𝕜 E v).continuous.comp_aestronglyMeasurable hφ
1902-
#align measure_theory.ae_strongly_measurable.apply_continuous_linear_map MeasureTheory.AEStronglyMeasurable.apply_continuousLinearMap
1903-
1904-
theorem _root_.ContinuousLinearMap.aestronglyMeasurable_comp₂ (L : E →L[𝕜] F →L[𝕜] G) {f : α → E}
1905-
{g : α → F} (hf : AEStronglyMeasurable f μ) (hg : AEStronglyMeasurable g μ) :
1906-
AEStronglyMeasurable (fun x => L (f x) (g x)) μ :=
1907-
L.continuous₂.comp_aestronglyMeasurable₂ hf hg
1908-
#align continuous_linear_map.ae_strongly_measurable_comp₂ ContinuousLinearMap.aestronglyMeasurable_comp₂
1909-
1910-
end ContinuousLinearMapNontriviallyNormedField
1911-
1912-
theorem _root_.aestronglyMeasurable_withDensity_iff {E : Type*} [NormedAddCommGroup E]
1913-
[NormedSpace ℝ E] {f : α → ℝ≥0} (hf : Measurable f) {g : α → E} :
1914-
AEStronglyMeasurable g (μ.withDensity fun x => (f x : ℝ≥0∞)) ↔
1915-
AEStronglyMeasurable (fun x => (f x : ℝ) • g x) μ := by
1916-
constructor
1917-
· rintro ⟨g', g'meas, hg'⟩
1918-
have A : MeasurableSet { x : α | f x ≠ 0 } := (hf (measurableSet_singleton 0)).compl
1919-
refine ⟨fun x => (f x : ℝ) • g' x, hf.coe_nnreal_real.stronglyMeasurable.smul g'meas, ?_⟩
1920-
apply @ae_of_ae_restrict_of_ae_restrict_compl _ _ _ { x | f x ≠ 0 }
1921-
· rw [EventuallyEq, ae_withDensity_iff hf.coe_nnreal_ennreal] at hg'
1922-
rw [ae_restrict_iff' A]
1923-
filter_upwards [hg'] with a ha h'a
1924-
have : (f a : ℝ≥0∞) ≠ 0 := by simpa only [Ne, ENNReal.coe_eq_zero] using h'a
1925-
rw [ha this]
1926-
· filter_upwards [ae_restrict_mem A.compl] with x hx
1927-
simp only [Classical.not_not, mem_setOf_eq, mem_compl_iff] at hx
1928-
simp [hx]
1929-
· rintro ⟨g', g'meas, hg'⟩
1930-
refine ⟨fun x => (f x : ℝ)⁻¹ • g' x, hf.coe_nnreal_real.inv.stronglyMeasurable.smul g'meas, ?_⟩
1931-
rw [EventuallyEq, ae_withDensity_iff hf.coe_nnreal_ennreal]
1932-
filter_upwards [hg'] with x hx h'x
1933-
rw [← hx, smul_smul, _root_.inv_mul_cancel, one_smul]
1934-
simp only [Ne, ENNReal.coe_eq_zero] at h'x
1935-
simpa only [NNReal.coe_eq_zero, Ne] using h'x
1936-
#align ae_strongly_measurable_with_density_iff aestronglyMeasurable_withDensity_iff
1937-
19381859
end AEStronglyMeasurable
19391860

19401861
/-! ## Almost everywhere finitely strongly measurable functions -/
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
/-
2+
Copyright (c) 2021 Rémy Degenne. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Rémy Degenne, Sébastien Gouëzel
5+
-/
6+
7+
import Mathlib.Analysis.NormedSpace.BoundedLinearMaps
8+
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic
9+
import Mathlib.MeasureTheory.Measure.WithDensity
10+
import Mathlib.Topology.Algebra.Module.FiniteDimension
11+
12+
#align_import measure_theory.function.strongly_measurable.basic from "leanprover-community/mathlib"@"3b52265189f3fb43aa631edffce5d060fafaf82f"
13+
14+
/-!
15+
# Strongly measurable and finitely strongly measurable functions
16+
17+
This file contains some further development of strongly measurable and finitely strongly measurable
18+
functions, started in `Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic`.
19+
20+
## References
21+
22+
* Hytönen, Tuomas, Jan Van Neerven, Mark Veraar, and Lutz Weis. Analysis in Banach spaces.
23+
Springer, 2016.
24+
25+
-/
26+
27+
open MeasureTheory Filter Set ENNReal NNReal
28+
29+
variable {α β γ : Type*} {m : MeasurableSpace α} {μ : Measure α} [TopologicalSpace β]
30+
[TopologicalSpace γ] {f g : α → β}
31+
32+
theorem MeasureTheory.AEStronglyMeasurable.comp_measurePreserving
33+
{γ : Type*} {_ : MeasurableSpace γ} {_ : MeasurableSpace α} {f : γ → α} {μ : Measure γ}
34+
{ν : Measure α} (hg : AEStronglyMeasurable g ν) (hf : MeasurePreserving f μ ν) :
35+
AEStronglyMeasurable (g ∘ f) μ :=
36+
hg.comp_quasiMeasurePreserving hf.quasiMeasurePreserving
37+
38+
theorem MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff {β : Type*}
39+
{f : α → β} {mα : MeasurableSpace α} {μa : Measure α} {mβ : MeasurableSpace β} {μb : Measure β}
40+
(hf : MeasurePreserving f μa μb) (h₂ : MeasurableEmbedding f) {g : β → γ} :
41+
AEStronglyMeasurable (g ∘ f) μa ↔ AEStronglyMeasurable g μb := by
42+
rw [← hf.map_eq, h₂.aestronglyMeasurable_map_iff]
43+
#align measure_theory.measure_preserving.ae_strongly_measurable_comp_iff MeasureTheory.MeasurePreserving.aestronglyMeasurable_comp_iff
44+
45+
section NormedSpace
46+
47+
variable {𝕜 : Type*} [NontriviallyNormedField 𝕜] [CompleteSpace 𝕜]
48+
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
49+
50+
theorem aestronglyMeasurable_smul_const_iff {f : α → 𝕜} {c : E} (hc : c ≠ 0) :
51+
AEStronglyMeasurable (fun x => f x • c) μ ↔ AEStronglyMeasurable f μ :=
52+
(closedEmbedding_smul_left hc).toEmbedding.aestronglyMeasurable_comp_iff
53+
#align ae_strongly_measurable_smul_const_iff aestronglyMeasurable_smul_const_iff
54+
55+
end NormedSpace
56+
57+
section ContinuousLinearMapNontriviallyNormedField
58+
59+
variable {𝕜 : Type*} [NontriviallyNormedField 𝕜]
60+
variable {E : Type*} [NormedAddCommGroup E] [NormedSpace 𝕜 E]
61+
variable {F : Type*} [NormedAddCommGroup F] [NormedSpace 𝕜 F]
62+
variable {G : Type*} [NormedAddCommGroup G] [NormedSpace 𝕜 G]
63+
64+
theorem StronglyMeasurable.apply_continuousLinearMap
65+
{_m : MeasurableSpace α} {φ : α → F →L[𝕜] E} (hφ : StronglyMeasurable φ) (v : F) :
66+
StronglyMeasurable fun a => φ a v :=
67+
(ContinuousLinearMap.apply 𝕜 E v).continuous.comp_stronglyMeasurable hφ
68+
#align strongly_measurable.apply_continuous_linear_map StronglyMeasurable.apply_continuousLinearMap
69+
70+
@[measurability]
71+
theorem MeasureTheory.AEStronglyMeasurable.apply_continuousLinearMap {φ : α → F →L[𝕜] E}
72+
(hφ : AEStronglyMeasurable φ μ) (v : F) :
73+
AEStronglyMeasurable (fun a => φ a v) μ :=
74+
(ContinuousLinearMap.apply 𝕜 E v).continuous.comp_aestronglyMeasurable hφ
75+
#align measure_theory.ae_strongly_measurable.apply_continuous_linear_map MeasureTheory.AEStronglyMeasurable.apply_continuousLinearMap
76+
77+
theorem ContinuousLinearMap.aestronglyMeasurable_comp₂ (L : E →L[𝕜] F →L[𝕜] G) {f : α → E}
78+
{g : α → F} (hf : AEStronglyMeasurable f μ) (hg : AEStronglyMeasurable g μ) :
79+
AEStronglyMeasurable (fun x => L (f x) (g x)) μ :=
80+
L.continuous₂.comp_aestronglyMeasurable₂ hf hg
81+
#align continuous_linear_map.ae_strongly_measurable_comp₂ ContinuousLinearMap.aestronglyMeasurable_comp₂
82+
83+
end ContinuousLinearMapNontriviallyNormedField
84+
85+
theorem aestronglyMeasurable_withDensity_iff {E : Type*} [NormedAddCommGroup E]
86+
[NormedSpace ℝ E] {f : α → ℝ≥0} (hf : Measurable f) {g : α → E} :
87+
AEStronglyMeasurable g (μ.withDensity fun x => (f x : ℝ≥0∞)) ↔
88+
AEStronglyMeasurable (fun x => (f x : ℝ) • g x) μ := by
89+
constructor
90+
· rintro ⟨g', g'meas, hg'⟩
91+
have A : MeasurableSet { x : α | f x ≠ 0 } := (hf (measurableSet_singleton 0)).compl
92+
refine ⟨fun x => (f x : ℝ) • g' x, hf.coe_nnreal_real.stronglyMeasurable.smul g'meas, ?_⟩
93+
apply @ae_of_ae_restrict_of_ae_restrict_compl _ _ _ { x | f x ≠ 0 }
94+
· rw [EventuallyEq, ae_withDensity_iff hf.coe_nnreal_ennreal] at hg'
95+
rw [ae_restrict_iff' A]
96+
filter_upwards [hg'] with a ha h'a
97+
have : (f a : ℝ≥0∞) ≠ 0 := by simpa only [Ne, ENNReal.coe_eq_zero] using h'a
98+
rw [ha this]
99+
· filter_upwards [ae_restrict_mem A.compl] with x hx
100+
simp only [Classical.not_not, mem_setOf_eq, mem_compl_iff] at hx
101+
simp [hx]
102+
· rintro ⟨g', g'meas, hg'⟩
103+
refine ⟨fun x => (f x : ℝ)⁻¹ • g' x, hf.coe_nnreal_real.inv.stronglyMeasurable.smul g'meas, ?_⟩
104+
rw [EventuallyEq, ae_withDensity_iff hf.coe_nnreal_ennreal]
105+
filter_upwards [hg'] with x hx h'x
106+
rw [← hx, smul_smul, _root_.inv_mul_cancel, one_smul]
107+
simp only [Ne, ENNReal.coe_eq_zero] at h'x
108+
simpa only [NNReal.coe_eq_zero, Ne] using h'x
109+
#align ae_strongly_measurable_with_density_iff aestronglyMeasurable_withDensity_iff

Mathlib/MeasureTheory/Function/StronglyMeasurable/Lp.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Rémy Degenne
55
-/
66
import Mathlib.MeasureTheory.Function.SimpleFuncDenseLp
7-
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic
7+
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Lemmas
88

99
#align_import measure_theory.function.strongly_measurable.lp from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
1010

test/measurability.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import Mathlib.MeasureTheory.MeasurableSpace.Basic
88
import Mathlib.MeasureTheory.Constructions.BorelSpace.Basic
99
import Mathlib.MeasureTheory.Function.SpecialFunctions.Basic
1010
import Mathlib.MeasureTheory.Function.SpecialFunctions.Inner
11-
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Basic
11+
import Mathlib.MeasureTheory.Function.StronglyMeasurable.Lemmas
1212

1313

1414
open MeasureTheory TopologicalSpace

0 commit comments

Comments
 (0)