measure_theory.integral.periodicMathlib.MeasureTheory.Integral.Periodic

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -321,7 +321,7 @@ theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : 
   haveI : vadd_invariant_measure (AddSubgroup.zmultiples T) ℝ volume :=
     ⟨fun c s hs => measure_preimage_add _ _ _⟩
   exact
-    (isAddFundamentalDomain_Ioc hT t).set_integral_eq (isAddFundamentalDomain_Ioc hT s)
+    (isAddFundamentalDomain_Ioc hT t).setIntegral_eq (isAddFundamentalDomain_Ioc hT s)
       hf.map_vadd_zmultiples
 #align function.periodic.interval_integral_add_eq_of_pos Function.Periodic.intervalIntegral_add_eq_of_pos
 -/
Diff
@@ -336,7 +336,7 @@ theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
   · exact hf.interval_integral_add_eq_of_pos hT t s
   · simp
   · rw [← neg_inj, ← integral_symm, ← integral_symm]
-    simpa only [← sub_eq_add_neg, add_sub_cancel] using
+    simpa only [← sub_eq_add_neg, add_sub_cancel_right] using
       hf.neg.interval_integral_add_eq_of_pos (neg_pos.2 hT) (t + T) (s + T)
 #align function.periodic.interval_integral_add_eq Function.Periodic.intervalIntegral_add_eq
 -/
@@ -368,7 +368,7 @@ theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
     intros
     induction' m with m ih
     · simp
-    · simp only [succ_nsmul', hf.interval_integral_add_eq_add 0 (m • T) h_int, ih, zero_add]
+    · simp only [succ_nsmul, hf.interval_integral_add_eq_add 0 (m • T) h_int, ih, zero_add]
   -- Then prove it for all integers
   cases' n with n n
   · simp [← this n]
Diff
@@ -195,7 +195,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
   have := lintegral_map_equiv f (measurable_equiv_Ioc T t).symm
   swap; exact volume
   simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
-    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this 
+    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this
   rw [← (AddCircle.measurePreserving_mk T t).map_eq]
   convert this.symm using 1
   -- TODO : there is no "set_lintegral_eq_subtype"?
@@ -221,7 +221,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
   have m : MeasurableSet (Ioc t (t + T)) := measurableSet_Ioc
   have := integral_map_equiv (measurable_equiv_Ioc T t).symm f
   simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
-    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this 
+    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this
   rw [← (AddCircle.measurePreserving_mk T t).map_eq, set_integral_eq_subtype m, ← this]
   have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) := by ext1 x;
     rfl
Diff
@@ -34,17 +34,13 @@ open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgro
 
 open scoped MeasureTheory NNReal ENNReal
 
-#print AddCircle.measurableSpace /-
 noncomputable instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (AddCircle a) :=
   QuotientAddGroup.measurableSpace _
 #align add_circle.measurable_space AddCircle.measurableSpace
--/
 
-#print AddCircle.borelSpace /-
 instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
   QuotientAddGroup.borelSpace
 #align add_circle.borel_space AddCircle.borelSpace
--/
 
 #print AddCircle.measurable_mk' /-
 @[measurability]
@@ -252,11 +248,9 @@ namespace UnitAddCircle
 
 attribute [local instance] Real.fact_zero_lt_one
 
-#print UnitAddCircle.measureSpace /-
 noncomputable instance measureSpace : MeasureSpace UnitAddCircle :=
   AddCircle.measureSpace 1
 #align unit_add_circle.measure_space UnitAddCircle.measureSpace
--/
 
 #print UnitAddCircle.measure_univ /-
 @[simp]
@@ -264,11 +258,9 @@ protected theorem measure_univ : volume (Set.univ : Set UnitAddCircle) = 1 := by
 #align unit_add_circle.measure_univ UnitAddCircle.measure_univ
 -/
 
-#print UnitAddCircle.isFiniteMeasure /-
 instance isFiniteMeasure : IsFiniteMeasure (volume : Measure UnitAddCircle) :=
   AddCircle.isFiniteMeasure 1
 #align unit_add_circle.is_finite_measure UnitAddCircle.isFiniteMeasure
--/
 
 #print UnitAddCircle.measurePreserving_mk /-
 /-- The covering map from `ℝ` to the "unit additive circle" `ℝ ⧸ ℤ` is measure-preserving,
Diff
@@ -69,7 +69,7 @@ theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
 #print isAddFundamentalDomain_Ioc' /-
 theorem isAddFundamentalDomain_Ioc' {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
-    IsAddFundamentalDomain (AddSubgroup.zmultiples T).opposite (Ioc t (t + T)) μ :=
+    IsAddFundamentalDomain (AddSubgroup.zmultiples T).opEquiv (Ioc t (t + T)) μ :=
   by
   refine' is_add_fundamental_domain.mk' measurable_set_Ioc.null_measurable_set fun x => _
   have : bijective (cod_restrict (fun n : ℤ => n • T) (AddSubgroup.zmultiples T) _) :=
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2021 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 -/
-import Mathbin.MeasureTheory.Measure.Lebesgue.EqHaar
-import Mathbin.MeasureTheory.Measure.Haar.Quotient
-import Mathbin.MeasureTheory.Constructions.Polish
-import Mathbin.MeasureTheory.Integral.IntervalIntegral
-import Mathbin.Topology.Algebra.Order.Floor
+import MeasureTheory.Measure.Lebesgue.EqHaar
+import MeasureTheory.Measure.Haar.Quotient
+import MeasureTheory.Constructions.Polish
+import MeasureTheory.Integral.IntervalIntegral
+import Topology.Algebra.Order.Floor
 
 #align_import measure_theory.integral.periodic from "leanprover-community/mathlib"@"f2ad3645af9effcdb587637dc28a6074edc813f9"
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
-
-! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit f2ad3645af9effcdb587637dc28a6074edc813f9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.MeasureTheory.Measure.Lebesgue.EqHaar
 import Mathbin.MeasureTheory.Measure.Haar.Quotient
@@ -14,6 +9,8 @@ import Mathbin.MeasureTheory.Constructions.Polish
 import Mathbin.MeasureTheory.Integral.IntervalIntegral
 import Mathbin.Topology.Algebra.Order.Floor
 
+#align_import measure_theory.integral.periodic from "leanprover-community/mathlib"@"f2ad3645af9effcdb587637dc28a6074edc813f9"
+
 /-!
 # Integrals of periodic functions
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 
 ! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
+! leanprover-community/mathlib commit f2ad3645af9effcdb587637dc28a6074edc813f9
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.Topology.Algebra.Order.Floor
 /-!
 # Integrals of periodic functions
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we prove that the half-open interval `Ioc t (t + T)` in `ℝ` is a fundamental domain of
 the action of the subgroup `ℤ ∙ T` on `ℝ`.
 
Diff
@@ -34,19 +34,26 @@ open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgro
 
 open scoped MeasureTheory NNReal ENNReal
 
+#print AddCircle.measurableSpace /-
 noncomputable instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (AddCircle a) :=
   QuotientAddGroup.measurableSpace _
 #align add_circle.measurable_space AddCircle.measurableSpace
+-/
 
+#print AddCircle.borelSpace /-
 instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
   QuotientAddGroup.borelSpace
 #align add_circle.borel_space AddCircle.borelSpace
+-/
 
+#print AddCircle.measurable_mk' /-
 @[measurability]
 protected theorem AddCircle.measurable_mk' {a : ℝ} : Measurable (coe : ℝ → AddCircle a) :=
   Continuous.measurable <| AddCircle.continuous_mk' a
 #align add_circle.measurable_mk' AddCircle.measurable_mk'
+-/
 
+#print isAddFundamentalDomain_Ioc /-
 theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
     IsAddFundamentalDomain (AddSubgroup.zmultiples T) (Ioc t (t + T)) μ :=
@@ -57,7 +64,9 @@ theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
   refine' this.exists_unique_iff.2 _
   simpa only [add_comm x] using existsUnique_add_zsmul_mem_Ioc hT x t
 #align is_add_fundamental_domain_Ioc isAddFundamentalDomain_Ioc
+-/
 
+#print isAddFundamentalDomain_Ioc' /-
 theorem isAddFundamentalDomain_Ioc' {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
     IsAddFundamentalDomain (AddSubgroup.zmultiples T).opposite (Ioc t (t + T)) μ :=
@@ -68,17 +77,21 @@ theorem isAddFundamentalDomain_Ioc' {T : ℝ} (hT : 0 < T) (t : ℝ)
   refine' this.exists_unique_iff.2 _
   simpa using existsUnique_add_zsmul_mem_Ioc hT x t
 #align is_add_fundamental_domain_Ioc' isAddFundamentalDomain_Ioc'
+-/
 
 namespace AddCircle
 
 variable (T : ℝ) [hT : Fact (0 < T)]
 
+#print AddCircle.measureSpace /-
 /-- Equip the "additive circle" `ℝ ⧸ (ℤ ∙ T)` with, as a standard measure, the Haar measure of total
 mass `T` -/
 noncomputable instance measureSpace : MeasureSpace (AddCircle T) :=
   { AddCircle.measurableSpace with volume := ENNReal.ofReal T • addHaarMeasure ⊤ }
 #align add_circle.measure_space AddCircle.measureSpace
+-/
 
+#print AddCircle.measure_univ /-
 @[simp]
 protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = ENNReal.ofReal T :=
   by
@@ -86,14 +99,18 @@ protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = ENNReal
   rw [← positive_compacts.coe_top]
   simp [add_haar_measure_self, -positive_compacts.coe_top]
 #align add_circle.measure_univ AddCircle.measure_univ
+-/
 
 instance : IsAddHaarMeasure (volume : Measure (AddCircle T)) :=
   IsAddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
 
+#print AddCircle.isFiniteMeasure /-
 instance isFiniteMeasure : IsFiniteMeasure (volume : Measure (AddCircle T))
     where measure_univ_lt_top := by simp
 #align add_circle.is_finite_measure AddCircle.isFiniteMeasure
+-/
 
+#print AddCircle.measurePreserving_mk /-
 /-- The covering map from `ℝ` to the "additive circle" `ℝ ⧸ (ℤ ∙ T)` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass `T`)
 on the additive circle, and with respect to the restriction of Lebsegue measure on `ℝ` to an
@@ -104,7 +121,9 @@ protected theorem measurePreserving_mk (t : ℝ) :
     (⊤ : PositiveCompacts (AddCircle T)) (by simp) T.toNNReal
     (by simp [← ENNReal.ofReal_coe_nnreal, Real.coe_toNNReal T hT.out.le])
 #align add_circle.measure_preserving_mk AddCircle.measurePreserving_mk
