measure_theory.function.locally_integrable
⟷
Mathlib.MeasureTheory.Function.LocallyIntegrable
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -105,7 +105,7 @@ theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
have : s ⊆ ⋃ x : s, u x := fun y hy => mem_Union_of_mem ⟨y, hy⟩ (xu ⟨y, hy⟩)
obtain ⟨T, hT_count, hT_un⟩ := is_open_Union_countable u u_open
refine' ⟨T, hT_count, _⟩
- rw [← hT_un, bUnion_eq_Union] at this
+ rw [← hT_un, bUnion_eq_Union] at this
rw [← Union_inter, eq_comm, inter_eq_right_iff_subset]
exact this
have : Countable T := countable_coe_iff.mpr T_count
@@ -196,7 +196,7 @@ theorem locallyIntegrableOn_iff_locallyIntegrable_restrict [OpensMeasurableSpace
refine' ⟨u, hu_o.mem_nhds hu_x, _⟩
rw [integrable_on, restrict_restrict hu_o.measurable_set]
exact ht_int.mono_set hu_sub
- · rw [← isOpen_compl_iff] at hs
+ · rw [← isOpen_compl_iff] at hs
refine' ⟨sᶜ, hs.mem_nhds h, _⟩
rw [integrable_on, restrict_restrict, inter_comm, inter_compl_self, ← integrable_on]
exacts [integrable_on_empty, hs.measurable_set]
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -52,11 +52,11 @@ def LocallyIntegrableOn (f : X → E) (s : Set X)
#align measure_theory.locally_integrable_on MeasureTheory.LocallyIntegrableOn
-/
-#print MeasureTheory.LocallyIntegrableOn.mono /-
-theorem LocallyIntegrableOn.mono (hf : MeasureTheory.LocallyIntegrableOn f s μ) {t : Set X}
+#print MeasureTheory.LocallyIntegrableOn.mono_set /-
+theorem LocallyIntegrableOn.mono_set (hf : MeasureTheory.LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) : LocallyIntegrableOn f t μ := fun x hx =>
(hf x <| hst hx).filter_mono (nhdsWithin_mono x hst)
-#align measure_theory.locally_integrable_on.mono MeasureTheory.LocallyIntegrableOn.mono
+#align measure_theory.locally_integrable_on.mono MeasureTheory.LocallyIntegrableOn.mono_set
-/
#print MeasureTheory.LocallyIntegrableOn.norm /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-/
-import Mathbin.MeasureTheory.Integral.IntegrableOn
+import MeasureTheory.Integral.IntegrableOn
#align_import measure_theory.function.locally_integrable from "leanprover-community/mathlib"@"2ebc1d6c2fed9f54c95bbc3998eaa5570527129a"
@@ -129,7 +129,7 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
let ⟨K, hK, h2K⟩ := WeaklyLocallyCompactSpace.exists_compact_mem_nhds x
⟨_, inter_mem_nhdsWithin s h2K,
hf _ (inter_subset_left _ _)
- (isCompact_of_isClosed_subset hK (hs.inter hK.IsClosed) (inter_subset_right _ _))⟩
+ (IsCompact.of_isClosed_subset hK (hs.inter hK.IsClosed) (inter_subset_right _ _))⟩
· obtain ⟨K, hK, h2K, h3K⟩ := exists_compact_subset hs hx
refine' ⟨K, _, hf K h3K hK⟩
simpa only [IsOpen.nhdsWithin_eq hs hx, interior_eq_nhds'] using h2K
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -400,7 +400,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
· exact integrable_on_empty
have hbelow : BddBelow (f '' s) := ⟨f a, fun x ⟨y, hy, hyx⟩ => hyx ▸ hmono ha.1 hy (ha.2 hy)⟩
have habove : BddAbove (f '' s) := ⟨f b, fun x ⟨y, hy, hyx⟩ => hyx ▸ hmono hy hb.1 (hb.2 hy)⟩
- have : Metric.Bounded (f '' s) := Metric.bounded_of_bddAbove_of_bddBelow habove hbelow
+ have : Bornology.IsBounded (f '' s) := Metric.isBounded_of_bddAbove_of_bddBelow habove hbelow
rcases bounded_iff_forall_norm_le.mp this with ⟨C, hC⟩
have A : integrable_on (fun x => C) s μ := by
simp only [hs.lt_top, integrable_on_const, or_true_iff]
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -126,7 +126,7 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
cases hs
·
exact
- let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
+ let ⟨K, hK, h2K⟩ := WeaklyLocallyCompactSpace.exists_compact_mem_nhds x
⟨_, inter_mem_nhdsWithin s h2K,
hf _ (inter_subset_left _ _)
(isCompact_of_isClosed_subset hK (hs.inter hK.IsClosed) (inter_subset_right _ _))⟩
@@ -234,7 +234,7 @@ theorem LocallyIntegrable.integrableOn_nhds_isCompact (hf : LocallyIntegrable f
theorem locallyIntegrable_iff [LocallyCompactSpace X] :
LocallyIntegrable f μ ↔ ∀ k : Set X, IsCompact k → IntegrableOn f k μ :=
⟨fun hf k hk => hf.integrableOn_isCompact hk, fun hf x =>
- let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
+ let ⟨K, hK, h2K⟩ := WeaklyLocallyCompactSpace.exists_compact_mem_nhds x
⟨K, h2K, hf K hK⟩⟩
#align measure_theory.locally_integrable_iff MeasureTheory.locallyIntegrable_iff
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-
-! This file was ported from Lean 3 source module measure_theory.function.locally_integrable
-! leanprover-community/mathlib commit 2ebc1d6c2fed9f54c95bbc3998eaa5570527129a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Integral.IntegrableOn
+#align_import measure_theory.function.locally_integrable from "leanprover-community/mathlib"@"2ebc1d6c2fed9f54c95bbc3998eaa5570527129a"
+
/-!
# Locally integrable functions
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -55,33 +55,44 @@ def LocallyIntegrableOn (f : X → E) (s : Set X)
#align measure_theory.locally_integrable_on MeasureTheory.LocallyIntegrableOn
-/
+#print MeasureTheory.LocallyIntegrableOn.mono /-
theorem LocallyIntegrableOn.mono (hf : MeasureTheory.LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) : LocallyIntegrableOn f t μ := fun x hx =>
(hf x <| hst hx).filter_mono (nhdsWithin_mono x hst)
#align measure_theory.locally_integrable_on.mono MeasureTheory.LocallyIntegrableOn.mono
+-/
+#print MeasureTheory.LocallyIntegrableOn.norm /-
theorem LocallyIntegrableOn.norm (hf : LocallyIntegrableOn f s μ) :
LocallyIntegrableOn (fun x => ‖f x‖) s μ := fun t ht =>
let ⟨U, hU_nhd, hU_int⟩ := hf t ht
⟨U, hU_nhd, hU_int.norm⟩
#align measure_theory.locally_integrable_on.norm MeasureTheory.LocallyIntegrableOn.norm
+-/
+#print MeasureTheory.IntegrableOn.locallyIntegrableOn /-
theorem IntegrableOn.locallyIntegrableOn (hf : IntegrableOn f s μ) : LocallyIntegrableOn f s μ :=
fun x hx => ⟨s, self_mem_nhdsWithin, hf⟩
#align measure_theory.integrable_on.locally_integrable_on MeasureTheory.IntegrableOn.locallyIntegrableOn
+-/
+#print MeasureTheory.LocallyIntegrableOn.integrableOn_isCompact /-
/-- If a function is locally integrable on a compact set, then it is integrable on that set. -/
theorem LocallyIntegrableOn.integrableOn_isCompact (hf : LocallyIntegrableOn f s μ)
(hs : IsCompact s) : IntegrableOn f s μ :=
IsCompact.induction_on hs integrableOn_empty (fun u v huv hv => hv.mono_set huv)
(fun u v hu hv => integrableOn_union.mpr ⟨hu, hv⟩) hf
#align measure_theory.locally_integrable_on.integrable_on_is_compact MeasureTheory.LocallyIntegrableOn.integrableOn_isCompact
+-/
+#print MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset /-
theorem LocallyIntegrableOn.integrableOn_compact_subset (hf : LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) (ht : IsCompact t) : IntegrableOn f t μ :=
(hf.mono hst).integrableOn_isCompact ht
#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset
+-/
+#print MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable /-
theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
(hf : LocallyIntegrableOn f s μ) : AEStronglyMeasurable f (μ.restrict s) :=
by
@@ -104,7 +115,9 @@ theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
rw [hT, aestronglyMeasurable_iUnion_iff]
exact fun i : T => (hu i).AEStronglyMeasurable
#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable
+-/
+#print MeasureTheory.locallyIntegrableOn_iff /-
/-- If `s` is either open, or closed, then `f` is locally integrable on `s` iff it is integrable on
every compact subset contained in `s`. -/
theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClosed s ∨ IsOpen s) :
@@ -124,6 +137,7 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
refine' ⟨K, _, hf K h3K hK⟩
simpa only [IsOpen.nhdsWithin_eq hs hx, interior_eq_nhds'] using h2K
#align measure_theory.locally_integrable_on_iff MeasureTheory.locallyIntegrableOn_iff
+-/
end LocallyIntegrableOn
@@ -137,13 +151,17 @@ def LocallyIntegrable (f : X → E) (μ : Measure X := by exact MeasureTheory.Me
#align measure_theory.locally_integrable MeasureTheory.LocallyIntegrable
-/
+#print MeasureTheory.locallyIntegrableOn_univ /-
theorem locallyIntegrableOn_univ : LocallyIntegrableOn f univ μ ↔ LocallyIntegrable f μ := by
simpa only [locally_integrable_on, nhdsWithin_univ, mem_univ, true_imp_iff]
#align measure_theory.locally_integrable_on_univ MeasureTheory.locallyIntegrableOn_univ
+-/
+#print MeasureTheory.LocallyIntegrable.locallyIntegrableOn /-
theorem LocallyIntegrable.locallyIntegrableOn (hf : LocallyIntegrable f μ) (s : Set X) :
LocallyIntegrableOn f s μ := fun x hx => (hf x).filter_mono nhdsWithin_le_nhds
#align measure_theory.locally_integrable.locally_integrable_on MeasureTheory.LocallyIntegrable.locallyIntegrableOn
+-/
#print MeasureTheory.Integrable.locallyIntegrable /-
theorem Integrable.locallyIntegrable (hf : Integrable f μ) : LocallyIntegrable f μ := fun x =>
@@ -151,6 +169,7 @@ theorem Integrable.locallyIntegrable (hf : Integrable f μ) : LocallyIntegrable
#align measure_theory.integrable.locally_integrable MeasureTheory.Integrable.locallyIntegrable
-/
+#print MeasureTheory.locallyIntegrableOn_of_locallyIntegrable_restrict /-
/-- If `f` is locally integrable with respect to `μ.restrict s`, it is locally integrable on `s`.
(See `locally_integrable_on_iff_locally_integrable_restrict` for an iff statement when `s` is
closed.) -/
@@ -164,7 +183,9 @@ theorem locallyIntegrableOn_of_locallyIntegrable_restrict [OpensMeasurableSpace
simpa only [integrable_on, measure.restrict_restrict hu_o.measurable_set, inter_comm] using
ht_int.mono_set hu_sub
#align measure_theory.locally_integrable_on_of_locally_integrable_restrict MeasureTheory.locallyIntegrableOn_of_locallyIntegrable_restrict
+-/
+#print MeasureTheory.locallyIntegrableOn_iff_locallyIntegrable_restrict /-
/-- If `s` is closed, being locally integrable on `s` wrt `μ` is equivalent to being locally
integrable with respect to `μ.restrict s`. For the one-way implication without assuming `s` closed,
see `locally_integrable_on_of_locally_integrable_restrict`. -/
@@ -183,13 +204,17 @@ theorem locallyIntegrableOn_iff_locallyIntegrable_restrict [OpensMeasurableSpace
rw [integrable_on, restrict_restrict, inter_comm, inter_compl_self, ← integrable_on]
exacts [integrable_on_empty, hs.measurable_set]
#align measure_theory.locally_integrable_on_iff_locally_integrable_restrict MeasureTheory.locallyIntegrableOn_iff_locallyIntegrable_restrict
+-/
+#print MeasureTheory.LocallyIntegrable.integrableOn_isCompact /-
/-- If a function is locally integrable, then it is integrable on any compact set. -/
theorem LocallyIntegrable.integrableOn_isCompact {k : Set X} (hf : LocallyIntegrable f μ)
(hk : IsCompact k) : IntegrableOn f k μ :=
(hf.LocallyIntegrableOn k).integrableOn_isCompact hk
#align measure_theory.locally_integrable.integrable_on_is_compact MeasureTheory.LocallyIntegrable.integrableOn_isCompact
+-/
+#print MeasureTheory.LocallyIntegrable.integrableOn_nhds_isCompact /-
/-- If a function is locally integrable, then it is integrable on an open neighborhood of any
compact set. -/
theorem LocallyIntegrable.integrableOn_nhds_isCompact (hf : LocallyIntegrable f μ) {k : Set X}
@@ -206,19 +231,25 @@ theorem LocallyIntegrable.integrableOn_nhds_isCompact (hf : LocallyIntegrable f
rcases mem_nhds_iff.1 ux with ⟨v, vu, v_open, xv⟩
exact ⟨v, nhdsWithin_le_nhds (v_open.mem_nhds xv), v, v_open, subset.rfl, hu.mono_set vu⟩
#align measure_theory.locally_integrable.integrable_on_nhds_is_compact MeasureTheory.LocallyIntegrable.integrableOn_nhds_isCompact
+-/
+#print MeasureTheory.locallyIntegrable_iff /-
theorem locallyIntegrable_iff [LocallyCompactSpace X] :
LocallyIntegrable f μ ↔ ∀ k : Set X, IsCompact k → IntegrableOn f k μ :=
⟨fun hf k hk => hf.integrableOn_isCompact hk, fun hf x =>
let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
⟨K, h2K, hf K hK⟩⟩
#align measure_theory.locally_integrable_iff MeasureTheory.locallyIntegrable_iff
+-/
+#print MeasureTheory.LocallyIntegrable.aestronglyMeasurable /-
theorem LocallyIntegrable.aestronglyMeasurable [SecondCountableTopology X]
(hf : LocallyIntegrable f μ) : AEStronglyMeasurable f μ := by
simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AEStronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aestronglyMeasurable
+-/
+#print MeasureTheory.locallyIntegrable_const /-
theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun x => c) μ := by
intro x
@@ -226,12 +257,16 @@ theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
refine' ⟨U, hU, _⟩
simp only [h'U, integrable_on_const, or_true_iff]
#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrable_const
+-/
+#print MeasureTheory.locallyIntegrableOn_const /-
theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrableOn (fun x => c) s μ :=
(locallyIntegrable_const c).LocallyIntegrableOn s
#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOn_const
+-/
+#print MeasureTheory.LocallyIntegrable.indicator /-
theorem LocallyIntegrable.indicator (hf : LocallyIntegrable f μ) {s : Set X}
(hs : MeasurableSet s) : LocallyIntegrable (s.indicator f) μ :=
by
@@ -239,7 +274,9 @@ theorem LocallyIntegrable.indicator (hf : LocallyIntegrable f μ) {s : Set X}
rcases hf x with ⟨U, hU, h'U⟩
exact ⟨U, hU, h'U.indicator hs⟩
#align measure_theory.locally_integrable.indicator MeasureTheory.LocallyIntegrable.indicator
+-/
+#print MeasureTheory.locallyIntegrable_map_homeomorph /-
theorem locallyIntegrable_map_homeomorph [BorelSpace X] [BorelSpace Y] (e : X ≃ₜ Y) {f : Y → E}
{μ : Measure X} : LocallyIntegrable f (Measure.map e μ) ↔ LocallyIntegrable (f ∘ e) μ :=
by
@@ -255,6 +292,7 @@ theorem locallyIntegrable_map_homeomorph [BorelSpace X] [BorelSpace Y] (e : X
ext x
simp only [mem_preimage, Homeomorph.symm_apply_apply]
#align measure_theory.locally_integrable_map_homeomorph MeasureTheory.locallyIntegrable_map_homeomorph
+-/
end MeasureTheory
@@ -266,21 +304,26 @@ variable [OpensMeasurableSpace X] [IsLocallyFiniteMeasure μ]
variable {K : Set X} {a b : X}
+#print Continuous.locallyIntegrable /-
/-- A continuous function `f` is locally integrable with respect to any locally finite measure. -/
theorem Continuous.locallyIntegrable [SecondCountableTopologyEither X E] (hf : Continuous f) :
LocallyIntegrable f μ :=
hf.integrableAt_nhds
#align continuous.locally_integrable Continuous.locallyIntegrable
+-/
+#print ContinuousOn.locallyIntegrableOn /-
/-- A function `f` continuous on a set `K` is locally integrable on this set with respect
to any locally finite measure. -/
theorem ContinuousOn.locallyIntegrableOn [SecondCountableTopologyEither X E] (hf : ContinuousOn f K)
(hK : MeasurableSet K) : LocallyIntegrableOn f K μ := fun x hx =>
hf.integrableAt_nhdsWithin hK hx
#align continuous_on.locally_integrable_on ContinuousOn.locallyIntegrableOn
+-/
variable [MetrizableSpace X]
+#print ContinuousOn.integrableOn_compact /-
/-- A function `f` continuous on a compact set `K` is integrable on this set with respect to any
locally finite measure. -/
theorem ContinuousOn.integrableOn_compact (hK : IsCompact K) (hf : ContinuousOn f K) :
@@ -289,43 +332,58 @@ theorem ContinuousOn.integrableOn_compact (hK : IsCompact K) (hf : ContinuousOn
refine' locally_integrable_on.integrable_on_is_compact (fun x hx => _) hK
exact hf.integrable_at_nhds_within_of_is_separable hK.measurable_set hK.is_separable hx
#align continuous_on.integrable_on_compact ContinuousOn.integrableOn_compact
+-/
+#print ContinuousOn.integrableOn_Icc /-
theorem ContinuousOn.integrableOn_Icc [Preorder X] [CompactIccSpace X]
(hf : ContinuousOn f (Icc a b)) : IntegrableOn f (Icc a b) μ :=
hf.integrableOn_compact isCompact_Icc
#align continuous_on.integrable_on_Icc ContinuousOn.integrableOn_Icc
+-/
+#print Continuous.integrableOn_Icc /-
theorem Continuous.integrableOn_Icc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f (Icc a b) μ :=
hf.ContinuousOn.integrableOn_Icc
#align continuous.integrable_on_Icc Continuous.integrableOn_Icc
+-/
+#print Continuous.integrableOn_Ioc /-
theorem Continuous.integrableOn_Ioc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f (Ioc a b) μ :=
hf.integrableOn_Icc.mono_set Ioc_subset_Icc_self
#align continuous.integrable_on_Ioc Continuous.integrableOn_Ioc
+-/
+#print ContinuousOn.integrableOn_uIcc /-
theorem ContinuousOn.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X]
(hf : ContinuousOn f [a, b]) : IntegrableOn f [a, b] μ :=
hf.integrableOn_Icc
#align continuous_on.integrable_on_uIcc ContinuousOn.integrableOn_uIcc
+-/
+#print Continuous.integrableOn_uIcc /-
theorem Continuous.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f [a, b] μ :=
hf.integrableOn_Icc
#align continuous.integrable_on_uIcc Continuous.integrableOn_uIcc
+-/
+#print Continuous.integrableOn_uIoc /-
theorem Continuous.integrableOn_uIoc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f (Ι a b) μ :=
hf.integrableOn_Ioc
#align continuous.integrable_on_uIoc Continuous.integrableOn_uIoc
+-/
+#print Continuous.integrable_of_hasCompactSupport /-
/-- A continuous function with compact support is integrable on the whole space. -/
theorem Continuous.integrable_of_hasCompactSupport (hf : Continuous f) (hcf : HasCompactSupport f) :
Integrable f μ :=
(integrableOn_iff_integrable_of_support_subset (subset_tsupport f)).mp <|
hf.ContinuousOn.integrableOn_compact hcf
#align continuous.integrable_of_has_compact_support Continuous.integrable_of_hasCompactSupport
+-/
end borel
@@ -336,6 +394,7 @@ section Monotone
variable [BorelSpace X] [ConditionallyCompleteLinearOrder X] [ConditionallyCompleteLinearOrder E]
[OrderTopology X] [OrderTopology E] [SecondCountableTopology E]
+#print MonotoneOn.integrableOn_of_measure_ne_top /-
theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b : X}
(ha : IsLeast s a) (hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) :
IntegrableOn f s μ := by
@@ -352,7 +411,9 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
integrable.mono' A (aemeasurable_restrict_of_monotoneOn h's hmono).AEStronglyMeasurable
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
+-/
+#print MonotoneOn.integrableOn_isCompact /-
theorem MonotoneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hmono : MonotoneOn f s) : IntegrableOn f s μ :=
by
@@ -363,18 +424,24 @@ theorem MonotoneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : I
hmono.integrable_on_of_measure_ne_top (hs.is_least_Inf h) (hs.is_greatest_Sup h)
hs.measure_lt_top.ne hs.measurable_set
#align monotone_on.integrable_on_is_compact MonotoneOn.integrableOn_isCompact
+-/
+#print AntitoneOn.integrableOn_of_measure_ne_top /-
theorem AntitoneOn.integrableOn_of_measure_ne_top (hanti : AntitoneOn f s) {a b : X}
(ha : IsLeast s a) (hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) :
IntegrableOn f s μ :=
hanti.dual_right.integrableOn_of_measure_ne_top ha hb hs h's
#align antitone_on.integrable_on_of_measure_ne_top AntitoneOn.integrableOn_of_measure_ne_top
+-/
+#print AntioneOn.integrableOn_isCompact /-
theorem AntioneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hanti : AntitoneOn f s) : IntegrableOn f s μ :=
hanti.dual_right.integrableOn_isCompact hs
#align antione_on.integrable_on_is_compact AntioneOn.integrableOn_isCompact
+-/
+#print Monotone.locallyIntegrable /-
theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone f) :
LocallyIntegrable f μ := by
intro x
@@ -387,11 +454,14 @@ theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone
(hmono.monotone_on _).integrableOn_of_measure_ne_top (isLeast_Icc ab) (isGreatest_Icc ab)
((measure_mono abU).trans_lt h'U).Ne measurableSet_Icc
#align monotone.locally_integrable Monotone.locallyIntegrable
+-/
+#print Antitone.locallyIntegrable /-
theorem Antitone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hanti : Antitone f) :
LocallyIntegrable f μ :=
hanti.dual_right.LocallyIntegrable
#align antitone.locally_integrable Antitone.locallyIntegrable
+-/
end Monotone
@@ -403,6 +473,7 @@ section Mul
variable [NormedRing R] [SecondCountableTopologyEither X R] {g g' : X → R}
+#print MeasureTheory.IntegrableOn.mul_continuousOn_of_subset /-
theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg' : ContinuousOn g' K)
(hA : MeasurableSet A) (hK : IsCompact K) (hAK : A ⊆ K) :
IntegrableOn (fun x => g x * g' x) A μ :=
@@ -419,12 +490,16 @@ theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg'
mem_ℒp.of_le_mul hg (hg.ae_strongly_measurable.mul <| (hg'.mono hAK).AEStronglyMeasurable hA)
this
#align measure_theory.integrable_on.mul_continuous_on_of_subset MeasureTheory.IntegrableOn.mul_continuousOn_of_subset
+-/
+#print MeasureTheory.IntegrableOn.mul_continuousOn /-
theorem IntegrableOn.mul_continuousOn [T2Space X] (hg : IntegrableOn g K μ)
(hg' : ContinuousOn g' K) (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
hg.mul_continuousOn_of_subset hg' hK.MeasurableSet hK (Subset.refl _)
#align measure_theory.integrable_on.mul_continuous_on MeasureTheory.IntegrableOn.mul_continuousOn
+-/
+#print MeasureTheory.IntegrableOn.continuousOn_mul_of_subset /-
theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : IntegrableOn g' A μ)
(hK : IsCompact K) (hA : MeasurableSet A) (hAK : A ⊆ K) :
IntegrableOn (fun x => g x * g' x) A μ :=
@@ -440,11 +515,14 @@ theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : I
mem_ℒp.of_le_mul hg' (((hg.mono hAK).AEStronglyMeasurable hA).mul hg'.ae_strongly_measurable)
this
#align measure_theory.integrable_on.continuous_on_mul_of_subset MeasureTheory.IntegrableOn.continuousOn_mul_of_subset
+-/
+#print MeasureTheory.IntegrableOn.continuousOn_mul /-
theorem IntegrableOn.continuousOn_mul [T2Space X] (hg : ContinuousOn g K)
(hg' : IntegrableOn g' K μ) (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
hg'.continuousOn_mul_of_subset hg hK hK.MeasurableSet Subset.rfl
#align measure_theory.integrable_on.continuous_on_mul MeasureTheory.IntegrableOn.continuousOn_mul
+-/
end Mul
@@ -452,6 +530,7 @@ section Smul
variable {𝕜 : Type _} [NormedField 𝕜] [NormedSpace 𝕜 E]
+#print MeasureTheory.IntegrableOn.continuousOn_smul /-
theorem IntegrableOn.continuousOn_smul [T2Space X] [SecondCountableTopologyEither X 𝕜] {g : X → E}
(hg : IntegrableOn g K μ) {f : X → 𝕜} (hf : ContinuousOn f K) (hK : IsCompact K) :
IntegrableOn (fun x => f x • g x) K μ :=
@@ -462,7 +541,9 @@ theorem IntegrableOn.continuousOn_smul [T2Space X] [SecondCountableTopologyEithe
exact continuous_norm.comp_continuous_on hf
· exact (hf.ae_strongly_measurable hK.measurable_set).smul hg.1
#align measure_theory.integrable_on.continuous_on_smul MeasureTheory.IntegrableOn.continuousOn_smul
+-/
+#print MeasureTheory.IntegrableOn.smul_continuousOn /-
theorem IntegrableOn.smul_continuousOn [T2Space X] [SecondCountableTopologyEither X E] {f : X → 𝕜}
(hf : IntegrableOn f K μ) {g : X → E} (hg : ContinuousOn g K) (hK : IsCompact K) :
IntegrableOn (fun x => f x • g x) K μ :=
@@ -473,11 +554,13 @@ theorem IntegrableOn.smul_continuousOn [T2Space X] [SecondCountableTopologyEithe
exact continuous_norm.comp_continuous_on hg
· exact hf.1.smul (hg.ae_strongly_measurable hK.measurable_set)
#align measure_theory.integrable_on.smul_continuous_on MeasureTheory.IntegrableOn.smul_continuousOn
+-/
end Smul
namespace LocallyIntegrableOn
+#print MeasureTheory.LocallyIntegrableOn.continuousOn_mul /-
theorem continuousOn_mul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => g x * f x) s μ :=
@@ -485,7 +568,9 @@ theorem continuousOn_mul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_mul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_mul MeasureTheory.LocallyIntegrableOn.continuousOn_mul
+-/
+#print MeasureTheory.LocallyIntegrableOn.mul_continuousOn /-
theorem mul_continuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => f x * g x) s μ :=
@@ -493,7 +578,9 @@ theorem mul_continuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mul_continuousOn
+-/
+#print MeasureTheory.LocallyIntegrableOn.continuousOn_smul /-
theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
[SecondCountableTopologyEither X 𝕜] [NormedSpace 𝕜 E] {f : X → E} {g : X → 𝕜} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
@@ -502,7 +589,9 @@ theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_smul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOn_smul
+-/
+#print MeasureTheory.LocallyIntegrableOn.smul_continuousOn /-
theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
[SecondCountableTopologyEither X E] [NormedSpace 𝕜 E] {f : X → 𝕜} {g : X → E} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
@@ -511,6 +600,7 @@ theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).smul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.smul_continuous_on MeasureTheory.LocallyIntegrableOn.smul_continuousOn
+-/
end LocallyIntegrableOn
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
! This file was ported from Lean 3 source module measure_theory.function.locally_integrable
-! leanprover-community/mathlib commit 08a4542bec7242a5c60f179e4e49de8c0d677b1b
+! leanprover-community/mathlib commit 2ebc1d6c2fed9f54c95bbc3998eaa5570527129a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.MeasureTheory.Integral.IntegrableOn
/-!
# Locally integrable functions
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A function is called *locally integrable* (`measure_theory.locally_integrable`) if it is integrable
on a neighborhood of every point. More generally, it is *locally integrable on `s`* if it is
locally integrable on a neighbourhood within `s` of any point of `s`.
@@ -216,7 +219,7 @@ theorem LocallyIntegrable.aestronglyMeasurable [SecondCountableTopology X]
simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AEStronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aestronglyMeasurable
-theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun x => c) μ := by
intro x
rcases μ.finite_at_nhds x with ⟨U, hU, h'U⟩
@@ -224,7 +227,7 @@ theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
simp only [h'U, integrable_on_const, or_true_iff]
#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrable_const
-theorem locallyIntegrableOn_const [LocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrableOn (fun x => c) s μ :=
(locallyIntegrable_const c).LocallyIntegrableOn s
#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOn_const
@@ -259,7 +262,7 @@ open MeasureTheory
section borel
-variable [OpensMeasurableSpace X] [LocallyFiniteMeasure μ]
+variable [OpensMeasurableSpace X] [IsLocallyFiniteMeasure μ]
variable {K : Set X} {a b : X}
@@ -350,7 +353,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
-theorem MonotoneOn.integrableOn_isCompact [FiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem MonotoneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hmono : MonotoneOn f s) : IntegrableOn f s μ :=
by
obtain rfl | h := s.eq_empty_or_nonempty
@@ -367,12 +370,12 @@ theorem AntitoneOn.integrableOn_of_measure_ne_top (hanti : AntitoneOn f s) {a b
hanti.dual_right.integrableOn_of_measure_ne_top ha hb hs h's
#align antitone_on.integrable_on_of_measure_ne_top AntitoneOn.integrableOn_of_measure_ne_top
-theorem AntioneOn.integrableOn_isCompact [FiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem AntioneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hanti : AntitoneOn f s) : IntegrableOn f s μ :=
hanti.dual_right.integrableOn_isCompact hs
#align antione_on.integrable_on_is_compact AntioneOn.integrableOn_isCompact
-theorem Monotone.locallyIntegrable [LocallyFiniteMeasure μ] (hmono : Monotone f) :
+theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone f) :
LocallyIntegrable f μ := by
intro x
rcases μ.finite_at_nhds x with ⟨U, hU, h'U⟩
@@ -385,7 +388,7 @@ theorem Monotone.locallyIntegrable [LocallyFiniteMeasure μ] (hmono : Monotone f
((measure_mono abU).trans_lt h'U).Ne measurableSet_Icc
#align monotone.locally_integrable Monotone.locallyIntegrable
-theorem Antitone.locallyIntegrable [LocallyFiniteMeasure μ] (hanti : Antitone f) :
+theorem Antitone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hanti : Antitone f) :
LocallyIntegrable f μ :=
hanti.dual_right.LocallyIntegrable
#align antitone.locally_integrable Antitone.locallyIntegrable
@@ -408,7 +411,7 @@ theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg'
rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ :=
by
- filter_upwards [ae_restrict_mem hA]with x hx
+ filter_upwards [ae_restrict_mem hA] with x hx
refine' (norm_mul_le _ _).trans _
rw [mul_comm]
apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
@@ -430,7 +433,7 @@ theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : I
rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg' ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g' x‖ :=
by
- filter_upwards [ae_restrict_mem hA]with x hx
+ filter_upwards [ae_restrict_mem hA] with x hx
refine' (norm_mul_le _ _).trans _
apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
exact
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -94,7 +94,7 @@ theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
have : s ⊆ ⋃ x : s, u x := fun y hy => mem_Union_of_mem ⟨y, hy⟩ (xu ⟨y, hy⟩)
obtain ⟨T, hT_count, hT_un⟩ := is_open_Union_countable u u_open
refine' ⟨T, hT_count, _⟩
- rw [← hT_un, bUnion_eq_Union] at this
+ rw [← hT_un, bUnion_eq_Union] at this
rw [← Union_inter, eq_comm, inter_eq_right_iff_subset]
exact this
have : Countable T := countable_coe_iff.mpr T_count
@@ -175,10 +175,10 @@ theorem locallyIntegrableOn_iff_locallyIntegrable_restrict [OpensMeasurableSpace
refine' ⟨u, hu_o.mem_nhds hu_x, _⟩
rw [integrable_on, restrict_restrict hu_o.measurable_set]
exact ht_int.mono_set hu_sub
- · rw [← isOpen_compl_iff] at hs
+ · rw [← isOpen_compl_iff] at hs
refine' ⟨sᶜ, hs.mem_nhds h, _⟩
rw [integrable_on, restrict_restrict, inter_comm, inter_compl_self, ← integrable_on]
- exacts[integrable_on_empty, hs.measurable_set]
+ exacts [integrable_on_empty, hs.measurable_set]
#align measure_theory.locally_integrable_on_iff_locally_integrable_restrict MeasureTheory.locallyIntegrableOn_iff_locallyIntegrable_restrict
/-- If a function is locally integrable, then it is integrable on any compact set. -/
@@ -405,7 +405,7 @@ theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg'
IntegrableOn (fun x => g x * g' x) A μ :=
by
rcases IsCompact.exists_bound_of_continuousOn hK hg' with ⟨C, hC⟩
- rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg⊢
+ rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ :=
by
filter_upwards [ae_restrict_mem hA]with x hx
@@ -427,7 +427,7 @@ theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : I
IntegrableOn (fun x => g x * g' x) A μ :=
by
rcases IsCompact.exists_bound_of_continuousOn hK hg with ⟨C, hC⟩
- rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg'⊢
+ rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg' ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g' x‖ :=
by
filter_upwards [ae_restrict_mem hA]with x hx
@@ -479,7 +479,7 @@ theorem continuousOn_mul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => g x * f x) s μ :=
by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_mul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_mul MeasureTheory.LocallyIntegrableOn.continuousOn_mul
@@ -487,7 +487,7 @@ theorem mul_continuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => f x * g x) s μ :=
by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mul_continuousOn
@@ -496,7 +496,7 @@ theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => g x • f x) s μ :=
by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_smul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOn_smul
@@ -505,7 +505,7 @@ theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => f x • g x) s μ :=
by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).smul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.smul_continuous_on MeasureTheory.LocallyIntegrableOn.smul_continuousOn
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -42,6 +42,7 @@ namespace MeasureTheory
section LocallyIntegrableOn
+#print MeasureTheory.LocallyIntegrableOn /-
/-- A function `f : X → E` is *locally integrable on s*, for `s ⊆ X`, if for every `x ∈ s` there is
a neighbourhood of `x` within `s` on which `f` is integrable. (Note this is, in general, strictly
weaker than local integrability with respect to `μ.restrict s`.) -/
@@ -49,6 +50,7 @@ def LocallyIntegrableOn (f : X → E) (s : Set X)
(μ : Measure X := by exact MeasureTheory.MeasureSpace.volume) : Prop :=
∀ x : X, x ∈ s → IntegrableAtFilter f (𝓝[s] x) μ
#align measure_theory.locally_integrable_on MeasureTheory.LocallyIntegrableOn
+-/
theorem LocallyIntegrableOn.mono (hf : MeasureTheory.LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) : LocallyIntegrableOn f t μ := fun x hx =>
@@ -77,7 +79,7 @@ theorem LocallyIntegrableOn.integrableOn_compact_subset (hf : LocallyIntegrableO
(hf.mono hst).integrableOn_isCompact ht
#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset
-theorem LocallyIntegrableOn.aEStronglyMeasurable [SecondCountableTopology X]
+theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
(hf : LocallyIntegrableOn f s μ) : AEStronglyMeasurable f (μ.restrict s) :=
by
have : ∀ x : s, ∃ u, IsOpen u ∧ x.1 ∈ u ∧ integrable_on f (u ∩ s) μ :=
@@ -98,7 +100,7 @@ theorem LocallyIntegrableOn.aEStronglyMeasurable [SecondCountableTopology X]
have : Countable T := countable_coe_iff.mpr T_count
rw [hT, aestronglyMeasurable_iUnion_iff]
exact fun i : T => (hu i).AEStronglyMeasurable
-#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aEStronglyMeasurable
+#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable
/-- If `s` is either open, or closed, then `f` is locally integrable on `s` iff it is integrable on
every compact subset contained in `s`. -/
@@ -122,6 +124,7 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
end LocallyIntegrableOn
+#print MeasureTheory.LocallyIntegrable /-
/-- A function `f : X → E` is *locally integrable* if it is integrable on a neighborhood of every
point. In particular, it is integrable on all compact sets,
see `locally_integrable.integrable_on_is_compact`. -/
@@ -129,6 +132,7 @@ def LocallyIntegrable (f : X → E) (μ : Measure X := by exact MeasureTheory.Me
Prop :=
∀ x : X, IntegrableAtFilter f (𝓝 x) μ
#align measure_theory.locally_integrable MeasureTheory.LocallyIntegrable
+-/
theorem locallyIntegrableOn_univ : LocallyIntegrableOn f univ μ ↔ LocallyIntegrable f μ := by
simpa only [locally_integrable_on, nhdsWithin_univ, mem_univ, true_imp_iff]
@@ -138,9 +142,11 @@ theorem LocallyIntegrable.locallyIntegrableOn (hf : LocallyIntegrable f μ) (s :
LocallyIntegrableOn f s μ := fun x hx => (hf x).filter_mono nhdsWithin_le_nhds
#align measure_theory.locally_integrable.locally_integrable_on MeasureTheory.LocallyIntegrable.locallyIntegrableOn
+#print MeasureTheory.Integrable.locallyIntegrable /-
theorem Integrable.locallyIntegrable (hf : Integrable f μ) : LocallyIntegrable f μ := fun x =>
hf.IntegrableAtFilter _
#align measure_theory.integrable.locally_integrable MeasureTheory.Integrable.locallyIntegrable
+-/
/-- If `f` is locally integrable with respect to `μ.restrict s`, it is locally integrable on `s`.
(See `locally_integrable_on_iff_locally_integrable_restrict` for an iff statement when `s` is
@@ -205,10 +211,10 @@ theorem locallyIntegrable_iff [LocallyCompactSpace X] :
⟨K, h2K, hf K hK⟩⟩
#align measure_theory.locally_integrable_iff MeasureTheory.locallyIntegrable_iff
-theorem LocallyIntegrable.aEStronglyMeasurable [SecondCountableTopology X]
+theorem LocallyIntegrable.aestronglyMeasurable [SecondCountableTopology X]
(hf : LocallyIntegrable f μ) : AEStronglyMeasurable f μ := by
simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AEStronglyMeasurable
-#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aEStronglyMeasurable
+#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aestronglyMeasurable
theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun x => c) μ := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -260,14 +260,14 @@ variable {K : Set X} {a b : X}
/-- A continuous function `f` is locally integrable with respect to any locally finite measure. -/
theorem Continuous.locallyIntegrable [SecondCountableTopologyEither X E] (hf : Continuous f) :
LocallyIntegrable f μ :=
- hf.integrable_at_nhds
+ hf.integrableAt_nhds
#align continuous.locally_integrable Continuous.locallyIntegrable
/-- A function `f` continuous on a set `K` is locally integrable on this set with respect
to any locally finite measure. -/
theorem ContinuousOn.locallyIntegrableOn [SecondCountableTopologyEither X E] (hf : ContinuousOn f K)
(hK : MeasurableSet K) : LocallyIntegrableOn f K μ := fun x hx =>
- hf.integrable_at_nhdsWithin hK hx
+ hf.integrableAt_nhdsWithin hK hx
#align continuous_on.locally_integrable_on ContinuousOn.locallyIntegrableOn
variable [MetrizableSpace X]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -30,7 +30,7 @@ on compact sets.
open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace
-open Topology Interval
+open scoped Topology Interval
variable {X Y E R : Type _} [MeasurableSpace X] [TopologicalSpace X]
@@ -320,7 +320,7 @@ theorem Continuous.integrable_of_hasCompactSupport (hf : Continuous f) (hcf : Ha
end borel
-open ENNReal
+open scoped ENNReal
section Monotone
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -77,8 +77,8 @@ theorem LocallyIntegrableOn.integrableOn_compact_subset (hf : LocallyIntegrableO
(hf.mono hst).integrableOn_isCompact ht
#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset
-theorem LocallyIntegrableOn.aeStronglyMeasurable [SecondCountableTopology X]
- (hf : LocallyIntegrableOn f s μ) : AeStronglyMeasurable f (μ.restrict s) :=
+theorem LocallyIntegrableOn.aEStronglyMeasurable [SecondCountableTopology X]
+ (hf : LocallyIntegrableOn f s μ) : AEStronglyMeasurable f (μ.restrict s) :=
by
have : ∀ x : s, ∃ u, IsOpen u ∧ x.1 ∈ u ∧ integrable_on f (u ∩ s) μ :=
by
@@ -96,9 +96,9 @@ theorem LocallyIntegrableOn.aeStronglyMeasurable [SecondCountableTopology X]
rw [← Union_inter, eq_comm, inter_eq_right_iff_subset]
exact this
have : Countable T := countable_coe_iff.mpr T_count
- rw [hT, aeStronglyMeasurable_iUnion_iff]
- exact fun i : T => (hu i).AeStronglyMeasurable
-#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aeStronglyMeasurable
+ rw [hT, aestronglyMeasurable_iUnion_iff]
+ exact fun i : T => (hu i).AEStronglyMeasurable
+#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aEStronglyMeasurable
/-- If `s` is either open, or closed, then `f` is locally integrable on `s` iff it is integrable on
every compact subset contained in `s`. -/
@@ -205,10 +205,10 @@ theorem locallyIntegrable_iff [LocallyCompactSpace X] :
⟨K, h2K, hf K hK⟩⟩
#align measure_theory.locally_integrable_iff MeasureTheory.locallyIntegrable_iff
-theorem LocallyIntegrable.aeStronglyMeasurable [SecondCountableTopology X]
- (hf : LocallyIntegrable f μ) : AeStronglyMeasurable f μ := by
- simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AeStronglyMeasurable
-#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aeStronglyMeasurable
+theorem LocallyIntegrable.aEStronglyMeasurable [SecondCountableTopology X]
+ (hf : LocallyIntegrable f μ) : AEStronglyMeasurable f μ := by
+ simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AEStronglyMeasurable
+#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aEStronglyMeasurable
theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun x => c) μ := by
@@ -340,7 +340,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
have A : integrable_on (fun x => C) s μ := by
simp only [hs.lt_top, integrable_on_const, or_true_iff]
refine'
- integrable.mono' A (aemeasurable_restrict_of_monotoneOn h's hmono).AeStronglyMeasurable
+ integrable.mono' A (aemeasurable_restrict_of_monotoneOn h's hmono).AEStronglyMeasurable
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
@@ -407,7 +407,7 @@ theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg'
rw [mul_comm]
apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
exact
- mem_ℒp.of_le_mul hg (hg.ae_strongly_measurable.mul <| (hg'.mono hAK).AeStronglyMeasurable hA)
+ mem_ℒp.of_le_mul hg (hg.ae_strongly_measurable.mul <| (hg'.mono hAK).AEStronglyMeasurable hA)
this
#align measure_theory.integrable_on.mul_continuous_on_of_subset MeasureTheory.IntegrableOn.mul_continuousOn_of_subset
@@ -428,7 +428,7 @@ theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : I
refine' (norm_mul_le _ _).trans _
apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
exact
- mem_ℒp.of_le_mul hg' (((hg.mono hAK).AeStronglyMeasurable hA).mul hg'.ae_strongly_measurable)
+ mem_ℒp.of_le_mul hg' (((hg.mono hAK).AEStronglyMeasurable hA).mul hg'.ae_strongly_measurable)
this
#align measure_theory.integrable_on.continuous_on_mul_of_subset MeasureTheory.IntegrableOn.continuousOn_mul_of_subset
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -340,7 +340,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
have A : integrable_on (fun x => C) s μ := by
simp only [hs.lt_top, integrable_on_const, or_true_iff]
refine'
- integrable.mono' A (aEMeasurable_restrict_of_monotoneOn h's hmono).AeStronglyMeasurable
+ integrable.mono' A (aemeasurable_restrict_of_monotoneOn h's hmono).AeStronglyMeasurable
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -96,7 +96,7 @@ theorem LocallyIntegrableOn.aeStronglyMeasurable [SecondCountableTopology X]
rw [← Union_inter, eq_comm, inter_eq_right_iff_subset]
exact this
have : Countable T := countable_coe_iff.mpr T_count
- rw [hT, aeStronglyMeasurable_unionᵢ_iff]
+ rw [hT, aeStronglyMeasurable_iUnion_iff]
exact fun i : T => (hu i).AeStronglyMeasurable
#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aeStronglyMeasurable
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -210,7 +210,7 @@ theorem LocallyIntegrable.aeStronglyMeasurable [SecondCountableTopology X]
simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AeStronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aeStronglyMeasurable
-theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun x => c) μ := by
intro x
rcases μ.finite_at_nhds x with ⟨U, hU, h'U⟩
@@ -218,7 +218,7 @@ theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
simp only [h'U, integrable_on_const, or_true_iff]
#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrable_const
-theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrableOn_const [LocallyFiniteMeasure μ] (c : E) :
LocallyIntegrableOn (fun x => c) s μ :=
(locallyIntegrable_const c).LocallyIntegrableOn s
#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOn_const
@@ -253,7 +253,7 @@ open MeasureTheory
section borel
-variable [OpensMeasurableSpace X] [IsLocallyFiniteMeasure μ]
+variable [OpensMeasurableSpace X] [LocallyFiniteMeasure μ]
variable {K : Set X} {a b : X}
@@ -344,7 +344,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
-theorem MonotoneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem MonotoneOn.integrableOn_isCompact [FiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hmono : MonotoneOn f s) : IntegrableOn f s μ :=
by
obtain rfl | h := s.eq_empty_or_nonempty
@@ -361,12 +361,12 @@ theorem AntitoneOn.integrableOn_of_measure_ne_top (hanti : AntitoneOn f s) {a b
hanti.dual_right.integrableOn_of_measure_ne_top ha hb hs h's
#align antitone_on.integrable_on_of_measure_ne_top AntitoneOn.integrableOn_of_measure_ne_top
-theorem AntioneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem AntioneOn.integrableOn_isCompact [FiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hanti : AntitoneOn f s) : IntegrableOn f s μ :=
hanti.dual_right.integrableOn_isCompact hs
#align antione_on.integrable_on_is_compact AntioneOn.integrableOn_isCompact
-theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone f) :
+theorem Monotone.locallyIntegrable [LocallyFiniteMeasure μ] (hmono : Monotone f) :
LocallyIntegrable f μ := by
intro x
rcases μ.finite_at_nhds x with ⟨U, hU, h'U⟩
@@ -379,7 +379,7 @@ theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone
((measure_mono abU).trans_lt h'U).Ne measurableSet_Icc
#align monotone.locally_integrable Monotone.locallyIntegrable
-theorem Antitone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hanti : Antitone f) :
+theorem Antitone.locallyIntegrable [LocallyFiniteMeasure μ] (hanti : Antitone f) :
LocallyIntegrable f μ :=
hanti.dual_right.LocallyIntegrable
#align antitone.locally_integrable Antitone.locallyIntegrable
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -66,16 +66,16 @@ theorem IntegrableOn.locallyIntegrableOn (hf : IntegrableOn f s μ) : LocallyInt
#align measure_theory.integrable_on.locally_integrable_on MeasureTheory.IntegrableOn.locallyIntegrableOn
/-- If a function is locally integrable on a compact set, then it is integrable on that set. -/
-theorem LocallyIntegrableOn.integrableOnIsCompact (hf : LocallyIntegrableOn f s μ)
+theorem LocallyIntegrableOn.integrableOn_isCompact (hf : LocallyIntegrableOn f s μ)
(hs : IsCompact s) : IntegrableOn f s μ :=
- IsCompact.induction_on hs integrableOnEmpty (fun u v huv hv => hv.monoSet huv)
+ IsCompact.induction_on hs integrableOn_empty (fun u v huv hv => hv.mono_set huv)
(fun u v hu hv => integrableOn_union.mpr ⟨hu, hv⟩) hf
-#align measure_theory.locally_integrable_on.integrable_on_is_compact MeasureTheory.LocallyIntegrableOn.integrableOnIsCompact
+#align measure_theory.locally_integrable_on.integrable_on_is_compact MeasureTheory.LocallyIntegrableOn.integrableOn_isCompact
-theorem LocallyIntegrableOn.integrableOnCompactSubset (hf : LocallyIntegrableOn f s μ) {t : Set X}
+theorem LocallyIntegrableOn.integrableOn_compact_subset (hf : LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) (ht : IsCompact t) : IntegrableOn f t μ :=
- (hf.mono hst).integrableOnIsCompact ht
-#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOnCompactSubset
+ (hf.mono hst).integrableOn_isCompact ht
+#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset
theorem LocallyIntegrableOn.aeStronglyMeasurable [SecondCountableTopology X]
(hf : LocallyIntegrableOn f s μ) : AeStronglyMeasurable f (μ.restrict s) :=
@@ -107,7 +107,7 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
by
-- The correct condition is that `s` be *locally closed*, i.e. for every `x ∈ s` there is some
-- `U ∈ 𝓝 x` such that `U ∩ s` is closed. But mathlib doesn't have locally closed sets yet.
- refine' ⟨fun hf k hk => hf.integrableOnCompactSubset hk, fun hf x hx => _⟩
+ refine' ⟨fun hf k hk => hf.integrableOn_compact_subset hk, fun hf x hx => _⟩
cases hs
·
exact
@@ -145,7 +145,7 @@ theorem Integrable.locallyIntegrable (hf : Integrable f μ) : LocallyIntegrable
/-- If `f` is locally integrable with respect to `μ.restrict s`, it is locally integrable on `s`.
(See `locally_integrable_on_iff_locally_integrable_restrict` for an iff statement when `s` is
closed.) -/
-theorem locallyIntegrableOnOfLocallyIntegrableRestrict [OpensMeasurableSpace X]
+theorem locallyIntegrableOn_of_locallyIntegrable_restrict [OpensMeasurableSpace X]
(hf : LocallyIntegrable f (μ.restrict s)) : LocallyIntegrableOn f s μ :=
by
intro x hx
@@ -154,7 +154,7 @@ theorem locallyIntegrableOnOfLocallyIntegrableRestrict [OpensMeasurableSpace X]
refine' ⟨_, inter_mem_nhdsWithin s (hu_o.mem_nhds hu_mem), _⟩
simpa only [integrable_on, measure.restrict_restrict hu_o.measurable_set, inter_comm] using
ht_int.mono_set hu_sub
-#align measure_theory.locally_integrable_on_of_locally_integrable_restrict MeasureTheory.locallyIntegrableOnOfLocallyIntegrableRestrict
+#align measure_theory.locally_integrable_on_of_locally_integrable_restrict MeasureTheory.locallyIntegrableOn_of_locallyIntegrable_restrict
/-- If `s` is closed, being locally integrable on `s` wrt `μ` is equivalent to being locally
integrable with respect to `μ.restrict s`. For the one-way implication without assuming `s` closed,
@@ -176,10 +176,10 @@ theorem locallyIntegrableOn_iff_locallyIntegrable_restrict [OpensMeasurableSpace
#align measure_theory.locally_integrable_on_iff_locally_integrable_restrict MeasureTheory.locallyIntegrableOn_iff_locallyIntegrable_restrict
/-- If a function is locally integrable, then it is integrable on any compact set. -/
-theorem LocallyIntegrable.integrableOnIsCompact {k : Set X} (hf : LocallyIntegrable f μ)
+theorem LocallyIntegrable.integrableOn_isCompact {k : Set X} (hf : LocallyIntegrable f μ)
(hk : IsCompact k) : IntegrableOn f k μ :=
- (hf.LocallyIntegrableOn k).integrableOnIsCompact hk
-#align measure_theory.locally_integrable.integrable_on_is_compact MeasureTheory.LocallyIntegrable.integrableOnIsCompact
+ (hf.LocallyIntegrableOn k).integrableOn_isCompact hk
+#align measure_theory.locally_integrable.integrable_on_is_compact MeasureTheory.LocallyIntegrable.integrableOn_isCompact
/-- If a function is locally integrable, then it is integrable on an open neighborhood of any
compact set. -/
@@ -200,7 +200,7 @@ theorem LocallyIntegrable.integrableOn_nhds_isCompact (hf : LocallyIntegrable f
theorem locallyIntegrable_iff [LocallyCompactSpace X] :
LocallyIntegrable f μ ↔ ∀ k : Set X, IsCompact k → IntegrableOn f k μ :=
- ⟨fun hf k hk => hf.integrableOnIsCompact hk, fun hf x =>
+ ⟨fun hf k hk => hf.integrableOn_isCompact hk, fun hf x =>
let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
⟨K, h2K, hf K hK⟩⟩
#align measure_theory.locally_integrable_iff MeasureTheory.locallyIntegrable_iff
@@ -210,18 +210,18 @@ theorem LocallyIntegrable.aeStronglyMeasurable [SecondCountableTopology X]
simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AeStronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aeStronglyMeasurable
-theorem locallyIntegrableConst [IsLocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun x => c) μ := by
intro x
rcases μ.finite_at_nhds x with ⟨U, hU, h'U⟩
refine' ⟨U, hU, _⟩
simp only [h'U, integrable_on_const, or_true_iff]
-#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrableConst
+#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrable_const
-theorem locallyIntegrableOnConst [IsLocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrableOn (fun x => c) s μ :=
- (locallyIntegrableConst c).LocallyIntegrableOn s
-#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOnConst
+ (locallyIntegrable_const c).LocallyIntegrableOn s
+#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOn_const
theorem LocallyIntegrable.indicator (hf : LocallyIntegrable f μ) {s : Set X}
(hs : MeasurableSet s) : LocallyIntegrable (s.indicator f) μ :=
@@ -260,63 +260,63 @@ variable {K : Set X} {a b : X}
/-- A continuous function `f` is locally integrable with respect to any locally finite measure. -/
theorem Continuous.locallyIntegrable [SecondCountableTopologyEither X E] (hf : Continuous f) :
LocallyIntegrable f μ :=
- hf.integrableAtNhds
+ hf.integrable_at_nhds
#align continuous.locally_integrable Continuous.locallyIntegrable
/-- A function `f` continuous on a set `K` is locally integrable on this set with respect
to any locally finite measure. -/
theorem ContinuousOn.locallyIntegrableOn [SecondCountableTopologyEither X E] (hf : ContinuousOn f K)
(hK : MeasurableSet K) : LocallyIntegrableOn f K μ := fun x hx =>
- hf.integrableAtNhdsWithin hK hx
+ hf.integrable_at_nhdsWithin hK hx
#align continuous_on.locally_integrable_on ContinuousOn.locallyIntegrableOn
variable [MetrizableSpace X]
/-- A function `f` continuous on a compact set `K` is integrable on this set with respect to any
locally finite measure. -/
-theorem ContinuousOn.integrableOnCompact (hK : IsCompact K) (hf : ContinuousOn f K) :
+theorem ContinuousOn.integrableOn_compact (hK : IsCompact K) (hf : ContinuousOn f K) :
IntegrableOn f K μ := by
letI := metrizable_space_metric X
refine' locally_integrable_on.integrable_on_is_compact (fun x hx => _) hK
exact hf.integrable_at_nhds_within_of_is_separable hK.measurable_set hK.is_separable hx
-#align continuous_on.integrable_on_compact ContinuousOn.integrableOnCompact
+#align continuous_on.integrable_on_compact ContinuousOn.integrableOn_compact
-theorem ContinuousOn.integrableOnIcc [Preorder X] [CompactIccSpace X]
+theorem ContinuousOn.integrableOn_Icc [Preorder X] [CompactIccSpace X]
(hf : ContinuousOn f (Icc a b)) : IntegrableOn f (Icc a b) μ :=
- hf.integrableOnCompact isCompact_Icc
-#align continuous_on.integrable_on_Icc ContinuousOn.integrableOnIcc
+ hf.integrableOn_compact isCompact_Icc
+#align continuous_on.integrable_on_Icc ContinuousOn.integrableOn_Icc
-theorem Continuous.integrableOnIcc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
+theorem Continuous.integrableOn_Icc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f (Icc a b) μ :=
- hf.ContinuousOn.integrableOnIcc
-#align continuous.integrable_on_Icc Continuous.integrableOnIcc
+ hf.ContinuousOn.integrableOn_Icc
+#align continuous.integrable_on_Icc Continuous.integrableOn_Icc
-theorem Continuous.integrableOnIoc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
+theorem Continuous.integrableOn_Ioc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f (Ioc a b) μ :=
- hf.integrableOnIcc.monoSet Ioc_subset_Icc_self
-#align continuous.integrable_on_Ioc Continuous.integrableOnIoc
+ hf.integrableOn_Icc.mono_set Ioc_subset_Icc_self
+#align continuous.integrable_on_Ioc Continuous.integrableOn_Ioc
-theorem ContinuousOn.integrableOnUIcc [LinearOrder X] [CompactIccSpace X]
+theorem ContinuousOn.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X]
(hf : ContinuousOn f [a, b]) : IntegrableOn f [a, b] μ :=
- hf.integrableOnIcc
-#align continuous_on.integrable_on_uIcc ContinuousOn.integrableOnUIcc
+ hf.integrableOn_Icc
+#align continuous_on.integrable_on_uIcc ContinuousOn.integrableOn_uIcc
-theorem Continuous.integrableOnUIcc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
+theorem Continuous.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f [a, b] μ :=
- hf.integrableOnIcc
-#align continuous.integrable_on_uIcc Continuous.integrableOnUIcc
+ hf.integrableOn_Icc
+#align continuous.integrable_on_uIcc Continuous.integrableOn_uIcc
-theorem Continuous.integrableOnUIoc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
+theorem Continuous.integrableOn_uIoc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
IntegrableOn f (Ι a b) μ :=
- hf.integrableOnIoc
-#align continuous.integrable_on_uIoc Continuous.integrableOnUIoc
+ hf.integrableOn_Ioc
+#align continuous.integrable_on_uIoc Continuous.integrableOn_uIoc
/-- A continuous function with compact support is integrable on the whole space. -/
-theorem Continuous.integrableOfHasCompactSupport (hf : Continuous f) (hcf : HasCompactSupport f) :
+theorem Continuous.integrable_of_hasCompactSupport (hf : Continuous f) (hcf : HasCompactSupport f) :
Integrable f μ :=
(integrableOn_iff_integrable_of_support_subset (subset_tsupport f)).mp <|
- hf.ContinuousOn.integrableOnCompact hcf
-#align continuous.integrable_of_has_compact_support Continuous.integrableOfHasCompactSupport
+ hf.ContinuousOn.integrableOn_compact hcf
+#align continuous.integrable_of_has_compact_support Continuous.integrable_of_hasCompactSupport
end borel
@@ -327,9 +327,9 @@ section Monotone
variable [BorelSpace X] [ConditionallyCompleteLinearOrder X] [ConditionallyCompleteLinearOrder E]
[OrderTopology X] [OrderTopology E] [SecondCountableTopology E]
-theorem MonotoneOn.integrableOnOfMeasureNeTop (hmono : MonotoneOn f s) {a b : X} (ha : IsLeast s a)
- (hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) : IntegrableOn f s μ :=
- by
+theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b : X}
+ (ha : IsLeast s a) (hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) :
+ IntegrableOn f s μ := by
borelize E
obtain rfl | h := s.eq_empty_or_nonempty
· exact integrable_on_empty
@@ -340,11 +340,11 @@ theorem MonotoneOn.integrableOnOfMeasureNeTop (hmono : MonotoneOn f s) {a b : X}
have A : integrable_on (fun x => C) s μ := by
simp only [hs.lt_top, integrable_on_const, or_true_iff]
refine'
- integrable.mono' A (aeMeasurableRestrictOfMonotoneOn h's hmono).AeStronglyMeasurable
+ integrable.mono' A (aEMeasurable_restrict_of_monotoneOn h's hmono).AeStronglyMeasurable
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
-#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOnOfMeasureNeTop
+#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
-theorem MonotoneOn.integrableOnIsCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem MonotoneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hmono : MonotoneOn f s) : IntegrableOn f s μ :=
by
obtain rfl | h := s.eq_empty_or_nonempty
@@ -353,17 +353,18 @@ theorem MonotoneOn.integrableOnIsCompact [IsFiniteMeasureOnCompacts μ] (hs : Is
exact
hmono.integrable_on_of_measure_ne_top (hs.is_least_Inf h) (hs.is_greatest_Sup h)
hs.measure_lt_top.ne hs.measurable_set
-#align monotone_on.integrable_on_is_compact MonotoneOn.integrableOnIsCompact
+#align monotone_on.integrable_on_is_compact MonotoneOn.integrableOn_isCompact
-theorem AntitoneOn.integrableOnOfMeasureNeTop (hanti : AntitoneOn f s) {a b : X} (ha : IsLeast s a)
- (hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) : IntegrableOn f s μ :=
- hanti.dual_right.integrableOnOfMeasureNeTop ha hb hs h's
-#align antitone_on.integrable_on_of_measure_ne_top AntitoneOn.integrableOnOfMeasureNeTop
+theorem AntitoneOn.integrableOn_of_measure_ne_top (hanti : AntitoneOn f s) {a b : X}
+ (ha : IsLeast s a) (hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) :
+ IntegrableOn f s μ :=
+ hanti.dual_right.integrableOn_of_measure_ne_top ha hb hs h's
+#align antitone_on.integrable_on_of_measure_ne_top AntitoneOn.integrableOn_of_measure_ne_top
-theorem AntioneOn.integrableOnIsCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem AntioneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hanti : AntitoneOn f s) : IntegrableOn f s μ :=
- hanti.dual_right.integrableOnIsCompact hs
-#align antione_on.integrable_on_is_compact AntioneOn.integrableOnIsCompact
+ hanti.dual_right.integrableOn_isCompact hs
+#align antione_on.integrable_on_is_compact AntioneOn.integrableOn_isCompact
theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone f) :
LocallyIntegrable f μ := by
@@ -374,7 +375,7 @@ theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone
have ab : a ≤ b := xab.1.trans xab.2
refine' ⟨Icc a b, hab, _⟩
exact
- (hmono.monotone_on _).integrableOnOfMeasureNeTop (isLeast_Icc ab) (isGreatest_Icc ab)
+ (hmono.monotone_on _).integrableOn_of_measure_ne_top (isLeast_Icc ab) (isGreatest_Icc ab)
((measure_mono abU).trans_lt h'U).Ne measurableSet_Icc
#align monotone.locally_integrable Monotone.locallyIntegrable
@@ -393,7 +394,7 @@ section Mul
variable [NormedRing R] [SecondCountableTopologyEither X R] {g g' : X → R}
-theorem IntegrableOn.mulContinuousOnOfSubset (hg : IntegrableOn g A μ) (hg' : ContinuousOn g' K)
+theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg' : ContinuousOn g' K)
(hA : MeasurableSet A) (hK : IsCompact K) (hAK : A ⊆ K) :
IntegrableOn (fun x => g x * g' x) A μ :=
by
@@ -408,14 +409,14 @@ theorem IntegrableOn.mulContinuousOnOfSubset (hg : IntegrableOn g A μ) (hg' : C
exact
mem_ℒp.of_le_mul hg (hg.ae_strongly_measurable.mul <| (hg'.mono hAK).AeStronglyMeasurable hA)
this
-#align measure_theory.integrable_on.mul_continuous_on_of_subset MeasureTheory.IntegrableOn.mulContinuousOnOfSubset
+#align measure_theory.integrable_on.mul_continuous_on_of_subset MeasureTheory.IntegrableOn.mul_continuousOn_of_subset
-theorem IntegrableOn.mulContinuousOn [T2Space X] (hg : IntegrableOn g K μ) (hg' : ContinuousOn g' K)
- (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
- hg.mulContinuousOnOfSubset hg' hK.MeasurableSet hK (Subset.refl _)
-#align measure_theory.integrable_on.mul_continuous_on MeasureTheory.IntegrableOn.mulContinuousOn
+theorem IntegrableOn.mul_continuousOn [T2Space X] (hg : IntegrableOn g K μ)
+ (hg' : ContinuousOn g' K) (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
+ hg.mul_continuousOn_of_subset hg' hK.MeasurableSet hK (Subset.refl _)
+#align measure_theory.integrable_on.mul_continuous_on MeasureTheory.IntegrableOn.mul_continuousOn
-theorem IntegrableOn.continuousOnMulOfSubset (hg : ContinuousOn g K) (hg' : IntegrableOn g' A μ)
+theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : IntegrableOn g' A μ)
(hK : IsCompact K) (hA : MeasurableSet A) (hAK : A ⊆ K) :
IntegrableOn (fun x => g x * g' x) A μ :=
by
@@ -429,12 +430,12 @@ theorem IntegrableOn.continuousOnMulOfSubset (hg : ContinuousOn g K) (hg' : Inte
exact
mem_ℒp.of_le_mul hg' (((hg.mono hAK).AeStronglyMeasurable hA).mul hg'.ae_strongly_measurable)
this
-#align measure_theory.integrable_on.continuous_on_mul_of_subset MeasureTheory.IntegrableOn.continuousOnMulOfSubset
+#align measure_theory.integrable_on.continuous_on_mul_of_subset MeasureTheory.IntegrableOn.continuousOn_mul_of_subset
-theorem IntegrableOn.continuousOnMul [T2Space X] (hg : ContinuousOn g K) (hg' : IntegrableOn g' K μ)
- (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
- hg'.continuousOnMulOfSubset hg hK hK.MeasurableSet Subset.rfl
-#align measure_theory.integrable_on.continuous_on_mul MeasureTheory.IntegrableOn.continuousOnMul
+theorem IntegrableOn.continuousOn_mul [T2Space X] (hg : ContinuousOn g K)
+ (hg' : IntegrableOn g' K μ) (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
+ hg'.continuousOn_mul_of_subset hg hK hK.MeasurableSet Subset.rfl
+#align measure_theory.integrable_on.continuous_on_mul MeasureTheory.IntegrableOn.continuousOn_mul
end Mul
@@ -442,7 +443,7 @@ section Smul
variable {𝕜 : Type _} [NormedField 𝕜] [NormedSpace 𝕜 E]
-theorem IntegrableOn.continuousOnSmul [T2Space X] [SecondCountableTopologyEither X 𝕜] {g : X → E}
+theorem IntegrableOn.continuousOn_smul [T2Space X] [SecondCountableTopologyEither X 𝕜] {g : X → E}
(hg : IntegrableOn g K μ) {f : X → 𝕜} (hf : ContinuousOn f K) (hK : IsCompact K) :
IntegrableOn (fun x => f x • g x) K μ :=
by
@@ -451,9 +452,9 @@ theorem IntegrableOn.continuousOnSmul [T2Space X] [SecondCountableTopologyEither
refine' integrable_on.continuous_on_mul _ hg.norm hK
exact continuous_norm.comp_continuous_on hf
· exact (hf.ae_strongly_measurable hK.measurable_set).smul hg.1
-#align measure_theory.integrable_on.continuous_on_smul MeasureTheory.IntegrableOn.continuousOnSmul
+#align measure_theory.integrable_on.continuous_on_smul MeasureTheory.IntegrableOn.continuousOn_smul
-theorem IntegrableOn.smulContinuousOn [T2Space X] [SecondCountableTopologyEither X E] {f : X → 𝕜}
+theorem IntegrableOn.smul_continuousOn [T2Space X] [SecondCountableTopologyEither X E] {f : X → 𝕜}
(hf : IntegrableOn f K μ) {g : X → E} (hg : ContinuousOn g K) (hK : IsCompact K) :
IntegrableOn (fun x => f x • g x) K μ :=
by
@@ -462,45 +463,45 @@ theorem IntegrableOn.smulContinuousOn [T2Space X] [SecondCountableTopologyEither
refine' integrable_on.mul_continuous_on hf.norm _ hK
exact continuous_norm.comp_continuous_on hg
· exact hf.1.smul (hg.ae_strongly_measurable hK.measurable_set)
-#align measure_theory.integrable_on.smul_continuous_on MeasureTheory.IntegrableOn.smulContinuousOn
+#align measure_theory.integrable_on.smul_continuous_on MeasureTheory.IntegrableOn.smul_continuousOn
end Smul
namespace LocallyIntegrableOn
-theorem continuousOnMul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
+theorem continuousOn_mul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => g x * f x) s μ :=
by
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
- exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOnMul (hg.mono hk_sub) hk_c
-#align measure_theory.locally_integrable_on.continuous_on_mul MeasureTheory.LocallyIntegrableOn.continuousOnMul
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_mul (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.continuous_on_mul MeasureTheory.LocallyIntegrableOn.continuousOn_mul
-theorem mulContinuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
+theorem mul_continuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => f x * g x) s μ :=
by
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
- exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mulContinuousOn (hg.mono hk_sub) hk_c
-#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mulContinuousOn
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mul_continuousOn (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mul_continuousOn
-theorem continuousOnSmul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
+theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
[SecondCountableTopologyEither X 𝕜] [NormedSpace 𝕜 E] {f : X → E} {g : X → 𝕜} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => g x • f x) s μ :=
by
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
- exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOnSmul (hg.mono hk_sub) hk_c
-#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOnSmul
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_smul (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOn_smul
-theorem smulContinuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
+theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
[SecondCountableTopologyEither X E] [NormedSpace 𝕜 E] {f : X → 𝕜} {g : X → E} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => f x • g x) s μ :=
by
rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
- exact fun k hk_sub hk_c => (hf k hk_sub hk_c).smulContinuousOn (hg.mono hk_sub) hk_c
-#align measure_theory.locally_integrable_on.smul_continuous_on MeasureTheory.LocallyIntegrableOn.smulContinuousOn
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).smul_continuousOn (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.smul_continuous_on MeasureTheory.LocallyIntegrableOn.smul_continuousOn
end LocallyIntegrableOn
mathlib commit https://github.com/leanprover-community/mathlib/commit/1a4df69ca1a9a0e5e26bfe12e2b92814216016d0
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
! This file was ported from Lean 3 source module measure_theory.function.locally_integrable
-! leanprover-community/mathlib commit a75898643b2d774cced9ae7c0b28c21663b99666
+! leanprover-community/mathlib commit 08a4542bec7242a5c60f179e4e49de8c0d677b1b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,15 +14,17 @@ import Mathbin.MeasureTheory.Integral.IntegrableOn
# Locally integrable functions
A function is called *locally integrable* (`measure_theory.locally_integrable`) if it is integrable
-on a neighborhood of every point.
+on a neighborhood of every point. More generally, it is *locally integrable on `s`* if it is
+locally integrable on a neighbourhood within `s` of any point of `s`.
-This file contains properties of locally integrable functions and integrability results
+This file contains properties of locally integrable functions, and integrability results
on compact sets.
## Main statements
* `continuous.locally_integrable`: A continuous function is locally integrable.
-
+* `continuous_on.locally_integrable_on`: A function which is continuous on `s` is locally
+ integrable on `s`.
-/
@@ -34,11 +36,93 @@ variable {X Y E R : Type _} [MeasurableSpace X] [TopologicalSpace X]
variable [MeasurableSpace Y] [TopologicalSpace Y]
-variable [NormedAddCommGroup E] {f : X → E} {μ : Measure X}
+variable [NormedAddCommGroup E] {f : X → E} {μ : Measure X} {s : Set X}
namespace MeasureTheory
-/-- A function `f : X → E` is locally integrable if it is integrable on a neighborhood of every
+section LocallyIntegrableOn
+
+/-- A function `f : X → E` is *locally integrable on s*, for `s ⊆ X`, if for every `x ∈ s` there is
+a neighbourhood of `x` within `s` on which `f` is integrable. (Note this is, in general, strictly
+weaker than local integrability with respect to `μ.restrict s`.) -/
+def LocallyIntegrableOn (f : X → E) (s : Set X)
+ (μ : Measure X := by exact MeasureTheory.MeasureSpace.volume) : Prop :=
+ ∀ x : X, x ∈ s → IntegrableAtFilter f (𝓝[s] x) μ
+#align measure_theory.locally_integrable_on MeasureTheory.LocallyIntegrableOn
+
+theorem LocallyIntegrableOn.mono (hf : MeasureTheory.LocallyIntegrableOn f s μ) {t : Set X}
+ (hst : t ⊆ s) : LocallyIntegrableOn f t μ := fun x hx =>
+ (hf x <| hst hx).filter_mono (nhdsWithin_mono x hst)
+#align measure_theory.locally_integrable_on.mono MeasureTheory.LocallyIntegrableOn.mono
+
+theorem LocallyIntegrableOn.norm (hf : LocallyIntegrableOn f s μ) :
+ LocallyIntegrableOn (fun x => ‖f x‖) s μ := fun t ht =>
+ let ⟨U, hU_nhd, hU_int⟩ := hf t ht
+ ⟨U, hU_nhd, hU_int.norm⟩
+#align measure_theory.locally_integrable_on.norm MeasureTheory.LocallyIntegrableOn.norm
+
+theorem IntegrableOn.locallyIntegrableOn (hf : IntegrableOn f s μ) : LocallyIntegrableOn f s μ :=
+ fun x hx => ⟨s, self_mem_nhdsWithin, hf⟩
+#align measure_theory.integrable_on.locally_integrable_on MeasureTheory.IntegrableOn.locallyIntegrableOn
+
+/-- If a function is locally integrable on a compact set, then it is integrable on that set. -/
+theorem LocallyIntegrableOn.integrableOnIsCompact (hf : LocallyIntegrableOn f s μ)
+ (hs : IsCompact s) : IntegrableOn f s μ :=
+ IsCompact.induction_on hs integrableOnEmpty (fun u v huv hv => hv.monoSet huv)
+ (fun u v hu hv => integrableOn_union.mpr ⟨hu, hv⟩) hf
+#align measure_theory.locally_integrable_on.integrable_on_is_compact MeasureTheory.LocallyIntegrableOn.integrableOnIsCompact
+
+theorem LocallyIntegrableOn.integrableOnCompactSubset (hf : LocallyIntegrableOn f s μ) {t : Set X}
+ (hst : t ⊆ s) (ht : IsCompact t) : IntegrableOn f t μ :=
+ (hf.mono hst).integrableOnIsCompact ht
+#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOnCompactSubset
+
+theorem LocallyIntegrableOn.aeStronglyMeasurable [SecondCountableTopology X]
+ (hf : LocallyIntegrableOn f s μ) : AeStronglyMeasurable f (μ.restrict s) :=
+ by
+ have : ∀ x : s, ∃ u, IsOpen u ∧ x.1 ∈ u ∧ integrable_on f (u ∩ s) μ :=
+ by
+ rintro ⟨x, hx⟩
+ rcases hf x hx with ⟨t, ht, h't⟩
+ rcases mem_nhdsWithin.1 ht with ⟨u, u_open, x_mem, u_sub⟩
+ refine' ⟨u, u_open, x_mem, h't.mono_set u_sub⟩
+ choose u u_open xu hu using this
+ obtain ⟨T, T_count, hT⟩ : ∃ T : Set s, T.Countable ∧ s = ⋃ i : T, u i ∩ s :=
+ by
+ have : s ⊆ ⋃ x : s, u x := fun y hy => mem_Union_of_mem ⟨y, hy⟩ (xu ⟨y, hy⟩)
+ obtain ⟨T, hT_count, hT_un⟩ := is_open_Union_countable u u_open
+ refine' ⟨T, hT_count, _⟩
+ rw [← hT_un, bUnion_eq_Union] at this
+ rw [← Union_inter, eq_comm, inter_eq_right_iff_subset]
+ exact this
+ have : Countable T := countable_coe_iff.mpr T_count
+ rw [hT, aeStronglyMeasurable_unionᵢ_iff]
+ exact fun i : T => (hu i).AeStronglyMeasurable
+#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aeStronglyMeasurable
+
+/-- If `s` is either open, or closed, then `f` is locally integrable on `s` iff it is integrable on
+every compact subset contained in `s`. -/
+theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClosed s ∨ IsOpen s) :
+ LocallyIntegrableOn f s μ ↔ ∀ (k : Set X) (hk : k ⊆ s), IsCompact k → IntegrableOn f k μ :=
+ by
+ -- The correct condition is that `s` be *locally closed*, i.e. for every `x ∈ s` there is some
+ -- `U ∈ 𝓝 x` such that `U ∩ s` is closed. But mathlib doesn't have locally closed sets yet.
+ refine' ⟨fun hf k hk => hf.integrableOnCompactSubset hk, fun hf x hx => _⟩
+ cases hs
+ ·
+ exact
+ let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
+ ⟨_, inter_mem_nhdsWithin s h2K,
+ hf _ (inter_subset_left _ _)
+ (isCompact_of_isClosed_subset hK (hs.inter hK.IsClosed) (inter_subset_right _ _))⟩
+ · obtain ⟨K, hK, h2K, h3K⟩ := exists_compact_subset hs hx
+ refine' ⟨K, _, hf K h3K hK⟩
+ simpa only [IsOpen.nhdsWithin_eq hs hx, interior_eq_nhds'] using h2K
+#align measure_theory.locally_integrable_on_iff MeasureTheory.locallyIntegrableOn_iff
+
+end LocallyIntegrableOn
+
+/-- A function `f : X → E` is *locally integrable* if it is integrable on a neighborhood of every
point. In particular, it is integrable on all compact sets,
see `locally_integrable.integrable_on_is_compact`. -/
def LocallyIntegrable (f : X → E) (μ : Measure X := by exact MeasureTheory.MeasureSpace.volume) :
@@ -46,10 +130,57 @@ def LocallyIntegrable (f : X → E) (μ : Measure X := by exact MeasureTheory.Me
∀ x : X, IntegrableAtFilter f (𝓝 x) μ
#align measure_theory.locally_integrable MeasureTheory.LocallyIntegrable
+theorem locallyIntegrableOn_univ : LocallyIntegrableOn f univ μ ↔ LocallyIntegrable f μ := by
+ simpa only [locally_integrable_on, nhdsWithin_univ, mem_univ, true_imp_iff]
+#align measure_theory.locally_integrable_on_univ MeasureTheory.locallyIntegrableOn_univ
+
+theorem LocallyIntegrable.locallyIntegrableOn (hf : LocallyIntegrable f μ) (s : Set X) :
+ LocallyIntegrableOn f s μ := fun x hx => (hf x).filter_mono nhdsWithin_le_nhds
+#align measure_theory.locally_integrable.locally_integrable_on MeasureTheory.LocallyIntegrable.locallyIntegrableOn
+
theorem Integrable.locallyIntegrable (hf : Integrable f μ) : LocallyIntegrable f μ := fun x =>
hf.IntegrableAtFilter _
#align measure_theory.integrable.locally_integrable MeasureTheory.Integrable.locallyIntegrable
+/-- If `f` is locally integrable with respect to `μ.restrict s`, it is locally integrable on `s`.
+(See `locally_integrable_on_iff_locally_integrable_restrict` for an iff statement when `s` is
+closed.) -/
+theorem locallyIntegrableOnOfLocallyIntegrableRestrict [OpensMeasurableSpace X]
+ (hf : LocallyIntegrable f (μ.restrict s)) : LocallyIntegrableOn f s μ :=
+ by
+ intro x hx
+ obtain ⟨t, ht_mem, ht_int⟩ := hf x
+ obtain ⟨u, hu_sub, hu_o, hu_mem⟩ := mem_nhds_iff.mp ht_mem
+ refine' ⟨_, inter_mem_nhdsWithin s (hu_o.mem_nhds hu_mem), _⟩
+ simpa only [integrable_on, measure.restrict_restrict hu_o.measurable_set, inter_comm] using
+ ht_int.mono_set hu_sub
+#align measure_theory.locally_integrable_on_of_locally_integrable_restrict MeasureTheory.locallyIntegrableOnOfLocallyIntegrableRestrict
+
+/-- If `s` is closed, being locally integrable on `s` wrt `μ` is equivalent to being locally
+integrable with respect to `μ.restrict s`. For the one-way implication without assuming `s` closed,
+see `locally_integrable_on_of_locally_integrable_restrict`. -/
+theorem locallyIntegrableOn_iff_locallyIntegrable_restrict [OpensMeasurableSpace X]
+ (hs : IsClosed s) : LocallyIntegrableOn f s μ ↔ LocallyIntegrable f (μ.restrict s) :=
+ by
+ refine' ⟨fun hf x => _, locally_integrable_on_of_locally_integrable_restrict⟩
+ by_cases h : x ∈ s
+ · obtain ⟨t, ht_nhds, ht_int⟩ := hf x h
+ obtain ⟨u, hu_o, hu_x, hu_sub⟩ := mem_nhds_within.mp ht_nhds
+ refine' ⟨u, hu_o.mem_nhds hu_x, _⟩
+ rw [integrable_on, restrict_restrict hu_o.measurable_set]
+ exact ht_int.mono_set hu_sub
+ · rw [← isOpen_compl_iff] at hs
+ refine' ⟨sᶜ, hs.mem_nhds h, _⟩
+ rw [integrable_on, restrict_restrict, inter_comm, inter_compl_self, ← integrable_on]
+ exacts[integrable_on_empty, hs.measurable_set]
+#align measure_theory.locally_integrable_on_iff_locally_integrable_restrict MeasureTheory.locallyIntegrableOn_iff_locallyIntegrable_restrict
+
+/-- If a function is locally integrable, then it is integrable on any compact set. -/
+theorem LocallyIntegrable.integrableOnIsCompact {k : Set X} (hf : LocallyIntegrable f μ)
+ (hk : IsCompact k) : IntegrableOn f k μ :=
+ (hf.LocallyIntegrableOn k).integrableOnIsCompact hk
+#align measure_theory.locally_integrable.integrable_on_is_compact MeasureTheory.LocallyIntegrable.integrableOnIsCompact
+
/-- If a function is locally integrable, then it is integrable on an open neighborhood of any
compact set. -/
theorem LocallyIntegrable.integrableOn_nhds_isCompact (hf : LocallyIntegrable f μ) {k : Set X}
@@ -67,41 +198,16 @@ theorem LocallyIntegrable.integrableOn_nhds_isCompact (hf : LocallyIntegrable f
exact ⟨v, nhdsWithin_le_nhds (v_open.mem_nhds xv), v, v_open, subset.rfl, hu.mono_set vu⟩
#align measure_theory.locally_integrable.integrable_on_nhds_is_compact MeasureTheory.LocallyIntegrable.integrableOn_nhds_isCompact
-/-- If a function is locally integrable, then it is integrable on any compact set. -/
-theorem LocallyIntegrable.integrableOnIsCompact {k : Set X} (hf : LocallyIntegrable f μ)
- (hk : IsCompact k) : IntegrableOn f k μ :=
- by
- rcases hf.integrable_on_nhds_is_compact hk with ⟨u, u_open, ku, hu⟩
- exact hu.mono_set ku
-#align measure_theory.locally_integrable.integrable_on_is_compact MeasureTheory.LocallyIntegrable.integrableOnIsCompact
-
theorem locallyIntegrable_iff [LocallyCompactSpace X] :
LocallyIntegrable f μ ↔ ∀ k : Set X, IsCompact k → IntegrableOn f k μ :=
- by
- refine' ⟨fun hf k hk => hf.integrableOnIsCompact hk, fun hf x => _⟩
- obtain ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
- exact ⟨K, h2K, hf K hK⟩
+ ⟨fun hf k hk => hf.integrableOnIsCompact hk, fun hf x =>
+ let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
+ ⟨K, h2K, hf K hK⟩⟩
#align measure_theory.locally_integrable_iff MeasureTheory.locallyIntegrable_iff
theorem LocallyIntegrable.aeStronglyMeasurable [SecondCountableTopology X]
- (hf : LocallyIntegrable f μ) : AeStronglyMeasurable f μ :=
- by
- have : ∀ x, ∃ u, IsOpen u ∧ x ∈ u ∧ integrable_on f u μ :=
- by
- intro x
- rcases hf x with ⟨s, hs, h's⟩
- rcases mem_nhds_iff.1 hs with ⟨u, us, u_open, xu⟩
- exact ⟨u, u_open, xu, h's.mono_set us⟩
- choose u u_open xu hu using this
- obtain ⟨T, T_count, hT⟩ : ∃ T : Set X, T.Countable ∧ (⋃ i : T, u i) = univ :=
- by
- have : (⋃ x, u x) = univ := eq_univ_of_forall fun x => mem_Union_of_mem x (xu x)
- rw [← this]
- simp only [Union_coe_set, Subtype.coe_mk]
- exact is_open_Union_countable u u_open
- have : Countable T := countable_coe_iff.mpr T_count
- rw [← @restrict_univ _ _ μ, ← hT, aeStronglyMeasurable_unionᵢ_iff]
- exact fun i => (hu i).AeStronglyMeasurable
+ (hf : LocallyIntegrable f μ) : AeStronglyMeasurable f μ := by
+ simpa only [restrict_univ] using (locally_integrable_on_univ.mpr hf).AeStronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aeStronglyMeasurable
theorem locallyIntegrableConst [IsLocallyFiniteMeasure μ] (c : E) :
@@ -112,6 +218,11 @@ theorem locallyIntegrableConst [IsLocallyFiniteMeasure μ] (c : E) :
simp only [h'U, integrable_on_const, or_true_iff]
#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrableConst
+theorem locallyIntegrableOnConst [IsLocallyFiniteMeasure μ] (c : E) :
+ LocallyIntegrableOn (fun x => c) s μ :=
+ (locallyIntegrableConst c).LocallyIntegrableOn s
+#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOnConst
+
theorem LocallyIntegrable.indicator (hf : LocallyIntegrable f μ) {s : Set X}
(hs : MeasurableSet s) : LocallyIntegrable (s.indicator f) μ :=
by
@@ -136,68 +247,10 @@ theorem locallyIntegrable_map_homeomorph [BorelSpace X] [BorelSpace Y] (e : X
simp only [mem_preimage, Homeomorph.symm_apply_apply]
#align measure_theory.locally_integrable_map_homeomorph MeasureTheory.locallyIntegrable_map_homeomorph
-section Mul
-
-variable [OpensMeasurableSpace X] [NormedRing R] [SecondCountableTopologyEither X R] {A K : Set X}
- {g g' : X → R}
-
-theorem IntegrableOn.mulContinuousOnOfSubset (hg : IntegrableOn g A μ) (hg' : ContinuousOn g' K)
- (hA : MeasurableSet A) (hK : IsCompact K) (hAK : A ⊆ K) :
- IntegrableOn (fun x => g x * g' x) A μ :=
- by
- rcases IsCompact.exists_bound_of_continuousOn hK hg' with ⟨C, hC⟩
- rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg⊢
- have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ :=
- by
- filter_upwards [ae_restrict_mem hA]with x hx
- refine' (norm_mul_le _ _).trans _
- rw [mul_comm]
- apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
- exact
- mem_ℒp.of_le_mul hg (hg.ae_strongly_measurable.mul <| (hg'.mono hAK).AeStronglyMeasurable hA)
- this
-#align measure_theory.integrable_on.mul_continuous_on_of_subset MeasureTheory.IntegrableOn.mulContinuousOnOfSubset
-
-theorem IntegrableOn.mulContinuousOn [T2Space X] (hg : IntegrableOn g K μ) (hg' : ContinuousOn g' K)
- (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
- hg.mulContinuousOnOfSubset hg' hK.MeasurableSet hK (Subset.refl _)
-#align measure_theory.integrable_on.mul_continuous_on MeasureTheory.IntegrableOn.mulContinuousOn
-
-theorem IntegrableOn.continuousOnMulOfSubset (hg : ContinuousOn g K) (hg' : IntegrableOn g' A μ)
- (hK : IsCompact K) (hA : MeasurableSet A) (hAK : A ⊆ K) :
- IntegrableOn (fun x => g x * g' x) A μ :=
- by
- rcases IsCompact.exists_bound_of_continuousOn hK hg with ⟨C, hC⟩
- rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg'⊢
- have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g' x‖ :=
- by
- filter_upwards [ae_restrict_mem hA]with x hx
- refine' (norm_mul_le _ _).trans _
- apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
- exact
- mem_ℒp.of_le_mul hg' (((hg.mono hAK).AeStronglyMeasurable hA).mul hg'.ae_strongly_measurable)
- this
-#align measure_theory.integrable_on.continuous_on_mul_of_subset MeasureTheory.IntegrableOn.continuousOnMulOfSubset
-
-theorem IntegrableOn.continuousOnMul [T2Space X] (hg : ContinuousOn g K) (hg' : IntegrableOn g' K μ)
- (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
- hg'.continuousOnMulOfSubset hg hK hK.MeasurableSet Subset.rfl
-#align measure_theory.integrable_on.continuous_on_mul MeasureTheory.IntegrableOn.continuousOnMul
-
-end Mul
-
end MeasureTheory
open MeasureTheory
-/-- If a function is integrable at `𝓝[s] x` for each point `x` of a compact set `s`, then it is
-integrable on `s`. -/
-theorem IsCompact.integrableOnOfNhdsWithin {K : Set X} (hK : IsCompact K)
- (hf : ∀ x ∈ K, IntegrableAtFilter f (𝓝[K] x) μ) : IntegrableOn f K μ :=
- IsCompact.induction_on hK integrableOnEmpty (fun s t hst ht => ht.monoSet hst)
- (fun s t hs ht => hs.union ht) hf
-#align is_compact.integrable_on_of_nhds_within IsCompact.integrableOnOfNhdsWithin
-
section borel
variable [OpensMeasurableSpace X] [IsLocallyFiniteMeasure μ]
@@ -210,6 +263,13 @@ theorem Continuous.locallyIntegrable [SecondCountableTopologyEither X E] (hf : C
hf.integrableAtNhds
#align continuous.locally_integrable Continuous.locallyIntegrable
+/-- A function `f` continuous on a set `K` is locally integrable on this set with respect
+to any locally finite measure. -/
+theorem ContinuousOn.locallyIntegrableOn [SecondCountableTopologyEither X E] (hf : ContinuousOn f K)
+ (hK : MeasurableSet K) : LocallyIntegrableOn f K μ := fun x hx =>
+ hf.integrableAtNhdsWithin hK hx
+#align continuous_on.locally_integrable_on ContinuousOn.locallyIntegrableOn
+
variable [MetrizableSpace X]
/-- A function `f` continuous on a compact set `K` is integrable on this set with respect to any
@@ -217,7 +277,7 @@ locally finite measure. -/
theorem ContinuousOn.integrableOnCompact (hK : IsCompact K) (hf : ContinuousOn f K) :
IntegrableOn f K μ := by
letI := metrizable_space_metric X
- apply hK.integrable_on_of_nhds_within fun x hx => _
+ refine' locally_integrable_on.integrable_on_is_compact (fun x hx => _) hK
exact hf.integrable_at_nhds_within_of_is_separable hK.measurable_set hK.is_separable hx
#align continuous_on.integrable_on_compact ContinuousOn.integrableOnCompact
@@ -265,7 +325,7 @@ open ENNReal
section Monotone
variable [BorelSpace X] [ConditionallyCompleteLinearOrder X] [ConditionallyCompleteLinearOrder E]
- [OrderTopology X] [OrderTopology E] [SecondCountableTopology E] {s : Set X}
+ [OrderTopology X] [OrderTopology E] [SecondCountableTopology E]
theorem MonotoneOn.integrableOnOfMeasureNeTop (hmono : MonotoneOn f s) {a b : X} (ha : IsLeast s a)
(hb : IsGreatest s b) (hs : μ s ≠ ∞) (h's : MeasurableSet s) : IntegrableOn f s μ :=
@@ -325,3 +385,124 @@ theorem Antitone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hanti : Antitone
end Monotone
+namespace MeasureTheory
+
+variable [OpensMeasurableSpace X] {A K : Set X}
+
+section Mul
+
+variable [NormedRing R] [SecondCountableTopologyEither X R] {g g' : X → R}
+
+theorem IntegrableOn.mulContinuousOnOfSubset (hg : IntegrableOn g A μ) (hg' : ContinuousOn g' K)
+ (hA : MeasurableSet A) (hK : IsCompact K) (hAK : A ⊆ K) :
+ IntegrableOn (fun x => g x * g' x) A μ :=
+ by
+ rcases IsCompact.exists_bound_of_continuousOn hK hg' with ⟨C, hC⟩
+ rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg⊢
+ have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ :=
+ by
+ filter_upwards [ae_restrict_mem hA]with x hx
+ refine' (norm_mul_le _ _).trans _
+ rw [mul_comm]
+ apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
+ exact
+ mem_ℒp.of_le_mul hg (hg.ae_strongly_measurable.mul <| (hg'.mono hAK).AeStronglyMeasurable hA)
+ this
+#align measure_theory.integrable_on.mul_continuous_on_of_subset MeasureTheory.IntegrableOn.mulContinuousOnOfSubset
+
+theorem IntegrableOn.mulContinuousOn [T2Space X] (hg : IntegrableOn g K μ) (hg' : ContinuousOn g' K)
+ (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
+ hg.mulContinuousOnOfSubset hg' hK.MeasurableSet hK (Subset.refl _)
+#align measure_theory.integrable_on.mul_continuous_on MeasureTheory.IntegrableOn.mulContinuousOn
+
+theorem IntegrableOn.continuousOnMulOfSubset (hg : ContinuousOn g K) (hg' : IntegrableOn g' A μ)
+ (hK : IsCompact K) (hA : MeasurableSet A) (hAK : A ⊆ K) :
+ IntegrableOn (fun x => g x * g' x) A μ :=
+ by
+ rcases IsCompact.exists_bound_of_continuousOn hK hg with ⟨C, hC⟩
+ rw [integrable_on, ← mem_ℒp_one_iff_integrable] at hg'⊢
+ have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g' x‖ :=
+ by
+ filter_upwards [ae_restrict_mem hA]with x hx
+ refine' (norm_mul_le _ _).trans _
+ apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
+ exact
+ mem_ℒp.of_le_mul hg' (((hg.mono hAK).AeStronglyMeasurable hA).mul hg'.ae_strongly_measurable)
+ this
+#align measure_theory.integrable_on.continuous_on_mul_of_subset MeasureTheory.IntegrableOn.continuousOnMulOfSubset
+
+theorem IntegrableOn.continuousOnMul [T2Space X] (hg : ContinuousOn g K) (hg' : IntegrableOn g' K μ)
+ (hK : IsCompact K) : IntegrableOn (fun x => g x * g' x) K μ :=
+ hg'.continuousOnMulOfSubset hg hK hK.MeasurableSet Subset.rfl
+#align measure_theory.integrable_on.continuous_on_mul MeasureTheory.IntegrableOn.continuousOnMul
+
+end Mul
+
+section Smul
+
+variable {𝕜 : Type _} [NormedField 𝕜] [NormedSpace 𝕜 E]
+
+theorem IntegrableOn.continuousOnSmul [T2Space X] [SecondCountableTopologyEither X 𝕜] {g : X → E}
+ (hg : IntegrableOn g K μ) {f : X → 𝕜} (hf : ContinuousOn f K) (hK : IsCompact K) :
+ IntegrableOn (fun x => f x • g x) K μ :=
+ by
+ rw [integrable_on, ← integrable_norm_iff]
+ · simp_rw [norm_smul]
+ refine' integrable_on.continuous_on_mul _ hg.norm hK
+ exact continuous_norm.comp_continuous_on hf
+ · exact (hf.ae_strongly_measurable hK.measurable_set).smul hg.1
+#align measure_theory.integrable_on.continuous_on_smul MeasureTheory.IntegrableOn.continuousOnSmul
+
+theorem IntegrableOn.smulContinuousOn [T2Space X] [SecondCountableTopologyEither X E] {f : X → 𝕜}
+ (hf : IntegrableOn f K μ) {g : X → E} (hg : ContinuousOn g K) (hK : IsCompact K) :
+ IntegrableOn (fun x => f x • g x) K μ :=
+ by
+ rw [integrable_on, ← integrable_norm_iff]
+ · simp_rw [norm_smul]
+ refine' integrable_on.mul_continuous_on hf.norm _ hK
+ exact continuous_norm.comp_continuous_on hg
+ · exact hf.1.smul (hg.ae_strongly_measurable hK.measurable_set)
+#align measure_theory.integrable_on.smul_continuous_on MeasureTheory.IntegrableOn.smulContinuousOn
+
+end Smul
+
+namespace LocallyIntegrableOn
+
+theorem continuousOnMul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
+ [SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
+ (hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => g x * f x) s μ :=
+ by
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOnMul (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.continuous_on_mul MeasureTheory.LocallyIntegrableOn.continuousOnMul
+
+theorem mulContinuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
+ [SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
+ (hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => f x * g x) s μ :=
+ by
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mulContinuousOn (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mulContinuousOn
+
+theorem continuousOnSmul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
+ [SecondCountableTopologyEither X 𝕜] [NormedSpace 𝕜 E] {f : X → E} {g : X → 𝕜} {s : Set X}
+ (hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
+ LocallyIntegrableOn (fun x => g x • f x) s μ :=
+ by
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOnSmul (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOnSmul
+
+theorem smulContinuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
+ [SecondCountableTopologyEither X E] [NormedSpace 𝕜 E] {f : X → 𝕜} {g : X → E} {s : Set X}
+ (hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
+ LocallyIntegrableOn (fun x => f x • g x) s μ :=
+ by
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ exact fun k hk_sub hk_c => (hf k hk_sub hk_c).smulContinuousOn (hg.mono hk_sub) hk_c
+#align measure_theory.locally_integrable_on.smul_continuous_on MeasureTheory.LocallyIntegrableOn.smulContinuousOn
+
+end LocallyIntegrableOn
+
+end MeasureTheory
+
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -260,7 +260,7 @@ theorem Continuous.integrableOfHasCompactSupport (hf : Continuous f) (hcf : HasC
end borel
-open Ennreal
+open ENNReal
section Monotone
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Shortcuts for linearly ordered domains and/or continuous functions. As an example, I golf the existing integrable_of_isBigO_exp_neg
.
Another example usage: https://github.com/AlexKontorovich/PrimeNumberTheoremAnd/blob/1909a40253607bd2df18a738fc504fe81b132974/PrimeNumberTheoremAnd/PerronFormula.lean#L414-L436
Co-authored-by: L Lllvvuu <git@llllvvuu.dev>
@@ -389,6 +389,58 @@ theorem integrable_iff_integrableAtFilter_cocompact :
rewrite [← integrableOn_univ, ← compl_union_self s, integrableOn_union]
exact ⟨(hloc.integrableOn_isCompact htc).mono ht le_rfl, hs⟩
+theorem integrable_iff_integrableAtFilter_atBot_atTop [LinearOrder X] [CompactIccSpace X] :
+ Integrable f μ ↔
+ (IntegrableAtFilter f atBot μ ∧ IntegrableAtFilter f atTop μ) ∧ LocallyIntegrable f μ := by
+ constructor
+ · exact fun hf ↦ ⟨⟨hf.integrableAtFilter _, hf.integrableAtFilter _⟩, hf.locallyIntegrable⟩
+ · refine fun h ↦ integrable_iff_integrableAtFilter_cocompact.mpr ⟨?_, h.2⟩
+ exact (IntegrableAtFilter.sup_iff.mpr h.1).filter_mono cocompact_le_atBot_atTop
+
+theorem integrable_iff_integrableAtFilter_atBot [LinearOrder X] [OrderTop X] [CompactIccSpace X] :
+ Integrable f μ ↔ IntegrableAtFilter f atBot μ ∧ LocallyIntegrable f μ := by
+ constructor
+ · exact fun hf ↦ ⟨hf.integrableAtFilter _, hf.locallyIntegrable⟩
+ · refine fun h ↦ integrable_iff_integrableAtFilter_cocompact.mpr ⟨?_, h.2⟩
+ exact h.1.filter_mono cocompact_le_atBot
+
+theorem integrable_iff_integrableAtFilter_atTop [LinearOrder X] [OrderBot X] [CompactIccSpace X] :
+ Integrable f μ ↔ IntegrableAtFilter f atTop μ ∧ LocallyIntegrable f μ :=
+ integrable_iff_integrableAtFilter_atBot (X := Xᵒᵈ)
+
+variable {a : X}
+
+theorem integrableOn_Iic_iff_integrableAtFilter_atBot [LinearOrder X] [CompactIccSpace X] :
+ IntegrableOn f (Iic a) μ ↔ IntegrableAtFilter f atBot μ ∧ LocallyIntegrableOn f (Iic a) μ := by
+ refine ⟨fun h ↦ ⟨⟨Iic a, Iic_mem_atBot a, h⟩, h.locallyIntegrableOn⟩, fun ⟨⟨s, hsl, hs⟩, h⟩ ↦ ?_⟩
+ haveI : Nonempty X := Nonempty.intro a
+ obtain ⟨a', ha'⟩ := mem_atBot_sets.mp hsl
+ refine (integrableOn_union.mpr ⟨hs.mono ha' le_rfl, ?_⟩).mono Iic_subset_Iic_union_Icc le_rfl
+ exact h.integrableOn_compact_subset Icc_subset_Iic_self isCompact_Icc
+
+theorem integrableOn_Ici_iff_integrableAtFilter_atTop [LinearOrder X] [CompactIccSpace X] :
+ IntegrableOn f (Ici a) μ ↔ IntegrableAtFilter f atTop μ ∧ LocallyIntegrableOn f (Ici a) μ :=
+ integrableOn_Iic_iff_integrableAtFilter_atBot (X := Xᵒᵈ)
+
+theorem integrableOn_Iio_iff_integrableAtFilter_atBot_nhdsWithin
+ [LinearOrder X] [CompactIccSpace X] [NoMinOrder X] [OrderTopology X] :
+ IntegrableOn f (Iio a) μ ↔ IntegrableAtFilter f atBot μ ∧
+ IntegrableAtFilter f (𝓝[<] a) μ ∧ LocallyIntegrableOn f (Iio a) μ := by
+ constructor
+ · intro h
+ exact ⟨⟨Iio a, Iio_mem_atBot a, h⟩, ⟨Iio a, self_mem_nhdsWithin, h⟩, h.locallyIntegrableOn⟩
+ · intro ⟨hbot, ⟨s, hsl, hs⟩, hlocal⟩
+ obtain ⟨s', ⟨hs'_mono, hs'⟩⟩ := mem_nhdsWithin_Iio_iff_exists_Ioo_subset.mp hsl
+ refine (integrableOn_union.mpr ⟨?_, hs.mono hs' le_rfl⟩).mono Iio_subset_Iic_union_Ioo le_rfl
+ exact integrableOn_Iic_iff_integrableAtFilter_atBot.mpr
+ ⟨hbot, hlocal.mono_set (Iic_subset_Iio.mpr hs'_mono)⟩
+
+theorem integrableOn_Ioi_iff_integrableAtFilter_atTop_nhdsWithin
+ [LinearOrder X] [CompactIccSpace X] [NoMaxOrder X] [OrderTopology X] :
+ IntegrableOn f (Ioi a) μ ↔ IntegrableAtFilter f atTop μ ∧
+ IntegrableAtFilter f (𝓝[>] a) μ ∧ LocallyIntegrableOn f (Ioi a) μ :=
+ integrableOn_Iio_iff_integrableAtFilter_atBot_nhdsWithin (X := Xᵒᵈ)
+
end MeasureTheory
open MeasureTheory
filter_upwards
(#11208)
This is presumably not exhaustive, but covers about a hundred instances.
Style opinions (e.g., why a particular change is great/not a good idea) are very welcome; I'm still forming my own.
@@ -489,7 +489,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
rcases isBounded_iff_forall_norm_le.mp this with ⟨C, hC⟩
have A : IntegrableOn (fun _ => C) s μ := by
simp only [hs.lt_top, integrableOn_const, or_true_iff]
- refine'
+ exact
Integrable.mono' A (aemeasurable_restrict_of_monotoneOn h's hmono).aestronglyMeasurable
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -29,9 +29,7 @@ open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace Bornology
open scoped Topology Interval ENNReal BigOperators
variable {X Y E F R : Type*} [MeasurableSpace X] [TopologicalSpace X]
-
variable [MeasurableSpace Y] [TopologicalSpace Y]
-
variable [NormedAddCommGroup E] [NormedAddCommGroup F] {f g : X → E} {μ : Measure X} {s : Set X}
namespace MeasureTheory
@@ -398,7 +396,6 @@ open MeasureTheory
section borel
variable [OpensMeasurableSpace X]
-
variable {K : Set X} {a b : X}
/-- A continuous function `f` is locally integrable with respect to any locally finite measure. -/
@@ -521,8 +521,8 @@ theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone
LocallyIntegrable f μ := by
intro x
rcases μ.finiteAt_nhds x with ⟨U, hU, h'U⟩
- obtain ⟨a, b, xab, hab, abU⟩ : ∃ a b : X, x ∈ Icc a b ∧ Icc a b ∈ 𝓝 x ∧ Icc a b ⊆ U
- exact exists_Icc_mem_subset_of_mem_nhds hU
+ obtain ⟨a, b, xab, hab, abU⟩ : ∃ a b : X, x ∈ Icc a b ∧ Icc a b ∈ 𝓝 x ∧ Icc a b ⊆ U :=
+ exists_Icc_mem_subset_of_mem_nhds hU
have ab : a ≤ b := xab.1.trans xab.2
refine' ⟨Icc a b, hab, _⟩
exact
@@ -110,7 +110,7 @@ theorem LocallyIntegrableOn.exists_nat_integrableOn [SecondCountableTopology X]
rcases hf.exists_countable_integrableOn with ⟨T, T_count, T_open, sT, hT⟩
let T' : Set (Set X) := insert ∅ T
have T'_count : T'.Countable := Countable.insert ∅ T_count
- have T'_ne : T'.Nonempty := by simp only [insert_nonempty]
+ have T'_ne : T'.Nonempty := by simp only [T', insert_nonempty]
rcases T'_count.exists_eq_range T'_ne with ⟨u, hu⟩
refine' ⟨u, _, _, _⟩
· intro n
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -89,7 +89,7 @@ theorem LocallyIntegrableOn.exists_countable_integrableOn [SecondCountableTopolo
rintro ⟨x, hx⟩
rcases hf x hx with ⟨t, ht, h't⟩
rcases mem_nhdsWithin.1 ht with ⟨u, u_open, x_mem, u_sub⟩
- refine' ⟨u, u_open, x_mem, h't.mono_set u_sub⟩
+ exact ⟨u, u_open, x_mem, h't.mono_set u_sub⟩
choose u u_open xu hu using this
obtain ⟨T, T_count, hT⟩ : ∃ T : Set s, T.Countable ∧ s ⊆ ⋃ i ∈ T, u i := by
have : s ⊆ ⋃ x : s, u x := fun y hy => mem_iUnion_of_mem ⟨y, hy⟩ (xu ⟨y, hy⟩)
@@ -382,6 +382,15 @@ theorem LocallyIntegrable.integrable_smul_right_of_hasCompactSupport
exact hf.integrableOn_isCompact hK
· exact hg.memℒp_top_of_hasCompactSupport h'g μ
+open Filter
+
+theorem integrable_iff_integrableAtFilter_cocompact :
+ Integrable f μ ↔ (IntegrableAtFilter f (cocompact X) μ ∧ LocallyIntegrable f μ) := by
+ refine ⟨fun hf ↦ ⟨hf.integrableAtFilter _, hf.locallyIntegrable⟩, fun ⟨⟨s, hsc, hs⟩, hloc⟩ ↦ ?_⟩
+ obtain ⟨t, htc, ht⟩ := mem_cocompact'.mp hsc
+ rewrite [← integrableOn_univ, ← compl_union_self s, integrableOn_union]
+ exact ⟨(hloc.integrableOn_isCompact htc).mono ht le_rfl, hs⟩
+
end MeasureTheory
open MeasureTheory
A stronger version of #8800, the differences are:
assume either IsSigmaCompact U
or SigmaCompactSpace M
;
only need test functions satisfying tsupport g ⊆ U
rather than support g ⊆ U
;
requires LocallyIntegrableOn
U rather than LocallyIntegrable
on the whole space.
Also fills in some missing APIs around the manifold and measure theory libraries.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -28,11 +28,11 @@ open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace Bornology
open scoped Topology Interval ENNReal BigOperators
-variable {X Y E R : Type*} [MeasurableSpace X] [TopologicalSpace X]
+variable {X Y E F R : Type*} [MeasurableSpace X] [TopologicalSpace X]
variable [MeasurableSpace Y] [TopologicalSpace Y]
-variable [NormedAddCommGroup E] {f g : X → E} {μ : Measure X} {s : Set X}
+variable [NormedAddCommGroup E] [NormedAddCommGroup F] {f g : X → E} {μ : Measure X} {s : Set X}
namespace MeasureTheory
@@ -45,10 +45,10 @@ def LocallyIntegrableOn (f : X → E) (s : Set X) (μ : Measure X := by volume_t
∀ x : X, x ∈ s → IntegrableAtFilter f (𝓝[s] x) μ
#align measure_theory.locally_integrable_on MeasureTheory.LocallyIntegrableOn
-theorem LocallyIntegrableOn.mono (hf : MeasureTheory.LocallyIntegrableOn f s μ) {t : Set X}
+theorem LocallyIntegrableOn.mono_set (hf : LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) : LocallyIntegrableOn f t μ := fun x hx =>
(hf x <| hst hx).filter_mono (nhdsWithin_mono x hst)
-#align measure_theory.locally_integrable_on.mono MeasureTheory.LocallyIntegrableOn.mono
+#align measure_theory.locally_integrable_on.mono MeasureTheory.LocallyIntegrableOn.mono_set
theorem LocallyIntegrableOn.norm (hf : LocallyIntegrableOn f s μ) :
LocallyIntegrableOn (fun x => ‖f x‖) s μ := fun t ht =>
@@ -56,6 +56,13 @@ theorem LocallyIntegrableOn.norm (hf : LocallyIntegrableOn f s μ) :
⟨U, hU_nhd, hU_int.norm⟩
#align measure_theory.locally_integrable_on.norm MeasureTheory.LocallyIntegrableOn.norm
+theorem LocallyIntegrableOn.mono (hf : LocallyIntegrableOn f s μ) {g : X → F}
+ (hg : AEStronglyMeasurable g μ) (h : ∀ᵐ x ∂μ, ‖g x‖ ≤ ‖f x‖) :
+ LocallyIntegrableOn g s μ := by
+ intro x hx
+ rcases hf x hx with ⟨t, t_mem, ht⟩
+ exact ⟨t, t_mem, Integrable.mono ht hg.restrict (ae_restrict_of_ae h)⟩
+
theorem IntegrableOn.locallyIntegrableOn (hf : IntegrableOn f s μ) : LocallyIntegrableOn f s μ :=
fun _ _ => ⟨s, self_mem_nhdsWithin, hf⟩
#align measure_theory.integrable_on.locally_integrable_on MeasureTheory.IntegrableOn.locallyIntegrableOn
@@ -69,7 +76,7 @@ theorem LocallyIntegrableOn.integrableOn_isCompact (hf : LocallyIntegrableOn f s
theorem LocallyIntegrableOn.integrableOn_compact_subset (hf : LocallyIntegrableOn f s μ) {t : Set X}
(hst : t ⊆ s) (ht : IsCompact t) : IntegrableOn f t μ :=
- (hf.mono hst).integrableOn_isCompact ht
+ (hf.mono_set hst).integrableOn_isCompact ht
#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset
/-- If a function `f` is locally integrable on a set `s` in a second countable topological space,
@@ -171,6 +178,11 @@ def LocallyIntegrable (f : X → E) (μ : Measure X := by volume_tac) : Prop :=
∀ x : X, IntegrableAtFilter f (𝓝 x) μ
#align measure_theory.locally_integrable MeasureTheory.LocallyIntegrable
+theorem locallyIntegrable_comap (hs : MeasurableSet s) :
+ LocallyIntegrable (fun x : s ↦ f x) (μ.comap Subtype.val) ↔ LocallyIntegrableOn f s μ := by
+ simp_rw [LocallyIntegrableOn, Subtype.forall', ← map_nhds_subtype_val]
+ exact forall_congr' fun _ ↦ (MeasurableEmbedding.subtype_coe hs).integrableAtFilter_iff_comap.symm
+
theorem locallyIntegrableOn_univ : LocallyIntegrableOn f univ μ ↔ LocallyIntegrable f μ := by
simp only [LocallyIntegrableOn, nhdsWithin_univ, mem_univ, true_imp_iff]; rfl
#align measure_theory.locally_integrable_on_univ MeasureTheory.locallyIntegrableOn_univ
@@ -183,6 +195,12 @@ theorem Integrable.locallyIntegrable (hf : Integrable f μ) : LocallyIntegrable
hf.integrableAtFilter _
#align measure_theory.integrable.locally_integrable MeasureTheory.Integrable.locallyIntegrable
+theorem LocallyIntegrable.mono (hf : LocallyIntegrable f μ) {g : X → F}
+ (hg : AEStronglyMeasurable g μ) (h : ∀ᵐ x ∂μ, ‖g x‖ ≤ ‖f x‖) :
+ LocallyIntegrable g μ := by
+ rw [← locallyIntegrableOn_univ] at hf ⊢
+ exact hf.mono hg h
+
/-- If `f` is locally integrable with respect to `μ.restrict s`, it is locally integrable on `s`.
(See `locallyIntegrableOn_iff_locallyIntegrable_restrict` for an iff statement when `s` is
closed.) -/
@@ -370,61 +370,70 @@ open MeasureTheory
section borel
-variable [OpensMeasurableSpace X] [IsLocallyFiniteMeasure μ]
+variable [OpensMeasurableSpace X]
variable {K : Set X} {a b : X}
/-- A continuous function `f` is locally integrable with respect to any locally finite measure. -/
-theorem Continuous.locallyIntegrable [SecondCountableTopologyEither X E] (hf : Continuous f) :
- LocallyIntegrable f μ :=
+theorem Continuous.locallyIntegrable [IsLocallyFiniteMeasure μ] [SecondCountableTopologyEither X E]
+ (hf : Continuous f) : LocallyIntegrable f μ :=
hf.integrableAt_nhds
#align continuous.locally_integrable Continuous.locallyIntegrable
/-- A function `f` continuous on a set `K` is locally integrable on this set with respect
to any locally finite measure. -/
-theorem ContinuousOn.locallyIntegrableOn [SecondCountableTopologyEither X E] (hf : ContinuousOn f K)
+theorem ContinuousOn.locallyIntegrableOn [IsLocallyFiniteMeasure μ]
+ [SecondCountableTopologyEither X E] (hf : ContinuousOn f K)
(hK : MeasurableSet K) : LocallyIntegrableOn f K μ := fun _x hx =>
hf.integrableAt_nhdsWithin hK hx
#align continuous_on.locally_integrable_on ContinuousOn.locallyIntegrableOn
-variable [MetrizableSpace X]
+variable [IsFiniteMeasureOnCompacts μ]
/-- A function `f` continuous on a compact set `K` is integrable on this set with respect to any
locally finite measure. -/
-theorem ContinuousOn.integrableOn_compact (hK : IsCompact K) (hf : ContinuousOn f K) :
+theorem ContinuousOn.integrableOn_compact'
+ (hK : IsCompact K) (h'K : MeasurableSet K) (hf : ContinuousOn f K) :
IntegrableOn f K μ := by
- letI := metrizableSpaceMetric X
- refine' LocallyIntegrableOn.integrableOn_isCompact (fun x hx => _) hK
- exact hf.integrableAt_nhdsWithin_of_isSeparable hK.measurableSet hK.isSeparable hx
+ refine ⟨ContinuousOn.aestronglyMeasurable_of_isCompact hf hK h'K, ?_⟩
+ have : Fact (μ K < ∞) := ⟨hK.measure_lt_top⟩
+ obtain ⟨C, hC⟩ : ∃ C, ∀ x ∈ f '' K, ‖x‖ ≤ C :=
+ IsBounded.exists_norm_le (hK.image_of_continuousOn hf).isBounded
+ apply hasFiniteIntegral_of_bounded (C := C)
+ filter_upwards [ae_restrict_mem h'K] with x hx using hC _ (mem_image_of_mem f hx)
+
+theorem ContinuousOn.integrableOn_compact [T2Space X]
+ (hK : IsCompact K) (hf : ContinuousOn f K) : IntegrableOn f K μ :=
+ hf.integrableOn_compact' hK hK.measurableSet
#align continuous_on.integrable_on_compact ContinuousOn.integrableOn_compact
-theorem ContinuousOn.integrableOn_Icc [Preorder X] [CompactIccSpace X]
+theorem ContinuousOn.integrableOn_Icc [Preorder X] [CompactIccSpace X] [T2Space X]
(hf : ContinuousOn f (Icc a b)) : IntegrableOn f (Icc a b) μ :=
hf.integrableOn_compact isCompact_Icc
#align continuous_on.integrable_on_Icc ContinuousOn.integrableOn_Icc
-theorem Continuous.integrableOn_Icc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
- IntegrableOn f (Icc a b) μ :=
+theorem Continuous.integrableOn_Icc [Preorder X] [CompactIccSpace X] [T2Space X]
+ (hf : Continuous f) : IntegrableOn f (Icc a b) μ :=
hf.continuousOn.integrableOn_Icc
#align continuous.integrable_on_Icc Continuous.integrableOn_Icc
-theorem Continuous.integrableOn_Ioc [Preorder X] [CompactIccSpace X] (hf : Continuous f) :
- IntegrableOn f (Ioc a b) μ :=
+theorem Continuous.integrableOn_Ioc [Preorder X] [CompactIccSpace X] [T2Space X]
+ (hf : Continuous f) : IntegrableOn f (Ioc a b) μ :=
hf.integrableOn_Icc.mono_set Ioc_subset_Icc_self
#align continuous.integrable_on_Ioc Continuous.integrableOn_Ioc
-theorem ContinuousOn.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X]
+theorem ContinuousOn.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X] [T2Space X]
(hf : ContinuousOn f [[a, b]]) : IntegrableOn f [[a, b]] μ :=
hf.integrableOn_Icc
#align continuous_on.integrable_on_uIcc ContinuousOn.integrableOn_uIcc
-theorem Continuous.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
- IntegrableOn f [[a, b]] μ :=
+theorem Continuous.integrableOn_uIcc [LinearOrder X] [CompactIccSpace X] [T2Space X]
+ (hf : Continuous f) : IntegrableOn f [[a, b]] μ :=
hf.integrableOn_Icc
#align continuous.integrable_on_uIcc Continuous.integrableOn_uIcc
-theorem Continuous.integrableOn_uIoc [LinearOrder X] [CompactIccSpace X] (hf : Continuous f) :
- IntegrableOn f (Ι a b) μ :=
+theorem Continuous.integrableOn_uIoc [LinearOrder X] [CompactIccSpace X] [T2Space X]
+ (hf : Continuous f) : IntegrableOn f (Ι a b) μ :=
hf.integrableOn_Ioc
#align continuous.integrable_on_uIoc Continuous.integrableOn_uIoc
@@ -432,7 +441,7 @@ theorem Continuous.integrableOn_uIoc [LinearOrder X] [CompactIccSpace X] (hf : C
theorem Continuous.integrable_of_hasCompactSupport (hf : Continuous f) (hcf : HasCompactSupport f) :
Integrable f μ :=
(integrableOn_iff_integrable_of_support_subset (subset_tsupport f)).mp <|
- hf.continuousOn.integrableOn_compact hcf
+ hf.continuousOn.integrableOn_compact' hcf (isClosed_tsupport _).measurableSet
#align continuous.integrable_of_has_compact_support Continuous.integrable_of_hasCompactSupport
end borel
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -515,7 +515,7 @@ theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg'
rcases IsCompact.exists_bound_of_continuousOn hK hg' with ⟨C, hC⟩
rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ := by
- filter_upwards [ae_restrict_mem hA]with x hx
+ filter_upwards [ae_restrict_mem hA] with x hx
refine' (norm_mul_le _ _).trans _
rw [mul_comm]
apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
@@ -534,7 +534,7 @@ theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : I
rcases IsCompact.exists_bound_of_continuousOn hK hg with ⟨C, hC⟩
rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg' ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g' x‖ := by
- filter_upwards [ae_restrict_mem hA]with x hx
+ filter_upwards [ae_restrict_mem hA] with x hx
refine' (norm_mul_le _ _).trans _
apply mul_le_mul_of_nonneg_right (hC x (hAK hx)) (norm_nonneg _)
exact
Set
/Finset
lemmas match lattice lemma names (#7378)
Rename union_eq_left_iff_subset
to union_eq_left
to match sup_eq_left
. Similarly for the right
and inter
versions.
@@ -126,7 +126,7 @@ theorem LocallyIntegrableOn.exists_nat_integrableOn [SecondCountableTopology X]
theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
(hf : LocallyIntegrableOn f s μ) : AEStronglyMeasurable f (μ.restrict s) := by
rcases hf.exists_nat_integrableOn with ⟨u, -, su, hu⟩
- have : s = ⋃ n, u n ∩ s := by rw [← iUnion_inter]; exact (inter_eq_right_iff_subset.mpr su).symm
+ have : s = ⋃ n, u n ∩ s := by rw [← iUnion_inter]; exact (inter_eq_right.mpr su).symm
rw [this, aestronglyMeasurable_iUnion_iff]
exact fun i : ℕ => (hu i).aestronglyMeasurable
#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable
@@ -144,7 +144,7 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
let ⟨K, hK, h2K⟩ := exists_compact_mem_nhds x
⟨_, inter_mem_nhdsWithin s h2K,
hf _ (inter_subset_left _ _)
- (isCompact_of_isClosed_subset hK (hs.inter hK.isClosed) (inter_subset_right _ _))⟩
+ (hK.of_isClosed_subset (hs.inter hK.isClosed) (inter_subset_right _ _))⟩
| inr hs =>
obtain ⟨K, hK, h2K, h3K⟩ := exists_compact_subset hs hx
refine' ⟨K, _, hf K h3K hK⟩
Metric.Bounded
(#7240)
Use Bornology.IsBounded
instead.
@@ -24,7 +24,7 @@ on compact sets.
integrable on `s`.
-/
-open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace
+open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace Bornology
open scoped Topology Interval ENNReal BigOperators
@@ -452,8 +452,8 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
· exact integrableOn_empty
have hbelow : BddBelow (f '' s) := ⟨f a, fun x ⟨y, hy, hyx⟩ => hyx ▸ hmono ha.1 hy (ha.2 hy)⟩
have habove : BddAbove (f '' s) := ⟨f b, fun x ⟨y, hy, hyx⟩ => hyx ▸ hmono hy hb.1 (hb.2 hy)⟩
- have : Metric.Bounded (f '' s) := Metric.bounded_of_bddAbove_of_bddBelow habove hbelow
- rcases bounded_iff_forall_norm_le.mp this with ⟨C, hC⟩
+ have : IsBounded (f '' s) := Metric.isBounded_of_bddAbove_of_bddBelow habove hbelow
+ rcases isBounded_iff_forall_norm_le.mp this with ⟨C, hC⟩
have A : IntegrableOn (fun _ => C) s μ := by
simp only [hs.lt_top, integrableOn_const, or_true_iff]
refine'
@@ -24,18 +24,15 @@ on compact sets.
integrable on `s`.
-/
-set_option autoImplicit true
-
-
open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace
-open scoped Topology Interval
+open scoped Topology Interval ENNReal BigOperators
variable {X Y E R : Type*} [MeasurableSpace X] [TopologicalSpace X]
variable [MeasurableSpace Y] [TopologicalSpace Y]
-variable [NormedAddCommGroup E] {f : X → E} {μ : Measure X} {s : Set X}
+variable [NormedAddCommGroup E] {f g : X → E} {μ : Measure X} {s : Set X}
namespace MeasureTheory
@@ -260,12 +257,18 @@ theorem LocallyIntegrable.exists_nat_integrableOn [SecondCountableTopology X]
refine' ⟨u, u_open, eq_univ_of_univ_subset u_union, fun n ↦ _⟩
simpa only [inter_univ] using hu n
-theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
- LocallyIntegrable (fun _ => c) μ := by
+theorem Memℒp.locallyIntegrable [IsLocallyFiniteMeasure μ] {f : X → E} {p : ℝ≥0∞}
+ (hf : Memℒp f p μ) (hp : 1 ≤ p) : LocallyIntegrable f μ := by
intro x
rcases μ.finiteAt_nhds x with ⟨U, hU, h'U⟩
+ have : Fact (μ U < ⊤) := ⟨h'U⟩
refine' ⟨U, hU, _⟩
- simp only [h'U, integrableOn_const, or_true_iff]
+ rw [IntegrableOn, ← memℒp_one_iff_integrable]
+ apply (hf.restrict U).memℒp_of_exponent_le hp
+
+theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
+ LocallyIntegrable (fun _ => c) μ :=
+ (memℒp_top_const c).locallyIntegrable le_top
#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrable_const
theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
@@ -273,6 +276,12 @@ theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
(locallyIntegrable_const c).locallyIntegrableOn s
#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOn_const
+theorem locallyIntegrable_zero : LocallyIntegrable (fun _ ↦ (0 : E)) μ :=
+ (integrable_zero X E μ).locallyIntegrable
+
+theorem locallyIntegrableOn_zero : LocallyIntegrableOn (fun _ ↦ (0 : E)) s μ :=
+ locallyIntegrable_zero.locallyIntegrableOn s
+
theorem LocallyIntegrable.indicator (hf : LocallyIntegrable f μ) {s : Set X}
(hs : MeasurableSet s) : LocallyIntegrable (s.indicator f) μ := by
intro x
@@ -304,6 +313,19 @@ protected theorem LocallyIntegrable.sub (hf : LocallyIntegrable f μ) (hg : Loca
protected theorem LocallyIntegrable.neg (hf : LocallyIntegrable f μ) :
LocallyIntegrable (-f) μ := fun x ↦ (hf x).neg
+protected theorem LocallyIntegrable.smul {𝕜 : Type*} [NormedAddCommGroup 𝕜] [SMulZeroClass 𝕜 E]
+ [BoundedSMul 𝕜 E] (hf : LocallyIntegrable f μ) (c : 𝕜) :
+ LocallyIntegrable (c • f) μ := fun x ↦ (hf x).smul c
+
+theorem locallyIntegrable_finset_sum' {ι} (s : Finset ι) {f : ι → X → E}
+ (hf : ∀ i ∈ s, LocallyIntegrable (f i) μ) : LocallyIntegrable (∑ i in s, f i) μ :=
+ Finset.sum_induction f (fun g => LocallyIntegrable g μ) (fun _ _ => LocallyIntegrable.add)
+ locallyIntegrable_zero hf
+
+theorem locallyIntegrable_finset_sum {ι} (s : Finset ι) {f : ι → X → E}
+ (hf : ∀ i ∈ s, LocallyIntegrable (f i) μ) : LocallyIntegrable (fun a ↦ ∑ i in s, f i a) μ := by
+ simpa only [← Finset.sum_apply] using locallyIntegrable_finset_sum' s hf
+
/-- If `f` is locally integrable and `g` is continuous with compact support,
then `g • f` is integrable. -/
theorem LocallyIntegrable.integrable_smul_left_of_hasCompactSupport
@@ -526,7 +526,7 @@ theorem IntegrableOn.continuousOn_mul [T2Space X] (hg : ContinuousOn g K)
end Mul
-section Smul
+section SMul
variable {𝕜 : Type*} [NormedField 𝕜] [NormedSpace 𝕜 E]
@@ -550,7 +550,7 @@ theorem IntegrableOn.smul_continuousOn [T2Space X] [SecondCountableTopologyEithe
· exact hf.1.smul (hg.aestronglyMeasurable hK.measurableSet)
#align measure_theory.integrable_on.smul_continuous_on MeasureTheory.IntegrableOn.smul_continuousOn
-end Smul
+end SMul
namespace LocallyIntegrableOn
Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.
The intent of this PR is to make autoImplicit
opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true
in the few files that rely on it.
That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.
I claim that many of the uses of autoImplicit
in these files are accidental; situations such as:
variables
are in scope, but pasting the lemma in the wrong sectionHaving set_option autoImplicit false
as the default prevents these types of mistake being made in the 90% of files where autoImplicit
s are not used at all, and causes them to be caught by CI during review.
I think there were various points during the port where we encouraged porters to delete the universes u v
lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.
A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18
as the no:dontcare:yes
vote ratio.
While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true
has been placed locally within a section, rather than at the top of the file.
@@ -24,6 +24,8 @@ on compact sets.
integrable on `s`.
-/
+set_option autoImplicit true
+
open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -29,7 +29,7 @@ open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace
open scoped Topology Interval
-variable {X Y E R : Type _} [MeasurableSpace X] [TopologicalSpace X]
+variable {X Y E R : Type*} [MeasurableSpace X] [TopologicalSpace X]
variable [MeasurableSpace Y] [TopologicalSpace Y]
@@ -526,7 +526,7 @@ end Mul
section Smul
-variable {𝕜 : Type _} [NormedField 𝕜] [NormedSpace 𝕜 E]
+variable {𝕜 : Type*} [NormedField 𝕜] [NormedSpace 𝕜 E]
theorem IntegrableOn.continuousOn_smul [T2Space X] [SecondCountableTopologyEither X 𝕜] {g : X → E}
(hg : IntegrableOn g K μ) {f : X → 𝕜} (hf : ContinuousOn f K) (hK : IsCompact K) :
@@ -566,7 +566,7 @@ theorem mul_continuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mul_continuousOn
-theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
+theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type*} [NormedField 𝕜]
[SecondCountableTopologyEither X 𝕜] [NormedSpace 𝕜 E] {f : X → E} {g : X → 𝕜} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => g x • f x) s μ := by
@@ -574,7 +574,7 @@ theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_smul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOn_smul
-theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [NormedField 𝕜]
+theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type*} [NormedField 𝕜]
[SecondCountableTopologyEither X E] [NormedSpace 𝕜 E] {f : X → 𝕜} {g : X → E} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => f x • g x) s μ := by
@@ -302,6 +302,44 @@ protected theorem LocallyIntegrable.sub (hf : LocallyIntegrable f μ) (hg : Loca
protected theorem LocallyIntegrable.neg (hf : LocallyIntegrable f μ) :
LocallyIntegrable (-f) μ := fun x ↦ (hf x).neg
+/-- If `f` is locally integrable and `g` is continuous with compact support,
+then `g • f` is integrable. -/
+theorem LocallyIntegrable.integrable_smul_left_of_hasCompactSupport
+ [NormedSpace ℝ E] [OpensMeasurableSpace X] [T2Space X]
+ (hf : LocallyIntegrable f μ) {g : X → ℝ} (hg : Continuous g) (h'g : HasCompactSupport g) :
+ Integrable (fun x ↦ g x • f x) μ := by
+ let K := tsupport g
+ have hK : IsCompact K := h'g
+ have : K.indicator (fun x ↦ g x • f x) = (fun x ↦ g x • f x) := by
+ apply indicator_eq_self.2
+ apply support_subset_iff'.2
+ intros x hx
+ simp [image_eq_zero_of_nmem_tsupport hx]
+ rw [← this, indicator_smul]
+ apply Integrable.smul_of_top_right
+ · rw [integrable_indicator_iff hK.measurableSet]
+ exact hf.integrableOn_isCompact hK
+ · exact hg.memℒp_top_of_hasCompactSupport h'g μ
+
+/-- If `f` is locally integrable and `g` is continuous with compact support,
+then `f • g` is integrable. -/
+theorem LocallyIntegrable.integrable_smul_right_of_hasCompactSupport
+ [NormedSpace ℝ E] [OpensMeasurableSpace X] [T2Space X] {f : X → ℝ} (hf : LocallyIntegrable f μ)
+ {g : X → E} (hg : Continuous g) (h'g : HasCompactSupport g) :
+ Integrable (fun x ↦ f x • g x) μ := by
+ let K := tsupport g
+ have hK : IsCompact K := h'g
+ have : K.indicator (fun x ↦ f x • g x) = (fun x ↦ f x • g x) := by
+ apply indicator_eq_self.2
+ apply support_subset_iff'.2
+ intros x hx
+ simp [image_eq_zero_of_nmem_tsupport hx]
+ rw [← this, indicator_smul_left]
+ apply Integrable.smul_of_top_left
+ · rw [integrable_indicator_iff hK.measurableSet]
+ exact hf.integrableOn_isCompact hK
+ · exact hg.memℒp_top_of_hasCompactSupport h'g μ
+
end MeasureTheory
open MeasureTheory
We show that, if a locally integrable function has zero integral on all compact sets, then it vanishes almost everywhere.
@@ -73,24 +73,63 @@ theorem LocallyIntegrableOn.integrableOn_compact_subset (hf : LocallyIntegrableO
(hf.mono hst).integrableOn_isCompact ht
#align measure_theory.locally_integrable_on.integrable_on_compact_subset MeasureTheory.LocallyIntegrableOn.integrableOn_compact_subset
-theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
- (hf : LocallyIntegrableOn f s μ) : AEStronglyMeasurable f (μ.restrict s) := by
+/-- If a function `f` is locally integrable on a set `s` in a second countable topological space,
+then there exist countably many open sets `u` covering `s` such that `f` is integrable on each
+set `u ∩ s`. -/
+theorem LocallyIntegrableOn.exists_countable_integrableOn [SecondCountableTopology X]
+ (hf : LocallyIntegrableOn f s μ) : ∃ T : Set (Set X), T.Countable ∧
+ (∀ u ∈ T, IsOpen u) ∧ (s ⊆ ⋃ u ∈ T, u) ∧ (∀ u ∈ T, IntegrableOn f (u ∩ s) μ) := by
have : ∀ x : s, ∃ u, IsOpen u ∧ x.1 ∈ u ∧ IntegrableOn f (u ∩ s) μ := by
rintro ⟨x, hx⟩
rcases hf x hx with ⟨t, ht, h't⟩
rcases mem_nhdsWithin.1 ht with ⟨u, u_open, x_mem, u_sub⟩
refine' ⟨u, u_open, x_mem, h't.mono_set u_sub⟩
choose u u_open xu hu using this
- obtain ⟨T, T_count, hT⟩ : ∃ T : Set s, T.Countable ∧ s = ⋃ i : T, u i ∩ s := by
+ obtain ⟨T, T_count, hT⟩ : ∃ T : Set s, T.Countable ∧ s ⊆ ⋃ i ∈ T, u i := by
have : s ⊆ ⋃ x : s, u x := fun y hy => mem_iUnion_of_mem ⟨y, hy⟩ (xu ⟨y, hy⟩)
obtain ⟨T, hT_count, hT_un⟩ := isOpen_iUnion_countable u u_open
- refine' ⟨T, hT_count, _⟩
- rw [← hT_un, biUnion_eq_iUnion] at this
- rw [← iUnion_inter, eq_comm, inter_eq_right_iff_subset]
- exact this
- have : Countable T := countable_coe_iff.mpr T_count
- rw [hT, aestronglyMeasurable_iUnion_iff]
- exact fun i : T => (hu i).aestronglyMeasurable
+ exact ⟨T, hT_count, by rwa [hT_un]⟩
+ refine' ⟨u '' T, T_count.image _, _, by rwa [biUnion_image], _⟩
+ · rintro v ⟨w, -, rfl⟩
+ exact u_open _
+ · rintro v ⟨w, -, rfl⟩
+ exact hu _
+
+/-- If a function `f` is locally integrable on a set `s` in a second countable topological space,
+then there exists a sequence of open sets `u n` covering `s` such that `f` is integrable on each
+set `u n ∩ s`. -/
+theorem LocallyIntegrableOn.exists_nat_integrableOn [SecondCountableTopology X]
+ (hf : LocallyIntegrableOn f s μ) : ∃ u : ℕ → Set X,
+ (∀ n, IsOpen (u n)) ∧ (s ⊆ ⋃ n, u n) ∧ (∀ n, IntegrableOn f (u n ∩ s) μ) := by
+ rcases hf.exists_countable_integrableOn with ⟨T, T_count, T_open, sT, hT⟩
+ let T' : Set (Set X) := insert ∅ T
+ have T'_count : T'.Countable := Countable.insert ∅ T_count
+ have T'_ne : T'.Nonempty := by simp only [insert_nonempty]
+ rcases T'_count.exists_eq_range T'_ne with ⟨u, hu⟩
+ refine' ⟨u, _, _, _⟩
+ · intro n
+ have : u n ∈ T' := by rw [hu]; exact mem_range_self n
+ rcases mem_insert_iff.1 this with h|h
+ · rw [h]
+ exact isOpen_empty
+ · exact T_open _ h
+ · intro x hx
+ obtain ⟨v, hv, h'v⟩ : ∃ v, v ∈ T ∧ x ∈ v := by simpa only [mem_iUnion, exists_prop] using sT hx
+ have : v ∈ range u := by rw [← hu]; exact subset_insert ∅ T hv
+ obtain ⟨n, rfl⟩ : ∃ n, u n = v := by simpa only [mem_range] using this
+ exact mem_iUnion_of_mem _ h'v
+ · intro n
+ have : u n ∈ T' := by rw [hu]; exact mem_range_self n
+ rcases mem_insert_iff.1 this with h|h
+ · simp only [h, empty_inter, integrableOn_empty]
+ · exact hT _ h
+
+theorem LocallyIntegrableOn.aestronglyMeasurable [SecondCountableTopology X]
+ (hf : LocallyIntegrableOn f s μ) : AEStronglyMeasurable f (μ.restrict s) := by
+ rcases hf.exists_nat_integrableOn with ⟨u, -, su, hu⟩
+ have : s = ⋃ n, u n ∩ s := by rw [← iUnion_inter]; exact (inter_eq_right_iff_subset.mpr su).symm
+ rw [this, aestronglyMeasurable_iUnion_iff]
+ exact fun i : ℕ => (hu i).aestronglyMeasurable
#align measure_theory.locally_integrable_on.ae_strongly_measurable MeasureTheory.LocallyIntegrableOn.aestronglyMeasurable
/-- If `s` is either open, or closed, then `f` is locally integrable on `s` iff it is integrable on
@@ -113,6 +152,17 @@ theorem locallyIntegrableOn_iff [LocallyCompactSpace X] [T2Space X] (hs : IsClos
simpa only [IsOpen.nhdsWithin_eq hs hx, interior_eq_nhds'] using h2K
#align measure_theory.locally_integrable_on_iff MeasureTheory.locallyIntegrableOn_iff
+protected theorem LocallyIntegrableOn.add
+ (hf : LocallyIntegrableOn f s μ) (hg : LocallyIntegrableOn g s μ) :
+ LocallyIntegrableOn (f + g) s μ := fun x hx ↦ (hf x hx).add (hg x hx)
+
+protected theorem LocallyIntegrableOn.sub
+ (hf : LocallyIntegrableOn f s μ) (hg : LocallyIntegrableOn g s μ) :
+ LocallyIntegrableOn (f - g) s μ := fun x hx ↦ (hf x hx).sub (hg x hx)
+
+protected theorem LocallyIntegrableOn.neg (hf : LocallyIntegrableOn f s μ) :
+ LocallyIntegrableOn (-f) s μ := fun x hx ↦ (hf x hx).neg
+
end LocallyIntegrableOn
/-- A function `f : X → E` is *locally integrable* if it is integrable on a neighborhood of every
@@ -199,6 +249,15 @@ theorem LocallyIntegrable.aestronglyMeasurable [SecondCountableTopology X]
simpa only [restrict_univ] using (locallyIntegrableOn_univ.mpr hf).aestronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aestronglyMeasurable
+/-- If a function is locally integrable in a second countable topological space,
+then there exists a sequence of open sets covering the space on which it is integrable. -/
+theorem LocallyIntegrable.exists_nat_integrableOn [SecondCountableTopology X]
+ (hf : LocallyIntegrable f μ) : ∃ u : ℕ → Set X,
+ (∀ n, IsOpen (u n)) ∧ ((⋃ n, u n) = univ) ∧ (∀ n, IntegrableOn f (u n) μ) := by
+ rcases (hf.locallyIntegrableOn univ).exists_nat_integrableOn with ⟨u, u_open, u_union, hu⟩
+ refine' ⟨u, u_open, eq_univ_of_univ_subset u_union, fun n ↦ _⟩
+ simpa only [inter_univ] using hu n
+
theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun _ => c) μ := by
intro x
@@ -234,6 +293,15 @@ theorem locallyIntegrable_map_homeomorph [BorelSpace X] [BorelSpace Y] (e : X
simp only [mem_preimage, Homeomorph.symm_apply_apply]
#align measure_theory.locally_integrable_map_homeomorph MeasureTheory.locallyIntegrable_map_homeomorph
+protected theorem LocallyIntegrable.add (hf : LocallyIntegrable f μ) (hg : LocallyIntegrable g μ) :
+ LocallyIntegrable (f + g) μ := fun x ↦ (hf x).add (hg x)
+
+protected theorem LocallyIntegrable.sub (hf : LocallyIntegrable f μ) (hg : LocallyIntegrable g μ) :
+ LocallyIntegrable (f - g) μ := fun x ↦ (hf x).sub (hg x)
+
+protected theorem LocallyIntegrable.neg (hf : LocallyIntegrable f μ) :
+ LocallyIntegrable (-f) μ := fun x ↦ (hf x).neg
+
end MeasureTheory
open MeasureTheory
@@ -2,14 +2,11 @@
Copyright (c) 2022 Floris van Doorn. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Floris van Doorn
-
-! This file was ported from Lean 3 source module measure_theory.function.locally_integrable
-! leanprover-community/mathlib commit 08a4542bec7242a5c60f179e4e49de8c0d677b1b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Integral.IntegrableOn
+#align_import measure_theory.function.locally_integrable from "leanprover-community/mathlib"@"08a4542bec7242a5c60f179e4e49de8c0d677b1b"
+
/-!
# Locally integrable functions
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -386,7 +386,7 @@ theorem IntegrableOn.mul_continuousOn_of_subset (hg : IntegrableOn g A μ) (hg'
(hA : MeasurableSet A) (hK : IsCompact K) (hAK : A ⊆ K) :
IntegrableOn (fun x => g x * g' x) A μ := by
rcases IsCompact.exists_bound_of_continuousOn hK hg' with ⟨C, hC⟩
- rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg⊢
+ rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g x‖ := by
filter_upwards [ae_restrict_mem hA]with x hx
refine' (norm_mul_le _ _).trans _
@@ -405,7 +405,7 @@ theorem IntegrableOn.continuousOn_mul_of_subset (hg : ContinuousOn g K) (hg' : I
(hK : IsCompact K) (hA : MeasurableSet A) (hAK : A ⊆ K) :
IntegrableOn (fun x => g x * g' x) A μ := by
rcases IsCompact.exists_bound_of_continuousOn hK hg with ⟨C, hC⟩
- rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg'⊢
+ rw [IntegrableOn, ← memℒp_one_iff_integrable] at hg' ⊢
have : ∀ᵐ x ∂μ.restrict A, ‖g x * g' x‖ ≤ C * ‖g' x‖ := by
filter_upwards [ae_restrict_mem hA]with x hx
refine' (norm_mul_le _ _).trans _
@@ -452,14 +452,14 @@ namespace LocallyIntegrableOn
theorem continuousOn_mul [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => g x * f x) s μ := by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_mul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_mul MeasureTheory.LocallyIntegrableOn.continuousOn_mul
theorem mul_continuousOn [LocallyCompactSpace X] [T2Space X] [NormedRing R]
[SecondCountableTopologyEither X R] {f g : X → R} {s : Set X} (hf : LocallyIntegrableOn f s μ)
(hg : ContinuousOn g s) (hs : IsOpen s) : LocallyIntegrableOn (fun x => f x * g x) s μ := by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).mul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.mul_continuous_on MeasureTheory.LocallyIntegrableOn.mul_continuousOn
@@ -467,7 +467,7 @@ theorem continuousOn_smul [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
[SecondCountableTopologyEither X 𝕜] [NormedSpace 𝕜 E] {f : X → E} {g : X → 𝕜} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => g x • f x) s μ := by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).continuousOn_smul (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.continuous_on_smul MeasureTheory.LocallyIntegrableOn.continuousOn_smul
@@ -475,7 +475,7 @@ theorem smul_continuousOn [LocallyCompactSpace X] [T2Space X] {𝕜 : Type _} [N
[SecondCountableTopologyEither X E] [NormedSpace 𝕜 E] {f : X → 𝕜} {g : X → E} {s : Set X}
(hs : IsOpen s) (hf : LocallyIntegrableOn f s μ) (hg : ContinuousOn g s) :
LocallyIntegrableOn (fun x => f x • g x) s μ := by
- rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf⊢
+ rw [MeasureTheory.locallyIntegrableOn_iff (Or.inr hs)] at hf ⊢
exact fun k hk_sub hk_c => (hf k hk_sub hk_c).smul_continuousOn (hg.mono hk_sub) hk_c
#align measure_theory.locally_integrable_on.smul_continuous_on MeasureTheory.LocallyIntegrableOn.smul_continuousOn
Is
of Foo
which is ported from is_foo
(#4639)
I have misported is_foo
to Foo
because I misunderstood the rule for IsLawfulFoo
.
This PR recover Is
of Foo
which is ported from is_foo
.
This PR also renames some misported theorems.
@@ -202,7 +202,7 @@ theorem LocallyIntegrable.aestronglyMeasurable [SecondCountableTopology X]
simpa only [restrict_univ] using (locallyIntegrableOn_univ.mpr hf).aestronglyMeasurable
#align measure_theory.locally_integrable.ae_strongly_measurable MeasureTheory.LocallyIntegrable.aestronglyMeasurable
-theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrable_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrable (fun _ => c) μ := by
intro x
rcases μ.finiteAt_nhds x with ⟨U, hU, h'U⟩
@@ -210,7 +210,7 @@ theorem locallyIntegrable_const [LocallyFiniteMeasure μ] (c : E) :
simp only [h'U, integrableOn_const, or_true_iff]
#align measure_theory.locally_integrable_const MeasureTheory.locallyIntegrable_const
-theorem locallyIntegrableOn_const [LocallyFiniteMeasure μ] (c : E) :
+theorem locallyIntegrableOn_const [IsLocallyFiniteMeasure μ] (c : E) :
LocallyIntegrableOn (fun _ => c) s μ :=
(locallyIntegrable_const c).locallyIntegrableOn s
#align measure_theory.locally_integrable_on_const MeasureTheory.locallyIntegrableOn_const
@@ -243,7 +243,7 @@ open MeasureTheory
section borel
-variable [OpensMeasurableSpace X] [LocallyFiniteMeasure μ]
+variable [OpensMeasurableSpace X] [IsLocallyFiniteMeasure μ]
variable {K : Set X} {a b : X}
@@ -334,7 +334,7 @@ theorem MonotoneOn.integrableOn_of_measure_ne_top (hmono : MonotoneOn f s) {a b
((ae_restrict_iff' h's).mpr <| ae_of_all _ fun y hy => hC (f y) (mem_image_of_mem f hy))
#align monotone_on.integrable_on_of_measure_ne_top MonotoneOn.integrableOn_of_measure_ne_top
-theorem MonotoneOn.integrableOn_isCompact [FiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem MonotoneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hmono : MonotoneOn f s) : IntegrableOn f s μ := by
obtain rfl | h := s.eq_empty_or_nonempty
· exact integrableOn_empty
@@ -349,12 +349,12 @@ theorem AntitoneOn.integrableOn_of_measure_ne_top (hanti : AntitoneOn f s) {a b
hanti.dual_right.integrableOn_of_measure_ne_top ha hb hs h's
#align antitone_on.integrable_on_of_measure_ne_top AntitoneOn.integrableOn_of_measure_ne_top
-theorem AntioneOn.integrableOn_isCompact [FiniteMeasureOnCompacts μ] (hs : IsCompact s)
+theorem AntioneOn.integrableOn_isCompact [IsFiniteMeasureOnCompacts μ] (hs : IsCompact s)
(hanti : AntitoneOn f s) : IntegrableOn f s μ :=
hanti.dual_right.integrableOn_isCompact (E := Eᵒᵈ) hs
#align antione_on.integrable_on_is_compact AntioneOn.integrableOn_isCompact
-theorem Monotone.locallyIntegrable [LocallyFiniteMeasure μ] (hmono : Monotone f) :
+theorem Monotone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hmono : Monotone f) :
LocallyIntegrable f μ := by
intro x
rcases μ.finiteAt_nhds x with ⟨U, hU, h'U⟩
@@ -367,7 +367,7 @@ theorem Monotone.locallyIntegrable [LocallyFiniteMeasure μ] (hmono : Monotone f
((measure_mono abU).trans_lt h'U).ne measurableSet_Icc
#align monotone.locally_integrable Monotone.locallyIntegrable
-theorem Antitone.locallyIntegrable [LocallyFiniteMeasure μ] (hanti : Antitone f) :
+theorem Antitone.locallyIntegrable [IsLocallyFiniteMeasure μ] (hanti : Antitone f) :
LocallyIntegrable f μ :=
hanti.dual_right.locallyIntegrable
#align antitone.locally_integrable Antitone.locallyIntegrable
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file