Skip to content

Commit 46bb390

Browse files
committed
feat: more API for ae strongly measurable functions on compact sets (#33670)
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
1 parent d5cad8f commit 46bb390

File tree

4 files changed

+47
-28
lines changed

4 files changed

+47
-28
lines changed

Mathlib/MeasureTheory/Function/LocallyIntegrable.lean

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -487,17 +487,12 @@ theorem ContinuousOn.locallyIntegrableOn [IsLocallyFiniteMeasure μ]
487487
theorem ContinuousOn.integrableOn_of_subset_isCompact (hf : ContinuousOn f K)
488488
(hK : IsCompact K) (hs : MeasurableSet s) (h's : s ⊆ K) (mus : μ s ≠ ∞) :
489489
IntegrableOn f s μ := by
490-
constructor
491-
· borelize E
492-
rw [aestronglyMeasurable_iff_aemeasurable_separable]
493-
refine ⟨(hf.mono h's).aemeasurable hs, f '' s, ?_, ?_⟩
494-
· exact (hK.image_of_continuousOn hf).isSeparable.mono (image_mono h's)
495-
· filter_upwards [ae_restrict_mem hs] with a ha using mem_image_of_mem f ha
496-
· have : Fact (μ s < ∞) := ⟨mus.lt_top⟩
497-
obtain ⟨C, hC⟩ : ∃ C, ∀ x ∈ f '' K, ‖x‖ ≤ C :=
498-
IsBounded.exists_norm_le (hK.image_of_continuousOn hf).isBounded
499-
apply HasFiniteIntegral.of_bounded (C := C)
500-
filter_upwards [ae_restrict_mem hs] with a ha using hC _ (mem_image_of_mem f (h's ha))
490+
refine ⟨hf.aestronglyMeasurable_of_subset_isCompact hK hs h's, ?_⟩
491+
have : Fact (μ s < ∞) := ⟨mus.lt_top⟩
492+
obtain ⟨C, hC⟩ : ∃ C, ∀ x ∈ f '' K, ‖x‖ ≤ C :=
493+
IsBounded.exists_norm_le (hK.image_of_continuousOn hf).isBounded
494+
apply HasFiniteIntegral.of_bounded (C := C)
495+
filter_upwards [ae_restrict_mem hs] with a ha using hC _ (mem_image_of_mem f (h's ha))
501496

502497
variable [IsFiniteMeasureOnCompacts μ]
503498

Mathlib/MeasureTheory/Integral/IntegrableOn.lean

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -675,18 +675,31 @@ theorem ContinuousOn.aestronglyMeasurable [TopologicalSpace α] [TopologicalSpac
675675
exact isSeparable_range <| continuousOn_iff_continuous_restrict.1 hf
676676
· exact .of_separableSpace _
677677

678+
/-- A function which is continuous on a compact set `s` is almost everywhere strongly measurable
679+
with respect to `μ.restrict t` for any measurable subset `t` of `s`. -/
680+
theorem ContinuousOn.aestronglyMeasurable_of_subset_isCompact
681+
[TopologicalSpace α] [OpensMeasurableSpace α]
682+
[TopologicalSpace β] [PseudoMetrizableSpace β] {f : α → β} {s t : Set α} {μ : Measure α}
683+
(hf : ContinuousOn f s) (hs : IsCompact s) (ht : MeasurableSet t) (hts : t ⊆ s) :
684+
AEStronglyMeasurable f (μ.restrict t) := by
685+
borelize β
686+
rw [aestronglyMeasurable_iff_aemeasurable_separable]
687+
refine ⟨(hf.mono hts).aemeasurable ht, f '' s, ?_, ?_⟩
688+
· exact (hs.image_of_continuousOn hf).isSeparable
689+
· filter_upwards [ae_restrict_mem ht] with a ha using image_mono hts (mem_image_of_mem f ha)
690+
678691
/-- A function which is continuous on a compact set `s` is almost everywhere strongly measurable
679692
with respect to `μ.restrict s`. -/
680693
theorem ContinuousOn.aestronglyMeasurable_of_isCompact [TopologicalSpace α] [OpensMeasurableSpace α]
681694
[TopologicalSpace β] [PseudoMetrizableSpace β] {f : α → β} {s : Set α} {μ : Measure α}
682695
(hf : ContinuousOn f s) (hs : IsCompact s) (h's : MeasurableSet s) :
683-
AEStronglyMeasurable f (μ.restrict s) := by
684-
letI := pseudoMetrizableSpacePseudoMetric β
685-
borelize β
686-
rw [aestronglyMeasurable_iff_aemeasurable_separable]
687-
refine ⟨hf.aemeasurable h's, f '' s, ?_, ?_⟩
688-
· exact (hs.image_of_continuousOn hf).isSeparable
689-
· exact mem_of_superset (self_mem_ae_restrict h's) (subset_preimage_image _ _)
696+
AEStronglyMeasurable f (μ.restrict s) :=
697+
hf.aestronglyMeasurable_of_subset_isCompact hs h's Subset.rfl
698+
699+
lemma Continuous.aestronglyMeasurable_of_compactSpace [TopologicalSpace α] [OpensMeasurableSpace α]
700+
[CompactSpace α] [TopologicalSpace β] [PseudoMetrizableSpace β] {μ : Measure α} {f : α → β}
701+
(hf : Continuous f) : AEStronglyMeasurable f μ := by
702+
simpa using hf.continuousOn.aestronglyMeasurable_of_isCompact isCompact_univ .univ
690703

691704
theorem ContinuousOn.integrableAt_nhdsWithin_of_isSeparable [TopologicalSpace α]
692705
[PseudoMetrizableSpace α] [OpensMeasurableSpace α] {μ : Measure α} [IsLocallyFiniteMeasure μ]

Mathlib/MeasureTheory/Measure/Restrict.lean

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,16 @@ theorem restrict_map {f : α → β} (hf : Measurable f) {s : Set β} (hs : Meas
300300
(μ.map f).restrict s = (μ.restrict <| f ⁻¹' s).map f :=
301301
ext fun t ht => by simp [*, hf ht]
302302

303-
theorem restrict_toMeasurable (h : μ s ≠ ∞) : μ.restrict (toMeasurable μ s) = μ.restrict s :=
304-
ext fun t ht => by
305-
rw [restrict_apply ht, restrict_apply ht, inter_comm, measure_toMeasurable_inter ht h,
306-
inter_comm]
303+
theorem restrict_inter_toMeasurable (h : μ s ≠ ∞) (ht : MeasurableSet t) (hst : s ⊆ t) :
304+
μ.restrict (t ∩ toMeasurable μ s) = μ.restrict s := by
305+
ext u hu
306+
rw [restrict_apply hu, restrict_apply hu, inter_comm t, inter_comm, inter_assoc,
307+
measure_toMeasurable_inter (ht.inter hu) h]
308+
congr 1
309+
grind
310+
311+
theorem restrict_toMeasurable (h : μ s ≠ ∞) : μ.restrict (toMeasurable μ s) = μ.restrict s := by
312+
simpa using restrict_inter_toMeasurable h MeasurableSet.univ (subset_univ _)
307313

308314
theorem restrict_eq_self_of_ae_mem {_m0 : MeasurableSpace α} ⦃s : Set α⦄ ⦃μ : Measure α⦄
309315
(hs : ∀ᵐ x ∂μ, x ∈ s) : μ.restrict s = μ :=

Mathlib/Topology/MetricSpace/Pseudo/Basic.lean

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ public import Mathlib.Data.ENNReal.Real
99
public import Mathlib.Tactic.Bound.Attribute
1010
public import Mathlib.Topology.EMetricSpace.Basic
1111
public import Mathlib.Topology.MetricSpace.Pseudo.Defs
12-
13-
import Mathlib.Topology.Metrizable.Basic
12+
public import Mathlib.Topology.Metrizable.Basic
1413

1514
/-!
1615
## Pseudo-metric spaces
@@ -205,23 +204,28 @@ end Real
205204
namespace Topology
206205

207206
/-- The preimage of a separable set by an inducing map is separable. -/
208-
protected lemma IsInducing.isSeparable_preimage {f : β → α} [TopologicalSpace β]
207+
protected lemma IsInducing.isSeparable_preimage {α : Type*} [TopologicalSpace α]
208+
[PseudoMetrizableSpace α] {f : β → α} [TopologicalSpace β]
209209
(hf : IsInducing f) {s : Set α} (hs : IsSeparable s) : IsSeparable (f ⁻¹' s) := by
210+
letI : UniformSpace α := TopologicalSpace.pseudoMetrizableSpaceUniformity α
211+
have := pseudoMetrizableSpaceUniformity_countably_generated
210212
have : SeparableSpace s := hs.separableSpace
211213
have : SecondCountableTopology s := UniformSpace.secondCountable_of_separable _
212214
have : IsInducing ((mapsTo_preimage f s).restrict _ _ _) :=
213215
(hf.comp IsInducing.subtypeVal).codRestrict _
214216
have := this.secondCountableTopology
215217
exact .of_subtype _
216218

217-
protected theorem IsEmbedding.isSeparable_preimage {f : β → α} [TopologicalSpace β]
219+
protected theorem IsEmbedding.isSeparable_preimage {α : Type*} [TopologicalSpace α]
220+
[PseudoMetrizableSpace α] {f : β → α} [TopologicalSpace β]
218221
(hf : IsEmbedding f) {s : Set α} (hs : IsSeparable s) : IsSeparable (f ⁻¹' s) :=
219222
hf.isInducing.isSeparable_preimage hs
220223

221224
end Topology
222225

223226
/-- A compact set is separable. -/
224-
theorem IsCompact.isSeparable {s : Set α} (hs : IsCompact s) : IsSeparable s :=
227+
theorem IsCompact.isSeparable {α : Type*} [TopologicalSpace α] [PseudoMetrizableSpace α]
228+
{s : Set α} (hs : IsCompact s) : IsSeparable s :=
225229
haveI : CompactSpace s := isCompact_iff_compactSpace.mp hs
226230
.of_subtype s
227231

@@ -270,7 +274,8 @@ lemma exists_finite_cover_balls_of_isCompact_closure (hs : IsCompact (closure s)
270274
end Compact
271275

272276
/-- If a map is continuous on a separable set `s`, then the image of `s` is also separable. -/
273-
theorem ContinuousOn.isSeparable_image [TopologicalSpace β] {f : α → β} {s : Set α}
277+
theorem ContinuousOn.isSeparable_image {α : Type*} [TopologicalSpace α] [PseudoMetrizableSpace α]
278+
[TopologicalSpace β] {f : α → β} {s : Set α}
274279
(hf : ContinuousOn f s) (hs : IsSeparable s) : IsSeparable (f '' s) := by
275280
rw [image_eq_range, ← image_univ]
276281
exact (isSeparable_univ_iff.2 hs.separableSpace).image hf.restrict

0 commit comments

Comments
 (0)