+-/
 
+#print AddCircle.volume_closedBall /-
 theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     volume (Metric.closedBall x ε) = ENNReal.ofReal (min T (2 * ε)) :=
   by
@@ -129,6 +148,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
   · simp [hε, min_eq_right (by linarith : 2 * ε ≤ T)]
   · simp [hε, min_eq_left (by linarith : T ≤ 2 * ε)]
 #align add_circle.volume_closed_ball AddCircle.volume_closedBall
+-/
 
 instance : IsUnifLocDoublingMeasure (volume : Measure (AddCircle T)) :=
   by
@@ -139,6 +159,7 @@ instance : IsUnifLocDoublingMeasure (volume : Measure (AddCircle T)) :=
   rw [mul_min_of_nonneg _ _ (zero_le_two : (0 : ℝ) ≤ 2)]
   exact min_le_min (by linarith [hT.out]) (le_refl _)
 
+#print AddCircle.measurableEquivIoc /-
 /-- The isomorphism `add_circle T ≃ Ioc a (a + T)` whose inverse is the natural quotient map,
   as an equivalence of measurable spaces. -/
 noncomputable def measurableEquivIoc (a : ℝ) : AddCircle T ≃ᵐ Ioc a (a + T) :=
@@ -151,7 +172,9 @@ noncomputable def measurableEquivIoc (a : ℝ) : AddCircle T ≃ᵐ Ioc a (a + T
             ContinuousAt.continuousOn fun x hx => continuousAt_equivIoc T a hx).Measurable
     measurable_inv_fun := AddCircle.measurable_mk'.comp measurable_subtype_coe }
 #align add_circle.measurable_equiv_Ioc AddCircle.measurableEquivIoc
+-/
 
+#print AddCircle.measurableEquivIco /-
 /-- The isomorphism `add_circle T ≃ Ico a (a + T)` whose inverse is the natural quotient map,
   as an equivalence of measurable spaces. -/
 noncomputable def measurableEquivIco (a : ℝ) : AddCircle T ≃ᵐ Ico a (a + T) :=
@@ -164,7 +187,9 @@ noncomputable def measurableEquivIco (a : ℝ) : AddCircle T ≃ᵐ Ico a (a + T
             ContinuousAt.continuousOn fun x hx => continuousAt_equivIco T a hx).Measurable
     measurable_inv_fun := AddCircle.measurable_mk'.comp measurable_subtype_coe }
 #align add_circle.measurable_equiv_Ico AddCircle.measurableEquivIco
+-/
 
+#print AddCircle.lintegral_preimage /-
 /-- The lower integral of a function over `add_circle T` is equal to the lower integral over an
 interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞) :
@@ -187,9 +212,11 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
       map_comap_subtype_coe m]
     rfl
 #align add_circle.lintegral_preimage AddCircle.lintegral_preimage
+-/
 
 variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
 
+#print AddCircle.integral_preimage /-
 /-- The integral of an almost-everywhere strongly measurable function over `add_circle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
@@ -206,7 +233,9 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
     map_comap_subtype_coe m]
   rfl
 #align add_circle.integral_preimage AddCircle.integral_preimage
+-/
 
+#print AddCircle.intervalIntegral_preimage /-
 /-- The integral of an almost-everywhere strongly measurable function over `add_circle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem intervalIntegral_preimage (t : ℝ) (f : AddCircle T → E) :
@@ -215,6 +244,7 @@ protected theorem intervalIntegral_preimage (t : ℝ) (f : AddCircle T → E) :
   rw [integral_of_le, AddCircle.integral_preimage T t f]
   linarith [hT.out]
 #align add_circle.interval_integral_preimage AddCircle.intervalIntegral_preimage
+-/
 
 end AddCircle
 
@@ -222,18 +252,25 @@ namespace UnitAddCircle
 
 attribute [local instance] Real.fact_zero_lt_one
 
+#print UnitAddCircle.measureSpace /-
 noncomputable instance measureSpace : MeasureSpace UnitAddCircle :=
   AddCircle.measureSpace 1
 #align unit_add_circle.measure_space UnitAddCircle.measureSpace
+-/
 
+#print UnitAddCircle.measure_univ /-
 @[simp]
 protected theorem measure_univ : volume (Set.univ : Set UnitAddCircle) = 1 := by simp
 #align unit_add_circle.measure_univ UnitAddCircle.measure_univ
+-/
 
+#print UnitAddCircle.isFiniteMeasure /-
 instance isFiniteMeasure : IsFiniteMeasure (volume : Measure UnitAddCircle) :=
   AddCircle.isFiniteMeasure 1
 #align unit_add_circle.is_finite_measure UnitAddCircle.isFiniteMeasure
+-/
 
+#print UnitAddCircle.measurePreserving_mk /-
 /-- The covering map from `ℝ` to the "unit additive circle" `ℝ ⧸ ℤ` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass 1)
 on the additive circle, and with respect to the restriction of Lebsegue measure on `ℝ` to an
@@ -242,29 +279,36 @@ protected theorem measurePreserving_mk (t : ℝ) :
     MeasurePreserving (coe : ℝ → UnitAddCircle) (volume.restrict (Ioc t (t + 1))) :=
   AddCircle.measurePreserving_mk 1 t
 #align unit_add_circle.measure_preserving_mk UnitAddCircle.measurePreserving_mk
+-/
 
+#print UnitAddCircle.lintegral_preimage /-
 /-- The integral of a measurable function over `unit_add_circle` is equal to the integral over an
 interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem lintegral_preimage (t : ℝ) (f : UnitAddCircle → ℝ≥0∞) :
     ∫⁻ a in Ioc t (t + 1), f a = ∫⁻ b : UnitAddCircle, f b :=
   AddCircle.lintegral_preimage 1 t f
 #align unit_add_circle.lintegral_preimage UnitAddCircle.lintegral_preimage
+-/
 
 variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
 
+#print UnitAddCircle.integral_preimage /-
 /-- The integral of an almost-everywhere strongly measurable function over `unit_add_circle` is
 equal to the integral over an interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem integral_preimage (t : ℝ) (f : UnitAddCircle → E) :
     ∫ a in Ioc t (t + 1), f a = ∫ b : UnitAddCircle, f b :=
   AddCircle.integral_preimage 1 t f
 #align unit_add_circle.integral_preimage UnitAddCircle.integral_preimage
+-/
 
+#print UnitAddCircle.intervalIntegral_preimage /-
 /-- The integral of an almost-everywhere strongly measurable function over `unit_add_circle` is
 equal to the integral over an interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem intervalIntegral_preimage (t : ℝ) (f : UnitAddCircle → E) :
     ∫ a in t..t + 1, f a = ∫ b : UnitAddCircle, f b :=
   AddCircle.intervalIntegral_preimage 1 t f
 #align unit_add_circle.interval_integral_preimage UnitAddCircle.intervalIntegral_preimage
+-/
 
 end UnitAddCircle
 
@@ -276,6 +320,7 @@ namespace Periodic
 
 variable {f : ℝ → E} {T : ℝ}
 
+#print Function.Periodic.intervalIntegral_add_eq_of_pos /-
 /-- An auxiliary lemma for a more general `function.periodic.interval_integral_add_eq`. -/
 theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : ℝ) :
     ∫ x in t..t + T, f x = ∫ x in s..s + T, f x :=
@@ -287,7 +332,9 @@ theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : 
     (isAddFundamentalDomain_Ioc hT t).set_integral_eq (isAddFundamentalDomain_Ioc hT s)
       hf.map_vadd_zmultiples
 #align function.periodic.interval_integral_add_eq_of_pos Function.Periodic.intervalIntegral_add_eq_of_pos
+-/
 
+#print Function.Periodic.intervalIntegral_add_eq /-
 /-- If `f` is a periodic function with period `T`, then its integral over `[t, t + T]` does not
 depend on `t`. -/
 theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
@@ -300,7 +347,9 @@ theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
     simpa only [← sub_eq_add_neg, add_sub_cancel] using
       hf.neg.interval_integral_add_eq_of_pos (neg_pos.2 hT) (t + T) (s + T)
 #align function.periodic.interval_integral_add_eq Function.Periodic.intervalIntegral_add_eq
+-/
 
+#print Function.Periodic.intervalIntegral_add_eq_add /-
 /-- If `f` is an integrable periodic function with period `T`, then its integral over `[t, s + T]`
 is the sum of its integrals over the intervals `[t, s]` and `[t, t + T]`. -/
 theorem intervalIntegral_add_eq_add (hf : Periodic f T) (t s : ℝ)
@@ -308,7 +357,9 @@ theorem intervalIntegral_add_eq_add (hf : Periodic f T) (t s : ℝ)
     ∫ x in t..s + T, f x = (∫ x in t..s, f x) + ∫ x in t..t + T, f x := by
   rw [hf.interval_integral_add_eq t s, integral_add_adjacent_intervals (h_int t s) (h_int s _)]
 #align function.periodic.interval_integral_add_eq_add Function.Periodic.intervalIntegral_add_eq_add
+-/
 
+#print Function.Periodic.intervalIntegral_add_zsmul_eq /-
 /-- If `f` is an integrable periodic function with period `T`, and `n` is an integer, then its
 integral over `[t, t + n • T]` is `n` times its integral over `[t, t + T]`. -/
 theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
@@ -335,6 +386,7 @@ theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
     simp_rw [integral_comp_add_right, h₀, zero_add, this (n + 1), add_comm T,
       hf.interval_integral_add_eq ((n + 1) • T) 0, zero_add]
 #align function.periodic.interval_integral_add_zsmul_eq Function.Periodic.intervalIntegral_add_zsmul_eq
+-/
 
 section RealValued
 
@@ -344,6 +396,7 @@ variable {g : ℝ → ℝ}
 
 variable (hg : Periodic g T) (h_int : ∀ t₁ t₂, IntervalIntegrable g MeasureSpace.volume t₁ t₂)
 
+#print Function.Periodic.sInf_add_zsmul_le_integral_of_pos /-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0`, then for any `t : ℝ`, the function
 `t ↦ ∫ x in 0..t, g x` is bounded below by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
@@ -361,7 +414,9 @@ theorem sInf_add_zsmul_le_integral_of_pos (hT : 0 < T) (t : ℝ) :
     (continuous_primitive h_int 0).ContinuousOn.sInf_image_Icc_le
       (mem_Icc_of_Ico (Int.fract_div_mul_self_mem_Ico T t hT))
 #align function.periodic.Inf_add_zsmul_le_integral_of_pos Function.Periodic.sInf_add_zsmul_le_integral_of_pos
+-/
 
