measure_theory.function.locally_integrableMathlib.MeasureTheory.Function.LocallyIntegrable

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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]
Diff
@@ -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 /-
Diff
@@ -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
Diff
@@ -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]
Diff
@@ -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
 -/
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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]
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
 
Diff
@@ -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
+
Diff
@@ -260,7 +260,7 @@ theorem Continuous.integrableOfHasCompactSupport (hf : Continuous f) (hcf : HasC
 
 end borel
 
-open Ennreal
+open ENNReal
 
 section Monotone
 

Changes in mathlib4

mathlib3
mathlib4
feat: bounding integrals by asymptotics, part 2: corollaries (#10388)

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>

Diff
@@ -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
chore: golf using 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.

Diff
@@ -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
chore(*): remove empty lines between variable statements (#11418)

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)
Diff
@@ -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. -/
chore: remove stream-of-conciousness syntax for obtain (#11045)

This covers many instances, but is not exhaustive.

Independently of whether that syntax should be avoided (similar to #10534), I think all these changes are small improvements.

Diff
@@ -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
chore: more backporting of simp changes from #10995 (#11001)

Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
chore: remove terminal, terminal refines (#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 refines, but maybe the current change is beneficial.

Diff
@@ -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⟩)
feat: bounding integrals by asymptotics, part 1 (#10248)

part 1: corollaries such as for atTop ℝ yet to come

Co-authored-by: L Lllvvuu <git@llllvvuu.dev> Co-authored-by: L <git@llllvvuu.dev>

Diff
@@ -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
feat: a function with vanishing integral against smooth functions supported in U is ae zero in U (#8805)

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>

Diff
@@ -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.) -/
feat: bound the measure of a set by the integral of a function, from above and from below (#8123)

Also weaken some T2 space assumptions in some integration lemmas.


Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com>

Diff
@@ -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
chore: cleanup typo in filter_upwards (#7719)

mathport was forgetting a space in filter_upwards [...]with instead of filter_upwards [...] with.

Diff
@@ -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
chore: Make 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.

Diff
@@ -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
chore(Topology/SubsetProperties): rename isCompact_of_isClosed_subset (#7298)

As discussed on Zulip.

Co-authored-by: grunweg <grunweg@posteo.de>

Diff
@@ -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⟩
refactor(Topology/MetricSpace): remove Metric.Bounded (#7240)

Use Bornology.IsBounded instead.

Diff
@@ -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'
feat: expand API on locally integrable functions (#7006)

Measure theory prerequisites for Rademacher theorem in #7003.

Diff
@@ -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
chore: tidy various files (#6924)
Diff
@@ -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
 
fix: disable autoImplicit globally (#6528)

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:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits 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.

Diff
@@ -24,6 +24,8 @@ on compact sets.
   integrable on `s`.
 -/
 
+set_option autoImplicit true
+
 
 open MeasureTheory MeasureTheory.Measure Set Function TopologicalSpace
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -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
feat: Integrability of g • f for g continuous with compact support and f locally integrable (#6100)
Diff
@@ -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
feat(MeasureTheory.Function.AEEqOfIntegral): characterize a locally integrable function by its integral on compact sets (#5876)

We show that, if a locally integrable function has zero integral on all compact sets, then it vanishes almost everywhere.

Diff
@@ -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
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
chore: clean up spacing around 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
Diff
@@ -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
 
style: recover 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.

Diff
@@ -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
feat: port MeasureTheory.Function.LocallyIntegrable (#4524)

Dependencies 12 + 934

935 files ported (98.7%)
424776 lines ported (98.7%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file