+#print Function.Periodic.integral_le_sSup_add_zsmul_of_pos /-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0`, then for any `t : ℝ`, the function
 `t ↦ ∫ x in 0..t, g x` is bounded above by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
@@ -379,7 +434,9 @@ theorem integral_le_sSup_add_zsmul_of_pos (hT : 0 < T) (t : ℝ) :
     (continuous_primitive h_int 0).ContinuousOn.le_sSup_image_Icc
       (mem_Icc_of_Ico (Int.fract_div_mul_self_mem_Ico T t hT))
 #align function.periodic.integral_le_Sup_add_zsmul_of_pos Function.Periodic.integral_le_sSup_add_zsmul_of_pos
+-/
 
+#print Function.Periodic.tendsto_atTop_intervalIntegral_of_pos /-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0` and `0 < ∫ x in 0..T, g x`, then
 `t ↦ ∫ x in 0..t, g x` tends to `∞` as `t` tends to `∞`. -/
 theorem tendsto_atTop_intervalIntegral_of_pos (h₀ : 0 < ∫ x in 0 ..T, g x) (hT : 0 < T) :
@@ -390,7 +447,9 @@ theorem tendsto_atTop_intervalIntegral_of_pos (h₀ : 0 < ∫ x in 0 ..T, g x) (
   apply tendsto.at_top_zsmul_const h₀
   exact tendsto_floor_at_top.comp (tendsto_id.at_top_mul_const (inv_pos.mpr hT))
 #align function.periodic.tendsto_at_top_interval_integral_of_pos Function.Periodic.tendsto_atTop_intervalIntegral_of_pos
+-/
 
+#print Function.Periodic.tendsto_atBot_intervalIntegral_of_pos /-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0` and `0 < ∫ x in 0..T, g x`, then
 `t ↦ ∫ x in 0..t, g x` tends to `-∞` as `t` tends to `-∞`. -/
 theorem tendsto_atBot_intervalIntegral_of_pos (h₀ : 0 < ∫ x in 0 ..T, g x) (hT : 0 < T) :
@@ -401,20 +460,25 @@ theorem tendsto_atBot_intervalIntegral_of_pos (h₀ : 0 < ∫ x in 0 ..T, g x) (
   apply tendsto.at_bot_zsmul_const h₀
   exact tendsto_floor_at_bot.comp (tendsto_id.at_bot_mul_const (inv_pos.mpr hT))
 #align function.periodic.tendsto_at_bot_interval_integral_of_pos Function.Periodic.tendsto_atBot_intervalIntegral_of_pos
+-/
 
+#print Function.Periodic.tendsto_atTop_intervalIntegral_of_pos' /-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0` and `∀ x, 0 < g x`, then `t ↦ ∫ x in 0..t, g x`
 tends to `∞` as `t` tends to `∞`. -/
 theorem tendsto_atTop_intervalIntegral_of_pos' (h₀ : ∀ x, 0 < g x) (hT : 0 < T) :
     Tendsto (fun t => ∫ x in 0 ..t, g x) atTop atTop :=
   hg.tendsto_atTop_intervalIntegral_of_pos h_int (intervalIntegral_pos_of_pos (h_int 0 T) h₀ hT) hT
 #align function.periodic.tendsto_at_top_interval_integral_of_pos' Function.Periodic.tendsto_atTop_intervalIntegral_of_pos'
+-/
 
+#print Function.Periodic.tendsto_atBot_intervalIntegral_of_pos' /-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0` and `∀ x, 0 < g x`, then `t ↦ ∫ x in 0..t, g x`
 tends to `-∞` as `t` tends to `-∞`. -/
 theorem tendsto_atBot_intervalIntegral_of_pos' (h₀ : ∀ x, 0 < g x) (hT : 0 < T) :
     Tendsto (fun t => ∫ x in 0 ..t, g x) atBot atBot :=
   hg.tendsto_atBot_intervalIntegral_of_pos h_int (intervalIntegral_pos_of_pos (h_int 0 T) h₀ hT) hT
 #align function.periodic.tendsto_at_bot_interval_integral_of_pos' Function.Periodic.tendsto_atBot_intervalIntegral_of_pos'
+-/
 
 end RealValued
 
Diff
@@ -39,7 +39,7 @@ noncomputable instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (Ad
 #align add_circle.measurable_space AddCircle.measurableSpace
 
 instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
-  quotientAddGroup.borelSpace
+  QuotientAddGroup.borelSpace
 #align add_circle.borel_space AddCircle.borelSpace
 
 @[measurability]
Diff
@@ -4,12 +4,13 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 
 ! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit fd5edc43dc4f10b85abfe544b88f82cf13c5f844
+! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
 import Mathbin.MeasureTheory.Measure.Lebesgue.EqHaar
 import Mathbin.MeasureTheory.Measure.Haar.Quotient
+import Mathbin.MeasureTheory.Constructions.Polish
 import Mathbin.MeasureTheory.Integral.IntervalIntegral
 import Mathbin.Topology.Algebra.Order.Floor
 
@@ -33,14 +34,12 @@ open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgro
 
 open scoped MeasureTheory NNReal ENNReal
 
-attribute [-instance] QuotientAddGroup.measurableSpace Quotient.instMeasurableSpace
-
 noncomputable instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (AddCircle a) :=
-  borel (AddCircle a)
+  QuotientAddGroup.measurableSpace _
 #align add_circle.measurable_space AddCircle.measurableSpace
 
 instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
-  ⟨rfl⟩
+  quotientAddGroup.borelSpace
 #align add_circle.borel_space AddCircle.borelSpace
 
 @[measurability]
Diff
@@ -74,8 +74,6 @@ namespace AddCircle
 
 variable (T : ℝ) [hT : Fact (0 < T)]
 
-include hT
-
 /-- Equip the "additive circle" `ℝ ⧸ (ℤ ∙ T)` with, as a standard measure, the Haar measure of total
 mass `T` -/
 noncomputable instance measureSpace : MeasureSpace (AddCircle T) :=
@@ -347,8 +345,6 @@ variable {g : ℝ → ℝ}
 
 variable (hg : Periodic g T) (h_int : ∀ t₁ t₂, IntervalIntegrable g MeasureSpace.volume t₁ t₂)
 
-include hg h_int
-
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0`, then for any `t : ℝ`, the function
 `t ↦ ∫ x in 0..t, g x` is bounded below by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
Diff
@@ -171,7 +171,7 @@ noncomputable def measurableEquivIco (a : ℝ) : AddCircle T ≃ᵐ Ico a (a + T
 /-- The lower integral of a function over `add_circle T` is equal to the lower integral over an
 interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞) :
-    (∫⁻ a in Ioc t (t + T), f a) = ∫⁻ b : AddCircle T, f b :=
+    ∫⁻ a in Ioc t (t + T), f a = ∫⁻ b : AddCircle T, f b :=
   by
   have m : MeasurableSet (Ioc t (t + T)) := measurableSet_Ioc
   have := lintegral_map_equiv f (measurable_equiv_Ioc T t).symm
@@ -196,7 +196,7 @@ variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace
 /-- The integral of an almost-everywhere strongly measurable function over `add_circle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
-    (∫ a in Ioc t (t + T), f a) = ∫ b : AddCircle T, f b :=
+    ∫ a in Ioc t (t + T), f a = ∫ b : AddCircle T, f b :=
   by
   have m : MeasurableSet (Ioc t (t + T)) := measurableSet_Ioc
   have := integral_map_equiv (measurable_equiv_Ioc T t).symm f
@@ -213,7 +213,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
 /-- The integral of an almost-everywhere strongly measurable function over `add_circle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem intervalIntegral_preimage (t : ℝ) (f : AddCircle T → E) :
-    (∫ a in t..t + T, f a) = ∫ b : AddCircle T, f b :=
+    ∫ a in t..t + T, f a = ∫ b : AddCircle T, f b :=
   by
   rw [integral_of_le, AddCircle.integral_preimage T t f]
   linarith [hT.out]
@@ -249,7 +249,7 @@ protected theorem measurePreserving_mk (t : ℝ) :
 /-- The integral of a measurable function over `unit_add_circle` is equal to the integral over an
 interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem lintegral_preimage (t : ℝ) (f : UnitAddCircle → ℝ≥0∞) :
-    (∫⁻ a in Ioc t (t + 1), f a) = ∫⁻ b : UnitAddCircle, f b :=
+    ∫⁻ a in Ioc t (t + 1), f a = ∫⁻ b : UnitAddCircle, f b :=
   AddCircle.lintegral_preimage 1 t f
 #align unit_add_circle.lintegral_preimage UnitAddCircle.lintegral_preimage
 
@@ -258,14 +258,14 @@ variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace
 /-- The integral of an almost-everywhere strongly measurable function over `unit_add_circle` is
 equal to the integral over an interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem integral_preimage (t : ℝ) (f : UnitAddCircle → E) :
-    (∫ a in Ioc t (t + 1), f a) = ∫ b : UnitAddCircle, f b :=
+    ∫ a in Ioc t (t + 1), f a = ∫ b : UnitAddCircle, f b :=
   AddCircle.integral_preimage 1 t f
 #align unit_add_circle.integral_preimage UnitAddCircle.integral_preimage
 
 /-- The integral of an almost-everywhere strongly measurable function over `unit_add_circle` is
 equal to the integral over an interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem intervalIntegral_preimage (t : ℝ) (f : UnitAddCircle → E) :
-    (∫ a in t..t + 1, f a) = ∫ b : UnitAddCircle, f b :=
+    ∫ a in t..t + 1, f a = ∫ b : UnitAddCircle, f b :=
   AddCircle.intervalIntegral_preimage 1 t f
 #align unit_add_circle.interval_integral_preimage UnitAddCircle.intervalIntegral_preimage
 
@@ -281,7 +281,7 @@ variable {f : ℝ → E} {T : ℝ}
 
 /-- An auxiliary lemma for a more general `function.periodic.interval_integral_add_eq`. -/
 theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : ℝ) :
-    (∫ x in t..t + T, f x) = ∫ x in s..s + T, f x :=
+    ∫ x in t..t + T, f x = ∫ x in s..s + T, f x :=
   by
   simp only [integral_of_le, hT.le, le_add_iff_nonneg_right]
   haveI : vadd_invariant_measure (AddSubgroup.zmultiples T) ℝ volume :=
@@ -294,7 +294,7 @@ theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : 
 /-- If `f` is a periodic function with period `T`, then its integral over `[t, t + T]` does not
 depend on `t`. -/
 theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
-    (∫ x in t..t + T, f x) = ∫ x in s..s + T, f x :=
+    ∫ x in t..t + T, f x = ∫ x in s..s + T, f x :=
   by
   rcases lt_trichotomy 0 T with (hT | rfl | hT)
   · exact hf.interval_integral_add_eq_of_pos hT t s
@@ -308,7 +308,7 @@ theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
 is the sum of its integrals over the intervals `[t, s]` and `[t, t + T]`. -/
 theorem intervalIntegral_add_eq_add (hf : Periodic f T) (t s : ℝ)
     (h_int : ∀ t₁ t₂, IntervalIntegrable f MeasureSpace.volume t₁ t₂) :
-    (∫ x in t..s + T, f x) = (∫ x in t..s, f x) + ∫ x in t..t + T, f x := by
+    ∫ x in t..s + T, f x = (∫ x in t..s, f x) + ∫ x in t..t + T, f x := by
   rw [hf.interval_integral_add_eq t s, integral_add_adjacent_intervals (h_int t s) (h_int s _)]
 #align function.periodic.interval_integral_add_eq_add Function.Periodic.intervalIntegral_add_eq_add
 
@@ -316,14 +316,14 @@ theorem intervalIntegral_add_eq_add (hf : Periodic f T) (t s : ℝ)
 integral over `[t, t + n • T]` is `n` times its integral over `[t, t + T]`. -/
 theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
     (h_int : ∀ t₁ t₂, IntervalIntegrable f MeasureSpace.volume t₁ t₂) :
-    (∫ x in t..t + n • T, f x) = n • ∫ x in t..t + T, f x :=
+    ∫ x in t..t + n • T, f x = n • ∫ x in t..t + T, f x :=
   by
   -- Reduce to the case `b = 0`
-  suffices (∫ x in 0 ..n • T, f x) = n • ∫ x in 0 ..T, f x by
+  suffices ∫ x in 0 ..n • T, f x = n • ∫ x in 0 ..T, f x by
     simp only [hf.interval_integral_add_eq t 0, (hf.zsmul n).intervalIntegral_add_eq t 0, zero_add,
       this]
   -- First prove it for natural numbers
-  have : ∀ m : ℕ, (∫ x in 0 ..m • T, f x) = m • ∫ x in 0 ..T, f x :=
+  have : ∀ m : ℕ, ∫ x in 0 ..m • T, f x = m • ∫ x in 0 ..T, f x :=
     by
     intros
     induction' m with m ih
@@ -353,7 +353,7 @@ include hg h_int
 `t ↦ ∫ x in 0..t, g x` is bounded below by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
 theorem sInf_add_zsmul_le_integral_of_pos (hT : 0 < T) (t : ℝ) :
-    (sInf ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x) ≤
+    sInf ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x ≤
       ∫ x in 0 ..t, g x :=
   by
   let ε := Int.fract (t / T) * T
@@ -371,7 +371,7 @@ theorem sInf_add_zsmul_le_integral_of_pos (hT : 0 < T) (t : ℝ) :
 `t ↦ ∫ x in 0..t, g x` is bounded above by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
 theorem integral_le_sSup_add_zsmul_of_pos (hT : 0 < T) (t : ℝ) :
-    (∫ x in 0 ..t, g x) ≤
+    ∫ x in 0 ..t, g x ≤
       sSup ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x :=
   by
   let ε := Int.fract (t / T) * T
Diff
@@ -90,12 +90,12 @@ protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = ENNReal
   simp [add_haar_measure_self, -positive_compacts.coe_top]
 #align add_circle.measure_univ AddCircle.measure_univ
 
-instance : AddHaarMeasure (volume : Measure (AddCircle T)) :=
-  AddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
+instance : IsAddHaarMeasure (volume : Measure (AddCircle T)) :=
+  IsAddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
 
-instance finiteMeasure : FiniteMeasure (volume : Measure (AddCircle T))
+instance isFiniteMeasure : IsFiniteMeasure (volume : Measure (AddCircle T))
     where measure_univ_lt_top := by simp
-#align add_circle.is_finite_measure AddCircle.finiteMeasure
+#align add_circle.is_finite_measure AddCircle.isFiniteMeasure
 
 /-- The covering map from `ℝ` to the "additive circle" `ℝ ⧸ (ℤ ∙ T)` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass `T`)
@@ -233,9 +233,9 @@ noncomputable instance measureSpace : MeasureSpace UnitAddCircle :=
 protected theorem measure_univ : volume (Set.univ : Set UnitAddCircle) = 1 := by simp
 #align unit_add_circle.measure_univ UnitAddCircle.measure_univ
 
-instance finiteMeasure : FiniteMeasure (volume : Measure UnitAddCircle) :=
-  AddCircle.finiteMeasure 1
-#align unit_add_circle.is_finite_measure UnitAddCircle.finiteMeasure
+instance isFiniteMeasure : IsFiniteMeasure (volume : Measure UnitAddCircle) :=
+  AddCircle.isFiniteMeasure 1
+#align unit_add_circle.is_finite_measure UnitAddCircle.isFiniteMeasure
 
 /-- The covering map from `ℝ` to the "unit additive circle" `ℝ ⧸ ℤ` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass 1)
Diff
@@ -177,7 +177,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
   have := lintegral_map_equiv f (measurable_equiv_Ioc T t).symm
   swap; exact volume
   simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
-    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this
+    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this 
   rw [← (AddCircle.measurePreserving_mk T t).map_eq]
   convert this.symm using 1
   -- TODO : there is no "set_lintegral_eq_subtype"?
@@ -201,7 +201,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
   have m : MeasurableSet (Ioc t (t + T)) := measurableSet_Ioc
   have := integral_map_equiv (measurable_equiv_Ioc T t).symm f
   simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
-    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this
+    MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this 
   rw [← (AddCircle.measurePreserving_mk T t).map_eq, set_integral_eq_subtype m, ← this]
   have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) := by ext1 x;
     rfl
Diff
@@ -90,8 +90,8 @@ protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = ENNReal
   simp [add_haar_measure_self, -positive_compacts.coe_top]
 #align add_circle.measure_univ AddCircle.measure_univ
 
-instance : IsAddHaarMeasure (volume : Measure (AddCircle T)) :=
-  IsAddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
+instance : AddHaarMeasure (volume : Measure (AddCircle T)) :=
+  AddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
 
 instance finiteMeasure : FiniteMeasure (volume : Measure (AddCircle T))
     where measure_univ_lt_top := by simp
Diff
@@ -31,7 +31,7 @@ period `T`.
 
 open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgroup intervalIntegral
 
-open MeasureTheory NNReal ENNReal
+open scoped MeasureTheory NNReal ENNReal
 
 attribute [-instance] QuotientAddGroup.measurableSpace Quotient.instMeasurableSpace
 
Diff
@@ -117,8 +117,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     by
     intro hε
     rw [inter_eq_left_iff_subset, Real.closedBall_eq_Icc, zero_sub, zero_add]
-    rintro y ⟨hy₁, hy₂⟩
-    constructor <;> linarith
+    rintro y ⟨hy₁, hy₂⟩; constructor <;> linarith
   have h₂ :
     coe ⁻¹' Metric.closedBall (0 : AddCircle T) ε ∩ I =
       if ε < T / 2 then Metric.closedBall (0 : ℝ) ε else I :=
@@ -185,10 +184,8 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
   · rw [← map_comap_subtype_coe m _]
     exact MeasurableEmbedding.lintegral_map (MeasurableEmbedding.subtype_coe m) _
   · congr 1
-    have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) :=
-      by
-      ext1 x
-      rfl
+    have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) := by
+      ext1 x; rfl
     simp_rw [this, ← map_map AddCircle.measurable_mk' measurable_subtype_coe, ←
       map_comap_subtype_coe m]
     rfl
@@ -206,9 +203,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
   simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
     MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this
   rw [← (AddCircle.measurePreserving_mk T t).map_eq, set_integral_eq_subtype m, ← this]
-  have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) :=
-    by
-    ext1 x
+  have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) := by ext1 x;
     rfl
   simp_rw [this, ← map_map AddCircle.measurable_mk' measurable_subtype_coe, ←
     map_comap_subtype_coe m]
@@ -338,10 +333,7 @@ theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
   cases' n with n n
   · simp [← this n]
   · conv_rhs => rw [negSucc_zsmul]
-    have h₀ : Int.negSucc n • T + (n + 1) • T = 0 :=
-      by
-      simp
-      linarith
+    have h₀ : Int.negSucc n • T + (n + 1) • T = 0 := by simp; linarith
     rw [integral_symm, ← (hf.nsmul (n + 1)).funext, neg_inj]
     simp_rw [integral_comp_add_right, h₀, zero_add, this (n + 1), add_comm T,
       hf.interval_integral_add_eq ((n + 1) • T) 0, zero_add]
Diff
@@ -4,12 +4,12 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 
 ! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf
+! leanprover-community/mathlib commit fd5edc43dc4f10b85abfe544b88f82cf13c5f844
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
-import Mathbin.MeasureTheory.Measure.HaarLebesgue
-import Mathbin.MeasureTheory.Measure.HaarQuotient
+import Mathbin.MeasureTheory.Measure.Lebesgue.EqHaar
+import Mathbin.MeasureTheory.Measure.Haar.Quotient
 import Mathbin.MeasureTheory.Integral.IntervalIntegral
 import Mathbin.Topology.Algebra.Order.Floor
 
Diff
@@ -177,7 +177,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
   have m : MeasurableSet (Ioc t (t + T)) := measurableSet_Ioc
   have := lintegral_map_equiv f (measurable_equiv_Ioc T t).symm
   swap; exact volume
-  simp only [measurable_equiv_Ioc, equiv_Ioc, quotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
+  simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
     MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this
   rw [← (AddCircle.measurePreserving_mk T t).map_eq]
   convert this.symm using 1
@@ -203,7 +203,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
   by
   have m : MeasurableSet (Ioc t (t + T)) := measurableSet_Ioc
   have := integral_map_equiv (measurable_equiv_Ioc T t).symm f
-  simp only [measurable_equiv_Ioc, equiv_Ioc, quotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
+  simp only [measurable_equiv_Ioc, equiv_Ioc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
     MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this
   rw [← (AddCircle.measurePreserving_mk T t).map_eq, set_integral_eq_subtype m, ← this]
   have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 
 ! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
+! leanprover-community/mathlib commit bf6a01357ff5684b1ebcd0f1a13be314fc82c0bf
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -35,6 +35,19 @@ open MeasureTheory NNReal ENNReal
 
 attribute [-instance] QuotientAddGroup.measurableSpace Quotient.instMeasurableSpace
 
+noncomputable instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (AddCircle a) :=
+  borel (AddCircle a)
+#align add_circle.measurable_space AddCircle.measurableSpace
+
+instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
+  ⟨rfl⟩
+#align add_circle.borel_space AddCircle.borelSpace
+
+@[measurability]
+protected theorem AddCircle.measurable_mk' {a : ℝ} : Measurable (coe : ℝ → AddCircle a) :=
+  Continuous.measurable <| AddCircle.continuous_mk' a
+#align add_circle.measurable_mk' AddCircle.measurable_mk'
+
 theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
     IsAddFundamentalDomain (AddSubgroup.zmultiples T) (Ioc t (t + T)) μ :=
Diff
@@ -347,8 +347,8 @@ include hg h_int
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0`, then for any `t : ℝ`, the function
 `t ↦ ∫ x in 0..t, g x` is bounded below by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
-theorem infₛ_add_zsmul_le_integral_of_pos (hT : 0 < T) (t : ℝ) :
-    (infₛ ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x) ≤
+theorem sInf_add_zsmul_le_integral_of_pos (hT : 0 < T) (t : ℝ) :
+    (sInf ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x) ≤
       ∫ x in 0 ..t, g x :=
   by
   let ε := Int.fract (t / T) * T
@@ -358,16 +358,16 @@ theorem infₛ_add_zsmul_le_integral_of_pos (hT : 0 < T) (t : ℝ) :
   rw [hg.interval_integral_add_zsmul_eq ⌊t / T⌋ ε h_int, hg.interval_integral_add_eq ε 0, zero_add,
     add_le_add_iff_right]
   exact
-    (continuous_primitive h_int 0).ContinuousOn.infₛ_image_Icc_le
+    (continuous_primitive h_int 0).ContinuousOn.sInf_image_Icc_le
       (mem_Icc_of_Ico (Int.fract_div_mul_self_mem_Ico T t hT))
-#align function.periodic.Inf_add_zsmul_le_integral_of_pos Function.Periodic.infₛ_add_zsmul_le_integral_of_pos
+#align function.periodic.Inf_add_zsmul_le_integral_of_pos Function.Periodic.sInf_add_zsmul_le_integral_of_pos
 
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0`, then for any `t : ℝ`, the function
 `t ↦ ∫ x in 0..t, g x` is bounded above by `t ↦ X + ⌊t/T⌋ • Y` for appropriate constants `X` and
 `Y`. -/
-theorem integral_le_supₛ_add_zsmul_of_pos (hT : 0 < T) (t : ℝ) :
+theorem integral_le_sSup_add_zsmul_of_pos (hT : 0 < T) (t : ℝ) :
     (∫ x in 0 ..t, g x) ≤
-      supₛ ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x :=
+      sSup ((fun t => ∫ x in 0 ..t, g x) '' Icc 0 T) + ⌊t / T⌋ • ∫ x in 0 ..T, g x :=
   by
   let ε := Int.fract (t / T) * T
   conv_lhs =>
@@ -376,9 +376,9 @@ theorem integral_le_supₛ_add_zsmul_of_pos (hT : 0 < T) (t : ℝ) :
   rw [hg.interval_integral_add_zsmul_eq ⌊t / T⌋ ε h_int, hg.interval_integral_add_eq ε 0, zero_add,
     add_le_add_iff_right]
   exact
-    (continuous_primitive h_int 0).ContinuousOn.le_supₛ_image_Icc
+    (continuous_primitive h_int 0).ContinuousOn.le_sSup_image_Icc
       (mem_Icc_of_Ico (Int.fract_div_mul_self_mem_Ico T t hT))
-#align function.periodic.integral_le_Sup_add_zsmul_of_pos Function.Periodic.integral_le_supₛ_add_zsmul_of_pos
+#align function.periodic.integral_le_Sup_add_zsmul_of_pos Function.Periodic.integral_le_sSup_add_zsmul_of_pos
 
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0` and `0 < ∫ x in 0..T, g x`, then
 `t ↦ ∫ x in 0..t, g x` tends to `∞` as `t` tends to `∞`. -/
Diff
@@ -33,7 +33,7 @@ open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgro
 
 open MeasureTheory NNReal ENNReal
 
-attribute [-instance] QuotientAddGroup.measurableSpace Quotient.measurableSpace
+attribute [-instance] QuotientAddGroup.measurableSpace Quotient.instMeasurableSpace
 
 theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
@@ -80,9 +80,9 @@ protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = ENNReal
 instance : IsAddHaarMeasure (volume : Measure (AddCircle T)) :=
   IsAddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
 
-instance isFiniteMeasure : IsFiniteMeasure (volume : Measure (AddCircle T))
+instance finiteMeasure : FiniteMeasure (volume : Measure (AddCircle T))
     where measure_univ_lt_top := by simp
-#align add_circle.is_finite_measure AddCircle.isFiniteMeasure
+#align add_circle.is_finite_measure AddCircle.finiteMeasure
 
 /-- The covering map from `ℝ` to the "additive circle" `ℝ ⧸ (ℤ ∙ T)` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass `T`)
@@ -225,9 +225,9 @@ noncomputable instance measureSpace : MeasureSpace UnitAddCircle :=
 protected theorem measure_univ : volume (Set.univ : Set UnitAddCircle) = 1 := by simp
 #align unit_add_circle.measure_univ UnitAddCircle.measure_univ
 
-instance isFiniteMeasure : IsFiniteMeasure (volume : Measure UnitAddCircle) :=
-  AddCircle.isFiniteMeasure 1
-#align unit_add_circle.is_finite_measure UnitAddCircle.isFiniteMeasure
+instance finiteMeasure : FiniteMeasure (volume : Measure UnitAddCircle) :=
+  AddCircle.finiteMeasure 1
+#align unit_add_circle.is_finite_measure UnitAddCircle.finiteMeasure
 
 /-- The covering map from `ℝ` to the "unit additive circle" `ℝ ⧸ ℤ` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass 1)
Diff
@@ -4,10 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 
 ! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit 5f6e827d81dfbeb6151d7016586ceeb0099b9655
+! leanprover-community/mathlib commit f0c8bf9245297a541f468be517f1bde6195105e9
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
+import Mathbin.MeasureTheory.Measure.HaarLebesgue
 import Mathbin.MeasureTheory.Measure.HaarQuotient
 import Mathbin.MeasureTheory.Integral.IntervalIntegral
 import Mathbin.Topology.Algebra.Order.Floor
Diff
@@ -34,7 +34,7 @@ open MeasureTheory NNReal ENNReal
 
 attribute [-instance] QuotientAddGroup.measurableSpace Quotient.measurableSpace
 
-theorem isAddFundamentalDomainIoc {T : ℝ} (hT : 0 < T) (t : ℝ)
+theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
     IsAddFundamentalDomain (AddSubgroup.zmultiples T) (Ioc t (t + T)) μ :=
   by
@@ -43,9 +43,9 @@ theorem isAddFundamentalDomainIoc {T : ℝ} (hT : 0 < T) (t : ℝ)
     (Equiv.ofInjective (fun n : ℤ => n • T) (zsmul_strictMono_left hT).Injective).Bijective
   refine' this.exists_unique_iff.2 _
   simpa only [add_comm x] using existsUnique_add_zsmul_mem_Ioc hT x t
-#align is_add_fundamental_domain_Ioc isAddFundamentalDomainIoc
+#align is_add_fundamental_domain_Ioc isAddFundamentalDomain_Ioc
 
-theorem isAddFundamentalDomainIoc' {T : ℝ} (hT : 0 < T) (t : ℝ)
+theorem isAddFundamentalDomain_Ioc' {T : ℝ} (hT : 0 < T) (t : ℝ)
     (μ : Measure ℝ := by exact MeasureTheory.MeasureSpace.volume) :
     IsAddFundamentalDomain (AddSubgroup.zmultiples T).opposite (Ioc t (t + T)) μ :=
   by
@@ -54,7 +54,7 @@ theorem isAddFundamentalDomainIoc' {T : ℝ} (hT : 0 < T) (t : ℝ)
     (Equiv.ofInjective (fun n : ℤ => n • T) (zsmul_strictMono_left hT).Injective).Bijective
   refine' this.exists_unique_iff.2 _
   simpa using existsUnique_add_zsmul_mem_Ioc hT x t
-#align is_add_fundamental_domain_Ioc' isAddFundamentalDomainIoc'
+#align is_add_fundamental_domain_Ioc' isAddFundamentalDomain_Ioc'
 
 namespace AddCircle
 
@@ -65,7 +65,7 @@ include hT
 /-- Equip the "additive circle" `ℝ ⧸ (ℤ ∙ T)` with, as a standard measure, the Haar measure of total
 mass `T` -/
 noncomputable instance measureSpace : MeasureSpace (AddCircle T) :=
-  { AddCircle.measurableSpace with volume := ENNReal.ofReal T • add_haar_measure ⊤ }
+  { AddCircle.measurableSpace with volume := ENNReal.ofReal T • addHaarMeasure ⊤ }
 #align add_circle.measure_space AddCircle.measureSpace
 
 @[simp]
@@ -87,12 +87,12 @@ instance isFiniteMeasure : IsFiniteMeasure (volume : Measure (AddCircle T))
 considered with respect to the standard measure (defined to be the Haar measure of total mass `T`)
 on the additive circle, and with respect to the restriction of Lebsegue measure on `ℝ` to an
 interval (t, t + T]. -/
-protected theorem measurePreservingMk (t : ℝ) :
+protected theorem measurePreserving_mk (t : ℝ) :
     MeasurePreserving (coe : ℝ → AddCircle T) (volume.restrict (Ioc t (t + T))) :=
-  MeasurePreservingQuotientAddGroup.mk' (isAddFundamentalDomainIoc' hT.out t)
+  MeasurePreservingQuotientAddGroup.mk' (isAddFundamentalDomain_Ioc' hT.out t)
     (⊤ : PositiveCompacts (AddCircle T)) (by simp) T.toNNReal
     (by simp [← ENNReal.ofReal_coe_nnreal, Real.coe_toNNReal T hT.out.le])
-#align add_circle.measure_preserving_mk AddCircle.measurePreservingMk
+#align add_circle.measure_preserving_mk AddCircle.measurePreserving_mk
 
 theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     volume (Metric.closedBall x ε) = ENNReal.ofReal (min T (2 * ε)) :=
@@ -114,7 +114,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     simpa only [hT', Real.closedBall_eq_Icc, zero_add, zero_sub] using Ioc_subset_Icc_self
   rw [add_haar_closed_ball_center]
   simp only [restrict_apply' measurableSet_Ioc, (by linarith : -(T / 2) + T = T / 2), h₂, ←
-    (AddCircle.measurePreservingMk T (-(T / 2))).measure_preimage measurableSet_closedBall]
+    (AddCircle.measurePreserving_mk T (-(T / 2))).measure_preimage measurableSet_closedBall]
   by_cases hε : ε < T / 2
   · simp [hε, min_eq_right (by linarith : 2 * ε ≤ T)]
   · simp [hε, min_eq_left (by linarith : T ≤ 2 * ε)]
@@ -165,7 +165,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
   swap; exact volume
   simp only [measurable_equiv_Ioc, equiv_Ioc, quotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
     MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this
-  rw [← (AddCircle.measurePreservingMk T t).map_eq]
+  rw [← (AddCircle.measurePreserving_mk T t).map_eq]
   convert this.symm using 1
   -- TODO : there is no "set_lintegral_eq_subtype"?
   · rw [← map_comap_subtype_coe m _]
@@ -191,7 +191,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
   have := integral_map_equiv (measurable_equiv_Ioc T t).symm f
   simp only [measurable_equiv_Ioc, equiv_Ioc, quotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
     MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk, coe_coe] at this
-  rw [← (AddCircle.measurePreservingMk T t).map_eq, set_integral_eq_subtype m, ← this]
+  rw [← (AddCircle.measurePreserving_mk T t).map_eq, set_integral_eq_subtype m, ← this]
   have : (coe : Ioc t (t + T) → AddCircle T) = (coe : ℝ → AddCircle T) ∘ (coe : _ → ℝ) :=
     by
     ext1 x
@@ -232,10 +232,10 @@ instance isFiniteMeasure : IsFiniteMeasure (volume : Measure UnitAddCircle) :=
 considered with respect to the standard measure (defined to be the Haar measure of total mass 1)
 on the additive circle, and with respect to the restriction of Lebsegue measure on `ℝ` to an
 interval (t, t + 1]. -/
-protected theorem measurePreservingMk (t : ℝ) :
+protected theorem measurePreserving_mk (t : ℝ) :
     MeasurePreserving (coe : ℝ → UnitAddCircle) (volume.restrict (Ioc t (t + 1))) :=
-  AddCircle.measurePreservingMk 1 t
-#align unit_add_circle.measure_preserving_mk UnitAddCircle.measurePreservingMk
+  AddCircle.measurePreserving_mk 1 t
+#align unit_add_circle.measure_preserving_mk UnitAddCircle.measurePreserving_mk
 
 /-- The integral of a measurable function over `unit_add_circle` is equal to the integral over an
 interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
@@ -278,7 +278,7 @@ theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : 
   haveI : vadd_invariant_measure (AddSubgroup.zmultiples T) ℝ volume :=
     ⟨fun c s hs => measure_preimage_add _ _ _⟩
   exact
-    (isAddFundamentalDomainIoc hT t).set_integral_eq (isAddFundamentalDomainIoc hT s)
+    (isAddFundamentalDomain_Ioc hT t).set_integral_eq (isAddFundamentalDomain_Ioc hT s)
       hf.map_vadd_zmultiples
 #align function.periodic.interval_integral_add_eq_of_pos Function.Periodic.intervalIntegral_add_eq_of_pos
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
 
 ! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit 6a033cb3d188a12ca5c509b33e2eaac1c61916cd
+! leanprover-community/mathlib commit 5f6e827d81dfbeb6151d7016586ceeb0099b9655
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -120,7 +120,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
   · simp [hε, min_eq_left (by linarith : T ≤ 2 * ε)]
 #align add_circle.volume_closed_ball AddCircle.volume_closedBall
 
-instance : IsDoublingMeasure (volume : Measure (AddCircle T)) :=
+instance : IsUnifLocDoublingMeasure (volume : Measure (AddCircle T)) :=
   by
   refine' ⟨⟨Real.toNNReal 2, Filter.eventually_of_forall fun ε x => _⟩⟩
   simp only [volume_closed_ball]
Diff
@@ -30,7 +30,7 @@ period `T`.
 
 open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgroup intervalIntegral
 
-open MeasureTheory NNReal Ennreal
+open MeasureTheory NNReal ENNReal
 
 attribute [-instance] QuotientAddGroup.measurableSpace Quotient.measurableSpace
 
@@ -65,11 +65,11 @@ include hT
 /-- Equip the "additive circle" `ℝ ⧸ (ℤ ∙ T)` with, as a standard measure, the Haar measure of total
 mass `T` -/
 noncomputable instance measureSpace : MeasureSpace (AddCircle T) :=
-  { AddCircle.measurableSpace with volume := Ennreal.ofReal T • add_haar_measure ⊤ }
+  { AddCircle.measurableSpace with volume := ENNReal.ofReal T • add_haar_measure ⊤ }
 #align add_circle.measure_space AddCircle.measureSpace
 
 @[simp]
-protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = Ennreal.ofReal T :=
+protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = ENNReal.ofReal T :=
   by
   dsimp [volume]
   rw [← positive_compacts.coe_top]
@@ -77,7 +77,7 @@ protected theorem measure_univ : volume (Set.univ : Set (AddCircle T)) = Ennreal
 #align add_circle.measure_univ AddCircle.measure_univ
 
 instance : IsAddHaarMeasure (volume : Measure (AddCircle T)) :=
-  IsAddHaarMeasure.smul _ (by simp [hT.out]) Ennreal.ofReal_ne_top
+  IsAddHaarMeasure.smul _ (by simp [hT.out]) ENNReal.ofReal_ne_top
 
 instance isFiniteMeasure : IsFiniteMeasure (volume : Measure (AddCircle T))
     where measure_univ_lt_top := by simp
@@ -91,11 +91,11 @@ protected theorem measurePreservingMk (t : ℝ) :
     MeasurePreserving (coe : ℝ → AddCircle T) (volume.restrict (Ioc t (t + T))) :=
   MeasurePreservingQuotientAddGroup.mk' (isAddFundamentalDomainIoc' hT.out t)
     (⊤ : PositiveCompacts (AddCircle T)) (by simp) T.toNNReal
-    (by simp [← Ennreal.ofReal_coe_nNReal, Real.coe_toNNReal T hT.out.le])
+    (by simp [← ENNReal.ofReal_coe_nnreal, Real.coe_toNNReal T hT.out.le])
 #align add_circle.measure_preserving_mk AddCircle.measurePreservingMk
 
 theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
-    volume (Metric.closedBall x ε) = Ennreal.ofReal (min T (2 * ε)) :=
+    volume (Metric.closedBall x ε) = ENNReal.ofReal (min T (2 * ε)) :=
   by
   have hT' : |T| = T := abs_eq_self.mpr hT.out.le
   let I := Ioc (-(T / 2)) (T / 2)
@@ -124,8 +124,8 @@ instance : IsDoublingMeasure (volume : Measure (AddCircle T)) :=
   by
   refine' ⟨⟨Real.toNNReal 2, Filter.eventually_of_forall fun ε x => _⟩⟩
   simp only [volume_closed_ball]
-  erw [← Ennreal.ofReal_mul zero_le_two]
-  apply Ennreal.ofReal_le_ofReal
+  erw [← ENNReal.ofReal_mul zero_le_two]
+  apply ENNReal.ofReal_le_ofReal
   rw [mul_min_of_nonneg _ _ (zero_le_two : (0 : ℝ) ≤ 2)]
   exact min_le_min (by linarith [hT.out]) (le_refl _)
 

Changes in mathlib4

mathlib3
mathlib4
chore: replace set_integral with setIntegral (#12215)

Done with a global search and replace, and then (to fix the #align lines), replace (#align \S*)setIntegral with $1set_integral.

Diff
@@ -256,7 +256,7 @@ theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : 
   simp only [integral_of_le, hT.le, le_add_iff_nonneg_right]
   haveI : VAddInvariantMeasure (AddSubgroup.zmultiples T) ℝ volume :=
     ⟨fun c s _ => measure_preimage_add _ _ _⟩
-  apply IsAddFundamentalDomain.set_integral_eq (G := AddSubgroup.zmultiples T)
+  apply IsAddFundamentalDomain.setIntegral_eq (G := AddSubgroup.zmultiples T)
   exacts [isAddFundamentalDomain_Ioc hT t, isAddFundamentalDomain_Ioc hT s, hf.map_vadd_zmultiples]
 #align function.periodic.interval_integral_add_eq_of_pos Function.Periodic.intervalIntegral_add_eq_of_pos
 
refactor: typeclasses for measures on quotient spaces and groups (#7506)

We introduce a new typeclass QuotientMeasureEqMeasurePreimage which expresses a relationship between a measure on a space and a measure on its quotient under a discrete group action. Namely, the volume of a measurable set in the quotient is equal to the volume of its preimage, intersected with any fundamental domain.

Our main application is in the context of a discrete normal subgroup of a topological group acting on the group itself, so as to compare Haar measures on a group and its quotient. Before this typeclass, you could have Haar measure upstairs and downstairs and you would have ugly scaling factors if you wanted to compare the two. This typeclass more accurately reflects what is needed in order to have a clear relationship between the upstairs and downstairs measures.

Two big theorems (proved under various technical assumptions, like finiteness of the volume - which shouldn't be necessary):

(1) if you're Haar upstairs and satisfy QuotientMeasureEqMeasurePreimage, then you're Haar downstairs.

And conversely (2): if you're Haar upstairs and downstairs, and scale correctly on a single measurable set, then you satisfy QuotientMeasureEqMeasurePreimage.

Contains the forward-port of https://github.com/leanprover-community/mathlib/pull/18863

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

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

Diff
@@ -79,20 +79,29 @@ instance isFiniteMeasure : IsFiniteMeasure (volume : Measure (AddCircle T)) wher
   measure_univ_lt_top := by simp
 #align add_circle.is_finite_measure AddCircle.isFiniteMeasure
 
+instance : HasAddFundamentalDomain (AddSubgroup.op <| .zmultiples T) ℝ where
+  ExistsIsAddFundamentalDomain := ⟨Ioc 0 (0 + T), isAddFundamentalDomain_Ioc' Fact.out 0⟩
+
+instance : AddQuotientMeasureEqMeasurePreimage volume (volume : Measure (AddCircle T)) := by
+  apply MeasureTheory.leftInvariantIsAddQuotientMeasureEqMeasurePreimage
+  simp [(isAddFundamentalDomain_Ioc' hT.out 0).covolume_eq_volume, AddCircle.measure_univ]
+
 /-- The covering map from `ℝ` to the "additive circle" `ℝ ⧸ (ℤ ∙ T)` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass `T`)
 on the additive circle, and with respect to the restriction of Lebsegue measure on `ℝ` to an
 interval (t, t + T]. -/
 protected theorem measurePreserving_mk (t : ℝ) :
     MeasurePreserving (β := AddCircle T) ((↑) : ℝ → AddCircle T)
-      (volume.restrict (Ioc t (t + T))) := by
-  apply MeasurePreservingQuotientAddGroup.mk'
-  · exact isAddFundamentalDomain_Ioc' hT.out t
-  · simp
-  · haveI : CompactSpace (ℝ ⧸ zmultiples T) := inferInstanceAs (CompactSpace (AddCircle T))
-    simp [← ENNReal.ofReal_coe_nnreal, Real.coe_toNNReal T hT.out.le, -Real.coe_toNNReal']
+      (volume.restrict (Ioc t (t + T))) :=
+  measurePreserving_quotientAddGroup_mk_of_AddQuotientMeasureEqMeasurePreimage
+    volume (𝓕 := Ioc t (t+T)) (isAddFundamentalDomain_Ioc' hT.out _) _
 #align add_circle.measure_preserving_mk AddCircle.measurePreserving_mk
 
+lemma add_projection_respects_measure (t : ℝ) {U : Set (AddCircle T)} (meas_U : MeasurableSet U) :
+    volume U = volume (QuotientAddGroup.mk ⁻¹' U ∩ (Ioc t (t + T))) :=
+  (isAddFundamentalDomain_Ioc' hT.out _).addProjection_respects_measure_apply
+    (volume : Measure (AddCircle T)) meas_U
+
 theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     volume (Metric.closedBall x ε) = ENNReal.ofReal (min T (2 * ε)) := by
   have hT' : |T| = T := abs_eq_self.mpr hT.out.le
@@ -106,9 +115,8 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     conv_rhs => rw [← if_ctx_congr (Iff.rfl : ε < T / 2 ↔ ε < T / 2) h₁ fun _ => rfl, ← hT']
     apply coe_real_preimage_closedBall_inter_eq
     simpa only [hT', Real.closedBall_eq_Icc, zero_add, zero_sub] using Ioc_subset_Icc_self
-  rw [addHaar_closedBall_center]
-  simp only [restrict_apply' measurableSet_Ioc, (by linarith : -(T / 2) + T = T / 2), h₂, ←
-    (AddCircle.measurePreserving_mk T (-(T / 2))).measure_preimage measurableSet_closedBall]
+  rw [addHaar_closedBall_center, add_projection_respects_measure T (-(T/2))
+    measurableSet_closedBall, (by linarith : -(T / 2) + T = T / 2), h₂]
   by_cases hε : ε < T / 2
   · simp [hε, min_eq_right (by linarith : 2 * ε ≤ T)]
   · simp [I, hε, min_eq_left (by linarith : T ≤ 2 * ε)]
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -285,7 +285,7 @@ theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
   have : ∀ m : ℕ, (∫ x in (0)..m • T, f x) = m • ∫ x in (0)..T, f x := fun m ↦ by
     induction' m with m ih
     · simp
-    · simp only [succ_nsmul', hf.intervalIntegral_add_eq_add 0 (m • T) h_int, ih, zero_add]
+    · simp only [succ_nsmul, hf.intervalIntegral_add_eq_add 0 (m • T) h_int, ih, zero_add]
   -- Then prove it for all integers
   cases' n with n n
   · simp [← this n]
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -260,7 +260,7 @@ theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
   · exact hf.intervalIntegral_add_eq_of_pos hT t s
   · simp
   · rw [← neg_inj, ← integral_symm, ← integral_symm]
-    simpa only [← sub_eq_add_neg, add_sub_cancel] using
+    simpa only [← sub_eq_add_neg, add_sub_cancel_right] using
       hf.neg.intervalIntegral_add_eq_of_pos (neg_pos.2 hT) (t + T) (s + T)
 #align function.periodic.interval_integral_add_eq Function.Periodic.intervalIntegral_add_eq
 
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
@@ -301,7 +301,6 @@ section RealValued
 open Filter
 
 variable {g : ℝ → ℝ}
-
 variable (hg : Periodic g T) (h_int : ∀ t₁ t₂, IntervalIntegrable g MeasureSpace.volume t₁ t₂)
 
 /-- If `g : ℝ → ℝ` is periodic with period `T > 0`, then for any `t : ℝ`, the function
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -196,7 +196,6 @@ namespace UnitAddCircle
 
 attribute [local instance] Real.fact_zero_lt_one
 
-@[simp]
 protected theorem measure_univ : volume (Set.univ : Set UnitAddCircle) = 1 := by simp
 #align unit_add_circle.measure_univ UnitAddCircle.measure_univ
 
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
@@ -111,7 +111,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     (AddCircle.measurePreserving_mk T (-(T / 2))).measure_preimage measurableSet_closedBall]
   by_cases hε : ε < T / 2
   · simp [hε, min_eq_right (by linarith : 2 * ε ≤ T)]
-  · simp [hε, min_eq_left (by linarith : T ≤ 2 * ε)]
+  · simp [I, hε, min_eq_left (by linarith : T ≤ 2 * ε)]
 #align add_circle.volume_closed_ball AddCircle.volume_closedBall
 
 instance : IsUnifLocDoublingMeasure (volume : Measure (AddCircle T)) := by
chore: disable global instance Subtype.measureSpace (#8381)

Currently, a subtype of a MeasureSpace has a MeasureSpace instance, obtained by restricting the initial measure. There are however other reasonable constructions, like the normalized restriction for a probability measure, or the subspace measure when restricting to a vector subspace. We disable the global instance Subtype.measureSpace to make these other choices possible, as discussed on Zulip.

It turns out that this instance was duplicated in SetCoe.measureSpace, so we delete the other one.

Diff
@@ -142,6 +142,7 @@ noncomputable def measurableEquivIco (a : ℝ) : AddCircle T ≃ᵐ Ico a (a + T
   measurable_invFun := AddCircle.measurable_mk'.comp measurable_subtype_coe
 #align add_circle.measurable_equiv_Ico AddCircle.measurableEquivIco
 
+attribute [local instance] Subtype.measureSpace in
 /-- The lower integral of a function over `AddCircle T` is equal to the lower integral over an
 interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞) :
@@ -164,6 +165,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
 
 variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
 
+attribute [local instance] Subtype.measureSpace in
 /-- The integral of an almost-everywhere strongly measurable function over `AddCircle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
feat(MeasureTheory/Integral/Lebesgue): add set_lintegral_subtype (#7679)
  • Add MeasureTheory.set_lintegral_eq_subtype and MeasureTheory.set_lintegral_subtype.
  • Add MeasurableEmbedding.comap_map, MeasurableEmbedding.comap_restrict, and MeasurableEmbedding.restrict_comap.
  • Drop measurability assumption in MeasurableEmbedding.comap_preimage.
  • Remove some empty lines.
Diff
@@ -172,7 +172,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
   have := integral_map_equiv (μ := volume) (measurableEquivIoc T t).symm f
   simp only [measurableEquivIoc, equivIoc, QuotientAddGroup.equivIocMod, MeasurableEquiv.symm_mk,
     MeasurableEquiv.coe_mk, Equiv.coe_fn_symm_mk] at this
-  rw [← (AddCircle.measurePreserving_mk T t).map_eq, set_integral_eq_subtype m, ← this]
+  rw [← (AddCircle.measurePreserving_mk T t).map_eq, ← integral_subtype m, ← this]
   have : ((↑) : Ioc t (t + T) → AddCircle T) = ((↑) : ℝ → AddCircle T) ∘ ((↑) : _ → ℝ) := by
     ext1 x; rfl
   simp_rw [this]
refactor: AddCircle (#7700)

This is a refactor of AddCircle, changing it from a def to an abbrev. This fixes issues arising from a deriving statement that failed during the port, and allows for much better inference of instances.

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

Diff
@@ -26,19 +26,10 @@ Another consequence (`Function.Periodic.intervalIntegral_add_eq` and related dec
 period `T`.
 -/
 
-
 open Set Function MeasureTheory MeasureTheory.Measure TopologicalSpace AddSubgroup intervalIntegral
 
 open scoped MeasureTheory NNReal ENNReal
 
-noncomputable instance AddCircle.measurableSpace {a : ℝ} : MeasurableSpace (AddCircle a) :=
-  QuotientAddGroup.measurableSpace _
-#align add_circle.measurable_space AddCircle.measurableSpace
-
-instance AddCircle.borelSpace {a : ℝ} : BorelSpace (AddCircle a) :=
-  QuotientAddGroup.borelSpace
-#align add_circle.borel_space AddCircle.borelSpace
-
 @[measurability]
 protected theorem AddCircle.measurable_mk' {a : ℝ} :
     Measurable (β := AddCircle a) ((↑) : ℝ → AddCircle a) :=
@@ -71,7 +62,7 @@ variable (T : ℝ) [hT : Fact (0 < T)]
 /-- Equip the "additive circle" `ℝ ⧸ (ℤ ∙ T)` with, as a standard measure, the Haar measure of total
 mass `T` -/
 noncomputable instance measureSpace : MeasureSpace (AddCircle T) :=
-  { AddCircle.measurableSpace with volume := ENNReal.ofReal T • addHaarMeasure ⊤ }
+  { QuotientAddGroup.measurableSpace _ with volume := ENNReal.ofReal T • addHaarMeasure ⊤ }
 #align add_circle.measure_space AddCircle.measureSpace
 
 @[simp]
@@ -203,18 +194,10 @@ namespace UnitAddCircle
 
 attribute [local instance] Real.fact_zero_lt_one
 
-noncomputable instance measureSpace : MeasureSpace UnitAddCircle :=
-  AddCircle.measureSpace 1
-#align unit_add_circle.measure_space UnitAddCircle.measureSpace
-
 @[simp]
 protected theorem measure_univ : volume (Set.univ : Set UnitAddCircle) = 1 := by simp
 #align unit_add_circle.measure_univ UnitAddCircle.measure_univ
 
-instance isFiniteMeasure : IsFiniteMeasure (volume : Measure UnitAddCircle) :=
-  AddCircle.isFiniteMeasure 1
-#align unit_add_circle.is_finite_measure UnitAddCircle.isFiniteMeasure
-
 /-- The covering map from `ℝ` to the "unit additive circle" `ℝ ⧸ ℤ` is measure-preserving,
 considered with respect to the standard measure (defined to be the Haar measure of total mass 1)
 on the additive circle, and with respect to the restriction of Lebsegue measure on `ℝ` to an
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
@@ -108,7 +108,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
   let I := Ioc (-(T / 2)) (T / 2)
   have h₁ : ε < T / 2 → Metric.closedBall (0 : ℝ) ε ∩ I = Metric.closedBall (0 : ℝ) ε := by
     intro hε
-    rw [inter_eq_left_iff_subset, Real.closedBall_eq_Icc, zero_sub, zero_add]
+    rw [inter_eq_left, Real.closedBall_eq_Icc, zero_sub, zero_add]
     rintro y ⟨hy₁, hy₂⟩; constructor <;> linarith
   have h₂ : (↑) ⁻¹' Metric.closedBall (0 : AddCircle T) ε ∩ I =
       if ε < T / 2 then Metric.closedBall (0 : ℝ) ε else I := by
feat(GroupTheory/Submonoid): add opposite submonoids (#7415)

We already have API for the multiplicative opposite of subgroups.

This tidies the API for subgroups by introducing separate .op and .unop definitions (as dot notation on .opposite worked in Lean 3 but not Lean 4), and adds the same API for submonoids.

Diff
@@ -56,11 +56,11 @@ theorem isAddFundamentalDomain_Ioc {T : ℝ} (hT : 0 < T) (t : ℝ)
 #align is_add_fundamental_domain_Ioc isAddFundamentalDomain_Ioc
 
 theorem isAddFundamentalDomain_Ioc' {T : ℝ} (hT : 0 < T) (t : ℝ) (μ : Measure ℝ := by volume_tac) :
-    IsAddFundamentalDomain (AddSubgroup.opposite <| .zmultiples T) (Ioc t (t + T)) μ := by
+    IsAddFundamentalDomain (AddSubgroup.op <| .zmultiples T) (Ioc t (t + T)) μ := by
   refine' IsAddFundamentalDomain.mk' measurableSet_Ioc.nullMeasurableSet fun x => _
   have : Bijective (codRestrict (fun n : ℤ => n • T) (AddSubgroup.zmultiples T) _) :=
     (Equiv.ofInjective (fun n : ℤ => n • T) (zsmul_strictMono_left hT).injective).bijective
-  refine' (AddSubgroup.oppositeEquiv _).bijective.comp this |>.existsUnique_iff.2 _
+  refine' (AddSubgroup.equivOp _).bijective.comp this |>.existsUnique_iff.2 _
   simpa using existsUnique_add_zsmul_mem_Ioc hT x t
 #align is_add_fundamental_domain_Ioc' isAddFundamentalDomain_Ioc'
 
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
@@ -171,7 +171,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : AddCircle T → ℝ≥0∞)
     rfl
 #align add_circle.lintegral_preimage AddCircle.lintegral_preimage
 
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
+variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
 
 /-- The integral of an almost-everywhere strongly measurable function over `AddCircle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
@@ -232,7 +232,7 @@ protected theorem lintegral_preimage (t : ℝ) (f : UnitAddCircle → ℝ≥0∞
   AddCircle.lintegral_preimage 1 t f
 #align unit_add_circle.lintegral_preimage UnitAddCircle.lintegral_preimage
 
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
+variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
 
 /-- The integral of an almost-everywhere strongly measurable function over `UnitAddCircle` is
 equal to the integral over an interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
@@ -250,7 +250,7 @@ protected theorem intervalIntegral_preimage (t : ℝ) (f : UnitAddCircle → E)
 
 end UnitAddCircle
 
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
+variable {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E] [CompleteSpace E]
 
 namespace Function
 
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,11 +2,6 @@
 Copyright (c) 2021 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov, Alex Kontorovich, Heather Macbeth
-
-! This file was ported from Lean 3 source module measure_theory.integral.periodic
-! leanprover-community/mathlib commit 9f55d0d4363ae59948c33864cbc52e0b12e0e8ce
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.MeasureTheory.Measure.Lebesgue.EqHaar
 import Mathlib.MeasureTheory.Measure.Haar.Quotient
@@ -14,6 +9,8 @@ import Mathlib.MeasureTheory.Constructions.Polish
 import Mathlib.MeasureTheory.Integral.IntervalIntegral
 import Mathlib.Topology.Algebra.Order.Floor
 
+#align_import measure_theory.integral.periodic from "leanprover-community/mathlib"@"9f55d0d4363ae59948c33864cbc52e0b12e0e8ce"
+
 /-!
 # Integrals of periodic functions
 
chore(MeasureTheory): rename add_haar to addHaar (#5811)

This is supposed to mean "an additive Haar measure", not adding something to Haar, so it should be one word and not two.

Diff
@@ -118,7 +118,7 @@ theorem volume_closedBall {x : AddCircle T} (ε : ℝ) :
     conv_rhs => rw [← if_ctx_congr (Iff.rfl : ε < T / 2 ↔ ε < T / 2) h₁ fun _ => rfl, ← hT']
     apply coe_real_preimage_closedBall_inter_eq
     simpa only [hT', Real.closedBall_eq_Icc, zero_add, zero_sub] using Ioc_subset_Icc_self
-  rw [add_haar_closedBall_center]
+  rw [addHaar_closedBall_center]
   simp only [restrict_apply' measurableSet_Ioc, (by linarith : -(T / 2) + T = T / 2), h₂, ←
     (AddCircle.measurePreserving_mk T (-(T / 2))).measure_preimage measurableSet_closedBall]
   by_cases hε : ε < T / 2
chore: remove superfluous parentheses around integrals (#5591)
Diff
@@ -195,7 +195,7 @@ protected theorem integral_preimage (t : ℝ) (f : AddCircle T → E) :
 /-- The integral of an almost-everywhere strongly measurable function over `AddCircle T` is equal
 to the integral over an interval (t, t + T] in `ℝ` of its lift to `ℝ`. -/
 protected theorem intervalIntegral_preimage (t : ℝ) (f : AddCircle T → E) :
-    (∫ a in t..t + T, f a) = ∫ b : AddCircle T, f b := by
+    ∫ a in t..t + T, f a = ∫ b : AddCircle T, f b := by
   rw [integral_of_le, AddCircle.integral_preimage T t f]
   linarith [hT.out]
 #align add_circle.interval_integral_preimage AddCircle.intervalIntegral_preimage
@@ -247,7 +247,7 @@ protected theorem integral_preimage (t : ℝ) (f : UnitAddCircle → E) :
 /-- The integral of an almost-everywhere strongly measurable function over `UnitAddCircle` is
 equal to the integral over an interval (t, t + 1] in `ℝ` of its lift to `ℝ`. -/
 protected theorem intervalIntegral_preimage (t : ℝ) (f : UnitAddCircle → E) :
-    (∫ a in t..t + 1, f a) = ∫ b : UnitAddCircle, f b :=
+    ∫ a in t..t + 1, f a = ∫ b : UnitAddCircle, f b :=
   AddCircle.intervalIntegral_preimage 1 t f
 #align unit_add_circle.interval_integral_preimage UnitAddCircle.intervalIntegral_preimage
 
@@ -263,7 +263,7 @@ variable {f : ℝ → E} {T : ℝ}
 
 /-- An auxiliary lemma for a more general `Function.Periodic.intervalIntegral_add_eq`. -/
 theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : ℝ) :
-    (∫ x in t..t + T, f x) = ∫ x in s..s + T, f x := by
+    ∫ x in t..t + T, f x = ∫ x in s..s + T, f x := by
   simp only [integral_of_le, hT.le, le_add_iff_nonneg_right]
   haveI : VAddInvariantMeasure (AddSubgroup.zmultiples T) ℝ volume :=
     ⟨fun c s _ => measure_preimage_add _ _ _⟩
@@ -274,7 +274,7 @@ theorem intervalIntegral_add_eq_of_pos (hf : Periodic f T) (hT : 0 < T) (t s : 
 /-- If `f` is a periodic function with period `T`, then its integral over `[t, t + T]` does not
 depend on `t`. -/
 theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
-    (∫ x in t..t + T, f x) = ∫ x in s..s + T, f x := by
+    ∫ x in t..t + T, f x = ∫ x in s..s + T, f x := by
   rcases lt_trichotomy (0 : ℝ) T with (hT | rfl | hT)
   · exact hf.intervalIntegral_add_eq_of_pos hT t s
   · simp
@@ -287,7 +287,7 @@ theorem intervalIntegral_add_eq (hf : Periodic f T) (t s : ℝ) :
 is the sum of its integrals over the intervals `[t, s]` and `[t, t + T]`. -/
 theorem intervalIntegral_add_eq_add (hf : Periodic f T) (t s : ℝ)
     (h_int : ∀ t₁ t₂, IntervalIntegrable f MeasureSpace.volume t₁ t₂) :
-    (∫ x in t..s + T, f x) = (∫ x in t..s, f x) + ∫ x in t..t + T, f x := by
+    ∫ x in t..s + T, f x = (∫ x in t..s, f x) + ∫ x in t..t + T, f x := by
   rw [hf.intervalIntegral_add_eq t s, integral_add_adjacent_intervals (h_int t s) (h_int s _)]
 #align function.periodic.interval_integral_add_eq_add Function.Periodic.intervalIntegral_add_eq_add
 
@@ -295,7 +295,7 @@ theorem intervalIntegral_add_eq_add (hf : Periodic f T) (t s : ℝ)
 integral over `[t, t + n • T]` is `n` times its integral over `[t, t + T]`. -/
 theorem intervalIntegral_add_zsmul_eq (hf : Periodic f T) (n : ℤ) (t : ℝ)
     (h_int : ∀ t₁ t₂, IntervalIntegrable f MeasureSpace.volume t₁ t₂) :
-    (∫ x in t..t + n • T, f x) = n • ∫ x in t..t + T, f x := by
+    ∫ x in t..t + n • T, f x = n • ∫ x in t..t + T, f x := by
   -- Reduce to the case `b = 0`
   suffices (∫ x in (0)..(n • T), f x) = n • ∫ x in (0)..T, f x by
     simp only [hf.intervalIntegral_add_eq t 0, (hf.zsmul n).intervalIntegral_add_eq t 0, zero_add,
chore: tidy various files (#5482)
Diff
@@ -134,7 +134,7 @@ instance : IsUnifLocDoublingMeasure (volume : Measure (AddCircle T)) := by
   rw [mul_min_of_nonneg _ _ (zero_le_two : (0 : ℝ) ≤ 2)]
   exact min_le_min (by linarith [hT.out]) (le_refl _)
 
-/-- The isomorphism `add_circle T ≃ Ioc a (a + T)` whose inverse is the natural quotient map,
+/-- The isomorphism `AddCircle T ≃ Ioc a (a + T)` whose inverse is the natural quotient map,
   as an equivalence of measurable spaces. -/
 noncomputable def measurableEquivIoc (a : ℝ) : AddCircle T ≃ᵐ Ioc a (a + T) where
   toEquiv := equivIoc T a
feat: port MeasureTheory.Integral.Periodic (#4815)

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Dependencies 12 + 1012

1013 files ported (98.8%)
463502 lines ported (98.8%)
Show graph

The unported dependencies are

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