measure_theory.group.measureMathlib.MeasureTheory.Group.Measure

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -683,7 +683,7 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     μ K ≤ μ (⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
-    _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
+    _ < ∞ := ENNReal.mul_lt_top (ENNReal.natCast_ne_top _) h
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
 #align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
 -/
Diff
@@ -617,7 +617,7 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsComp
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
   rw [← nonpos_iff_eq_zero]
-  rw [← hU.interior_eq] at hne 
+  rw [← hU.interior_eq] at hne
   obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
     compact_covered_by_mul_left_translates hK hne
   calc
@@ -676,7 +676,7 @@ to any compact set. -/
 theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOpen U)
     (h'U : U.Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
   by
-  rw [← hU.interior_eq] at h'U 
+  rw [← hU.interior_eq] at h'U
   obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
     compact_covered_by_mul_left_translates hK h'U
   calc
@@ -753,7 +753,7 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
     simp_rw [M]
     apply ENNReal.Tendsto.mul_const _ (Or.inl ENNReal.top_ne_zero)
     exact ennreal.tendsto_nat_nhds_top.comp (tendsto_add_at_top_nat _)
-  simp only [ENNReal.top_mul', K_pos.ne', if_false] at N 
+  simp only [ENNReal.top_mul', K_pos.ne', if_false] at N
   apply top_le_iff.1
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
 #align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
@@ -940,13 +940,13 @@ instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpac
       · intro x hx y hy xy
         simp only [on_fun, xy.symm, mem_singleton_iff, not_false_iff, disjoint_singleton_right]
       · intro b hb; exact measurable_set_singleton b
-    rw [B] at A 
+    rw [B] at A
     rwa [ENNReal.le_div_iff_mul_le _ (Or.inr μKlt), mul_comm]
     right
     apply (measure_pos_of_nonempty_interior μ ⟨_, K_int⟩).ne'
   have J : tendsto (fun n : ℕ => μ K / n) at_top (𝓝 (μ K / ∞)) :=
     ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
-  simp only [ENNReal.div_top] at J 
+  simp only [ENNReal.div_top] at J
   exact ge_of_tendsto' J I
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
Diff
@@ -805,7 +805,6 @@ class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 -/
 
-#print MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure /-
 /-- Record that a Haar measure on a locally compact space is locally finite. This is needed as the
 fact that a measure which is finite on compacts is locally finite is not registered as an instance,
 to avoid an instance loop.
@@ -818,8 +817,7 @@ instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type _}
     [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
   isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
 #align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isAddHaarMeasure
--/
+#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_is_add_haar_measure
 
 section
 
Diff
@@ -3,13 +3,13 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
 -/
-import Mathbin.Dynamics.Ergodic.MeasurePreserving
-import Mathbin.MeasureTheory.Measure.Regular
-import Mathbin.MeasureTheory.Group.MeasurableEquiv
-import Mathbin.MeasureTheory.Measure.OpenPos
-import Mathbin.MeasureTheory.Group.Action
-import Mathbin.MeasureTheory.Constructions.Prod.Basic
-import Mathbin.Topology.ContinuousFunction.CocompactMap
+import Dynamics.Ergodic.MeasurePreserving
+import MeasureTheory.Measure.Regular
+import MeasureTheory.Group.MeasurableEquiv
+import MeasureTheory.Measure.OpenPos
+import MeasureTheory.Group.Action
+import MeasureTheory.Constructions.Prod.Basic
+import Topology.ContinuousFunction.CocompactMap
 
 #align_import measure_theory.group.measure from "leanprover-community/mathlib"@"61b5e2755ccb464b68d05a9acf891ae04992d09d"
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 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.group.measure
-! leanprover-community/mathlib commit 61b5e2755ccb464b68d05a9acf891ae04992d09d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Dynamics.Ergodic.MeasurePreserving
 import Mathbin.MeasureTheory.Measure.Regular
@@ -16,6 +11,8 @@ import Mathbin.MeasureTheory.Group.Action
 import Mathbin.MeasureTheory.Constructions.Prod.Basic
 import Mathbin.Topology.ContinuousFunction.CocompactMap
 
+#align_import measure_theory.group.measure from "leanprover-community/mathlib"@"61b5e2755ccb464b68d05a9acf891ae04992d09d"
+
 /-!
 # Measures on Groups
 
Diff
@@ -107,32 +107,40 @@ theorem map_mul_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G)
 #align measure_theory.map_add_right_eq_self MeasureTheory.map_add_right_eq_self
 -/
 
+#print MeasureTheory.isMulLeftInvariant_smul /-
 @[to_additive MeasureTheory.isAddLeftInvariant_smul]
 instance isMulLeftInvariant_smul [IsMulLeftInvariant μ] (c : ℝ≥0∞) : IsMulLeftInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_left_eq_self]⟩
 #align measure_theory.is_mul_left_invariant_smul MeasureTheory.isMulLeftInvariant_smul
 #align measure_theory.is_add_left_invariant_smul MeasureTheory.isAddLeftInvariant_smul
+-/
 
+#print MeasureTheory.isMulRightInvariant_smul /-
 @[to_additive MeasureTheory.isAddRightInvariant_smul]
 instance isMulRightInvariant_smul [IsMulRightInvariant μ] (c : ℝ≥0∞) :
     IsMulRightInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_right_eq_self]⟩
 #align measure_theory.is_mul_right_invariant_smul MeasureTheory.isMulRightInvariant_smul
 #align measure_theory.is_add_right_invariant_smul MeasureTheory.isAddRightInvariant_smul
+-/
 
+#print MeasureTheory.isMulLeftInvariant_smul_nnreal /-
 @[to_additive MeasureTheory.isAddLeftInvariant_smul_nnreal]
 instance isMulLeftInvariant_smul_nnreal [IsMulLeftInvariant μ] (c : ℝ≥0) :
     IsMulLeftInvariant (c • μ) :=
   MeasureTheory.isMulLeftInvariant_smul (c : ℝ≥0∞)
 #align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.isMulLeftInvariant_smul_nnreal
 #align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.isAddLeftInvariant_smul_nnreal
+-/
 
+#print MeasureTheory.isMulRightInvariant_smul_nnreal /-
 @[to_additive MeasureTheory.isAddRightInvariant_smul_nnreal]
 instance isMulRightInvariant_smul_nnreal [IsMulRightInvariant μ] (c : ℝ≥0) :
     IsMulRightInvariant (c • μ) :=
   MeasureTheory.isMulRightInvariant_smul (c : ℝ≥0∞)
 #align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariant_smul_nnreal
 #align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.isAddRightInvariant_smul_nnreal
+-/
 
 section MeasurableMul
 
@@ -147,6 +155,7 @@ theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g :
 #align measure_theory.measure_preserving_add_left MeasureTheory.measurePreserving_add_left
 -/
 
+#print MeasureTheory.MeasurePreserving.mul_left /-
 @[to_additive]
 theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
@@ -154,6 +163,7 @@ theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g :
   (measurePreserving_mul_left μ g).comp hf
 #align measure_theory.measure_preserving.mul_left MeasureTheory.MeasurePreserving.mul_left
 #align measure_theory.measure_preserving.add_left MeasureTheory.MeasurePreserving.add_left
+-/
 
 #print MeasureTheory.measurePreserving_mul_right /-
 @[to_additive]
@@ -164,6 +174,7 @@ theorem measurePreserving_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g
 #align measure_theory.measure_preserving_add_right MeasureTheory.measurePreserving_add_right
 -/
 
+#print MeasureTheory.MeasurePreserving.mul_right /-
 @[to_additive]
 theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
@@ -171,6 +182,7 @@ theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g
   (measurePreserving_mul_right μ g).comp hf
 #align measure_theory.measure_preserving.mul_right MeasureTheory.MeasurePreserving.mul_right
 #align measure_theory.measure_preserving.add_right MeasureTheory.MeasurePreserving.add_right
+-/
 
 #print MeasureTheory.IsMulLeftInvariant.smulInvariantMeasure /-
 @[to_additive]
@@ -190,12 +202,14 @@ instance IsMulRightInvariant.toSMulInvariantMeasure_op [μ.IsMulRightInvariant]
 #align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.IsMulRightInvariant.toVAddInvariantMeasure_op
 -/
 
+#print MeasureTheory.Subgroup.smulInvariantMeasure /-
 @[to_additive]
 instance Subgroup.smulInvariantMeasure {G α : Type _} [Group G] [MulAction G α] [MeasurableSpace α]
     {μ : Measure α} [SMulInvariantMeasure G α μ] (H : Subgroup G) : SMulInvariantMeasure H α μ :=
   ⟨fun y s hs => by convert smul_invariant_measure.measure_preimage_smul μ (y : G) hs⟩
 #align measure_theory.subgroup.smul_invariant_measure MeasureTheory.Subgroup.smulInvariantMeasure
 #align measure_theory.subgroup.vadd_invariant_measure MeasureTheory.Subgroup.vaddInvariantMeasure
+-/
 
 #print MeasureTheory.forall_measure_preimage_mul_iff /-
 /-- An alternative way to prove that `μ` is left invariant under multiplication. -/
@@ -279,11 +293,13 @@ section DivInvMonoid
 
 variable [DivInvMonoid G]
 
+#print MeasureTheory.map_div_right_eq_self /-
 @[to_additive]
 theorem map_div_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
   by simp_rw [div_eq_mul_inv, map_mul_right_eq_self μ g⁻¹]
 #align measure_theory.map_div_right_eq_self MeasureTheory.map_div_right_eq_self
 #align measure_theory.map_sub_right_eq_self MeasureTheory.map_sub_right_eq_self
+-/
 
 end DivInvMonoid
 
@@ -291,12 +307,15 @@ section Group
 
 variable [Group G] [MeasurableMul G]
 
+#print MeasureTheory.measurePreserving_div_right /-
 @[to_additive]
 theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· / g) μ μ := by simp_rw [div_eq_mul_inv, measure_preserving_mul_right μ g⁻¹]
 #align measure_theory.measure_preserving_div_right MeasureTheory.measurePreserving_div_right
 #align measure_theory.measure_preserving_sub_right MeasureTheory.measurePreserving_sub_right
+-/
 
+#print MeasureTheory.measure_preimage_mul /-
 /-- We shorten this from `measure_preimage_mul_left`, since left invariant is the preferred option
   for measures in this formalization. -/
 @[simp,
@@ -310,7 +329,9 @@ theorem measure_preimage_mul (μ : Measure G) [IsMulLeftInvariant μ] (g : G) (A
     _ = μ A := by rw [map_mul_left_eq_self μ g]
 #align measure_theory.measure_preimage_mul MeasureTheory.measure_preimage_mul
 #align measure_theory.measure_preimage_add MeasureTheory.measure_preimage_add
+-/
 
+#print MeasureTheory.measure_preimage_mul_right /-
 @[simp, to_additive]
 theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => h * g) ⁻¹' A) = μ A :=
@@ -320,48 +341,61 @@ theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g
     _ = μ A := by rw [map_mul_right_eq_self μ g]
 #align measure_theory.measure_preimage_mul_right MeasureTheory.measure_preimage_mul_right
 #align measure_theory.measure_preimage_add_right MeasureTheory.measure_preimage_add_right
+-/
 
+#print MeasureTheory.map_mul_left_ae /-
 @[to_additive]
 theorem map_mul_left_ae (μ : Measure G) [IsMulLeftInvariant μ] (x : G) :
     Filter.map (fun h => x * h) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulLeft x).map_ae μ).trans <| congr_arg ae <| map_mul_left_eq_self μ x
 #align measure_theory.map_mul_left_ae MeasureTheory.map_mul_left_ae
 #align measure_theory.map_add_left_ae MeasureTheory.map_add_left_ae
+-/
 
+#print MeasureTheory.map_mul_right_ae /-
 @[to_additive]
 theorem map_mul_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
     Filter.map (fun h => h * x) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulRight x).map_ae μ).trans <| congr_arg ae <| map_mul_right_eq_self μ x
 #align measure_theory.map_mul_right_ae MeasureTheory.map_mul_right_ae
 #align measure_theory.map_add_right_ae MeasureTheory.map_add_right_ae
+-/
 
+#print MeasureTheory.map_div_right_ae /-
 @[to_additive]
 theorem map_div_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
     Filter.map (fun t => t / x) μ.ae = μ.ae :=
   ((MeasurableEquiv.divRight x).map_ae μ).trans <| congr_arg ae <| map_div_right_eq_self μ x
 #align measure_theory.map_div_right_ae MeasureTheory.map_div_right_ae
 #align measure_theory.map_sub_right_ae MeasureTheory.map_sub_right_ae
+-/
 
+#print MeasureTheory.eventually_mul_left_iff /-
 @[to_additive]
 theorem eventually_mul_left_iff (μ : Measure G) [IsMulLeftInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (t * x)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]; rfl
 #align measure_theory.eventually_mul_left_iff MeasureTheory.eventually_mul_left_iff
 #align measure_theory.eventually_add_left_iff MeasureTheory.eventually_add_left_iff
+-/
 
+#print MeasureTheory.eventually_mul_right_iff /-
 @[to_additive]
 theorem eventually_mul_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x * t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]; rfl
 #align measure_theory.eventually_mul_right_iff MeasureTheory.eventually_mul_right_iff
 #align measure_theory.eventually_add_right_iff MeasureTheory.eventually_add_right_iff
+-/
 
+#print MeasureTheory.eventually_div_right_iff /-
 @[to_additive]
 theorem eventually_div_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x / t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_div_right_ae μ t]; rfl
 #align measure_theory.eventually_div_right_iff MeasureTheory.eventually_div_right_iff
 #align measure_theory.eventually_sub_right_iff MeasureTheory.eventually_sub_right_iff
+-/
 
 end Group
 
@@ -430,30 +464,38 @@ section InvolutiveInv
 
 variable [InvolutiveInv G] [MeasurableInv G]
 
+#print MeasureTheory.Measure.inv_apply /-
 @[simp, to_additive]
 theorem inv_apply (μ : Measure G) (s : Set G) : μ.inv s = μ s⁻¹ :=
   (MeasurableEquiv.inv G).map_apply s
 #align measure_theory.measure.inv_apply MeasureTheory.Measure.inv_apply
 #align measure_theory.measure.neg_apply MeasureTheory.Measure.neg_apply
+-/
 
+#print MeasureTheory.Measure.inv_inv /-
 @[simp, to_additive]
 protected theorem inv_inv (μ : Measure G) : μ.inv.inv = μ :=
   (MeasurableEquiv.inv G).map_symm_map
 #align measure_theory.measure.inv_inv MeasureTheory.Measure.inv_inv
 #align measure_theory.measure.neg_neg MeasureTheory.Measure.neg_neg
+-/
 
+#print MeasureTheory.Measure.measure_inv /-
 @[simp, to_additive]
 theorem measure_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
   rw [← inv_apply, inv_eq_self]
 #align measure_theory.measure.measure_inv MeasureTheory.Measure.measure_inv
 #align measure_theory.measure.measure_neg MeasureTheory.Measure.measure_neg
+-/
 
+#print MeasureTheory.Measure.measure_preimage_inv /-
 @[to_additive]
 theorem measure_preimage_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) :
     μ (Inv.inv ⁻¹' A) = μ A :=
   μ.measure_inv A
 #align measure_theory.measure.measure_preimage_inv MeasureTheory.Measure.measure_preimage_inv
 #align measure_theory.measure.measure_preimage_neg MeasureTheory.Measure.measure_preimage_neg
+-/
 
 @[to_additive]
 instance (μ : Measure G) [SigmaFinite μ] : SigmaFinite μ.inv :=
@@ -483,6 +525,7 @@ instance [IsMulRightInvariant μ] : IsMulLeftInvariant μ.inv :=
   simp_rw [measure.inv, map_map (measurable_const_mul g) measurable_inv,
     map_map measurable_inv (measurable_mul_const g⁻¹), Function.comp, mul_inv_rev, inv_inv]
 
+#print MeasureTheory.Measure.measurePreserving_div_left /-
 @[to_additive]
 theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => g / t) μ μ :=
@@ -491,27 +534,34 @@ theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLe
   exact (measure_preserving_mul_left μ g).comp (measure_preserving_inv μ)
 #align measure_theory.measure.measure_preserving_div_left MeasureTheory.Measure.measurePreserving_div_left
 #align measure_theory.measure.measure_preserving_sub_left MeasureTheory.Measure.measurePreserving_sub_left
+-/
 
+#print MeasureTheory.Measure.map_div_left_eq_self /-
 @[to_additive]
 theorem map_div_left_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ] (g : G) :
     map (fun t => g / t) μ = μ :=
   (measurePreserving_div_left μ g).map_eq
 #align measure_theory.measure.map_div_left_eq_self MeasureTheory.Measure.map_div_left_eq_self
 #align measure_theory.measure.map_sub_left_eq_self MeasureTheory.Measure.map_sub_left_eq_self
+-/
 
+#print MeasureTheory.Measure.measurePreserving_mul_right_inv /-
 @[to_additive]
 theorem measurePreserving_mul_right_inv (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => (g * t)⁻¹) μ μ :=
   (measurePreserving_inv μ).comp <| measurePreserving_mul_left μ g
 #align measure_theory.measure.measure_preserving_mul_right_inv MeasureTheory.Measure.measurePreserving_mul_right_inv
 #align measure_theory.measure.measure_preserving_add_right_neg MeasureTheory.Measure.measurePreserving_add_right_neg
+-/
 
+#print MeasureTheory.Measure.map_mul_right_inv_eq_self /-
 @[to_additive]
 theorem map_mul_right_inv_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : map (fun t => (g * t)⁻¹) μ = μ :=
   (measurePreserving_mul_right_inv μ g).map_eq
 #align measure_theory.measure.map_mul_right_inv_eq_self MeasureTheory.Measure.map_mul_right_inv_eq_self
 #align measure_theory.measure.map_add_right_neg_eq_self MeasureTheory.Measure.map_add_right_neg_eq_self
+-/
 
 end DivisionMonoid
 
@@ -519,12 +569,14 @@ section Group
 
 variable [Group G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
+#print MeasureTheory.Measure.map_div_left_ae /-
 @[to_additive]
 theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant μ] (x : G) :
     Filter.map (fun t => x / t) μ.ae = μ.ae :=
   ((MeasurableEquiv.divLeft x).map_ae μ).trans <| congr_arg ae <| map_div_left_eq_self μ x
 #align measure_theory.measure.map_div_left_ae MeasureTheory.Measure.map_div_left_ae
 #align measure_theory.measure.map_sub_left_ae MeasureTheory.Measure.map_sub_left_ae
+-/
 
 end Group
 
@@ -534,14 +586,17 @@ section TopologicalGroup
 
 variable [TopologicalSpace G] [BorelSpace G] {μ : Measure G} [Group G]
 
+#print MeasureTheory.Measure.Regular.inv /-
 @[to_additive]
 instance Measure.Regular.inv [ContinuousInv G] [T2Space G] [Regular μ] : Regular μ.inv :=
   Regular.map (Homeomorph.inv G)
 #align measure_theory.measure.regular.inv MeasureTheory.Measure.Regular.inv
 #align measure_theory.measure.regular.neg MeasureTheory.Measure.Regular.neg
+-/
 
 variable [TopologicalGroup G]
 
+#print MeasureTheory.regular_inv_iff /-
 @[to_additive]
 theorem regular_inv_iff [T2Space G] : μ.inv.regular ↔ μ.regular :=
   by
@@ -550,9 +605,11 @@ theorem regular_inv_iff [T2Space G] : μ.inv.regular ↔ μ.regular :=
   · intro h; exact measure.regular.inv
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
+-/
 
 variable [IsMulLeftInvariant μ]
 
+#print MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact /-
 /-- If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
 any open set. -/
 @[to_additive
@@ -572,7 +629,9 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsComp
     _ = 0 := by simp [measure_preimage_mul, h]
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact
 #align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_compact
+-/
 
+#print MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular /-
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
 theorem isOpenPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
@@ -581,7 +640,9 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ
   isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular
 #align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_regular
+-/
 
+#print MeasureTheory.null_iff_of_isMulLeftInvariant /-
 @[to_additive]
 theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
     μ s = 0 ↔ s = ∅ ∨ μ = 0 := by
@@ -590,21 +651,27 @@ theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s)
     simp only [h3μ, or_false_iff, hs.measure_eq_zero_iff μ]
 #align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_isMulLeftInvariant
 #align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_isAddLeftInvariant
+-/
 
+#print MeasureTheory.measure_ne_zero_iff_nonempty_of_isMulLeftInvariant /-
 @[to_additive]
 theorem measure_ne_zero_iff_nonempty_of_isMulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : μ s ≠ 0 ↔ s.Nonempty := by
   simpa [null_iff_of_is_mul_left_invariant hs, hμ] using nonempty_iff_ne_empty.symm
 #align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isMulLeftInvariant
 #align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isAddLeftInvariant
+-/
 
+#print MeasureTheory.measure_pos_iff_nonempty_of_isMulLeftInvariant /-
 @[to_additive]
 theorem measure_pos_iff_nonempty_of_isMulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : 0 < μ s ↔ s.Nonempty :=
   pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_isMulLeftInvariant h3μ hs
 #align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isMulLeftInvariant
 #align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isAddLeftInvariant
+-/
 
+#print MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant /-
 /-- If a left-invariant measure gives finite mass to a nonempty open set, then it gives finite mass
 to any compact set. -/
 @[to_additive
@@ -622,7 +689,9 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
 #align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
+-/
 
+#print MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant' /-
 /-- If a left-invariant measure gives finite mass to a set with nonempty interior, then
 it gives finite mass to any compact set. -/
 @[to_additive
@@ -633,7 +702,9 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant' {U : Set G} (hU : (in
     ((measure_mono interior_subset).trans_lt (lt_top_iff_ne_top.2 h)).Ne hK
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant'
 #align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant'
+-/
 
+#print MeasureTheory.measure_univ_of_isMulLeftInvariant /-
 /-- In a noncompact locally compact group, a left-invariant measure which is positive
 on open sets has infinite mass. -/
 @[simp,
@@ -690,6 +761,7 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
 #align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
 #align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_isAddLeftInvariant
+-/
 
 end TopologicalGroup
 
@@ -697,6 +769,7 @@ section CommSemigroup
 
 variable [CommSemigroup G]
 
+#print MeasureTheory.IsMulLeftInvariant.isMulRightInvariant /-
 /-- In an abelian group every left invariant measure is also right-invariant.
   We don't declare the converse as an instance, since that would loop type-class inference, and
   we use `is_mul_left_invariant` as the default hypothesis in abelian groups. -/
@@ -707,6 +780,7 @@ instance (priority := 100) IsMulLeftInvariant.isMulRightInvariant {μ : Measure
   ⟨fun g => by simp_rw [mul_comm, map_mul_left_eq_self]⟩
 #align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.IsMulLeftInvariant.isMulRightInvariant
 #align is_add_left_invariant.is_add_right_invariant MeasureTheory.IsAddLeftInvariant.isAddRightInvariant
+-/
 
 end CommSemigroup
 
@@ -754,6 +828,7 @@ section
 
 variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
 
+#print MeasureTheory.Measure.haar_singleton /-
 @[simp, to_additive]
 theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ {(1 : G)} :=
   by
@@ -761,14 +836,18 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
   simp only [mul_one, preimage_mul_left_singleton, inv_inv]
 #align measure_theory.measure.haar_singleton MeasureTheory.Measure.haar_singleton
 #align measure_theory.measure.add_haar_singleton MeasureTheory.Measure.addHaar_singleton
+-/
 
+#print MeasureTheory.Measure.IsHaarMeasure.smul /-
 @[to_additive MeasureTheory.Measure.IsAddHaarMeasure.smul]
 theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
   { lt_top_of_isCompact := fun K hK => ENNReal.mul_lt_top Ctop hK.measure_lt_top.Ne
     to_isOpenPosMeasure := isOpenPosMeasure_smul μ cpos }
 #align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
 #align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
+-/
 
+#print MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior /-
 /-- If a left-invariant measure gives positive mass to some compact set with nonempty interior, then
 it is a Haar measure. -/
 @[to_additive
@@ -780,7 +859,9 @@ theorem isHaarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [Borel
     to_isOpenPosMeasure := isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h }
 #align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior
 #align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isAddHaarMeasure_of_isCompact_nonempty_interior
+-/
 
+#print MeasureTheory.Measure.isHaarMeasure_map /-
 /-- The image of a Haar measure under a continuous surjective proper group homomorphism is again
 a Haar measure. See also `mul_equiv.is_haar_measure_map`. -/
 @[to_additive
@@ -797,7 +878,9 @@ theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Grou
     to_isOpenPosMeasure := hf.isOpenPosMeasure_map h_surj }
 #align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
 #align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.isAddHaarMeasure_map
+-/
 
+#print MulEquiv.isHaarMeasure_map /-
 /-- A convenience wrapper for `measure_theory.measure.is_haar_measure_map`. -/
 @[to_additive "A convenience wrapper for `measure_theory.measure.is_add_haar_measure_map`."]
 theorem MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
@@ -808,6 +891,7 @@ theorem MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type
     ({ e with } : G ≃ₜ H).toCocompactMap.cocompact_tendsto'
 #align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
 #align add_equiv.is_add_haar_measure_map AddEquiv.isAddHaarMeasure_map
+-/
 
 #print MeasureTheory.Measure.IsHaarMeasure.sigmaFinite /-
 /-- A Haar measure on a σ-compact space is σ-finite.
@@ -830,6 +914,7 @@ instance {G : Type _} [Group G] [TopologicalSpace G] {mG : MeasurableSpace G} {H
     [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [MeasurableMul G] [MeasurableMul H] :
     IsHaarMeasure (μ.Prod ν) where
 
+#print MeasureTheory.Measure.IsHaarMeasure.noAtoms /-
 /-- If the neutral element of a group is not isolated, then a Haar measure on this group has
 no atoms.
 
@@ -870,6 +955,7 @@ instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpac
   exact ge_of_tendsto' J I
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
+-/
 
 end
 
Diff
@@ -308,7 +308,6 @@ theorem measure_preimage_mul (μ : Measure G) [IsMulLeftInvariant μ] (g : G) (A
     μ ((fun h => g * h) ⁻¹' A) = map (fun h => g * h) μ A :=
       ((MeasurableEquiv.mulLeft g).map_apply A).symm
     _ = μ A := by rw [map_mul_left_eq_self μ g]
-    
 #align measure_theory.measure_preimage_mul MeasureTheory.measure_preimage_mul
 #align measure_theory.measure_preimage_add MeasureTheory.measure_preimage_add
 
@@ -319,7 +318,6 @@ theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g
     μ ((fun h => h * g) ⁻¹' A) = map (fun h => h * g) μ A :=
       ((MeasurableEquiv.mulRight g).map_apply A).symm
     _ = μ A := by rw [map_mul_right_eq_self μ g]
-    
 #align measure_theory.measure_preimage_mul_right MeasureTheory.measure_preimage_mul_right
 #align measure_theory.measure_preimage_add_right MeasureTheory.measure_preimage_add_right
 
@@ -572,7 +570,6 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsComp
     μ K ≤ μ (⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
-    
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact
 #align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_compact
 
@@ -623,7 +620,6 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
-    
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
 #align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
 
@@ -684,7 +680,6 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
           exact measure_union' (hg _ (Lcompact _)) (Lclosed _).MeasurableSet
         _ = (n + 1 + 1 : ℕ) * μ K := by
           simp only [IH, measure_smul, add_mul, Nat.cast_add, algebraMap.coe_one, one_mul]
-        
   have N : tendsto (fun n => μ (L n)) at_top (𝓝 (∞ * μ K)) :=
     by
     simp_rw [M]
Diff
@@ -46,40 +46,40 @@ namespace MeasureTheory
 
 namespace Measure
 
-#print MeasureTheory.Measure.AddLeftInvariant /-
+#print MeasureTheory.Measure.IsAddLeftInvariant /-
 /-- A measure `μ` on a measurable additive group is left invariant
   if the measure of left translations of a set are equal to the measure of the set itself. -/
-class AddLeftInvariant [Add G] (μ : Measure G) : Prop where
+class IsAddLeftInvariant [Add G] (μ : Measure G) : Prop where
   map_add_left_eq_self : ∀ g : G, map ((· + ·) g) μ = μ
-#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.AddLeftInvariant
+#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.IsAddLeftInvariant
 -/
 
-#print MeasureTheory.Measure.MulLeftInvariant /-
+#print MeasureTheory.Measure.IsMulLeftInvariant /-
 /-- A measure `μ` on a measurable group is left invariant
   if the measure of left translations of a set are equal to the measure of the set itself. -/
 @[to_additive]
-class MulLeftInvariant [Mul G] (μ : Measure G) : Prop where
+class IsMulLeftInvariant [Mul G] (μ : Measure G) : Prop where
   map_mul_left_eq_self : ∀ g : G, map ((· * ·) g) μ = μ
-#align measure_theory.measure.is_mul_left_invariant MeasureTheory.Measure.MulLeftInvariant
-#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.AddLeftInvariant
+#align measure_theory.measure.is_mul_left_invariant MeasureTheory.Measure.IsMulLeftInvariant
+#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.IsAddLeftInvariant
 -/
 
-#print MeasureTheory.Measure.AddRightInvariant /-
+#print MeasureTheory.Measure.IsAddRightInvariant /-
 /-- A measure `μ` on a measurable additive group is right invariant
   if the measure of right translations of a set are equal to the measure of the set itself. -/
-class AddRightInvariant [Add G] (μ : Measure G) : Prop where
+class IsAddRightInvariant [Add G] (μ : Measure G) : Prop where
   map_add_right_eq_self : ∀ g : G, map (· + g) μ = μ
-#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.AddRightInvariant
+#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.IsAddRightInvariant
 -/
 
-#print MeasureTheory.Measure.MulRightInvariant /-
+#print MeasureTheory.Measure.IsMulRightInvariant /-
 /-- A measure `μ` on a measurable group is right invariant
   if the measure of right translations of a set are equal to the measure of the set itself. -/
 @[to_additive]
-class MulRightInvariant [Mul G] (μ : Measure G) : Prop where
+class IsMulRightInvariant [Mul G] (μ : Measure G) : Prop where
   map_mul_right_eq_self : ∀ g : G, map (· * g) μ = μ
-#align measure_theory.measure.is_mul_right_invariant MeasureTheory.Measure.MulRightInvariant
-#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.AddRightInvariant
+#align measure_theory.measure.is_mul_right_invariant MeasureTheory.Measure.IsMulRightInvariant
+#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.IsAddRightInvariant
 -/
 
 end Measure
@@ -92,44 +92,47 @@ variable [Mul G] {μ : Measure G}
 
 #print MeasureTheory.map_mul_left_eq_self /-
 @[to_additive]
-theorem map_mul_left_eq_self (μ : Measure G) [MulLeftInvariant μ] (g : G) : map ((· * ·) g) μ = μ :=
-  MulLeftInvariant.map_mul_left_eq_self g
+theorem map_mul_left_eq_self (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
+    map ((· * ·) g) μ = μ :=
+  IsMulLeftInvariant.map_mul_left_eq_self g
 #align measure_theory.map_mul_left_eq_self MeasureTheory.map_mul_left_eq_self
 #align measure_theory.map_add_left_eq_self MeasureTheory.map_add_left_eq_self
 -/
 
 #print MeasureTheory.map_mul_right_eq_self /-
 @[to_additive]
-theorem map_mul_right_eq_self (μ : Measure G) [MulRightInvariant μ] (g : G) : map (· * g) μ = μ :=
-  MulRightInvariant.map_mul_right_eq_self g
+theorem map_mul_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· * g) μ = μ :=
+  IsMulRightInvariant.map_mul_right_eq_self g
 #align measure_theory.map_mul_right_eq_self MeasureTheory.map_mul_right_eq_self
 #align measure_theory.map_add_right_eq_self MeasureTheory.map_add_right_eq_self
 -/
 
-@[to_additive MeasureTheory.addLeftInvariant_smul]
-instance mulLeftInvariant_smul [MulLeftInvariant μ] (c : ℝ≥0∞) : MulLeftInvariant (c • μ) :=
+@[to_additive MeasureTheory.isAddLeftInvariant_smul]
+instance isMulLeftInvariant_smul [IsMulLeftInvariant μ] (c : ℝ≥0∞) : IsMulLeftInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant_smul MeasureTheory.mulLeftInvariant_smul
-#align measure_theory.is_add_left_invariant_smul MeasureTheory.addLeftInvariant_smul
+#align measure_theory.is_mul_left_invariant_smul MeasureTheory.isMulLeftInvariant_smul
+#align measure_theory.is_add_left_invariant_smul MeasureTheory.isAddLeftInvariant_smul
 
-@[to_additive MeasureTheory.addRightInvariant_smul]
-instance mulRightInvariant_smul [MulRightInvariant μ] (c : ℝ≥0∞) : MulRightInvariant (c • μ) :=
+@[to_additive MeasureTheory.isAddRightInvariant_smul]
+instance isMulRightInvariant_smul [IsMulRightInvariant μ] (c : ℝ≥0∞) :
+    IsMulRightInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_right_eq_self]⟩
-#align measure_theory.is_mul_right_invariant_smul MeasureTheory.mulRightInvariant_smul
-#align measure_theory.is_add_right_invariant_smul MeasureTheory.addRightInvariant_smul
-
-@[to_additive MeasureTheory.addLeftInvariant_smul_nnreal]
-instance mulLeftInvariant_smul_nnreal [MulLeftInvariant μ] (c : ℝ≥0) : MulLeftInvariant (c • μ) :=
-  MeasureTheory.mulLeftInvariant_smul (c : ℝ≥0∞)
-#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.mulLeftInvariant_smul_nnreal
-#align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.addLeftInvariant_smul_nnreal
-
-@[to_additive MeasureTheory.addRightInvariant_smul_nnreal]
-instance mulRightInvariant_smul_nnreal [MulRightInvariant μ] (c : ℝ≥0) :
-    MulRightInvariant (c • μ) :=
-  MeasureTheory.mulRightInvariant_smul (c : ℝ≥0∞)
-#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.mulRightInvariant_smul_nnreal
-#align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.addRightInvariant_smul_nnreal
+#align measure_theory.is_mul_right_invariant_smul MeasureTheory.isMulRightInvariant_smul
+#align measure_theory.is_add_right_invariant_smul MeasureTheory.isAddRightInvariant_smul
+
+@[to_additive MeasureTheory.isAddLeftInvariant_smul_nnreal]
+instance isMulLeftInvariant_smul_nnreal [IsMulLeftInvariant μ] (c : ℝ≥0) :
+    IsMulLeftInvariant (c • μ) :=
+  MeasureTheory.isMulLeftInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.isMulLeftInvariant_smul_nnreal
+#align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.isAddLeftInvariant_smul_nnreal
+
+@[to_additive MeasureTheory.isAddRightInvariant_smul_nnreal]
+instance isMulRightInvariant_smul_nnreal [IsMulRightInvariant μ] (c : ℝ≥0) :
+    IsMulRightInvariant (c • μ) :=
+  MeasureTheory.isMulRightInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariant_smul_nnreal
+#align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.isAddRightInvariant_smul_nnreal
 
 section MeasurableMul
 
@@ -137,7 +140,7 @@ variable [MeasurableMul G]
 
 #print MeasureTheory.measurePreserving_mul_left /-
 @[to_additive]
-theorem measurePreserving_mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G) :
+theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
     MeasurePreserving ((· * ·) g) μ μ :=
   ⟨measurable_const_mul g, map_mul_left_eq_self μ g⟩
 #align measure_theory.measure_preserving_mul_left MeasureTheory.measurePreserving_mul_left
@@ -145,7 +148,7 @@ theorem measurePreserving_mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G
 -/
 
 @[to_additive]
-theorem MeasurePreserving.mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => g * f x) μ' μ :=
   (measurePreserving_mul_left μ g).comp hf
@@ -154,7 +157,7 @@ theorem MeasurePreserving.mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G
 
 #print MeasureTheory.measurePreserving_mul_right /-
 @[to_additive]
-theorem measurePreserving_mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) :
+theorem measurePreserving_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· * g) μ μ :=
   ⟨measurable_mul_const g, map_mul_right_eq_self μ g⟩
 #align measure_theory.measure_preserving_mul_right MeasureTheory.measurePreserving_mul_right
@@ -162,28 +165,29 @@ theorem measurePreserving_mul_right (μ : Measure G) [MulRightInvariant μ] (g :
 -/
 
 @[to_additive]
-theorem MeasurePreserving.mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => f x * g) μ' μ :=
   (measurePreserving_mul_right μ g).comp hf
 #align measure_theory.measure_preserving.mul_right MeasureTheory.MeasurePreserving.mul_right
 #align measure_theory.measure_preserving.add_right MeasureTheory.MeasurePreserving.add_right
 
-#print MeasureTheory.MulLeftInvariant.smulInvariantMeasure /-
+#print MeasureTheory.IsMulLeftInvariant.smulInvariantMeasure /-
 @[to_additive]
-instance MulLeftInvariant.smulInvariantMeasure [MulLeftInvariant μ] : SMulInvariantMeasure G G μ :=
+instance IsMulLeftInvariant.smulInvariantMeasure [IsMulLeftInvariant μ] :
+    SMulInvariantMeasure G G μ :=
   ⟨fun x s hs => (measurePreserving_mul_left μ x).measure_preimage hs⟩
-#align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.MulLeftInvariant.smulInvariantMeasure
-#align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.MulLeftInvariant.vaddInvariantMeasure
+#align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.IsMulLeftInvariant.smulInvariantMeasure
+#align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.IsMulLeftInvariant.vaddInvariantMeasure
 -/
 
-#print MeasureTheory.MulRightInvariant.toSMulInvariantMeasure_op /-
+#print MeasureTheory.IsMulRightInvariant.toSMulInvariantMeasure_op /-
 @[to_additive]
-instance MulRightInvariant.toSMulInvariantMeasure_op [μ.MulRightInvariant] :
+instance IsMulRightInvariant.toSMulInvariantMeasure_op [μ.IsMulRightInvariant] :
     SMulInvariantMeasure Gᵐᵒᵖ G μ :=
   ⟨fun x s hs => (measurePreserving_mul_right μ (MulOpposite.unop x)).measure_preimage hs⟩
-#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.MulRightInvariant.toSMulInvariantMeasure_op
-#align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.MulRightInvariant.toVAddInvariantMeasure_op
+#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.IsMulRightInvariant.toSMulInvariantMeasure_op
+#align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.IsMulRightInvariant.toVAddInvariantMeasure_op
 -/
 
 @[to_additive]
@@ -198,7 +202,7 @@ instance Subgroup.smulInvariantMeasure {G α : Type _} [Group G] [MulAction G α
 @[to_additive " An alternative way to prove that `μ` is left invariant under addition. "]
 theorem forall_measure_preimage_mul_iff (μ : Measure G) :
     (∀ (g : G) (A : Set G), MeasurableSet A → μ ((fun h => g * h) ⁻¹' A) = μ A) ↔
-      MulLeftInvariant μ :=
+      IsMulLeftInvariant μ :=
   by
   trans ∀ g, map ((· * ·) g) μ = μ
   · simp_rw [measure.ext_iff]
@@ -214,7 +218,7 @@ theorem forall_measure_preimage_mul_iff (μ : Measure G) :
 @[to_additive " An alternative way to prove that `μ` is right invariant under addition. "]
 theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
     (∀ (g : G) (A : Set G), MeasurableSet A → μ ((fun h => h * g) ⁻¹' A) = μ A) ↔
-      MulRightInvariant μ :=
+      IsMulRightInvariant μ :=
   by
   trans ∀ g, map (· * g) μ = μ
   · simp_rw [measure.ext_iff]
@@ -226,9 +230,9 @@ theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
 -/
 
 @[to_additive]
-instance [MulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
-    {ν : Measure H} [MeasurableMul H] [MulLeftInvariant ν] [SigmaFinite ν] :
-    MulLeftInvariant (μ.Prod ν) := by
+instance [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
+    {ν : Measure H} [MeasurableMul H] [IsMulLeftInvariant ν] [SigmaFinite ν] :
+    IsMulLeftInvariant (μ.Prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map ((· * ·) g) ((· * ·) h)) (μ.prod ν) = μ.prod ν
@@ -238,9 +242,9 @@ instance [MulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Measu
   · rw [map_mul_left_eq_self ν h]; infer_instance
 
 @[to_additive]
-instance [MulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
-    {ν : Measure H} [MeasurableMul H] [MulRightInvariant ν] [SigmaFinite ν] :
-    MulRightInvariant (μ.Prod ν) := by
+instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
+    {ν : Measure H} [MeasurableMul H] [IsMulRightInvariant ν] [SigmaFinite ν] :
+    IsMulRightInvariant (μ.Prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map (· * g) (· * h)) (μ.prod ν) = μ.prod ν
@@ -249,11 +253,11 @@ instance [MulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Meas
   · rw [map_mul_right_eq_self μ g]; infer_instance
   · rw [map_mul_right_eq_self ν h]; infer_instance
 
-#print MeasureTheory.mulLeftInvariant_map /-
+#print MeasureTheory.isMulLeftInvariant_map /-
 @[to_additive]
-theorem mulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
-    [MulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
-    MulLeftInvariant (Measure.map f μ) :=
+theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
+    [IsMulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
+    IsMulLeftInvariant (Measure.map f μ) :=
   by
   refine' ⟨fun h => _⟩
   rw [map_map (measurable_const_mul _) hf]
@@ -263,8 +267,8 @@ theorem mulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [Measurabl
   congr 2
   ext y
   simp only [comp_app, map_mul]
-#align measure_theory.is_mul_left_invariant_map MeasureTheory.mulLeftInvariant_map
-#align measure_theory.is_add_left_invariant_map MeasureTheory.addLeftInvariant_map
+#align measure_theory.is_mul_left_invariant_map MeasureTheory.isMulLeftInvariant_map
+#align measure_theory.is_add_left_invariant_map MeasureTheory.isAddLeftInvariant_map
 -/
 
 end MeasurableMul
@@ -276,7 +280,7 @@ section DivInvMonoid
 variable [DivInvMonoid G]
 
 @[to_additive]
-theorem map_div_right_eq_self (μ : Measure G) [MulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
+theorem map_div_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
   by simp_rw [div_eq_mul_inv, map_mul_right_eq_self μ g⁻¹]
 #align measure_theory.map_div_right_eq_self MeasureTheory.map_div_right_eq_self
 #align measure_theory.map_sub_right_eq_self MeasureTheory.map_sub_right_eq_self
@@ -288,7 +292,7 @@ section Group
 variable [Group G] [MeasurableMul G]
 
 @[to_additive]
-theorem measurePreserving_div_right (μ : Measure G) [MulRightInvariant μ] (g : G) :
+theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· / g) μ μ := by simp_rw [div_eq_mul_inv, measure_preserving_mul_right μ g⁻¹]
 #align measure_theory.measure_preserving_div_right MeasureTheory.measurePreserving_div_right
 #align measure_theory.measure_preserving_sub_right MeasureTheory.measurePreserving_sub_right
@@ -298,7 +302,7 @@ theorem measurePreserving_div_right (μ : Measure G) [MulRightInvariant μ] (g :
 @[simp,
   to_additive
       "We shorten this from `measure_preimage_add_left`, since left invariant is the\npreferred option for measures in this formalization."]
-theorem measure_preimage_mul (μ : Measure G) [MulLeftInvariant μ] (g : G) (A : Set G) :
+theorem measure_preimage_mul (μ : Measure G) [IsMulLeftInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => g * h) ⁻¹' A) = μ A :=
   calc
     μ ((fun h => g * h) ⁻¹' A) = map (fun h => g * h) μ A :=
@@ -309,7 +313,7 @@ theorem measure_preimage_mul (μ : Measure G) [MulLeftInvariant μ] (g : G) (A :
 #align measure_theory.measure_preimage_add MeasureTheory.measure_preimage_add
 
 @[simp, to_additive]
-theorem measure_preimage_mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) (A : Set G) :
+theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => h * g) ⁻¹' A) = μ A :=
   calc
     μ ((fun h => h * g) ⁻¹' A) = map (fun h => h * g) μ A :=
@@ -320,42 +324,42 @@ theorem measure_preimage_mul_right (μ : Measure G) [MulRightInvariant μ] (g :
 #align measure_theory.measure_preimage_add_right MeasureTheory.measure_preimage_add_right
 
 @[to_additive]
-theorem map_mul_left_ae (μ : Measure G) [MulLeftInvariant μ] (x : G) :
+theorem map_mul_left_ae (μ : Measure G) [IsMulLeftInvariant μ] (x : G) :
     Filter.map (fun h => x * h) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulLeft x).map_ae μ).trans <| congr_arg ae <| map_mul_left_eq_self μ x
 #align measure_theory.map_mul_left_ae MeasureTheory.map_mul_left_ae
 #align measure_theory.map_add_left_ae MeasureTheory.map_add_left_ae
 
 @[to_additive]
-theorem map_mul_right_ae (μ : Measure G) [MulRightInvariant μ] (x : G) :
+theorem map_mul_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
     Filter.map (fun h => h * x) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulRight x).map_ae μ).trans <| congr_arg ae <| map_mul_right_eq_self μ x
 #align measure_theory.map_mul_right_ae MeasureTheory.map_mul_right_ae
 #align measure_theory.map_add_right_ae MeasureTheory.map_add_right_ae
 
 @[to_additive]
-theorem map_div_right_ae (μ : Measure G) [MulRightInvariant μ] (x : G) :
+theorem map_div_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
     Filter.map (fun t => t / x) μ.ae = μ.ae :=
   ((MeasurableEquiv.divRight x).map_ae μ).trans <| congr_arg ae <| map_div_right_eq_self μ x
 #align measure_theory.map_div_right_ae MeasureTheory.map_div_right_ae
 #align measure_theory.map_sub_right_ae MeasureTheory.map_sub_right_ae
 
 @[to_additive]
-theorem eventually_mul_left_iff (μ : Measure G) [MulLeftInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_mul_left_iff (μ : Measure G) [IsMulLeftInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (t * x)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]; rfl
 #align measure_theory.eventually_mul_left_iff MeasureTheory.eventually_mul_left_iff
 #align measure_theory.eventually_add_left_iff MeasureTheory.eventually_add_left_iff
 
 @[to_additive]
-theorem eventually_mul_right_iff (μ : Measure G) [MulRightInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_mul_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x * t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]; rfl
 #align measure_theory.eventually_mul_right_iff MeasureTheory.eventually_mul_right_iff
 #align measure_theory.eventually_add_right_iff MeasureTheory.eventually_add_right_iff
 
 @[to_additive]
-theorem eventually_div_right_iff (μ : Measure G) [MulRightInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_div_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x / t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_div_right_ae μ t]; rfl
 #align measure_theory.eventually_div_right_iff MeasureTheory.eventually_div_right_iff
@@ -374,22 +378,22 @@ protected def inv [Inv G] (μ : Measure G) : Measure G :=
 #align measure_theory.measure.neg MeasureTheory.Measure.neg
 -/
 
-#print MeasureTheory.Measure.NegInvariant /-
+#print MeasureTheory.Measure.IsNegInvariant /-
 /-- A measure is invariant under negation if `- μ = μ`. Equivalently, this means that for all
 measurable `A` we have `μ (- A) = μ A`, where `- A` is the pointwise negation of `A`. -/
-class NegInvariant [Neg G] (μ : Measure G) : Prop where
+class IsNegInvariant [Neg G] (μ : Measure G) : Prop where
   neg_eq_self : μ.neg = μ
-#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.NegInvariant
+#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.IsNegInvariant
 -/
 
-#print MeasureTheory.Measure.InvInvariant /-
+#print MeasureTheory.Measure.IsInvInvariant /-
 /-- A measure is invariant under inversion if `μ⁻¹ = μ`. Equivalently, this means that for all
 measurable `A` we have `μ (A⁻¹) = μ A`, where `A⁻¹` is the pointwise inverse of `A`. -/
 @[to_additive]
-class InvInvariant [Inv G] (μ : Measure G) : Prop where
+class IsInvInvariant [Inv G] (μ : Measure G) : Prop where
   inv_eq_self : μ.inv = μ
-#align measure_theory.measure.is_inv_invariant MeasureTheory.Measure.InvInvariant
-#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.NegInvariant
+#align measure_theory.measure.is_inv_invariant MeasureTheory.Measure.IsInvInvariant
+#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.IsNegInvariant
 -/
 
 section Inv
@@ -398,16 +402,16 @@ variable [Inv G]
 
 #print MeasureTheory.Measure.inv_eq_self /-
 @[simp, to_additive]
-theorem inv_eq_self (μ : Measure G) [InvInvariant μ] : μ.inv = μ :=
-  InvInvariant.inv_eq_self
+theorem inv_eq_self (μ : Measure G) [IsInvInvariant μ] : μ.inv = μ :=
+  IsInvInvariant.inv_eq_self
 #align measure_theory.measure.inv_eq_self MeasureTheory.Measure.inv_eq_self
 #align measure_theory.measure.neg_eq_self MeasureTheory.Measure.neg_eq_self
 -/
 
 #print MeasureTheory.Measure.map_inv_eq_self /-
 @[simp, to_additive]
-theorem map_inv_eq_self (μ : Measure G) [InvInvariant μ] : map Inv.inv μ = μ :=
-  InvInvariant.inv_eq_self
+theorem map_inv_eq_self (μ : Measure G) [IsInvInvariant μ] : map Inv.inv μ = μ :=
+  IsInvInvariant.inv_eq_self
 #align measure_theory.measure.map_inv_eq_self MeasureTheory.Measure.map_inv_eq_self
 #align measure_theory.measure.map_neg_eq_self MeasureTheory.Measure.map_neg_eq_self
 -/
@@ -416,7 +420,7 @@ variable [MeasurableInv G]
 
 #print MeasureTheory.Measure.measurePreserving_inv /-
 @[to_additive]
-theorem measurePreserving_inv (μ : Measure G) [InvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
+theorem measurePreserving_inv (μ : Measure G) [IsInvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
   ⟨measurable_inv, map_inv_eq_self μ⟩
 #align measure_theory.measure.measure_preserving_inv MeasureTheory.Measure.measurePreserving_inv
 #align measure_theory.measure.measure_preserving_neg MeasureTheory.Measure.measurePreserving_neg
@@ -441,13 +445,13 @@ protected theorem inv_inv (μ : Measure G) : μ.inv.inv = μ :=
 #align measure_theory.measure.neg_neg MeasureTheory.Measure.neg_neg
 
 @[simp, to_additive]
-theorem measure_inv (μ : Measure G) [InvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
+theorem measure_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
   rw [← inv_apply, inv_eq_self]
 #align measure_theory.measure.measure_inv MeasureTheory.Measure.measure_inv
 #align measure_theory.measure.measure_neg MeasureTheory.Measure.measure_neg
 
 @[to_additive]
-theorem measure_preimage_inv (μ : Measure G) [InvInvariant μ] (A : Set G) :
+theorem measure_preimage_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) :
     μ (Inv.inv ⁻¹' A) = μ A :=
   μ.measure_inv A
 #align measure_theory.measure.measure_preimage_inv MeasureTheory.Measure.measure_preimage_inv
@@ -464,7 +468,7 @@ section DivisionMonoid
 variable [DivisionMonoid G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
-instance [MulLeftInvariant μ] : MulRightInvariant μ.inv :=
+instance [IsMulLeftInvariant μ] : IsMulRightInvariant μ.inv :=
   by
   constructor
   intro g
@@ -473,7 +477,7 @@ instance [MulLeftInvariant μ] : MulRightInvariant μ.inv :=
     map_map measurable_inv (measurable_const_mul g⁻¹), Function.comp, mul_inv_rev, inv_inv]
 
 @[to_additive]
-instance [MulRightInvariant μ] : MulLeftInvariant μ.inv :=
+instance [IsMulRightInvariant μ] : IsMulLeftInvariant μ.inv :=
   by
   constructor
   intro g
@@ -482,8 +486,8 @@ instance [MulRightInvariant μ] : MulLeftInvariant μ.inv :=
     map_map measurable_inv (measurable_mul_const g⁻¹), Function.comp, mul_inv_rev, inv_inv]
 
 @[to_additive]
-theorem measurePreserving_div_left (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
-    MeasurePreserving (fun t => g / t) μ μ :=
+theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
+    (g : G) : MeasurePreserving (fun t => g / t) μ μ :=
   by
   simp_rw [div_eq_mul_inv]
   exact (measure_preserving_mul_left μ g).comp (measure_preserving_inv μ)
@@ -491,22 +495,22 @@ theorem measurePreserving_div_left (μ : Measure G) [InvInvariant μ] [MulLeftIn
 #align measure_theory.measure.measure_preserving_sub_left MeasureTheory.Measure.measurePreserving_sub_left
 
 @[to_additive]
-theorem map_div_left_eq_self (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
+theorem map_div_left_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ] (g : G) :
     map (fun t => g / t) μ = μ :=
   (measurePreserving_div_left μ g).map_eq
 #align measure_theory.measure.map_div_left_eq_self MeasureTheory.Measure.map_div_left_eq_self
 #align measure_theory.measure.map_sub_left_eq_self MeasureTheory.Measure.map_sub_left_eq_self
 
 @[to_additive]
-theorem measurePreserving_mul_right_inv (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ]
+theorem measurePreserving_mul_right_inv (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => (g * t)⁻¹) μ μ :=
   (measurePreserving_inv μ).comp <| measurePreserving_mul_left μ g
 #align measure_theory.measure.measure_preserving_mul_right_inv MeasureTheory.Measure.measurePreserving_mul_right_inv
 #align measure_theory.measure.measure_preserving_add_right_neg MeasureTheory.Measure.measurePreserving_add_right_neg
 
 @[to_additive]
-theorem map_mul_right_inv_eq_self (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
-    map (fun t => (g * t)⁻¹) μ = μ :=
+theorem map_mul_right_inv_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
+    (g : G) : map (fun t => (g * t)⁻¹) μ = μ :=
   (measurePreserving_mul_right_inv μ g).map_eq
 #align measure_theory.measure.map_mul_right_inv_eq_self MeasureTheory.Measure.map_mul_right_inv_eq_self
 #align measure_theory.measure.map_add_right_neg_eq_self MeasureTheory.Measure.map_add_right_neg_eq_self
@@ -518,7 +522,7 @@ section Group
 variable [Group G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
-theorem map_div_left_ae (μ : Measure G) [MulLeftInvariant μ] [InvInvariant μ] (x : G) :
+theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant μ] (x : G) :
     Filter.map (fun t => x / t) μ.ae = μ.ae :=
   ((MeasurableEquiv.divLeft x).map_ae μ).trans <| congr_arg ae <| map_div_left_eq_self μ x
 #align measure_theory.measure.map_div_left_ae MeasureTheory.Measure.map_div_left_ae
@@ -549,14 +553,15 @@ theorem regular_inv_iff [T2Space G] : μ.inv.regular ↔ μ.regular :=
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
-variable [MulLeftInvariant μ]
+variable [IsMulLeftInvariant μ]
 
 /-- If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
 any open set. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to a compact set, then it gives\npositive mass to any open set."]
-theorem openPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompact K) (h : μ K ≠ 0) :
-    OpenPosMeasure μ := by
+theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompact K)
+    (h : μ K ≠ 0) : IsOpenPosMeasure μ :=
+  by
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
   rw [← nonpos_iff_eq_zero]
@@ -568,45 +573,46 @@ theorem openPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompac
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
     
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_compact
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.openPosMeasure_of_addLeftInvariant_of_compact
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_compact
 
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
-theorem openPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) : OpenPosMeasure μ :=
+theorem isOpenPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
+    IsOpenPosMeasure μ :=
   let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr h₀
-  openPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_regular
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.openPosMeasure_of_addLeftInvariant_of_regular
+  isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_regular
 
 @[to_additive]
-theorem null_iff_of_mulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
+theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
     μ s = 0 ↔ s = ∅ ∨ μ = 0 := by
   by_cases h3μ : μ = 0; · simp [h3μ]
   · haveI := is_open_pos_measure_of_mul_left_invariant_of_regular h3μ
     simp only [h3μ, or_false_iff, hs.measure_eq_zero_iff μ]
-#align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_mulLeftInvariant
-#align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_addLeftInvariant
+#align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_isMulLeftInvariant
+#align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_isAddLeftInvariant
 
 @[to_additive]
-theorem measure_ne_zero_iff_nonempty_of_mulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
+theorem measure_ne_zero_iff_nonempty_of_isMulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : μ s ≠ 0 ↔ s.Nonempty := by
   simpa [null_iff_of_is_mul_left_invariant hs, hμ] using nonempty_iff_ne_empty.symm
-#align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_mulLeftInvariant
-#align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_addLeftInvariant
+#align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isMulLeftInvariant
+#align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isAddLeftInvariant
 
 @[to_additive]
-theorem measure_pos_iff_nonempty_of_mulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
+theorem measure_pos_iff_nonempty_of_isMulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : 0 < μ s ↔ s.Nonempty :=
-  pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_mulLeftInvariant h3μ hs
-#align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_mulLeftInvariant
-#align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_addLeftInvariant
+  pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_isMulLeftInvariant h3μ hs
+#align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isMulLeftInvariant
+#align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isAddLeftInvariant
 
 /-- If a left-invariant measure gives finite mass to a nonempty open set, then it gives finite mass
 to any compact set. -/
 @[to_additive
       "If a left-invariant measure gives finite mass to a nonempty open set, then it gives\nfinite mass to any compact set."]
-theorem measure_lt_top_of_isCompact_of_mulLeftInvariant (U : Set G) (hU : IsOpen U)
+theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOpen U)
     (h'U : U.Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
   by
   rw [← hU.interior_eq] at h'U 
@@ -618,27 +624,27 @@ theorem measure_lt_top_of_isCompact_of_mulLeftInvariant (U : Set G) (hU : IsOpen
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
     
-#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_addLeftInvariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
 
 /-- If a left-invariant measure gives finite mass to a set with nonempty interior, then
 it gives finite mass to any compact set. -/
 @[to_additive
       "If a left-invariant measure gives finite mass to a set with nonempty interior, then\nit gives finite mass to any compact set."]
-theorem measure_lt_top_of_isCompact_of_mulLeftInvariant' {U : Set G} (hU : (interior U).Nonempty)
+theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant' {U : Set G} (hU : (interior U).Nonempty)
     (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
-  measure_lt_top_of_isCompact_of_mulLeftInvariant (interior U) isOpen_interior hU
+  measure_lt_top_of_isCompact_of_isMulLeftInvariant (interior U) isOpen_interior hU
     ((measure_mono interior_subset).trans_lt (lt_top_iff_ne_top.2 h)).Ne hK
-#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant'
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_addLeftInvariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant'
 
 /-- In a noncompact locally compact group, a left-invariant measure which is positive
 on open sets has infinite mass. -/
 @[simp,
   to_additive
       "In a noncompact locally compact additive group, a left-invariant measure which\nis positive on open sets has infinite mass."]
-theorem measure_univ_of_mulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G] (μ : Measure G)
-    [OpenPosMeasure μ] [μ.MulLeftInvariant] : μ univ = ∞ :=
+theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G]
+    (μ : Measure G) [IsOpenPosMeasure μ] [μ.IsMulLeftInvariant] : μ univ = ∞ :=
   by
   /- Consider a closed compact set `K` with nonempty interior. For any compact set `L`, one may
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
@@ -687,8 +693,8 @@ theorem measure_univ_of_mulLeftInvariant [LocallyCompactSpace G] [NoncompactSpac
   simp only [ENNReal.top_mul', K_pos.ne', if_false] at N 
   apply top_le_iff.1
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
-#align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_mulLeftInvariant
-#align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_addLeftInvariant
+#align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
+#align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_isAddLeftInvariant
 
 end TopologicalGroup
 
@@ -699,13 +705,13 @@ variable [CommSemigroup G]
 /-- In an abelian group every left invariant measure is also right-invariant.
   We don't declare the converse as an instance, since that would loop type-class inference, and
   we use `is_mul_left_invariant` as the default hypothesis in abelian groups. -/
-@[to_additive MeasureTheory.AddLeftInvariant.addRightInvariant
+@[to_additive MeasureTheory.IsAddLeftInvariant.isAddRightInvariant
       "In an abelian additive\ngroup every left invariant measure is also right-invariant. We don't declare the converse as an\ninstance, since that would loop type-class inference, and we use `is_add_left_invariant` as the\ndefault hypothesis in abelian groups."]
-instance (priority := 100) MulLeftInvariant.mulRightInvariant {μ : Measure G} [MulLeftInvariant μ] :
-    MulRightInvariant μ :=
+instance (priority := 100) IsMulLeftInvariant.isMulRightInvariant {μ : Measure G}
+    [IsMulLeftInvariant μ] : IsMulRightInvariant μ :=
   ⟨fun g => by simp_rw [mul_comm, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.MulLeftInvariant.mulRightInvariant
-#align is_add_left_invariant.is_add_right_invariant MeasureTheory.AddLeftInvariant.addRightInvariant
+#align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.IsMulLeftInvariant.isMulRightInvariant
+#align is_add_left_invariant.is_add_right_invariant MeasureTheory.IsAddLeftInvariant.isAddRightInvariant
 
 end CommSemigroup
 
@@ -713,25 +719,27 @@ section Haar
 
 namespace Measure
 
-#print MeasureTheory.Measure.AddHaarMeasure /-
+#print MeasureTheory.Measure.IsAddHaarMeasure /-
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
-class AddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
-    (μ : Measure G) extends FiniteMeasureOnCompacts μ, AddLeftInvariant μ, OpenPosMeasure μ : Prop
-#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
+class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
+    (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ :
+    Prop
+#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 -/
 
-#print MeasureTheory.Measure.HaarMeasure /-
+#print MeasureTheory.Measure.IsHaarMeasure /-
 /-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
 sets and positive mass to open sets. -/
 @[to_additive]
-class HaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
-    (μ : Measure G) extends FiniteMeasureOnCompacts μ, MulLeftInvariant μ, OpenPosMeasure μ : Prop
-#align measure_theory.measure.is_haar_measure MeasureTheory.Measure.HaarMeasure
-#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
+class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
+    (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ :
+    Prop
+#align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
+#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 -/
 
-#print MeasureTheory.Measure.locallyFiniteMeasure_of_haarMeasure /-
+#print MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure /-
 /-- Record that a Haar measure on a locally compact space is locally finite. This is needed as the
 fact that a measure which is finite on compacts is locally finite is not registered as an instance,
 to avoid an instance loop.
@@ -739,17 +747,17 @@ to avoid an instance loop.
 See Note [lower instance priority]. -/
 @[to_additive
       "Record that an additive Haar measure on a locally compact space is\nlocally finite. This is needed as the fact that a measure which is finite on compacts is locally\nfinite is not registered as an instance, to avoid an instance loop.\n\nSee Note [lower instance priority]"]
-instance (priority := 100) locallyFiniteMeasure_of_haarMeasure {G : Type _} [Group G]
+instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
     [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
-    [HaarMeasure μ] : LocallyFiniteMeasure μ :=
-  locallyFiniteMeasure_of_finiteMeasureOnCompacts
-#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_haarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_addHaarMeasure
+    [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
+  isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
+#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
+#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isAddHaarMeasure
 -/
 
 section
 
-variable [Group G] [TopologicalSpace G] (μ : Measure G) [HaarMeasure μ]
+variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
 
 @[simp, to_additive]
 theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ {(1 : G)} :=
@@ -759,72 +767,73 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
 #align measure_theory.measure.haar_singleton MeasureTheory.Measure.haar_singleton
 #align measure_theory.measure.add_haar_singleton MeasureTheory.Measure.addHaar_singleton
 
-@[to_additive MeasureTheory.Measure.AddHaarMeasure.smul]
-theorem HaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : HaarMeasure (c • μ) :=
+@[to_additive MeasureTheory.Measure.IsAddHaarMeasure.smul]
+theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
   { lt_top_of_isCompact := fun K hK => ENNReal.mul_lt_top Ctop hK.measure_lt_top.Ne
-    to_openPosMeasure := openPosMeasure_smul μ cpos }
-#align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.HaarMeasure.smul
-#align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.AddHaarMeasure.smul
+    to_isOpenPosMeasure := isOpenPosMeasure_smul μ cpos }
+#align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
+#align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
 
 /-- If a left-invariant measure gives positive mass to some compact set with nonempty interior, then
 it is a Haar measure. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to some compact set with nonempty\ninterior, then it is an additive Haar measure."]
-theorem haarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
-    (μ : Measure G) [MulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
-    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : HaarMeasure μ :=
-  { lt_top_of_isCompact := fun L hL => measure_lt_top_of_isCompact_of_mulLeftInvariant' h'K h' hL
-    to_openPosMeasure := openPosMeasure_of_mulLeftInvariant_of_compact K hK h }
-#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.haarMeasure_of_isCompact_nonempty_interior
-#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.addHaarMeasure_of_isCompact_nonempty_interior
+theorem isHaarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
+    (μ : Measure G) [IsMulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
+    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : IsHaarMeasure μ :=
+  { lt_top_of_isCompact := fun L hL => measure_lt_top_of_isCompact_of_isMulLeftInvariant' h'K h' hL
+    to_isOpenPosMeasure := isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h }
+#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior
+#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isAddHaarMeasure_of_isCompact_nonempty_interior
 
 /-- The image of a Haar measure under a continuous surjective proper group homomorphism is again
 a Haar measure. See also `mul_equiv.is_haar_measure_map`. -/
 @[to_additive
       "The image of an additive Haar measure under a continuous surjective proper additive\ngroup homomorphism is again an additive Haar measure. See also\n`add_equiv.is_add_haar_measure_map`."]
-theorem haarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
     (f : G →* H) (hf : Continuous f) (h_surj : Surjective f)
-    (h_prop : Tendsto f (cocompact G) (cocompact H)) : HaarMeasure (Measure.map f μ) :=
-  { to_mulLeftInvariant := mulLeftInvariant_map f.toMulHom hf.Measurable h_surj
+    (h_prop : Tendsto f (cocompact G) (cocompact H)) : IsHaarMeasure (Measure.map f μ) :=
+  { to_isMulLeftInvariant := isMulLeftInvariant_map f.toMulHom hf.Measurable h_surj
     lt_top_of_isCompact := by
       intro K hK
       rw [map_apply hf.measurable hK.measurable_set]
       exact IsCompact.measure_lt_top ((⟨⟨f, hf⟩, h_prop⟩ : CocompactMap G H).isCompact_preimage hK)
-    to_openPosMeasure := hf.openPosMeasure_map h_surj }
-#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.haarMeasure_map
-#align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.addHaarMeasure_map
+    to_isOpenPosMeasure := hf.isOpenPosMeasure_map h_surj }
+#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
+#align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.isAddHaarMeasure_map
 
 /-- A convenience wrapper for `measure_theory.measure.is_haar_measure_map`. -/
 @[to_additive "A convenience wrapper for `measure_theory.measure.is_add_haar_measure_map`."]
-theorem MulEquiv.haarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
-    (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) : HaarMeasure (Measure.map e μ) :=
-  haarMeasure_map μ (e : G →* H) he e.Surjective
+    (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) :
+    IsHaarMeasure (Measure.map e μ) :=
+  isHaarMeasure_map μ (e : G →* H) he e.Surjective
     ({ e with } : G ≃ₜ H).toCocompactMap.cocompact_tendsto'
-#align mul_equiv.is_haar_measure_map MulEquiv.haarMeasure_map
-#align add_equiv.is_add_haar_measure_map AddEquiv.addHaarMeasure_map
+#align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
+#align add_equiv.is_add_haar_measure_map AddEquiv.isAddHaarMeasure_map
 
-#print MeasureTheory.Measure.HaarMeasure.sigmaFinite /-
+#print MeasureTheory.Measure.IsHaarMeasure.sigmaFinite /-
 /-- A Haar measure on a σ-compact space is σ-finite.
 
 See Note [lower instance priority] -/
 @[to_additive
       "A Haar measure on a σ-compact space is σ-finite.\n\nSee Note [lower instance priority]"]
-instance (priority := 100) HaarMeasure.sigmaFinite [SigmaCompactSpace G] : SigmaFinite μ :=
+instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : SigmaFinite μ :=
   ⟨⟨{   Set := compactCovering G
         set_mem := fun n => mem_univ _
         Finite := fun n => IsCompact.measure_lt_top <| isCompact_compactCovering G n
         spanning := iUnion_compactCovering G }⟩⟩
-#align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.HaarMeasure.sigmaFinite
-#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.AddHaarMeasure.sigmaFinite
+#align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.IsHaarMeasure.sigmaFinite
+#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite
 -/
 
 @[to_additive]
 instance {G : Type _} [Group G] [TopologicalSpace G] {mG : MeasurableSpace G} {H : Type _} [Group H]
-    [TopologicalSpace H] {mH : MeasurableSpace H} (μ : Measure G) (ν : Measure H) [HaarMeasure μ]
-    [HaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [MeasurableMul G] [MeasurableMul H] :
-    HaarMeasure (μ.Prod ν) where
+    [TopologicalSpace H] {mH : MeasurableSpace H} (μ : Measure G) (ν : Measure H) [IsHaarMeasure μ]
+    [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [MeasurableMul G] [MeasurableMul H] :
+    IsHaarMeasure (μ.Prod ν) where
 
 /-- If the neutral element of a group is not isolated, then a Haar measure on this group has
 no atoms.
@@ -833,8 +842,8 @@ The additive version of this instance applies in particular to show that an addi
 a nontrivial finite-dimensional real vector space has no atom. -/
 @[to_additive
       "If the zero element of an additive group is not isolated, then an\nadditive Haar measure on this group has no atoms.\n\nThis applies in particular to show that an additive Haar measure on a nontrivial finite-dimensional\nreal vector space has no atom."]
-instance (priority := 100) HaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
-    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.HaarMeasure] : NoAtoms μ :=
+instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
+    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.IsHaarMeasure] : NoAtoms μ :=
   by
   suffices H : μ {(1 : G)} ≤ 0; · constructor; simp [le_bot_iff.1 H]
   obtain ⟨K, K_compact, K_int⟩ : ∃ K : Set G, IsCompact K ∧ (1 : G) ∈ interior K :=
@@ -864,8 +873,8 @@ instance (priority := 100) HaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace
     ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
   simp only [ENNReal.div_top] at J 
   exact ge_of_tendsto' J I
-#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.HaarMeasure.noAtoms
-#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.AddHaarMeasure.noAtoms
+#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
+#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
 
 end
 
Diff
@@ -560,7 +560,7 @@ theorem openPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompac
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
   rw [← nonpos_iff_eq_zero]
-  rw [← hU.interior_eq] at hne
+  rw [← hU.interior_eq] at hne 
   obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
     compact_covered_by_mul_left_translates hK hne
   calc
@@ -609,7 +609,7 @@ to any compact set. -/
 theorem measure_lt_top_of_isCompact_of_mulLeftInvariant (U : Set G) (hU : IsOpen U)
     (h'U : U.Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
   by
-  rw [← hU.interior_eq] at h'U
+  rw [← hU.interior_eq] at h'U 
   obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
     compact_covered_by_mul_left_translates hK h'U
   calc
@@ -684,7 +684,7 @@ theorem measure_univ_of_mulLeftInvariant [LocallyCompactSpace G] [NoncompactSpac
     simp_rw [M]
     apply ENNReal.Tendsto.mul_const _ (Or.inl ENNReal.top_ne_zero)
     exact ennreal.tendsto_nat_nhds_top.comp (tendsto_add_at_top_nat _)
-  simp only [ENNReal.top_mul', K_pos.ne', if_false] at N
+  simp only [ENNReal.top_mul', K_pos.ne', if_false] at N 
   apply top_le_iff.1
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
 #align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_mulLeftInvariant
@@ -717,7 +717,7 @@ namespace Measure
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
 class AddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, AddLeftInvariant μ, OpenPosMeasure μ : Prop
+    (μ : Measure G) extends FiniteMeasureOnCompacts μ, AddLeftInvariant μ, OpenPosMeasure μ : Prop
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
 -/
 
@@ -726,7 +726,7 @@ class AddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableS
 sets and positive mass to open sets. -/
 @[to_additive]
 class HaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, MulLeftInvariant μ, OpenPosMeasure μ : Prop
+    (μ : Measure G) extends FiniteMeasureOnCompacts μ, MulLeftInvariant μ, OpenPosMeasure μ : Prop
 #align measure_theory.measure.is_haar_measure MeasureTheory.Measure.HaarMeasure
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
 -/
@@ -856,13 +856,13 @@ instance (priority := 100) HaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace
       · intro x hx y hy xy
         simp only [on_fun, xy.symm, mem_singleton_iff, not_false_iff, disjoint_singleton_right]
       · intro b hb; exact measurable_set_singleton b
-    rw [B] at A
+    rw [B] at A 
     rwa [ENNReal.le_div_iff_mul_le _ (Or.inr μKlt), mul_comm]
     right
     apply (measure_pos_of_nonempty_interior μ ⟨_, K_int⟩).ne'
   have J : tendsto (fun n : ℕ => μ K / n) at_top (𝓝 (μ K / ∞)) :=
     ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
-  simp only [ENNReal.div_top] at J
+  simp only [ENNReal.div_top] at J 
   exact ge_of_tendsto' J I
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.HaarMeasure.noAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.AddHaarMeasure.noAtoms
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.group.measure
-! leanprover-community/mathlib commit fd5edc43dc4f10b85abfe544b88f82cf13c5f844
+! leanprover-community/mathlib commit 61b5e2755ccb464b68d05a9acf891ae04992d09d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -19,6 +19,9 @@ import Mathbin.Topology.ContinuousFunction.CocompactMap
 /-!
 # Measures on Groups
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We develop some properties of measures on (topological) groups
 
 * We define properties on measures: measures that are left or right invariant w.r.t. multiplication.
@@ -43,33 +46,41 @@ namespace MeasureTheory
 
 namespace Measure
 
+#print MeasureTheory.Measure.AddLeftInvariant /-
 /-- A measure `μ` on a measurable additive group is left invariant
   if the measure of left translations of a set are equal to the measure of the set itself. -/
-class IsAddLeftInvariant [Add G] (μ : Measure G) : Prop where
+class AddLeftInvariant [Add G] (μ : Measure G) : Prop where
   map_add_left_eq_self : ∀ g : G, map ((· + ·) g) μ = μ
-#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.IsAddLeftInvariant
+#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.AddLeftInvariant
+-/
 
+#print MeasureTheory.Measure.MulLeftInvariant /-
 /-- A measure `μ` on a measurable group is left invariant
   if the measure of left translations of a set are equal to the measure of the set itself. -/
 @[to_additive]
-class IsMulLeftInvariant [Mul G] (μ : Measure G) : Prop where
+class MulLeftInvariant [Mul G] (μ : Measure G) : Prop where
   map_mul_left_eq_self : ∀ g : G, map ((· * ·) g) μ = μ
-#align measure_theory.measure.is_mul_left_invariant MeasureTheory.Measure.IsMulLeftInvariant
-#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.IsAddLeftInvariant
+#align measure_theory.measure.is_mul_left_invariant MeasureTheory.Measure.MulLeftInvariant
+#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.AddLeftInvariant
+-/
 
+#print MeasureTheory.Measure.AddRightInvariant /-
 /-- A measure `μ` on a measurable additive group is right invariant
   if the measure of right translations of a set are equal to the measure of the set itself. -/
-class IsAddRightInvariant [Add G] (μ : Measure G) : Prop where
+class AddRightInvariant [Add G] (μ : Measure G) : Prop where
   map_add_right_eq_self : ∀ g : G, map (· + g) μ = μ
-#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.IsAddRightInvariant
+#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.AddRightInvariant
+-/
 
+#print MeasureTheory.Measure.MulRightInvariant /-
 /-- A measure `μ` on a measurable group is right invariant
   if the measure of right translations of a set are equal to the measure of the set itself. -/
 @[to_additive]
-class IsMulRightInvariant [Mul G] (μ : Measure G) : Prop where
+class MulRightInvariant [Mul G] (μ : Measure G) : Prop where
   map_mul_right_eq_self : ∀ g : G, map (· * g) μ = μ
-#align measure_theory.measure.is_mul_right_invariant MeasureTheory.Measure.IsMulRightInvariant
-#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.IsAddRightInvariant
+#align measure_theory.measure.is_mul_right_invariant MeasureTheory.Measure.MulRightInvariant
+#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.AddRightInvariant
+-/
 
 end Measure
 
@@ -79,106 +90,115 @@ section Mul
 
 variable [Mul G] {μ : Measure G}
 
+#print MeasureTheory.map_mul_left_eq_self /-
 @[to_additive]
-theorem map_mul_left_eq_self (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
-    map ((· * ·) g) μ = μ :=
-  IsMulLeftInvariant.map_mul_left_eq_self g
+theorem map_mul_left_eq_self (μ : Measure G) [MulLeftInvariant μ] (g : G) : map ((· * ·) g) μ = μ :=
+  MulLeftInvariant.map_mul_left_eq_self g
 #align measure_theory.map_mul_left_eq_self MeasureTheory.map_mul_left_eq_self
 #align measure_theory.map_add_left_eq_self MeasureTheory.map_add_left_eq_self
+-/
 
+#print MeasureTheory.map_mul_right_eq_self /-
 @[to_additive]
-theorem map_mul_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· * g) μ = μ :=
-  IsMulRightInvariant.map_mul_right_eq_self g
+theorem map_mul_right_eq_self (μ : Measure G) [MulRightInvariant μ] (g : G) : map (· * g) μ = μ :=
+  MulRightInvariant.map_mul_right_eq_self g
 #align measure_theory.map_mul_right_eq_self MeasureTheory.map_mul_right_eq_self
 #align measure_theory.map_add_right_eq_self MeasureTheory.map_add_right_eq_self
+-/
 
-@[to_additive MeasureTheory.is_add_left_invariant_smul]
-instance isMulLeftInvariant_smul [IsMulLeftInvariant μ] (c : ℝ≥0∞) : IsMulLeftInvariant (c • μ) :=
+@[to_additive MeasureTheory.addLeftInvariant_smul]
+instance mulLeftInvariant_smul [MulLeftInvariant μ] (c : ℝ≥0∞) : MulLeftInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant_smul MeasureTheory.isMulLeftInvariant_smul
-#align measure_theory.is_add_left_invariant_smul MeasureTheory.is_add_left_invariant_smul
+#align measure_theory.is_mul_left_invariant_smul MeasureTheory.mulLeftInvariant_smul
+#align measure_theory.is_add_left_invariant_smul MeasureTheory.addLeftInvariant_smul
 
-@[to_additive MeasureTheory.is_add_right_invariant_smul]
-instance isMulRightInvariant_smul [IsMulRightInvariant μ] (c : ℝ≥0∞) :
-    IsMulRightInvariant (c • μ) :=
+@[to_additive MeasureTheory.addRightInvariant_smul]
+instance mulRightInvariant_smul [MulRightInvariant μ] (c : ℝ≥0∞) : MulRightInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_right_eq_self]⟩
-#align measure_theory.is_mul_right_invariant_smul MeasureTheory.isMulRightInvariant_smul
-#align measure_theory.is_add_right_invariant_smul MeasureTheory.is_add_right_invariant_smul
-
-@[to_additive MeasureTheory.is_add_left_invariant_smul_nnreal]
-instance isMulLeftInvariant_smul_nNReal [IsMulLeftInvariant μ] (c : ℝ≥0) :
-    IsMulLeftInvariant (c • μ) :=
-  MeasureTheory.isMulLeftInvariant_smul (c : ℝ≥0∞)
-#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.isMulLeftInvariant_smul_nNReal
-#align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.is_add_left_invariant_smul_nnreal
-
-@[to_additive MeasureTheory.is_add_right_invariant_smul_nnreal]
-instance isMulRightInvariant_smul_nNReal [IsMulRightInvariant μ] (c : ℝ≥0) :
-    IsMulRightInvariant (c • μ) :=
-  MeasureTheory.isMulRightInvariant_smul (c : ℝ≥0∞)
-#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariant_smul_nNReal
-#align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.is_add_right_invariant_smul_nnreal
+#align measure_theory.is_mul_right_invariant_smul MeasureTheory.mulRightInvariant_smul
+#align measure_theory.is_add_right_invariant_smul MeasureTheory.addRightInvariant_smul
+
+@[to_additive MeasureTheory.addLeftInvariant_smul_nnreal]
+instance mulLeftInvariant_smul_nnreal [MulLeftInvariant μ] (c : ℝ≥0) : MulLeftInvariant (c • μ) :=
+  MeasureTheory.mulLeftInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.mulLeftInvariant_smul_nnreal
+#align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.addLeftInvariant_smul_nnreal
+
+@[to_additive MeasureTheory.addRightInvariant_smul_nnreal]
+instance mulRightInvariant_smul_nnreal [MulRightInvariant μ] (c : ℝ≥0) :
+    MulRightInvariant (c • μ) :=
+  MeasureTheory.mulRightInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.mulRightInvariant_smul_nnreal
+#align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.addRightInvariant_smul_nnreal
 
 section MeasurableMul
 
 variable [MeasurableMul G]
 
+#print MeasureTheory.measurePreserving_mul_left /-
 @[to_additive]
-theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
+theorem measurePreserving_mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G) :
     MeasurePreserving ((· * ·) g) μ μ :=
   ⟨measurable_const_mul g, map_mul_left_eq_self μ g⟩
 #align measure_theory.measure_preserving_mul_left MeasureTheory.measurePreserving_mul_left
 #align measure_theory.measure_preserving_add_left MeasureTheory.measurePreserving_add_left
+-/
 
 @[to_additive]
-theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => g * f x) μ' μ :=
   (measurePreserving_mul_left μ g).comp hf
 #align measure_theory.measure_preserving.mul_left MeasureTheory.MeasurePreserving.mul_left
 #align measure_theory.measure_preserving.add_left MeasureTheory.MeasurePreserving.add_left
 
+#print MeasureTheory.measurePreserving_mul_right /-
 @[to_additive]
-theorem measurePreserving_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
+theorem measurePreserving_mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) :
     MeasurePreserving (· * g) μ μ :=
   ⟨measurable_mul_const g, map_mul_right_eq_self μ g⟩
 #align measure_theory.measure_preserving_mul_right MeasureTheory.measurePreserving_mul_right
 #align measure_theory.measure_preserving_add_right MeasureTheory.measurePreserving_add_right
+-/
 
 @[to_additive]
-theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => f x * g) μ' μ :=
   (measurePreserving_mul_right μ g).comp hf
 #align measure_theory.measure_preserving.mul_right MeasureTheory.MeasurePreserving.mul_right
 #align measure_theory.measure_preserving.add_right MeasureTheory.MeasurePreserving.add_right
 
+#print MeasureTheory.MulLeftInvariant.smulInvariantMeasure /-
 @[to_additive]
-instance IsMulLeftInvariant.smulInvariantMeasure [IsMulLeftInvariant μ] :
-    SmulInvariantMeasure G G μ :=
+instance MulLeftInvariant.smulInvariantMeasure [MulLeftInvariant μ] : SMulInvariantMeasure G G μ :=
   ⟨fun x s hs => (measurePreserving_mul_left μ x).measure_preimage hs⟩
-#align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.IsMulLeftInvariant.smulInvariantMeasure
-#align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.IsMulLeftInvariant.vadd_invariant_measure
+#align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.MulLeftInvariant.smulInvariantMeasure
+#align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.MulLeftInvariant.vaddInvariantMeasure
+-/
 
+#print MeasureTheory.MulRightInvariant.toSMulInvariantMeasure_op /-
 @[to_additive]
-instance IsMulRightInvariant.to_smulInvariantMeasure_op [μ.IsMulRightInvariant] :
-    SmulInvariantMeasure Gᵐᵒᵖ G μ :=
+instance MulRightInvariant.toSMulInvariantMeasure_op [μ.MulRightInvariant] :
+    SMulInvariantMeasure Gᵐᵒᵖ G μ :=
   ⟨fun x s hs => (measurePreserving_mul_right μ (MulOpposite.unop x)).measure_preimage hs⟩
-#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.IsMulRightInvariant.to_smulInvariantMeasure_op
-#align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.IsMulRightInvariant.to_vadd_invariant_measure_op
+#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.MulRightInvariant.toSMulInvariantMeasure_op
+#align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.MulRightInvariant.toVAddInvariantMeasure_op
+-/
 
 @[to_additive]
 instance Subgroup.smulInvariantMeasure {G α : Type _} [Group G] [MulAction G α] [MeasurableSpace α]
-    {μ : Measure α} [SmulInvariantMeasure G α μ] (H : Subgroup G) : SmulInvariantMeasure H α μ :=
+    {μ : Measure α} [SMulInvariantMeasure G α μ] (H : Subgroup G) : SMulInvariantMeasure H α μ :=
   ⟨fun y s hs => by convert smul_invariant_measure.measure_preimage_smul μ (y : G) hs⟩
 #align measure_theory.subgroup.smul_invariant_measure MeasureTheory.Subgroup.smulInvariantMeasure
-#align measure_theory.subgroup.vadd_invariant_measure MeasureTheory.Subgroup.vadd_invariant_measure
+#align measure_theory.subgroup.vadd_invariant_measure MeasureTheory.Subgroup.vaddInvariantMeasure
 
+#print MeasureTheory.forall_measure_preimage_mul_iff /-
 /-- An alternative way to prove that `μ` is left invariant under multiplication. -/
 @[to_additive " An alternative way to prove that `μ` is left invariant under addition. "]
 theorem forall_measure_preimage_mul_iff (μ : Measure G) :
     (∀ (g : G) (A : Set G), MeasurableSet A → μ ((fun h => g * h) ⁻¹' A) = μ A) ↔
-      IsMulLeftInvariant μ :=
+      MulLeftInvariant μ :=
   by
   trans ∀ g, map ((· * ·) g) μ = μ
   · simp_rw [measure.ext_iff]
@@ -187,12 +207,14 @@ theorem forall_measure_preimage_mul_iff (μ : Measure G) :
   exact ⟨fun h => ⟨h⟩, fun h => h.1⟩
 #align measure_theory.forall_measure_preimage_mul_iff MeasureTheory.forall_measure_preimage_mul_iff
 #align measure_theory.forall_measure_preimage_add_iff MeasureTheory.forall_measure_preimage_add_iff
+-/
 
+#print MeasureTheory.forall_measure_preimage_mul_right_iff /-
 /-- An alternative way to prove that `μ` is right invariant under multiplication. -/
 @[to_additive " An alternative way to prove that `μ` is right invariant under addition. "]
 theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
     (∀ (g : G) (A : Set G), MeasurableSet A → μ ((fun h => h * g) ⁻¹' A) = μ A) ↔
-      IsMulRightInvariant μ :=
+      MulRightInvariant μ :=
   by
   trans ∀ g, map (· * g) μ = μ
   · simp_rw [measure.ext_iff]
@@ -201,11 +223,12 @@ theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
   exact ⟨fun h => ⟨h⟩, fun h => h.1⟩
 #align measure_theory.forall_measure_preimage_mul_right_iff MeasureTheory.forall_measure_preimage_mul_right_iff
 #align measure_theory.forall_measure_preimage_add_right_iff MeasureTheory.forall_measure_preimage_add_right_iff
+-/
 
 @[to_additive]
-instance [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
-    {ν : Measure H} [MeasurableMul H] [IsMulLeftInvariant ν] [SigmaFinite ν] :
-    IsMulLeftInvariant (μ.Prod ν) := by
+instance [MulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
+    {ν : Measure H} [MeasurableMul H] [MulLeftInvariant ν] [SigmaFinite ν] :
+    MulLeftInvariant (μ.Prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map ((· * ·) g) ((· * ·) h)) (μ.prod ν) = μ.prod ν
@@ -215,9 +238,9 @@ instance [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Mea
   · rw [map_mul_left_eq_self ν h]; infer_instance
 
 @[to_additive]
-instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
-    {ν : Measure H} [MeasurableMul H] [IsMulRightInvariant ν] [SigmaFinite ν] :
-    IsMulRightInvariant (μ.Prod ν) := by
+instance [MulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
+    {ν : Measure H} [MeasurableMul H] [MulRightInvariant ν] [SigmaFinite ν] :
+    MulRightInvariant (μ.Prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map (· * g) (· * h)) (μ.prod ν) = μ.prod ν
@@ -226,10 +249,11 @@ instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Me
   · rw [map_mul_right_eq_self μ g]; infer_instance
   · rw [map_mul_right_eq_self ν h]; infer_instance
 
+#print MeasureTheory.mulLeftInvariant_map /-
 @[to_additive]
-theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
-    [IsMulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
-    IsMulLeftInvariant (Measure.map f μ) :=
+theorem mulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
+    [MulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
+    MulLeftInvariant (Measure.map f μ) :=
   by
   refine' ⟨fun h => _⟩
   rw [map_map (measurable_const_mul _) hf]
@@ -239,8 +263,9 @@ theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [Measura
   congr 2
   ext y
   simp only [comp_app, map_mul]
-#align measure_theory.is_mul_left_invariant_map MeasureTheory.isMulLeftInvariant_map
-#align measure_theory.is_add_left_invariant_map MeasureTheory.is_add_left_invariant_map
+#align measure_theory.is_mul_left_invariant_map MeasureTheory.mulLeftInvariant_map
+#align measure_theory.is_add_left_invariant_map MeasureTheory.addLeftInvariant_map
+-/
 
 end MeasurableMul
 
@@ -251,7 +276,7 @@ section DivInvMonoid
 variable [DivInvMonoid G]
 
 @[to_additive]
-theorem map_div_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
+theorem map_div_right_eq_self (μ : Measure G) [MulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
   by simp_rw [div_eq_mul_inv, map_mul_right_eq_self μ g⁻¹]
 #align measure_theory.map_div_right_eq_self MeasureTheory.map_div_right_eq_self
 #align measure_theory.map_sub_right_eq_self MeasureTheory.map_sub_right_eq_self
@@ -263,7 +288,7 @@ section Group
 variable [Group G] [MeasurableMul G]
 
 @[to_additive]
-theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
+theorem measurePreserving_div_right (μ : Measure G) [MulRightInvariant μ] (g : G) :
     MeasurePreserving (· / g) μ μ := by simp_rw [div_eq_mul_inv, measure_preserving_mul_right μ g⁻¹]
 #align measure_theory.measure_preserving_div_right MeasureTheory.measurePreserving_div_right
 #align measure_theory.measure_preserving_sub_right MeasureTheory.measurePreserving_sub_right
@@ -273,7 +298,7 @@ theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g
 @[simp,
   to_additive
       "We shorten this from `measure_preimage_add_left`, since left invariant is the\npreferred option for measures in this formalization."]
-theorem measure_preimage_mul (μ : Measure G) [IsMulLeftInvariant μ] (g : G) (A : Set G) :
+theorem measure_preimage_mul (μ : Measure G) [MulLeftInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => g * h) ⁻¹' A) = μ A :=
   calc
     μ ((fun h => g * h) ⁻¹' A) = map (fun h => g * h) μ A :=
@@ -284,7 +309,7 @@ theorem measure_preimage_mul (μ : Measure G) [IsMulLeftInvariant μ] (g : G) (A
 #align measure_theory.measure_preimage_add MeasureTheory.measure_preimage_add
 
 @[simp, to_additive]
-theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) (A : Set G) :
+theorem measure_preimage_mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => h * g) ⁻¹' A) = μ A :=
   calc
     μ ((fun h => h * g) ⁻¹' A) = map (fun h => h * g) μ A :=
@@ -295,42 +320,42 @@ theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g
 #align measure_theory.measure_preimage_add_right MeasureTheory.measure_preimage_add_right
 
 @[to_additive]
-theorem map_mul_left_ae (μ : Measure G) [IsMulLeftInvariant μ] (x : G) :
+theorem map_mul_left_ae (μ : Measure G) [MulLeftInvariant μ] (x : G) :
     Filter.map (fun h => x * h) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulLeft x).map_ae μ).trans <| congr_arg ae <| map_mul_left_eq_self μ x
 #align measure_theory.map_mul_left_ae MeasureTheory.map_mul_left_ae
 #align measure_theory.map_add_left_ae MeasureTheory.map_add_left_ae
 
 @[to_additive]
-theorem map_mul_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
+theorem map_mul_right_ae (μ : Measure G) [MulRightInvariant μ] (x : G) :
     Filter.map (fun h => h * x) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulRight x).map_ae μ).trans <| congr_arg ae <| map_mul_right_eq_self μ x
 #align measure_theory.map_mul_right_ae MeasureTheory.map_mul_right_ae
 #align measure_theory.map_add_right_ae MeasureTheory.map_add_right_ae
 
 @[to_additive]
-theorem map_div_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
+theorem map_div_right_ae (μ : Measure G) [MulRightInvariant μ] (x : G) :
     Filter.map (fun t => t / x) μ.ae = μ.ae :=
   ((MeasurableEquiv.divRight x).map_ae μ).trans <| congr_arg ae <| map_div_right_eq_self μ x
 #align measure_theory.map_div_right_ae MeasureTheory.map_div_right_ae
 #align measure_theory.map_sub_right_ae MeasureTheory.map_sub_right_ae
 
 @[to_additive]
-theorem eventually_mul_left_iff (μ : Measure G) [IsMulLeftInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_mul_left_iff (μ : Measure G) [MulLeftInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (t * x)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]; rfl
 #align measure_theory.eventually_mul_left_iff MeasureTheory.eventually_mul_left_iff
 #align measure_theory.eventually_add_left_iff MeasureTheory.eventually_add_left_iff
 
 @[to_additive]
-theorem eventually_mul_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_mul_right_iff (μ : Measure G) [MulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x * t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]; rfl
 #align measure_theory.eventually_mul_right_iff MeasureTheory.eventually_mul_right_iff
 #align measure_theory.eventually_add_right_iff MeasureTheory.eventually_add_right_iff
 
 @[to_additive]
-theorem eventually_div_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_div_right_iff (μ : Measure G) [MulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x / t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_div_right_ae μ t]; rfl
 #align measure_theory.eventually_div_right_iff MeasureTheory.eventually_div_right_iff
@@ -340,50 +365,62 @@ end Group
 
 namespace Measure
 
+#print MeasureTheory.Measure.inv /-
 /-- The measure `A ↦ μ (A⁻¹)`, where `A⁻¹` is the pointwise inverse of `A`. -/
 @[to_additive "The measure `A ↦ μ (- A)`, where `- A` is the pointwise negation of `A`."]
 protected def inv [Inv G] (μ : Measure G) : Measure G :=
   Measure.map inv μ
 #align measure_theory.measure.inv MeasureTheory.Measure.inv
 #align measure_theory.measure.neg MeasureTheory.Measure.neg
+-/
 
+#print MeasureTheory.Measure.NegInvariant /-
 /-- A measure is invariant under negation if `- μ = μ`. Equivalently, this means that for all
 measurable `A` we have `μ (- A) = μ A`, where `- A` is the pointwise negation of `A`. -/
-class IsNegInvariant [Neg G] (μ : Measure G) : Prop where
+class NegInvariant [Neg G] (μ : Measure G) : Prop where
   neg_eq_self : μ.neg = μ
-#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.IsNegInvariant
+#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.NegInvariant
+-/
 
+#print MeasureTheory.Measure.InvInvariant /-
 /-- A measure is invariant under inversion if `μ⁻¹ = μ`. Equivalently, this means that for all
 measurable `A` we have `μ (A⁻¹) = μ A`, where `A⁻¹` is the pointwise inverse of `A`. -/
 @[to_additive]
-class IsInvInvariant [Inv G] (μ : Measure G) : Prop where
+class InvInvariant [Inv G] (μ : Measure G) : Prop where
   inv_eq_self : μ.inv = μ
-#align measure_theory.measure.is_inv_invariant MeasureTheory.Measure.IsInvInvariant
-#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.IsNegInvariant
+#align measure_theory.measure.is_inv_invariant MeasureTheory.Measure.InvInvariant
+#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.NegInvariant
+-/
 
 section Inv
 
 variable [Inv G]
 
+#print MeasureTheory.Measure.inv_eq_self /-
 @[simp, to_additive]
-theorem inv_eq_self (μ : Measure G) [IsInvInvariant μ] : μ.inv = μ :=
-  IsInvInvariant.inv_eq_self
+theorem inv_eq_self (μ : Measure G) [InvInvariant μ] : μ.inv = μ :=
+  InvInvariant.inv_eq_self
 #align measure_theory.measure.inv_eq_self MeasureTheory.Measure.inv_eq_self
 #align measure_theory.measure.neg_eq_self MeasureTheory.Measure.neg_eq_self
+-/
 
+#print MeasureTheory.Measure.map_inv_eq_self /-
 @[simp, to_additive]
-theorem map_inv_eq_self (μ : Measure G) [IsInvInvariant μ] : map Inv.inv μ = μ :=
-  IsInvInvariant.inv_eq_self
+theorem map_inv_eq_self (μ : Measure G) [InvInvariant μ] : map Inv.inv μ = μ :=
+  InvInvariant.inv_eq_self
 #align measure_theory.measure.map_inv_eq_self MeasureTheory.Measure.map_inv_eq_self
 #align measure_theory.measure.map_neg_eq_self MeasureTheory.Measure.map_neg_eq_self
+-/
 
 variable [MeasurableInv G]
 
+#print MeasureTheory.Measure.measurePreserving_inv /-
 @[to_additive]
-theorem measurePreserving_inv (μ : Measure G) [IsInvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
+theorem measurePreserving_inv (μ : Measure G) [InvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
   ⟨measurable_inv, map_inv_eq_self μ⟩
 #align measure_theory.measure.measure_preserving_inv MeasureTheory.Measure.measurePreserving_inv
 #align measure_theory.measure.measure_preserving_neg MeasureTheory.Measure.measurePreserving_neg
+-/
 
 end Inv
 
@@ -404,13 +441,13 @@ protected theorem inv_inv (μ : Measure G) : μ.inv.inv = μ :=
 #align measure_theory.measure.neg_neg MeasureTheory.Measure.neg_neg
 
 @[simp, to_additive]
-theorem measure_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
+theorem measure_inv (μ : Measure G) [InvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
   rw [← inv_apply, inv_eq_self]
 #align measure_theory.measure.measure_inv MeasureTheory.Measure.measure_inv
 #align measure_theory.measure.measure_neg MeasureTheory.Measure.measure_neg
 
 @[to_additive]
-theorem measure_preimage_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) :
+theorem measure_preimage_inv (μ : Measure G) [InvInvariant μ] (A : Set G) :
     μ (Inv.inv ⁻¹' A) = μ A :=
   μ.measure_inv A
 #align measure_theory.measure.measure_preimage_inv MeasureTheory.Measure.measure_preimage_inv
@@ -427,7 +464,7 @@ section DivisionMonoid
 variable [DivisionMonoid G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
-instance [IsMulLeftInvariant μ] : IsMulRightInvariant μ.inv :=
+instance [MulLeftInvariant μ] : MulRightInvariant μ.inv :=
   by
   constructor
   intro g
@@ -436,7 +473,7 @@ instance [IsMulLeftInvariant μ] : IsMulRightInvariant μ.inv :=
     map_map measurable_inv (measurable_const_mul g⁻¹), Function.comp, mul_inv_rev, inv_inv]
 
 @[to_additive]
-instance [IsMulRightInvariant μ] : IsMulLeftInvariant μ.inv :=
+instance [MulRightInvariant μ] : MulLeftInvariant μ.inv :=
   by
   constructor
   intro g
@@ -445,8 +482,8 @@ instance [IsMulRightInvariant μ] : IsMulLeftInvariant μ.inv :=
     map_map measurable_inv (measurable_mul_const g⁻¹), Function.comp, mul_inv_rev, inv_inv]
 
 @[to_additive]
-theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
-    (g : G) : MeasurePreserving (fun t => g / t) μ μ :=
+theorem measurePreserving_div_left (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
+    MeasurePreserving (fun t => g / t) μ μ :=
   by
   simp_rw [div_eq_mul_inv]
   exact (measure_preserving_mul_left μ g).comp (measure_preserving_inv μ)
@@ -454,22 +491,22 @@ theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLe
 #align measure_theory.measure.measure_preserving_sub_left MeasureTheory.Measure.measurePreserving_sub_left
 
 @[to_additive]
-theorem map_div_left_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ] (g : G) :
+theorem map_div_left_eq_self (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
     map (fun t => g / t) μ = μ :=
   (measurePreserving_div_left μ g).map_eq
 #align measure_theory.measure.map_div_left_eq_self MeasureTheory.Measure.map_div_left_eq_self
 #align measure_theory.measure.map_sub_left_eq_self MeasureTheory.Measure.map_sub_left_eq_self
 
 @[to_additive]
-theorem measurePreserving_mul_right_inv (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
+theorem measurePreserving_mul_right_inv (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => (g * t)⁻¹) μ μ :=
   (measurePreserving_inv μ).comp <| measurePreserving_mul_left μ g
 #align measure_theory.measure.measure_preserving_mul_right_inv MeasureTheory.Measure.measurePreserving_mul_right_inv
 #align measure_theory.measure.measure_preserving_add_right_neg MeasureTheory.Measure.measurePreserving_add_right_neg
 
 @[to_additive]
-theorem map_mul_right_inv_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
-    (g : G) : map (fun t => (g * t)⁻¹) μ = μ :=
+theorem map_mul_right_inv_eq_self (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
+    map (fun t => (g * t)⁻¹) μ = μ :=
   (measurePreserving_mul_right_inv μ g).map_eq
 #align measure_theory.measure.map_mul_right_inv_eq_self MeasureTheory.Measure.map_mul_right_inv_eq_self
 #align measure_theory.measure.map_add_right_neg_eq_self MeasureTheory.Measure.map_add_right_neg_eq_self
@@ -481,7 +518,7 @@ section Group
 variable [Group G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
-theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant μ] (x : G) :
+theorem map_div_left_ae (μ : Measure G) [MulLeftInvariant μ] [InvInvariant μ] (x : G) :
     Filter.map (fun t => x / t) μ.ae = μ.ae :=
   ((MeasurableEquiv.divLeft x).map_ae μ).trans <| congr_arg ae <| map_div_left_eq_self μ x
 #align measure_theory.measure.map_div_left_ae MeasureTheory.Measure.map_div_left_ae
@@ -512,15 +549,14 @@ theorem regular_inv_iff [T2Space G] : μ.inv.regular ↔ μ.regular :=
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
-variable [IsMulLeftInvariant μ]
+variable [MulLeftInvariant μ]
 
 /-- If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
 any open set. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to a compact set, then it gives\npositive mass to any open set."]
-theorem openPosMeasure_of_mul_left_invariant_of_compact (K : Set G) (hK : IsCompact K)
-    (h : μ K ≠ 0) : OpenPosMeasure μ :=
-  by
+theorem openPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompact K) (h : μ K ≠ 0) :
+    OpenPosMeasure μ := by
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
   rw [← nonpos_iff_eq_zero]
@@ -532,46 +568,45 @@ theorem openPosMeasure_of_mul_left_invariant_of_compact (K : Set G) (hK : IsComp
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
     
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.openPosMeasure_of_mul_left_invariant_of_compact
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.openPosMeasure_of_add_left_invariant_of_compact
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_compact
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.openPosMeasure_of_addLeftInvariant_of_compact
 
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
-theorem openPosMeasure_of_mul_left_invariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
-    OpenPosMeasure μ :=
+theorem openPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) : OpenPosMeasure μ :=
   let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr h₀
-  openPosMeasure_of_mul_left_invariant_of_compact K hK h2K
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.openPosMeasure_of_mul_left_invariant_of_regular
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.openPosMeasure_of_add_left_invariant_of_regular
+  openPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_regular
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.openPosMeasure_of_addLeftInvariant_of_regular
 
 @[to_additive]
-theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
+theorem null_iff_of_mulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
     μ s = 0 ↔ s = ∅ ∨ μ = 0 := by
   by_cases h3μ : μ = 0; · simp [h3μ]
   · haveI := is_open_pos_measure_of_mul_left_invariant_of_regular h3μ
     simp only [h3μ, or_false_iff, hs.measure_eq_zero_iff μ]
-#align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_isMulLeftInvariant
-#align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_is_add_left_invariant
+#align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_mulLeftInvariant
+#align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_addLeftInvariant
 
 @[to_additive]
-theorem measure_ne_zero_iff_nonempty_of_isMulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
+theorem measure_ne_zero_iff_nonempty_of_mulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : μ s ≠ 0 ↔ s.Nonempty := by
   simpa [null_iff_of_is_mul_left_invariant hs, hμ] using nonempty_iff_ne_empty.symm
-#align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isMulLeftInvariant
-#align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant
+#align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_mulLeftInvariant
+#align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_addLeftInvariant
 
 @[to_additive]
-theorem measure_pos_iff_nonempty_of_isMulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
+theorem measure_pos_iff_nonempty_of_mulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : 0 < μ s ↔ s.Nonempty :=
-  pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_isMulLeftInvariant h3μ hs
-#align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isMulLeftInvariant
-#align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_is_add_left_invariant
+  pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_mulLeftInvariant h3μ hs
+#align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_mulLeftInvariant
+#align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_addLeftInvariant
 
 /-- If a left-invariant measure gives finite mass to a nonempty open set, then it gives finite mass
 to any compact set. -/
 @[to_additive
       "If a left-invariant measure gives finite mass to a nonempty open set, then it gives\nfinite mass to any compact set."]
-theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOpen U)
+theorem measure_lt_top_of_isCompact_of_mulLeftInvariant (U : Set G) (hU : IsOpen U)
     (h'U : U.Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
   by
   rw [← hU.interior_eq] at h'U
@@ -583,27 +618,27 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
     
-#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_is_add_left_invariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_addLeftInvariant
 
 /-- If a left-invariant measure gives finite mass to a set with nonempty interior, then
 it gives finite mass to any compact set. -/
 @[to_additive
       "If a left-invariant measure gives finite mass to a set with nonempty interior, then\nit gives finite mass to any compact set."]
-theorem measure_lt_top_of_isCompact_of_is_mul_left_invariant' {U : Set G}
-    (hU : (interior U).Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
-  measure_lt_top_of_isCompact_of_isMulLeftInvariant (interior U) isOpen_interior hU
+theorem measure_lt_top_of_isCompact_of_mulLeftInvariant' {U : Set G} (hU : (interior U).Nonempty)
+    (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
+  measure_lt_top_of_isCompact_of_mulLeftInvariant (interior U) isOpen_interior hU
     ((measure_mono interior_subset).trans_lt (lt_top_iff_ne_top.2 h)).Ne hK
-#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_is_mul_left_invariant'
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_is_add_left_invariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_addLeftInvariant'
 
 /-- In a noncompact locally compact group, a left-invariant measure which is positive
 on open sets has infinite mass. -/
 @[simp,
   to_additive
       "In a noncompact locally compact additive group, a left-invariant measure which\nis positive on open sets has infinite mass."]
-theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G]
-    (μ : Measure G) [OpenPosMeasure μ] [μ.IsMulLeftInvariant] : μ univ = ∞ :=
+theorem measure_univ_of_mulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G] (μ : Measure G)
+    [OpenPosMeasure μ] [μ.MulLeftInvariant] : μ univ = ∞ :=
   by
   /- Consider a closed compact set `K` with nonempty interior. For any compact set `L`, one may
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
@@ -652,8 +687,8 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
   simp only [ENNReal.top_mul', K_pos.ne', if_false] at N
   apply top_le_iff.1
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
-#align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
-#align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_is_add_left_invariant
+#align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_mulLeftInvariant
+#align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_addLeftInvariant
 
 end TopologicalGroup
 
@@ -664,13 +699,13 @@ variable [CommSemigroup G]
 /-- In an abelian group every left invariant measure is also right-invariant.
   We don't declare the converse as an instance, since that would loop type-class inference, and
   we use `is_mul_left_invariant` as the default hypothesis in abelian groups. -/
-@[to_additive IsAddLeftInvariant.is_add_right_invariant
+@[to_additive MeasureTheory.AddLeftInvariant.addRightInvariant
       "In an abelian additive\ngroup every left invariant measure is also right-invariant. We don't declare the converse as an\ninstance, since that would loop type-class inference, and we use `is_add_left_invariant` as the\ndefault hypothesis in abelian groups."]
-instance (priority := 100) IsMulLeftInvariant.isMulRightInvariant {μ : Measure G}
-    [IsMulLeftInvariant μ] : IsMulRightInvariant μ :=
+instance (priority := 100) MulLeftInvariant.mulRightInvariant {μ : Measure G} [MulLeftInvariant μ] :
+    MulRightInvariant μ :=
   ⟨fun g => by simp_rw [mul_comm, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.IsMulLeftInvariant.isMulRightInvariant
-#align is_add_left_invariant.is_add_right_invariant IsAddLeftInvariant.is_add_right_invariant
+#align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.MulLeftInvariant.mulRightInvariant
+#align is_add_left_invariant.is_add_right_invariant MeasureTheory.AddLeftInvariant.addRightInvariant
 
 end CommSemigroup
 
@@ -678,20 +713,25 @@ section Haar
 
 namespace Measure
 
+#print MeasureTheory.Measure.AddHaarMeasure /-
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
-class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, OpenPosMeasure μ : Prop
-#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
+class AddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
+  (μ : Measure G) extends FiniteMeasureOnCompacts μ, AddLeftInvariant μ, OpenPosMeasure μ : Prop
+#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
+-/
 
+#print MeasureTheory.Measure.HaarMeasure /-
 /-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
 sets and positive mass to open sets. -/
 @[to_additive]
-class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, OpenPosMeasure μ : Prop
-#align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
-#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
+class HaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
+  (μ : Measure G) extends FiniteMeasureOnCompacts μ, MulLeftInvariant μ, OpenPosMeasure μ : Prop
+#align measure_theory.measure.is_haar_measure MeasureTheory.Measure.HaarMeasure
+#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
+-/
 
+#print MeasureTheory.Measure.locallyFiniteMeasure_of_haarMeasure /-
 /-- Record that a Haar measure on a locally compact space is locally finite. This is needed as the
 fact that a measure which is finite on compacts is locally finite is not registered as an instance,
 to avoid an instance loop.
@@ -699,16 +739,17 @@ to avoid an instance loop.
 See Note [lower instance priority]. -/
 @[to_additive
       "Record that an additive Haar measure on a locally compact space is\nlocally finite. This is needed as the fact that a measure which is finite on compacts is locally\nfinite is not registered as an instance, to avoid an instance loop.\n\nSee Note [lower instance priority]"]
-instance (priority := 100) locallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
+instance (priority := 100) locallyFiniteMeasure_of_haarMeasure {G : Type _} [Group G]
     [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
-    [IsHaarMeasure μ] : LocallyFiniteMeasure μ :=
+    [HaarMeasure μ] : LocallyFiniteMeasure μ :=
   locallyFiniteMeasure_of_finiteMeasureOnCompacts
-#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_isHaarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_is_add_haar_measure
+#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_haarMeasure
+#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_addHaarMeasure
+-/
 
 section
 
-variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
+variable [Group G] [TopologicalSpace G] (μ : Measure G) [HaarMeasure μ]
 
 @[simp, to_additive]
 theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ {(1 : G)} :=
@@ -716,74 +757,74 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
   convert measure_preimage_mul μ g⁻¹ _
   simp only [mul_one, preimage_mul_left_singleton, inv_inv]
 #align measure_theory.measure.haar_singleton MeasureTheory.Measure.haar_singleton
-#align measure_theory.measure.add_haar_singleton MeasureTheory.Measure.add_haar_singleton
+#align measure_theory.measure.add_haar_singleton MeasureTheory.Measure.addHaar_singleton
 
-@[to_additive MeasureTheory.Measure.IsAddHaarMeasure.smul]
-theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
+@[to_additive MeasureTheory.Measure.AddHaarMeasure.smul]
+theorem HaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : HaarMeasure (c • μ) :=
   { lt_top_of_isCompact := fun K hK => ENNReal.mul_lt_top Ctop hK.measure_lt_top.Ne
     to_openPosMeasure := openPosMeasure_smul μ cpos }
-#align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
-#align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
+#align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.HaarMeasure.smul
+#align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.AddHaarMeasure.smul
 
 /-- If a left-invariant measure gives positive mass to some compact set with nonempty interior, then
 it is a Haar measure. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to some compact set with nonempty\ninterior, then it is an additive Haar measure."]
-theorem isHaarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
-    (μ : Measure G) [IsMulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
-    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : IsHaarMeasure μ :=
-  { lt_top_of_isCompact := fun L hL =>
-      measure_lt_top_of_isCompact_of_is_mul_left_invariant' h'K h' hL
-    to_openPosMeasure := openPosMeasure_of_mul_left_invariant_of_compact K hK h }
-#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior
-#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.is_add_haar_measure_of_isCompact_nonempty_interior
+theorem haarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
+    (μ : Measure G) [MulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
+    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : HaarMeasure μ :=
+  { lt_top_of_isCompact := fun L hL => measure_lt_top_of_isCompact_of_mulLeftInvariant' h'K h' hL
+    to_openPosMeasure := openPosMeasure_of_mulLeftInvariant_of_compact K hK h }
+#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.haarMeasure_of_isCompact_nonempty_interior
+#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.addHaarMeasure_of_isCompact_nonempty_interior
 
 /-- The image of a Haar measure under a continuous surjective proper group homomorphism is again
 a Haar measure. See also `mul_equiv.is_haar_measure_map`. -/
 @[to_additive
       "The image of an additive Haar measure under a continuous surjective proper additive\ngroup homomorphism is again an additive Haar measure. See also\n`add_equiv.is_add_haar_measure_map`."]
-theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem haarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
     (f : G →* H) (hf : Continuous f) (h_surj : Surjective f)
-    (h_prop : Tendsto f (cocompact G) (cocompact H)) : IsHaarMeasure (Measure.map f μ) :=
-  { to_isMulLeftInvariant := isMulLeftInvariant_map f.toMulHom hf.Measurable h_surj
+    (h_prop : Tendsto f (cocompact G) (cocompact H)) : HaarMeasure (Measure.map f μ) :=
+  { to_mulLeftInvariant := mulLeftInvariant_map f.toMulHom hf.Measurable h_surj
     lt_top_of_isCompact := by
       intro K hK
       rw [map_apply hf.measurable hK.measurable_set]
       exact IsCompact.measure_lt_top ((⟨⟨f, hf⟩, h_prop⟩ : CocompactMap G H).isCompact_preimage hK)
     to_openPosMeasure := hf.openPosMeasure_map h_surj }
-#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
-#align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.is_add_haar_measure_map
+#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.haarMeasure_map
+#align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.addHaarMeasure_map
 
 /-- A convenience wrapper for `measure_theory.measure.is_haar_measure_map`. -/
 @[to_additive "A convenience wrapper for `measure_theory.measure.is_add_haar_measure_map`."]
-theorem MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem MulEquiv.haarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
-    (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) :
-    IsHaarMeasure (Measure.map e μ) :=
-  isHaarMeasure_map μ (e : G →* H) he e.Surjective
+    (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) : HaarMeasure (Measure.map e μ) :=
+  haarMeasure_map μ (e : G →* H) he e.Surjective
     ({ e with } : G ≃ₜ H).toCocompactMap.cocompact_tendsto'
-#align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
-#align add_equiv.is_add_haar_measure_map AddEquiv.is_add_haar_measure_map
+#align mul_equiv.is_haar_measure_map MulEquiv.haarMeasure_map
+#align add_equiv.is_add_haar_measure_map AddEquiv.addHaarMeasure_map
 
+#print MeasureTheory.Measure.HaarMeasure.sigmaFinite /-
 /-- A Haar measure on a σ-compact space is σ-finite.
 
 See Note [lower instance priority] -/
 @[to_additive
       "A Haar measure on a σ-compact space is σ-finite.\n\nSee Note [lower instance priority]"]
-instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : SigmaFinite μ :=
+instance (priority := 100) HaarMeasure.sigmaFinite [SigmaCompactSpace G] : SigmaFinite μ :=
   ⟨⟨{   Set := compactCovering G
         set_mem := fun n => mem_univ _
         Finite := fun n => IsCompact.measure_lt_top <| isCompact_compactCovering G n
         spanning := iUnion_compactCovering G }⟩⟩
-#align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.IsHaarMeasure.sigmaFinite
-#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite
+#align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.HaarMeasure.sigmaFinite
+#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.AddHaarMeasure.sigmaFinite
+-/
 
 @[to_additive]
 instance {G : Type _} [Group G] [TopologicalSpace G] {mG : MeasurableSpace G} {H : Type _} [Group H]
-    [TopologicalSpace H] {mH : MeasurableSpace H} (μ : Measure G) (ν : Measure H) [IsHaarMeasure μ]
-    [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [MeasurableMul G] [MeasurableMul H] :
-    IsHaarMeasure (μ.Prod ν) where
+    [TopologicalSpace H] {mH : MeasurableSpace H} (μ : Measure G) (ν : Measure H) [HaarMeasure μ]
+    [HaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [MeasurableMul G] [MeasurableMul H] :
+    HaarMeasure (μ.Prod ν) where
 
 /-- If the neutral element of a group is not isolated, then a Haar measure on this group has
 no atoms.
@@ -792,8 +833,8 @@ The additive version of this instance applies in particular to show that an addi
 a nontrivial finite-dimensional real vector space has no atom. -/
 @[to_additive
       "If the zero element of an additive group is not isolated, then an\nadditive Haar measure on this group has no atoms.\n\nThis applies in particular to show that an additive Haar measure on a nontrivial finite-dimensional\nreal vector space has no atom."]
-instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
-    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.IsHaarMeasure] : NoAtoms μ :=
+instance (priority := 100) HaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
+    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.HaarMeasure] : NoAtoms μ :=
   by
   suffices H : μ {(1 : G)} ≤ 0; · constructor; simp [le_bot_iff.1 H]
   obtain ⟨K, K_compact, K_int⟩ : ∃ K : Set G, IsCompact K ∧ (1 : G) ∈ interior K :=
@@ -823,8 +864,8 @@ instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpac
     ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
   simp only [ENNReal.div_top] at J
   exact ge_of_tendsto' J I
-#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
-#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
+#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.HaarMeasure.noAtoms
+#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.AddHaarMeasure.noAtoms
 
 end
 
Diff
@@ -33,7 +33,7 @@ We also give analogues of all these notions in the additive world.
 
 noncomputable section
 
-open NNReal ENNReal Pointwise BigOperators Topology
+open scoped NNReal ENNReal Pointwise BigOperators Topology
 
 open Inv Set Function MeasureTheory.Measure Filter
 
Diff
@@ -211,10 +211,8 @@ instance [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Mea
   change map (Prod.map ((· * ·) g) ((· * ·) h)) (μ.prod ν) = μ.prod ν
   rw [← map_prod_map _ _ (measurable_const_mul g) (measurable_const_mul h),
     map_mul_left_eq_self μ g, map_mul_left_eq_self ν h]
-  · rw [map_mul_left_eq_self μ g]
-    infer_instance
-  · rw [map_mul_left_eq_self ν h]
-    infer_instance
+  · rw [map_mul_left_eq_self μ g]; infer_instance
+  · rw [map_mul_left_eq_self ν h]; infer_instance
 
 @[to_additive]
 instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
@@ -225,10 +223,8 @@ instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Me
   change map (Prod.map (· * g) (· * h)) (μ.prod ν) = μ.prod ν
   rw [← map_prod_map _ _ (measurable_mul_const g) (measurable_mul_const h),
     map_mul_right_eq_self μ g, map_mul_right_eq_self ν h]
-  · rw [map_mul_right_eq_self μ g]
-    infer_instance
-  · rw [map_mul_right_eq_self ν h]
-    infer_instance
+  · rw [map_mul_right_eq_self μ g]; infer_instance
+  · rw [map_mul_right_eq_self ν h]; infer_instance
 
 @[to_additive]
 theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
@@ -321,28 +317,22 @@ theorem map_div_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
 
 @[to_additive]
 theorem eventually_mul_left_iff (μ : Measure G) [IsMulLeftInvariant μ] (t : G) {p : G → Prop} :
-    (∀ᵐ x ∂μ, p (t * x)) ↔ ∀ᵐ x ∂μ, p x :=
-  by
-  conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]
-  rfl
+    (∀ᵐ x ∂μ, p (t * x)) ↔ ∀ᵐ x ∂μ, p x := by
+  conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]; rfl
 #align measure_theory.eventually_mul_left_iff MeasureTheory.eventually_mul_left_iff
 #align measure_theory.eventually_add_left_iff MeasureTheory.eventually_add_left_iff
 
 @[to_additive]
 theorem eventually_mul_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
-    (∀ᵐ x ∂μ, p (x * t)) ↔ ∀ᵐ x ∂μ, p x :=
-  by
-  conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]
-  rfl
+    (∀ᵐ x ∂μ, p (x * t)) ↔ ∀ᵐ x ∂μ, p x := by
+  conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]; rfl
 #align measure_theory.eventually_mul_right_iff MeasureTheory.eventually_mul_right_iff
 #align measure_theory.eventually_add_right_iff MeasureTheory.eventually_add_right_iff
 
 @[to_additive]
 theorem eventually_div_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
-    (∀ᵐ x ∂μ, p (x / t)) ↔ ∀ᵐ x ∂μ, p x :=
-  by
-  conv_rhs => rw [Filter.Eventually, ← map_div_right_ae μ t]
-  rfl
+    (∀ᵐ x ∂μ, p (x / t)) ↔ ∀ᵐ x ∂μ, p x := by
+  conv_rhs => rw [Filter.Eventually, ← map_div_right_ae μ t]; rfl
 #align measure_theory.eventually_div_right_iff MeasureTheory.eventually_div_right_iff
 #align measure_theory.eventually_sub_right_iff MeasureTheory.eventually_sub_right_iff
 
@@ -517,11 +507,8 @@ variable [TopologicalGroup G]
 theorem regular_inv_iff [T2Space G] : μ.inv.regular ↔ μ.regular :=
   by
   constructor
-  · intro h
-    rw [← μ.inv_inv]
-    exact measure.regular.inv
-  · intro h
-    exact measure.regular.inv
+  · intro h; rw [← μ.inv_inv]; exact measure.regular.inv
+  · intro h; exact measure.regular.inv
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
@@ -808,9 +795,7 @@ a nontrivial finite-dimensional real vector space has no atom. -/
 instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
     [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.IsHaarMeasure] : NoAtoms μ :=
   by
-  suffices H : μ {(1 : G)} ≤ 0
-  · constructor
-    simp [le_bot_iff.1 H]
+  suffices H : μ {(1 : G)} ≤ 0; · constructor; simp [le_bot_iff.1 H]
   obtain ⟨K, K_compact, K_int⟩ : ∃ K : Set G, IsCompact K ∧ (1 : G) ∈ interior K :=
     by
     rcases exists_compact_subset isOpen_univ (mem_univ (1 : G)) with ⟨K, hK⟩
@@ -829,8 +814,7 @@ instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpac
       · simp only [tn, Finset.sum_const, nsmul_eq_mul, haar_singleton]
       · intro x hx y hy xy
         simp only [on_fun, xy.symm, mem_singleton_iff, not_false_iff, disjoint_singleton_right]
-      · intro b hb
-        exact measurable_set_singleton b
+      · intro b hb; exact measurable_set_singleton b
     rw [B] at A
     rwa [ENNReal.le_div_iff_mul_le _ (Or.inr μKlt), mul_comm]
     right
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.group.measure
-! leanprover-community/mathlib commit 950605e4b9b4e2827681f637ba997307814a5ca9
+! leanprover-community/mathlib commit fd5edc43dc4f10b85abfe544b88f82cf13c5f844
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,7 +13,7 @@ import Mathbin.MeasureTheory.Measure.Regular
 import Mathbin.MeasureTheory.Group.MeasurableEquiv
 import Mathbin.MeasureTheory.Measure.OpenPos
 import Mathbin.MeasureTheory.Group.Action
-import Mathbin.MeasureTheory.Constructions.Prod
+import Mathbin.MeasureTheory.Constructions.Prod.Basic
 import Mathbin.Topology.ContinuousFunction.CocompactMap
 
 /-!
@@ -842,29 +842,8 @@ instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpac
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
 
-/- The above instance applies in particular to show that an additive Haar measure on a nontrivial
-finite-dimensional real vector space has no atom. -/
-example {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [Nontrivial E] [FiniteDimensional ℝ E]
-    [MeasurableSpace E] [BorelSpace E] (μ : Measure E) [IsAddHaarMeasure μ] : NoAtoms μ := by
-  infer_instance
-
 end
 
-variable [NontriviallyNormedField 𝕜] [TopologicalSpace G] [TopologicalSpace H] [AddCommGroup G]
-  [AddCommGroup H] [TopologicalAddGroup G] [TopologicalAddGroup H] [Module 𝕜 G] [Module 𝕜 H]
-  (μ : Measure G) [IsAddHaarMeasure μ] [BorelSpace G] [BorelSpace H] [T2Space H]
-
-instance MapContinuousLinearEquiv.isAddHaarMeasure (e : G ≃L[𝕜] H) : IsAddHaarMeasure (μ.map e) :=
-  e.toAddEquiv.is_add_haar_measure_map _ e.Continuous e.symm.Continuous
-#align measure_theory.measure.map_continuous_linear_equiv.is_add_haar_measure MeasureTheory.Measure.MapContinuousLinearEquiv.isAddHaarMeasure
-
-variable [CompleteSpace 𝕜] [T2Space G] [FiniteDimensional 𝕜 G] [ContinuousSMul 𝕜 G]
-  [ContinuousSMul 𝕜 H]
-
-instance MapLinearEquiv.isAddHaarMeasure (e : G ≃ₗ[𝕜] H) : IsAddHaarMeasure (μ.map e) :=
-  MapContinuousLinearEquiv.isAddHaarMeasure _ e.toContinuousLinearEquiv
-#align measure_theory.measure.map_linear_equiv.is_add_haar_measure MeasureTheory.Measure.MapLinearEquiv.isAddHaarMeasure
-
 end Measure
 
 end Haar
Diff
@@ -788,7 +788,7 @@ instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : Sig
   ⟨⟨{   Set := compactCovering G
         set_mem := fun n => mem_univ _
         Finite := fun n => IsCompact.measure_lt_top <| isCompact_compactCovering G n
-        spanning := unionᵢ_compactCovering G }⟩⟩
+        spanning := iUnion_compactCovering G }⟩⟩
 #align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.IsHaarMeasure.sigmaFinite
 #align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite
 
Diff
@@ -119,9 +119,9 @@ instance isMulRightInvariant_smul_nNReal [IsMulRightInvariant μ] (c : ℝ≥0)
 #align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariant_smul_nNReal
 #align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.is_add_right_invariant_smul_nnreal
 
-section HasMeasurableMul
+section MeasurableMul
 
-variable [HasMeasurableMul G]
+variable [MeasurableMul G]
 
 @[to_additive]
 theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
@@ -204,7 +204,7 @@ theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
 
 @[to_additive]
 instance [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
-    {ν : Measure H} [HasMeasurableMul H] [IsMulLeftInvariant ν] [SigmaFinite ν] :
+    {ν : Measure H} [MeasurableMul H] [IsMulLeftInvariant ν] [SigmaFinite ν] :
     IsMulLeftInvariant (μ.Prod ν) := by
   constructor
   rintro ⟨g, h⟩
@@ -218,7 +218,7 @@ instance [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Mea
 
 @[to_additive]
 instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : MeasurableSpace H}
-    {ν : Measure H} [HasMeasurableMul H] [IsMulRightInvariant ν] [SigmaFinite ν] :
+    {ν : Measure H} [MeasurableMul H] [IsMulRightInvariant ν] [SigmaFinite ν] :
     IsMulRightInvariant (μ.Prod ν) := by
   constructor
   rintro ⟨g, h⟩
@@ -231,7 +231,7 @@ instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Me
     infer_instance
 
 @[to_additive]
-theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [HasMeasurableMul H]
+theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
     [IsMulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
     IsMulLeftInvariant (Measure.map f μ) :=
   by
@@ -246,7 +246,7 @@ theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [HasMeas
 #align measure_theory.is_mul_left_invariant_map MeasureTheory.isMulLeftInvariant_map
 #align measure_theory.is_add_left_invariant_map MeasureTheory.is_add_left_invariant_map
 
-end HasMeasurableMul
+end MeasurableMul
 
 end Mul
 
@@ -264,7 +264,7 @@ end DivInvMonoid
 
 section Group
 
-variable [Group G] [HasMeasurableMul G]
+variable [Group G] [MeasurableMul G]
 
 @[to_additive]
 theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
@@ -387,7 +387,7 @@ theorem map_inv_eq_self (μ : Measure G) [IsInvInvariant μ] : map Inv.inv μ =
 #align measure_theory.measure.map_inv_eq_self MeasureTheory.Measure.map_inv_eq_self
 #align measure_theory.measure.map_neg_eq_self MeasureTheory.Measure.map_neg_eq_self
 
-variable [HasMeasurableInv G]
+variable [MeasurableInv G]
 
 @[to_additive]
 theorem measurePreserving_inv (μ : Measure G) [IsInvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
@@ -399,7 +399,7 @@ end Inv
 
 section InvolutiveInv
 
-variable [InvolutiveInv G] [HasMeasurableInv G]
+variable [InvolutiveInv G] [MeasurableInv G]
 
 @[simp, to_additive]
 theorem inv_apply (μ : Measure G) (s : Set G) : μ.inv s = μ s⁻¹ :=
@@ -434,7 +434,7 @@ end InvolutiveInv
 
 section DivisionMonoid
 
-variable [DivisionMonoid G] [HasMeasurableMul G] [HasMeasurableInv G] {μ : Measure G}
+variable [DivisionMonoid G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
 instance [IsMulLeftInvariant μ] : IsMulRightInvariant μ.inv :=
@@ -488,7 +488,7 @@ end DivisionMonoid
 
 section Group
 
-variable [Group G] [HasMeasurableMul G] [HasMeasurableInv G] {μ : Measure G}
+variable [Group G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
 theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant μ] (x : G) :
@@ -795,7 +795,7 @@ instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : Sig
 @[to_additive]
 instance {G : Type _} [Group G] [TopologicalSpace G] {mG : MeasurableSpace G} {H : Type _} [Group H]
     [TopologicalSpace H] {mH : MeasurableSpace H} (μ : Measure G) (ν : Measure H) [IsHaarMeasure μ]
-    [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [HasMeasurableMul G] [HasMeasurableMul H] :
+    [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν] [MeasurableMul G] [MeasurableMul H] :
     IsHaarMeasure (μ.Prod ν) where
 
 /-- If the neutral element of a group is not isolated, then a Haar measure on this group has
Diff
@@ -531,8 +531,8 @@ variable [IsMulLeftInvariant μ]
 any open set. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to a compact set, then it gives\npositive mass to any open set."]
-theorem isOpenPosMeasure_of_mul_left_invariant_of_compact (K : Set G) (hK : IsCompact K)
-    (h : μ K ≠ 0) : IsOpenPosMeasure μ :=
+theorem openPosMeasure_of_mul_left_invariant_of_compact (K : Set G) (hK : IsCompact K)
+    (h : μ K ≠ 0) : OpenPosMeasure μ :=
   by
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
@@ -545,17 +545,17 @@ theorem isOpenPosMeasure_of_mul_left_invariant_of_compact (K : Set G) (hK : IsCo
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
     
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mul_left_invariant_of_compact
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_add_left_invariant_of_compact
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.openPosMeasure_of_mul_left_invariant_of_compact
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.openPosMeasure_of_add_left_invariant_of_compact
 
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
-theorem isOpenPosMeasure_of_mul_left_invariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
-    IsOpenPosMeasure μ :=
+theorem openPosMeasure_of_mul_left_invariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
+    OpenPosMeasure μ :=
   let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr h₀
-  isOpenPosMeasure_of_mul_left_invariant_of_compact K hK h2K
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_mul_left_invariant_of_regular
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_add_left_invariant_of_regular
+  openPosMeasure_of_mul_left_invariant_of_compact K hK h2K
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.openPosMeasure_of_mul_left_invariant_of_regular
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.openPosMeasure_of_add_left_invariant_of_regular
 
 @[to_additive]
 theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
@@ -616,7 +616,7 @@ on open sets has infinite mass. -/
   to_additive
       "In a noncompact locally compact additive group, a left-invariant measure which\nis positive on open sets has infinite mass."]
 theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G]
-    (μ : Measure G) [IsOpenPosMeasure μ] [μ.IsMulLeftInvariant] : μ univ = ∞ :=
+    (μ : Measure G) [OpenPosMeasure μ] [μ.IsMulLeftInvariant] : μ univ = ∞ :=
   by
   /- Consider a closed compact set `K` with nonempty interior. For any compact set `L`, one may
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
@@ -694,14 +694,14 @@ namespace Measure
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
 class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ : Prop
+  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, OpenPosMeasure μ : Prop
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 
 /-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
 sets and positive mass to open sets. -/
 @[to_additive]
 class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ : Prop
+  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, OpenPosMeasure μ : Prop
 #align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 
@@ -734,7 +734,7 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
 @[to_additive MeasureTheory.Measure.IsAddHaarMeasure.smul]
 theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
   { lt_top_of_isCompact := fun K hK => ENNReal.mul_lt_top Ctop hK.measure_lt_top.Ne
-    to_isOpenPosMeasure := isOpenPosMeasure_smul μ cpos }
+    to_openPosMeasure := openPosMeasure_smul μ cpos }
 #align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
 #align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
 
@@ -747,7 +747,7 @@ theorem isHaarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [Borel
     (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : IsHaarMeasure μ :=
   { lt_top_of_isCompact := fun L hL =>
       measure_lt_top_of_isCompact_of_is_mul_left_invariant' h'K h' hL
-    to_isOpenPosMeasure := isOpenPosMeasure_of_mul_left_invariant_of_compact K hK h }
+    to_openPosMeasure := openPosMeasure_of_mul_left_invariant_of_compact K hK h }
 #align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior
 #align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.is_add_haar_measure_of_isCompact_nonempty_interior
 
@@ -764,7 +764,7 @@ theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Grou
       intro K hK
       rw [map_apply hf.measurable hK.measurable_set]
       exact IsCompact.measure_lt_top ((⟨⟨f, hf⟩, h_prop⟩ : CocompactMap G H).isCompact_preimage hK)
-    to_isOpenPosMeasure := hf.isOpenPosMeasure_map h_surj }
+    to_openPosMeasure := hf.openPosMeasure_map h_surj }
 #align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
 #align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.is_add_haar_measure_map
 
Diff
@@ -694,16 +694,14 @@ namespace Measure
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
 class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ :
-  Prop
+  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ : Prop
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 
 /-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
 sets and positive mass to open sets. -/
 @[to_additive]
 class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ :
-  Prop
+  (μ : Measure G) extends FiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ : Prop
 #align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 
@@ -714,12 +712,12 @@ to avoid an instance loop.
 See Note [lower instance priority]. -/
 @[to_additive
       "Record that an additive Haar measure on a locally compact space is\nlocally finite. This is needed as the fact that a measure which is finite on compacts is locally\nfinite is not registered as an instance, to avoid an instance loop.\n\nSee Note [lower instance priority]"]
-instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
+instance (priority := 100) locallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
     [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
-    [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
-  isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
-#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_is_add_haar_measure
+    [IsHaarMeasure μ] : LocallyFiniteMeasure μ :=
+  locallyFiniteMeasure_of_finiteMeasureOnCompacts
+#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_isHaarMeasure
+#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_is_add_haar_measure
 
 section
 
@@ -807,9 +805,9 @@ The additive version of this instance applies in particular to show that an addi
 a nontrivial finite-dimensional real vector space has no atom. -/
 @[to_additive
       "If the zero element of an additive group is not isolated, then an\nadditive Haar measure on this group has no atoms.\n\nThis applies in particular to show that an additive Haar measure on a nontrivial finite-dimensional\nreal vector space has no atom."]
-instance (priority := 100) IsHaarMeasure.hasNoAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
-    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.IsHaarMeasure] :
-    HasNoAtoms μ := by
+instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
+    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).ne_bot] (μ : Measure G) [μ.IsHaarMeasure] : NoAtoms μ :=
+  by
   suffices H : μ {(1 : G)} ≤ 0
   · constructor
     simp [le_bot_iff.1 H]
@@ -841,13 +839,13 @@ instance (priority := 100) IsHaarMeasure.hasNoAtoms [TopologicalGroup G] [BorelS
     ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
   simp only [ENNReal.div_top] at J
   exact ge_of_tendsto' J I
-#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.hasNoAtoms
-#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.hasNoAtoms
+#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
+#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
 
 /- The above instance applies in particular to show that an additive Haar measure on a nontrivial
 finite-dimensional real vector space has no atom. -/
 example {E : Type _} [NormedAddCommGroup E] [NormedSpace ℝ E] [Nontrivial E] [FiniteDimensional ℝ E]
-    [MeasurableSpace E] [BorelSpace E] (μ : Measure E) [IsAddHaarMeasure μ] : HasNoAtoms μ := by
+    [MeasurableSpace E] [BorelSpace E] (μ : Measure E) [IsAddHaarMeasure μ] : NoAtoms μ := by
   infer_instance
 
 end
Diff
@@ -93,29 +93,30 @@ theorem map_mul_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G)
 #align measure_theory.map_add_right_eq_self MeasureTheory.map_add_right_eq_self
 
 @[to_additive MeasureTheory.is_add_left_invariant_smul]
-instance isMulLeftInvariantSmul [IsMulLeftInvariant μ] (c : ℝ≥0∞) : IsMulLeftInvariant (c • μ) :=
+instance isMulLeftInvariant_smul [IsMulLeftInvariant μ] (c : ℝ≥0∞) : IsMulLeftInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant_smul MeasureTheory.isMulLeftInvariantSmul
+#align measure_theory.is_mul_left_invariant_smul MeasureTheory.isMulLeftInvariant_smul
 #align measure_theory.is_add_left_invariant_smul MeasureTheory.is_add_left_invariant_smul
 
 @[to_additive MeasureTheory.is_add_right_invariant_smul]
-instance isMulRightInvariantSmul [IsMulRightInvariant μ] (c : ℝ≥0∞) : IsMulRightInvariant (c • μ) :=
+instance isMulRightInvariant_smul [IsMulRightInvariant μ] (c : ℝ≥0∞) :
+    IsMulRightInvariant (c • μ) :=
   ⟨fun g => by rw [measure.map_smul, map_mul_right_eq_self]⟩
-#align measure_theory.is_mul_right_invariant_smul MeasureTheory.isMulRightInvariantSmul
+#align measure_theory.is_mul_right_invariant_smul MeasureTheory.isMulRightInvariant_smul
 #align measure_theory.is_add_right_invariant_smul MeasureTheory.is_add_right_invariant_smul
 
 @[to_additive MeasureTheory.is_add_left_invariant_smul_nnreal]
-instance isMulLeftInvariantSmulNnreal [IsMulLeftInvariant μ] (c : ℝ≥0) :
+instance isMulLeftInvariant_smul_nNReal [IsMulLeftInvariant μ] (c : ℝ≥0) :
     IsMulLeftInvariant (c • μ) :=
-  MeasureTheory.isMulLeftInvariantSmul (c : ℝ≥0∞)
-#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.isMulLeftInvariantSmulNnreal
+  MeasureTheory.isMulLeftInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.isMulLeftInvariant_smul_nNReal
 #align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.is_add_left_invariant_smul_nnreal
 
 @[to_additive MeasureTheory.is_add_right_invariant_smul_nnreal]
-instance isMulRightInvariantSmulNnreal [IsMulRightInvariant μ] (c : ℝ≥0) :
+instance isMulRightInvariant_smul_nNReal [IsMulRightInvariant μ] (c : ℝ≥0) :
     IsMulRightInvariant (c • μ) :=
-  MeasureTheory.isMulRightInvariantSmul (c : ℝ≥0∞)
-#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariantSmulNnreal
+  MeasureTheory.isMulRightInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariant_smul_nNReal
 #align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.is_add_right_invariant_smul_nnreal
 
 section HasMeasurableMul
@@ -123,47 +124,47 @@ section HasMeasurableMul
 variable [HasMeasurableMul G]
 
 @[to_additive]
-theorem measurePreservingMulLeft (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
+theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
     MeasurePreserving ((· * ·) g) μ μ :=
   ⟨measurable_const_mul g, map_mul_left_eq_self μ g⟩
-#align measure_theory.measure_preserving_mul_left MeasureTheory.measurePreservingMulLeft
-#align measure_theory.measure_preserving_add_left MeasureTheory.measure_preserving_add_left
+#align measure_theory.measure_preserving_mul_left MeasureTheory.measurePreserving_mul_left
+#align measure_theory.measure_preserving_add_left MeasureTheory.measurePreserving_add_left
 
 @[to_additive]
-theorem MeasurePreserving.mulLeft (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => g * f x) μ' μ :=
-  (measurePreservingMulLeft μ g).comp hf
-#align measure_theory.measure_preserving.mul_left MeasureTheory.MeasurePreserving.mulLeft
+  (measurePreserving_mul_left μ g).comp hf
+#align measure_theory.measure_preserving.mul_left MeasureTheory.MeasurePreserving.mul_left
 #align measure_theory.measure_preserving.add_left MeasureTheory.MeasurePreserving.add_left
 
 @[to_additive]
-theorem measurePreservingMulRight (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
+theorem measurePreserving_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· * g) μ μ :=
   ⟨measurable_mul_const g, map_mul_right_eq_self μ g⟩
-#align measure_theory.measure_preserving_mul_right MeasureTheory.measurePreservingMulRight
-#align measure_theory.measure_preserving_add_right MeasureTheory.measure_preserving_add_right
+#align measure_theory.measure_preserving_mul_right MeasureTheory.measurePreserving_mul_right
+#align measure_theory.measure_preserving_add_right MeasureTheory.measurePreserving_add_right
 
 @[to_additive]
-theorem MeasurePreserving.mulRight (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => f x * g) μ' μ :=
-  (measurePreservingMulRight μ g).comp hf
-#align measure_theory.measure_preserving.mul_right MeasureTheory.MeasurePreserving.mulRight
+  (measurePreserving_mul_right μ g).comp hf
+#align measure_theory.measure_preserving.mul_right MeasureTheory.MeasurePreserving.mul_right
 #align measure_theory.measure_preserving.add_right MeasureTheory.MeasurePreserving.add_right
 
 @[to_additive]
 instance IsMulLeftInvariant.smulInvariantMeasure [IsMulLeftInvariant μ] :
     SmulInvariantMeasure G G μ :=
-  ⟨fun x s hs => (measurePreservingMulLeft μ x).measure_preimage hs⟩
+  ⟨fun x s hs => (measurePreserving_mul_left μ x).measure_preimage hs⟩
 #align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.IsMulLeftInvariant.smulInvariantMeasure
 #align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.IsMulLeftInvariant.vadd_invariant_measure
 
 @[to_additive]
-instance IsMulRightInvariant.toSmulInvariantMeasureOp [μ.IsMulRightInvariant] :
+instance IsMulRightInvariant.to_smulInvariantMeasure_op [μ.IsMulRightInvariant] :
     SmulInvariantMeasure Gᵐᵒᵖ G μ :=
-  ⟨fun x s hs => (measurePreservingMulRight μ (MulOpposite.unop x)).measure_preimage hs⟩
-#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.IsMulRightInvariant.toSmulInvariantMeasureOp
+  ⟨fun x s hs => (measurePreserving_mul_right μ (MulOpposite.unop x)).measure_preimage hs⟩
+#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.IsMulRightInvariant.to_smulInvariantMeasure_op
 #align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.IsMulRightInvariant.to_vadd_invariant_measure_op
 
 @[to_additive]
@@ -230,7 +231,7 @@ instance [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _} [Mul H] {mH : Me
     infer_instance
 
 @[to_additive]
-theorem isMulLeftInvariantMap {H : Type _} [MeasurableSpace H] [Mul H] [HasMeasurableMul H]
+theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [HasMeasurableMul H]
     [IsMulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
     IsMulLeftInvariant (Measure.map f μ) :=
   by
@@ -242,7 +243,7 @@ theorem isMulLeftInvariantMap {H : Type _} [MeasurableSpace H] [Mul H] [HasMeasu
   congr 2
   ext y
   simp only [comp_app, map_mul]
-#align measure_theory.is_mul_left_invariant_map MeasureTheory.isMulLeftInvariantMap
+#align measure_theory.is_mul_left_invariant_map MeasureTheory.isMulLeftInvariant_map
 #align measure_theory.is_add_left_invariant_map MeasureTheory.is_add_left_invariant_map
 
 end HasMeasurableMul
@@ -266,10 +267,10 @@ section Group
 variable [Group G] [HasMeasurableMul G]
 
 @[to_additive]
-theorem measurePreservingDivRight (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
+theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· / g) μ μ := by simp_rw [div_eq_mul_inv, measure_preserving_mul_right μ g⁻¹]
-#align measure_theory.measure_preserving_div_right MeasureTheory.measurePreservingDivRight
-#align measure_theory.measure_preserving_sub_right MeasureTheory.measure_preserving_sub_right
+#align measure_theory.measure_preserving_div_right MeasureTheory.measurePreserving_div_right
+#align measure_theory.measure_preserving_sub_right MeasureTheory.measurePreserving_sub_right
 
 /-- We shorten this from `measure_preimage_mul_left`, since left invariant is the preferred option
   for measures in this formalization. -/
@@ -389,10 +390,10 @@ theorem map_inv_eq_self (μ : Measure G) [IsInvInvariant μ] : map Inv.inv μ =
 variable [HasMeasurableInv G]
 
 @[to_additive]
-theorem measurePreservingInv (μ : Measure G) [IsInvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
+theorem measurePreserving_inv (μ : Measure G) [IsInvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
   ⟨measurable_inv, map_inv_eq_self μ⟩
-#align measure_theory.measure.measure_preserving_inv MeasureTheory.Measure.measurePreservingInv
-#align measure_theory.measure.measure_preserving_neg MeasureTheory.Measure.measure_preserving_neg
+#align measure_theory.measure.measure_preserving_inv MeasureTheory.Measure.measurePreserving_inv
+#align measure_theory.measure.measure_preserving_neg MeasureTheory.Measure.measurePreserving_neg
 
 end Inv
 
@@ -427,7 +428,7 @@ theorem measure_preimage_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) :
 
 @[to_additive]
 instance (μ : Measure G) [SigmaFinite μ] : SigmaFinite μ.inv :=
-  (MeasurableEquiv.inv G).sigmaFiniteMap ‹_›
+  (MeasurableEquiv.inv G).sigmaFinite_map ‹_›
 
 end InvolutiveInv
 
@@ -454,32 +455,32 @@ instance [IsMulRightInvariant μ] : IsMulLeftInvariant μ.inv :=
     map_map measurable_inv (measurable_mul_const g⁻¹), Function.comp, mul_inv_rev, inv_inv]
 
 @[to_additive]
-theorem measurePreservingDivLeft (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ] (g : G) :
-    MeasurePreserving (fun t => g / t) μ μ :=
+theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
+    (g : G) : MeasurePreserving (fun t => g / t) μ μ :=
   by
   simp_rw [div_eq_mul_inv]
   exact (measure_preserving_mul_left μ g).comp (measure_preserving_inv μ)
-#align measure_theory.measure.measure_preserving_div_left MeasureTheory.Measure.measurePreservingDivLeft
-#align measure_theory.measure.measure_preserving_sub_left MeasureTheory.Measure.measure_preserving_sub_left
+#align measure_theory.measure.measure_preserving_div_left MeasureTheory.Measure.measurePreserving_div_left
+#align measure_theory.measure.measure_preserving_sub_left MeasureTheory.Measure.measurePreserving_sub_left
 
 @[to_additive]
 theorem map_div_left_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ] (g : G) :
     map (fun t => g / t) μ = μ :=
-  (measurePreservingDivLeft μ g).map_eq
+  (measurePreserving_div_left μ g).map_eq
 #align measure_theory.measure.map_div_left_eq_self MeasureTheory.Measure.map_div_left_eq_self
 #align measure_theory.measure.map_sub_left_eq_self MeasureTheory.Measure.map_sub_left_eq_self
 
 @[to_additive]
-theorem measurePreservingMulRightInv (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
+theorem measurePreserving_mul_right_inv (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => (g * t)⁻¹) μ μ :=
-  (measurePreservingInv μ).comp <| measurePreservingMulLeft μ g
-#align measure_theory.measure.measure_preserving_mul_right_inv MeasureTheory.Measure.measurePreservingMulRightInv
-#align measure_theory.measure.measure_preserving_add_right_neg MeasureTheory.Measure.measure_preserving_add_right_neg
+  (measurePreserving_inv μ).comp <| measurePreserving_mul_left μ g
+#align measure_theory.measure.measure_preserving_mul_right_inv MeasureTheory.Measure.measurePreserving_mul_right_inv
+#align measure_theory.measure.measure_preserving_add_right_neg MeasureTheory.Measure.measurePreserving_add_right_neg
 
 @[to_additive]
 theorem map_mul_right_inv_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : map (fun t => (g * t)⁻¹) μ = μ :=
-  (measurePreservingMulRightInv μ g).map_eq
+  (measurePreserving_mul_right_inv μ g).map_eq
 #align measure_theory.measure.map_mul_right_inv_eq_self MeasureTheory.Measure.map_mul_right_inv_eq_self
 #align measure_theory.measure.map_add_right_neg_eq_self MeasureTheory.Measure.map_add_right_neg_eq_self
 
@@ -530,8 +531,9 @@ variable [IsMulLeftInvariant μ]
 any open set. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to a compact set, then it gives\npositive mass to any open set."]
-theorem isOpenPosMeasureOfMulLeftInvariantOfCompact (K : Set G) (hK : IsCompact K) (h : μ K ≠ 0) :
-    IsOpenPosMeasure μ := by
+theorem isOpenPosMeasure_of_mul_left_invariant_of_compact (K : Set G) (hK : IsCompact K)
+    (h : μ K ≠ 0) : IsOpenPosMeasure μ :=
+  by
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
   rw [← nonpos_iff_eq_zero]
@@ -543,16 +545,17 @@ theorem isOpenPosMeasureOfMulLeftInvariantOfCompact (K : Set G) (hK : IsCompact
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
     
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasureOfMulLeftInvariantOfCompact
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.is_open_pos_measure_of_add_left_invariant_of_compact
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mul_left_invariant_of_compact
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_add_left_invariant_of_compact
 
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
-theorem isOpenPosMeasureOfMulLeftInvariantOfRegular [Regular μ] (h₀ : μ ≠ 0) : IsOpenPosMeasure μ :=
+theorem isOpenPosMeasure_of_mul_left_invariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
+    IsOpenPosMeasure μ :=
   let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr h₀
-  isOpenPosMeasureOfMulLeftInvariantOfCompact K hK h2K
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasureOfMulLeftInvariantOfRegular
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.is_open_pos_measure_of_add_left_invariant_of_regular
+  isOpenPosMeasure_of_mul_left_invariant_of_compact K hK h2K
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_mul_left_invariant_of_regular
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_add_left_invariant_of_regular
 
 @[to_additive]
 theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
@@ -594,7 +597,7 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
     
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_is_compact_of_is_add_left_invariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_is_add_left_invariant
 
 /-- If a left-invariant measure gives finite mass to a set with nonempty interior, then
 it gives finite mass to any compact set. -/
@@ -605,7 +608,7 @@ theorem measure_lt_top_of_isCompact_of_is_mul_left_invariant' {U : Set G}
   measure_lt_top_of_isCompact_of_isMulLeftInvariant (interior U) isOpen_interior hU
     ((measure_mono interior_subset).trans_lt (lt_top_iff_ne_top.2 h)).Ne hK
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_is_mul_left_invariant'
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_is_compact_of_is_add_left_invariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_is_add_left_invariant'
 
 /-- In a noncompact locally compact group, a left-invariant measure which is positive
 on open sets has infinite mass. -/
@@ -711,12 +714,12 @@ to avoid an instance loop.
 See Note [lower instance priority]. -/
 @[to_additive
       "Record that an additive Haar measure on a locally compact space is\nlocally finite. This is needed as the fact that a measure which is finite on compacts is locally\nfinite is not registered as an instance, to avoid an instance loop.\n\nSee Note [lower instance priority]"]
-instance (priority := 100) isLocallyFiniteMeasureOfIsHaarMeasure {G : Type _} [Group G]
+instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
     [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
     [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
-  isLocallyFiniteMeasureOfIsFiniteMeasureOnCompacts
-#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasureOfIsHaarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.is_locally_finite_measure_of_is_add_haar_measure
+  isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
+#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
+#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_is_add_haar_measure
 
 section
 
@@ -733,7 +736,7 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
 @[to_additive MeasureTheory.Measure.IsAddHaarMeasure.smul]
 theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
   { lt_top_of_isCompact := fun K hK => ENNReal.mul_lt_top Ctop hK.measure_lt_top.Ne
-    toIsOpenPosMeasure := isOpenPosMeasureSmul μ cpos }
+    to_isOpenPosMeasure := isOpenPosMeasure_smul μ cpos }
 #align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
 #align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
 
@@ -741,41 +744,41 @@ theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞)
 it is a Haar measure. -/
 @[to_additive
       "If a left-invariant measure gives positive mass to some compact set with nonempty\ninterior, then it is an additive Haar measure."]
-theorem isHaarMeasureOfIsCompactNonemptyInterior [TopologicalGroup G] [BorelSpace G] (μ : Measure G)
-    [IsMulLeftInvariant μ] (K : Set G) (hK : IsCompact K) (h'K : (interior K).Nonempty)
-    (h : μ K ≠ 0) (h' : μ K ≠ ∞) : IsHaarMeasure μ :=
+theorem isHaarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
+    (μ : Measure G) [IsMulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
+    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : IsHaarMeasure μ :=
   { lt_top_of_isCompact := fun L hL =>
       measure_lt_top_of_isCompact_of_is_mul_left_invariant' h'K h' hL
-    toIsOpenPosMeasure := isOpenPosMeasureOfMulLeftInvariantOfCompact K hK h }
-#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasureOfIsCompactNonemptyInterior
-#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.is_add_haar_measure_of_is_compact_nonempty_interior
+    to_isOpenPosMeasure := isOpenPosMeasure_of_mul_left_invariant_of_compact K hK h }
+#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior
+#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.is_add_haar_measure_of_isCompact_nonempty_interior
 
 /-- The image of a Haar measure under a continuous surjective proper group homomorphism is again
 a Haar measure. See also `mul_equiv.is_haar_measure_map`. -/
 @[to_additive
       "The image of an additive Haar measure under a continuous surjective proper additive\ngroup homomorphism is again an additive Haar measure. See also\n`add_equiv.is_add_haar_measure_map`."]
-theorem isHaarMeasureMap [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
     (f : G →* H) (hf : Continuous f) (h_surj : Surjective f)
     (h_prop : Tendsto f (cocompact G) (cocompact H)) : IsHaarMeasure (Measure.map f μ) :=
-  { toIsMulLeftInvariant := isMulLeftInvariantMap f.toMulHom hf.Measurable h_surj
+  { to_isMulLeftInvariant := isMulLeftInvariant_map f.toMulHom hf.Measurable h_surj
     lt_top_of_isCompact := by
       intro K hK
       rw [map_apply hf.measurable hK.measurable_set]
       exact IsCompact.measure_lt_top ((⟨⟨f, hf⟩, h_prop⟩ : CocompactMap G H).isCompact_preimage hK)
-    toIsOpenPosMeasure := hf.isOpenPosMeasureMap h_surj }
-#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasureMap
+    to_isOpenPosMeasure := hf.isOpenPosMeasure_map h_surj }
+#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
 #align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.is_add_haar_measure_map
 
 /-- A convenience wrapper for `measure_theory.measure.is_haar_measure_map`. -/
 @[to_additive "A convenience wrapper for `measure_theory.measure.is_add_haar_measure_map`."]
-theorem MulEquiv.isHaarMeasureMap [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
     (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) :
     IsHaarMeasure (Measure.map e μ) :=
-  isHaarMeasureMap μ (e : G →* H) he e.Surjective
+  isHaarMeasure_map μ (e : G →* H) he e.Surjective
     ({ e with } : G ≃ₜ H).toCocompactMap.cocompact_tendsto'
-#align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasureMap
+#align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
 #align add_equiv.is_add_haar_measure_map AddEquiv.is_add_haar_measure_map
 
 /-- A Haar measure on a σ-compact space is σ-finite.
@@ -789,7 +792,7 @@ instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : Sig
         Finite := fun n => IsCompact.measure_lt_top <| isCompact_compactCovering G n
         spanning := unionᵢ_compactCovering G }⟩⟩
 #align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.IsHaarMeasure.sigmaFinite
-#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigma_finite
+#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite
 
 @[to_additive]
 instance {G : Type _} [Group G] [TopologicalSpace G] {mG : MeasurableSpace G} {H : Type _} [Group H]
@@ -839,7 +842,7 @@ instance (priority := 100) IsHaarMeasure.hasNoAtoms [TopologicalGroup G] [BorelS
   simp only [ENNReal.div_top] at J
   exact ge_of_tendsto' J I
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.hasNoAtoms
-#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.has_no_atoms
+#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.hasNoAtoms
 
 /- The above instance applies in particular to show that an additive Haar measure on a nontrivial
 finite-dimensional real vector space has no atom. -/
Diff
@@ -540,7 +540,7 @@ theorem isOpenPosMeasureOfMulLeftInvariantOfCompact (K : Set G) (hK : IsCompact
     compact_covered_by_mul_left_translates hK hne
   calc
     μ K ≤ μ (⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
-    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := measure_bUnion_finset_le _ _
+    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
     
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasureOfMulLeftInvariantOfCompact
@@ -589,7 +589,7 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     compact_covered_by_mul_left_translates hK h'U
   calc
     μ K ≤ μ (⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
-    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := measure_bUnion_finset_le _ _
+    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_bUnion_finset_le _ _)
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
     
Diff
@@ -33,7 +33,7 @@ We also give analogues of all these notions in the additive world.
 
 noncomputable section
 
-open NNReal Ennreal Pointwise BigOperators Topology
+open NNReal ENNReal Pointwise BigOperators Topology
 
 open Inv Set Function MeasureTheory.Measure Filter
 
@@ -591,7 +591,7 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     μ K ≤ μ (⋃ (g : G) (H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := measure_bUnion_finset_le _ _
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
-    _ < ∞ := Ennreal.mul_lt_top (Ennreal.nat_ne_top _) h
+    _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
     
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
 #align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_is_compact_of_is_add_left_invariant
@@ -657,9 +657,9 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
   have N : tendsto (fun n => μ (L n)) at_top (𝓝 (∞ * μ K)) :=
     by
     simp_rw [M]
-    apply Ennreal.Tendsto.mul_const _ (Or.inl Ennreal.top_ne_zero)
+    apply ENNReal.Tendsto.mul_const _ (Or.inl ENNReal.top_ne_zero)
     exact ennreal.tendsto_nat_nhds_top.comp (tendsto_add_at_top_nat _)
-  simp only [Ennreal.top_mul, K_pos.ne', if_false] at N
+  simp only [ENNReal.top_mul', K_pos.ne', if_false] at N
   apply top_le_iff.1
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
 #align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
@@ -732,7 +732,7 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
 
 @[to_additive MeasureTheory.Measure.IsAddHaarMeasure.smul]
 theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
-  { lt_top_of_isCompact := fun K hK => Ennreal.mul_lt_top Ctop hK.measure_lt_top.Ne
+  { lt_top_of_isCompact := fun K hK => ENNReal.mul_lt_top Ctop hK.measure_lt_top.Ne
     toIsOpenPosMeasure := isOpenPosMeasureSmul μ cpos }
 #align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
 #align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
@@ -831,12 +831,12 @@ instance (priority := 100) IsHaarMeasure.hasNoAtoms [TopologicalGroup G] [BorelS
       · intro b hb
         exact measurable_set_singleton b
     rw [B] at A
-    rwa [Ennreal.le_div_iff_mul_le _ (Or.inr μKlt), mul_comm]
+    rwa [ENNReal.le_div_iff_mul_le _ (Or.inr μKlt), mul_comm]
     right
     apply (measure_pos_of_nonempty_interior μ ⟨_, K_int⟩).ne'
   have J : tendsto (fun n : ℕ => μ K / n) at_top (𝓝 (μ K / ∞)) :=
-    Ennreal.Tendsto.const_div Ennreal.tendsto_nat_nhds_top (Or.inr μKlt)
-  simp only [Ennreal.div_top] at J
+    ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
+  simp only [ENNReal.div_top] at J
   exact ge_of_tendsto' J I
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.hasNoAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.has_no_atoms
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.group.measure
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 950605e4b9b4e2827681f637ba997307814a5ca9
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -249,9 +249,9 @@ end HasMeasurableMul
 
 end Mul
 
-section Group
+section DivInvMonoid
 
-variable [Group G]
+variable [DivInvMonoid G]
 
 @[to_additive]
 theorem map_div_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
@@ -259,7 +259,11 @@ theorem map_div_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G)
 #align measure_theory.map_div_right_eq_self MeasureTheory.map_div_right_eq_self
 #align measure_theory.map_sub_right_eq_self MeasureTheory.map_sub_right_eq_self
 
-variable [HasMeasurableMul G]
+end DivInvMonoid
+
+section Group
+
+variable [Group G] [HasMeasurableMul G]
 
 @[to_additive]
 theorem measurePreservingDivRight (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
@@ -427,9 +431,9 @@ instance (μ : Measure G) [SigmaFinite μ] : SigmaFinite μ.inv :=
 
 end InvolutiveInv
 
-section mul_inv
+section DivisionMonoid
 
-variable [Group G] [HasMeasurableMul G] [HasMeasurableInv G] {μ : Measure G}
+variable [DivisionMonoid G] [HasMeasurableMul G] [HasMeasurableInv G] {μ : Measure G}
 
 @[to_additive]
 instance [IsMulLeftInvariant μ] : IsMulRightInvariant μ.inv :=
@@ -479,6 +483,12 @@ theorem map_mul_right_inv_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLef
 #align measure_theory.measure.map_mul_right_inv_eq_self MeasureTheory.Measure.map_mul_right_inv_eq_self
 #align measure_theory.measure.map_add_right_neg_eq_self MeasureTheory.Measure.map_add_right_neg_eq_self
 
+end DivisionMonoid
+
+section Group
+
+variable [Group G] [HasMeasurableMul G] [HasMeasurableInv G] {μ : Measure G}
+
 @[to_additive]
 theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant μ] (x : G) :
     Filter.map (fun t => x / t) μ.ae = μ.ae :=
@@ -486,22 +496,22 @@ theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant
 #align measure_theory.measure.map_div_left_ae MeasureTheory.Measure.map_div_left_ae
 #align measure_theory.measure.map_sub_left_ae MeasureTheory.Measure.map_sub_left_ae
 
-end mul_inv
+end Group
 
 end Measure
 
 section TopologicalGroup
 
-variable [TopologicalSpace G] [BorelSpace G] {μ : Measure G}
-
-variable [Group G] [TopologicalGroup G]
+variable [TopologicalSpace G] [BorelSpace G] {μ : Measure G} [Group G]
 
 @[to_additive]
-instance Measure.Regular.inv [T2Space G] [Regular μ] : Regular μ.inv :=
+instance Measure.Regular.inv [ContinuousInv G] [T2Space G] [Regular μ] : Regular μ.inv :=
   Regular.map (Homeomorph.inv G)
 #align measure_theory.measure.regular.inv MeasureTheory.Measure.Regular.inv
 #align measure_theory.measure.regular.neg MeasureTheory.Measure.Regular.neg
 
+variable [TopologicalGroup G]
+
 @[to_additive]
 theorem regular_inv_iff [T2Space G] : μ.inv.regular ↔ μ.regular :=
   by
@@ -657,9 +667,9 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
 
 end TopologicalGroup
 
-section CommGroup
+section CommSemigroup
 
-variable [CommGroup G]
+variable [CommSemigroup G]
 
 /-- In an abelian group every left invariant measure is also right-invariant.
   We don't declare the converse as an instance, since that would loop type-class inference, and
@@ -672,7 +682,7 @@ instance (priority := 100) IsMulLeftInvariant.isMulRightInvariant {μ : Measure
 #align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.IsMulLeftInvariant.isMulRightInvariant
 #align is_add_left_invariant.is_add_right_invariant IsAddLeftInvariant.is_add_right_invariant
 
-end CommGroup
+end CommSemigroup
 
 section Haar
 

Changes in mathlib4

mathlib3
mathlib4
chore: avoid id.def (adaptation for nightly-2024-03-27) (#11829)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -751,7 +751,7 @@ theorem measure_univ_of_isMulLeftInvariant [WeaklyLocallyCompactSpace G] [Noncom
   have M : ∀ n, μ (L n) = (n + 1 : ℕ) * μ K := by
     intro n
     induction' n with n IH
-    · simp only [L, one_mul, Nat.cast_one, iterate_zero, id.def, Nat.zero_eq, Nat.zero_add]
+    · simp only [L, one_mul, Nat.cast_one, iterate_zero, id, Nat.zero_eq, Nat.zero_add]
     · calc
         μ (L (n + 1)) = μ (L n) + μ (g (L n) • K) := by
           simp_rw [L, iterate_succ']
chore: superfluous parentheses part 2 (#12131)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -643,7 +643,7 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsComp
     compact_covered_by_mul_left_translates hK hne
   calc
     μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
-    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
+    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := measure_biUnion_finset_le _ _
     _ = 0 := by simp [measure_preimage_mul, h]
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact
 #align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_compact
@@ -700,7 +700,7 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     compact_covered_by_mul_left_translates hK h'U
   calc
     μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
-    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
+    _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := measure_biUnion_finset_le _ _
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.natCast_ne_top _) h
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
chore: Rename coe_nat/coe_int/coe_rat to natCast/intCast/ratCast (#11499)

This is less exhaustive than its sibling #11486 because edge cases are harder to classify. No fundamental difficulty, just me being a bit fast and lazy.

Reduce the diff of #11203

Diff
@@ -702,7 +702,7 @@ theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOp
     μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
-    _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
+    _ < ∞ := ENNReal.mul_lt_top (ENNReal.natCast_ne_top _) h
 #align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
 #align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
 
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -855,7 +855,7 @@ Textbooks generally require an additional regularity assumption to ensure nice b
 arbitrary locally compact groups. Use `[IsHaarMeasure μ] [Regular μ]` or
 `[IsHaarMeasure μ] [InnerRegular μ]` in these situations. Note that a Haar measure in our
 sense is automatically regular and inner regular on second countable locally compact groups, as
-checked just below this definition.-/
+checked just below this definition. -/
 @[to_additive existing]
 class IsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] [MeasurableSpace G]
   (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ :
@@ -914,7 +914,7 @@ theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*} [Group
 #align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.isAddHaarMeasure_map
 
 /-- The image of a finite Haar measure under a continuous surjective group homomorphism is again
-a Haar measure. See also `isHaarMeasure_map`.-/
+a Haar measure. See also `isHaarMeasure_map`. -/
 @[to_additive
 "The image of a finite additive Haar measure under a continuous surjective additive group
 homomorphism is again an additive Haar measure. See also `isAddHaarMeasure_map`."]
style: remove redundant instance arguments (#11581)

I removed some redundant instance arguments throughout Mathlib. To do this, I used VS Code's regex search. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/repeating.20instances.20from.20variable.20command I closed the previous PR for this and reopened it.

Diff
@@ -578,12 +578,12 @@ instance innerRegular_map_smul {α} [Monoid α] [MulAction α G] [ContinuousCons
 
 /-- The image of an inner regular measure under left multiplication is again inner regular. -/
 @[to_additive "The image of an inner regular measure under left addition is again inner regular."]
-instance innerRegular_map_mul_left [BorelSpace G] [TopologicalGroup G] [InnerRegular μ] (g : G) :
+instance innerRegular_map_mul_left [TopologicalGroup G] [InnerRegular μ] (g : G) :
     InnerRegular (Measure.map (g * ·) μ) := InnerRegular.map_of_continuous (continuous_mul_left g)
 
 /-- The image of an inner regular measure under right multiplication is again inner regular. -/
 @[to_additive "The image of an inner regular measure under right addition is again inner regular."]
-instance innerRegular_map_mul_right [BorelSpace G] [TopologicalGroup G] [InnerRegular μ] (g : G) :
+instance innerRegular_map_mul_right [TopologicalGroup G] [InnerRegular μ] (g : G) :
     InnerRegular (Measure.map (· * g) μ) := InnerRegular.map_of_continuous (continuous_mul_right g)
 
 variable [TopologicalGroup G]
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
@@ -740,21 +740,21 @@ theorem measure_univ_of_isMulLeftInvariant [WeaklyLocallyCompactSpace G] [Noncom
     intro n
     induction' n with n IH
     · exact hK
-    · simp_rw [iterate_succ']
+    · simp_rw [L, iterate_succ']
       apply IsCompact.union IH (hK.smul (g (L n)))
   have Lclosed : ∀ n, IsClosed (L n) := by
     intro n
     induction' n with n IH
     · exact Kclosed
-    · simp_rw [iterate_succ']
+    · simp_rw [L, iterate_succ']
       apply IsClosed.union IH (Kclosed.smul (g (L n)))
   have M : ∀ n, μ (L n) = (n + 1 : ℕ) * μ K := by
     intro n
     induction' n with n IH
-    · simp only [one_mul, Nat.cast_one, iterate_zero, id.def, Nat.zero_eq, Nat.zero_add]
+    · simp only [L, one_mul, Nat.cast_one, iterate_zero, id.def, Nat.zero_eq, Nat.zero_add]
     · calc
         μ (L (n + 1)) = μ (L n) + μ (g (L n) • K) := by
-          simp_rw [iterate_succ']
+          simp_rw [L, iterate_succ']
           exact measure_union' (hg _ (Lcompact _)) (Lclosed _).measurableSet
         _ = (n + 1 + 1 : ℕ) * μ K := by
           simp only [IH, measure_smul, add_mul, Nat.cast_add, Nat.cast_one, one_mul]
feat: innerRegular_map_mul (#10401)

The image of an inner regular measure under left/right multiplication is again inner regular.

Diff
@@ -568,6 +568,24 @@ instance Measure.Regular.inv [ContinuousInv G] [Regular μ] : Regular μ.inv :=
 instance Measure.InnerRegular.inv [ContinuousInv G] [InnerRegular μ] : InnerRegular μ.inv :=
   InnerRegular.map (Homeomorph.inv G)
 
+/-- The image of an inner regular measure under map of a left action is again inner regular. -/
+@[to_additive
+   "The image of a inner regular measure under map of a left additive action is again
+    inner regular"]
+instance innerRegular_map_smul {α} [Monoid α] [MulAction α G] [ContinuousConstSMul α G]
+    [InnerRegular μ] (a : α) : InnerRegular (Measure.map (a • · : G → G) μ) :=
+  InnerRegular.map_of_continuous (continuous_const_smul a)
+
+/-- The image of an inner regular measure under left multiplication is again inner regular. -/
+@[to_additive "The image of an inner regular measure under left addition is again inner regular."]
+instance innerRegular_map_mul_left [BorelSpace G] [TopologicalGroup G] [InnerRegular μ] (g : G) :
+    InnerRegular (Measure.map (g * ·) μ) := InnerRegular.map_of_continuous (continuous_mul_left g)
+
+/-- The image of an inner regular measure under right multiplication is again inner regular. -/
+@[to_additive "The image of an inner regular measure under right addition is again inner regular."]
+instance innerRegular_map_mul_right [BorelSpace G] [TopologicalGroup G] [InnerRegular μ] (g : G) :
+    InnerRegular (Measure.map (· * g) μ) := InnerRegular.map_of_continuous (continuous_mul_right g)
+
 variable [TopologicalGroup G]
 
 @[to_additive]
chore(*): shake imports (#10199)
  • Remove Data.Set.Basic from scripts/noshake.json.
  • Remove an exception that was used by examples only, move these examples to a new test file.
  • Drop an exception for Order.Filter.Basic dependency on Control.Traversable.Instances, as the relevant parts were moved to Order.Filter.ListTraverse.
  • Run lake exe shake --fix.
Diff
@@ -849,15 +849,6 @@ class IsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] [MeasurableSpace
 
 variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
 
-/-! Check that typeclass inference knows that a Haar measure on a locally compact second countable
-topological group is automatically regular and inner regular. -/
-
-example [TopologicalGroup G] [LocallyCompactSpace G] [SecondCountableTopology G] [BorelSpace G] :
-    Regular μ := by infer_instance
-
-example [TopologicalGroup G] [LocallyCompactSpace G] [SecondCountableTopology G] [BorelSpace G] :
-    InnerRegular μ := by infer_instance
-
 @[to_additive (attr := simp)]
 theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ {(1 : G)} := by
   convert measure_preimage_mul μ g⁻¹ _
feat(Group/Measure): reformulate exists_nhds_measure_smul_diff_lt (#10093)
  • Formulate the lemma as ∀ᶠ g in 𝓝 1, _ instead of ∃ V ∈ 𝓝 1, ∀ g ∈ V, _.
  • Add a version in terms of Filter.Tendsto.
  • Golf Steinhaus Theorem.
Diff
@@ -583,28 +583,30 @@ theorem innerRegular_inv_iff : μ.inv.InnerRegular ↔ μ.InnerRegular :=
 /-- Continuity of the measure of translates of a compact set: Given a compact set `k` in a
 topological group, for `g` close enough to the origin, `μ (g • k \ k)` is arbitrarily small. -/
 @[to_additive]
-lemma exists_nhds_measure_smul_diff_lt [LocallyCompactSpace G]
+lemma eventually_nhds_one_measure_smul_diff_lt [LocallyCompactSpace G]
     [IsFiniteMeasureOnCompacts μ] [InnerRegularCompactLTTop μ] {k : Set G}
     (hk : IsCompact k) (h'k : IsClosed k) {ε : ℝ≥0∞} (hε : ε ≠ 0) :
-    ∃ V ∈ 𝓝 (1 : G), ∀ g ∈ V, μ (g • k \ k) < ε := by
-  obtain ⟨δ, δpos, δε⟩ : ∃ δ, 0 < δ ∧ δ < ε := DenselyOrdered.dense 0 ε hε.bot_lt
-  obtain ⟨U, hUk, hU, hμUk⟩ : ∃ (U : Set G), k ⊆ U ∧ IsOpen U ∧ μ U < μ k + δ :=
-    hk.exists_isOpen_lt_add δpos.ne'
+    ∀ᶠ g in 𝓝 (1 : G), μ (g • k \ k) < ε := by
+  obtain ⟨U, hUk, hU, hμUk⟩ : ∃ (U : Set G), k ⊆ U ∧ IsOpen U ∧ μ U < μ k + ε :=
+    hk.exists_isOpen_lt_add hε
   obtain ⟨V, hV1, hVkU⟩ : ∃ V ∈ 𝓝 (1 : G), V * k ⊆ U := compact_open_separated_mul_left hk hU hUk
-  refine ⟨V, hV1, fun g hg ↦ ?_⟩
+  filter_upwards [hV1] with g hg
   calc
-  μ (g • k \ k)
-  _ ≤ μ (U \ k) := by
-    refine measure_mono (diff_subset_diff_left ?_)
-    exact (smul_set_subset_smul hg).trans hVkU
-  _ = μ U - μ k := by
-    rw [measure_diff _ h'k.measurableSet hk.measure_lt_top.ne]
-    calc k = (1 : G) • k := by simp
-      _ ⊆ V • k := smul_set_subset_smul (mem_of_mem_nhds hV1)
-      _ ⊆ U := hVkU
-  _ ≤ (μ k + δ ) - μ k := by gcongr
-  _ = δ := ENNReal.add_sub_cancel_left hk.measure_lt_top.ne
-  _ < ε := δε
+    μ (g • k \ k) ≤ μ (U \ k) := by
+      refine measure_mono (diff_subset_diff_left ?_)
+      exact (smul_set_subset_smul hg).trans hVkU
+    _ < ε := measure_diff_lt_of_lt_add h'k.measurableSet hUk hk.measure_lt_top.ne hμUk
+
+/-- Continuity of the measure of translates of a compact set:
+Given a closed compact set `k` in a topological group,
+the measure of `g • k \ k` tends to zero as `g` tends to `1`. -/
+@[to_additive]
+lemma tendsto_measure_smul_diff_isCompact_isClosed [LocallyCompactSpace G]
+    [IsFiniteMeasureOnCompacts μ] [InnerRegularCompactLTTop μ] {k : Set G}
+    (hk : IsCompact k) (h'k : IsClosed k) :
+    Tendsto (fun g : G ↦ μ (g • k \ k)) (𝓝 1) (𝓝 0) :=
+  ENNReal.nhds_zero_basis.tendsto_right_iff.mpr <| fun _ h ↦
+    eventually_nhds_one_measure_smul_diff_lt hk h'k h.ne'
 
 variable [IsMulLeftInvariant μ]
 
feat(Topology/Separation): define R₁ spaces, review API (#10085)

Main API changes

  • Define R1Space, a.k.a. preregular space.
  • Drop T2OrLocallyCompactRegularSpace.
  • Generalize all existing theorems about T2OrLocallyCompactRegularSpace to R1Space.
  • Drop the [T2OrLocallyCompactRegularSpace _] assumption if the space is known to be regular for other reason (e.g., because it's a topological group).

New theorems

  • Specializes.not_disjoint: if x ⤳ y, then 𝓝 x and 𝓝 y aren't disjoint;
  • specializes_iff_not_disjoint, Specializes.inseparable, disjoint_nhds_nhds_iff_not_inseparable, r1Space_iff_inseparable_or_disjoint_nhds: basic API about R1Spaces;
  • Inducing.r1Space, R1Space.induced, R1Space.sInf, R1Space.iInf, R1Space.inf, instances for Subtype _, X × Y, and ∀ i, X i: basic instances for R1Space;
  • IsCompact.mem_closure_iff_exists_inseparable, IsCompact.closure_eq_biUnion_inseparable: characterizations of the closure of a compact set in a preregular space;
  • Inseparable.mem_measurableSet_iff: topologically inseparable points can't be separated by a Borel measurable set;
  • IsCompact.closure_subset_measurableSet, IsCompact.measure_closure: in a preregular space, a measurable superset of a compact set includes its closure as well; as a corollary, closure K has the same measure as K.
  • exists_mem_nhds_isCompact_mapsTo_of_isCompact_mem_nhds: an auxiliary lemma extracted from a LocallyCompactPair instance;
  • IsCompact.isCompact_isClosed_basis_nhds: if x admits a compact neighborhood, then it admits a basis of compact closed neighborhoods; in particular, a weakly locally compact preregular space is a locally compact regular space;
  • isCompact_isClosed_basis_nhds: a version of the previous theorem for weakly locally compact spaces;
  • exists_mem_nhds_isCompact_isClosed: in a locally compact regular space, each point admits a compact closed neighborhood.

Deprecated theorems

Some theorems about topological groups are true for any (pre)regular space, so we deprecate the special cases.

  • exists_isCompact_isClosed_subset_isCompact_nhds_one: use new IsCompact.isCompact_isClosed_basis_nhds instead;
  • instLocallyCompactSpaceOfWeaklyOfGroup, instLocallyCompactSpaceOfWeaklyOfAddGroup: are now implied by WeaklyLocallyCompactSpace.locallyCompactSpace;
  • local_isCompact_isClosed_nhds_of_group, local_isCompact_isClosed_nhds_of_addGroup: use isCompact_isClosed_basis_nhds instead;
  • exists_isCompact_isClosed_nhds_one, exists_isCompact_isClosed_nhds_zero: use exists_mem_nhds_isCompact_isClosed instead.

Renamed/moved theorems

For each renamed theorem, the old theorem is redefined as a deprecated alias.

  • isOpen_setOf_disjoint_nhds_nhds: moved to Constructions;
  • isCompact_closure_of_subset_compact -> IsCompact.closure_of_subset;
  • IsCompact.measure_eq_infi_isOpen -> IsCompact.measure_eq_iInf_isOpen;
  • exists_compact_superset_iff -> exists_isCompact_superset_iff;
  • separatedNhds_of_isCompact_isCompact_isClosed -> SeparatedNhds.of_isCompact_isCompact_isClosed;
  • separatedNhds_of_isCompact_isCompact -> SeparatedNhds.of_isCompact_isCompact;
  • separatedNhds_of_finset_finset -> SeparatedNhds.of_finset_finset;
  • point_disjoint_finset_opens_of_t2 -> SeparatedNhds.of_singleton_finset;
  • separatedNhds_of_isCompact_isClosed -> SeparatedNhds.of_isCompact_isClosed;
  • exists_open_superset_and_isCompact_closure -> exists_isOpen_superset_and_isCompact_closure;
  • exists_open_with_compact_closure -> exists_isOpen_mem_isCompact_closure;
Diff
@@ -709,9 +709,9 @@ theorem measure_univ_of_isMulLeftInvariant [WeaklyLocallyCompactSpace G] [Noncom
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
     infinitely many translates of `K` which are disjoint from each other. As they all have the
     same positive mass, it follows that the space has infinite measure. -/
-  obtain ⟨K, hK, Kclosed, K1⟩ : ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ∈ 𝓝 1 :=
-    exists_isCompact_isClosed_nhds_one G
-  have K_pos : 0 < μ K := measure_pos_of_nonempty_interior _ ⟨_, mem_interior_iff_mem_nhds.2 K1⟩
+  obtain ⟨K, K1, hK, Kclosed⟩ : ∃ K ∈ 𝓝 (1 : G), IsCompact K ∧ IsClosed K :=
+    exists_mem_nhds_isCompact_isClosed 1
+  have K_pos : 0 < μ K := measure_pos_of_mem_nhds μ K1
   have A : ∀ L : Set G, IsCompact L → ∃ g : G, Disjoint L (g • K) := fun L hL =>
     exists_disjoint_smul_of_isCompact hL hK
   choose! g hg using A
@@ -760,11 +760,10 @@ lemma _root_.MeasurableSet.mul_closure_one_eq {s : Set G} (hs : MeasurableSet s)
     simp only [iUnion_smul, h''f]
 
 /-- If a compact set is included in a measurable set, then so is its closure. -/
-@[to_additive]
+@[to_additive (attr := deprecated IsCompact.closure_subset_measurableSet)] -- Since 28 Jan 2024
 lemma _root_.IsCompact.closure_subset_of_measurableSet_of_group {k s : Set G}
-    (hk : IsCompact k) (hs : MeasurableSet s) (h : k ⊆ s) : closure k ⊆ s := by
-  rw [← hk.mul_closure_one_eq_closure, ← hs.mul_closure_one_eq]
-  exact mul_subset_mul_right h
+    (hk : IsCompact k) (hs : MeasurableSet s) (h : k ⊆ s) : closure k ⊆ s :=
+  hk.closure_subset_measurableSet hs h
 
 @[to_additive (attr := simp)]
 lemma measure_mul_closure_one (s : Set G) (μ : Measure G) :
@@ -777,20 +776,19 @@ lemma measure_mul_closure_one (s : Set G) (μ : Measure G) :
   rw [← t_meas.mul_closure_one_eq]
   exact smul_subset_smul_right kt
 
-@[to_additive]
+@[to_additive (attr := deprecated IsCompact.measure_closure)] -- Since 28 Jan 2024
 lemma _root_.IsCompact.measure_closure_eq_of_group {k : Set G} (hk : IsCompact k) (μ : Measure G) :
-    μ (closure k) = μ k := by
-  rw [← hk.mul_closure_one_eq_closure, measure_mul_closure_one]
+    μ (closure k) = μ k :=
+  hk.measure_closure μ
 
 @[to_additive]
-lemma innerRegularWRT_isCompact_isClosed_measure_ne_top_of_group [LocallyCompactSpace G]
-    [h : InnerRegularCompactLTTop μ] :
+lemma innerRegularWRT_isCompact_isClosed_measure_ne_top_of_group [h : InnerRegularCompactLTTop μ] :
     InnerRegularWRT μ (fun s ↦ IsCompact s ∧ IsClosed s) (fun s ↦ MeasurableSet s ∧ μ s ≠ ∞) := by
   intro s ⟨s_meas, μs⟩ r hr
   rcases h.innerRegular ⟨s_meas, μs⟩ r hr with ⟨K, Ks, K_comp, hK⟩
   refine ⟨closure K, ?_, ⟨K_comp.closure, isClosed_closure⟩, ?_⟩
-  · exact IsCompact.closure_subset_of_measurableSet_of_group K_comp s_meas Ks
-  · rwa [K_comp.measure_closure_eq_of_group]
+  · exact IsCompact.closure_subset_measurableSet K_comp s_meas Ks
+  · rwa [K_comp.measure_closure]
 
 end TopologicalGroup
 
chore: factor out a lemma from the proof of Steinhaus theorem (#9907)

Given a measure in a locally compact group, and a compact set k, then for g close enough to the identity, the set g • k \ k has arbitrarily small measure. A slightly weaker version of this fact is used implicitly in our current proof of Steinhaus theorem that E - E is a neighborhood of the identity if E has positive measure. Since I will need this lemma later on, I extract it from the proof of Steinhaus theorem in this PR.

Diff
@@ -580,6 +580,32 @@ theorem regular_inv_iff : μ.inv.Regular ↔ μ.Regular :=
 theorem innerRegular_inv_iff : μ.inv.InnerRegular ↔ μ.InnerRegular :=
   InnerRegular.map_iff (Homeomorph.inv G)
 
+/-- Continuity of the measure of translates of a compact set: Given a compact set `k` in a
+topological group, for `g` close enough to the origin, `μ (g • k \ k)` is arbitrarily small. -/
+@[to_additive]
+lemma exists_nhds_measure_smul_diff_lt [LocallyCompactSpace G]
+    [IsFiniteMeasureOnCompacts μ] [InnerRegularCompactLTTop μ] {k : Set G}
+    (hk : IsCompact k) (h'k : IsClosed k) {ε : ℝ≥0∞} (hε : ε ≠ 0) :
+    ∃ V ∈ 𝓝 (1 : G), ∀ g ∈ V, μ (g • k \ k) < ε := by
+  obtain ⟨δ, δpos, δε⟩ : ∃ δ, 0 < δ ∧ δ < ε := DenselyOrdered.dense 0 ε hε.bot_lt
+  obtain ⟨U, hUk, hU, hμUk⟩ : ∃ (U : Set G), k ⊆ U ∧ IsOpen U ∧ μ U < μ k + δ :=
+    hk.exists_isOpen_lt_add δpos.ne'
+  obtain ⟨V, hV1, hVkU⟩ : ∃ V ∈ 𝓝 (1 : G), V * k ⊆ U := compact_open_separated_mul_left hk hU hUk
+  refine ⟨V, hV1, fun g hg ↦ ?_⟩
+  calc
+  μ (g • k \ k)
+  _ ≤ μ (U \ k) := by
+    refine measure_mono (diff_subset_diff_left ?_)
+    exact (smul_set_subset_smul hg).trans hVkU
+  _ = μ U - μ k := by
+    rw [measure_diff _ h'k.measurableSet hk.measure_lt_top.ne]
+    calc k = (1 : G) • k := by simp
+      _ ⊆ V • k := smul_set_subset_smul (mem_of_mem_nhds hV1)
+      _ ⊆ U := hVkU
+  _ ≤ (μ k + δ ) - μ k := by gcongr
+  _ = δ := ENNReal.add_sub_cancel_left hk.measure_lt_top.ne
+  _ < ε := δε
+
 variable [IsMulLeftInvariant μ]
 
 /-- If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
@@ -756,6 +782,16 @@ lemma _root_.IsCompact.measure_closure_eq_of_group {k : Set G} (hk : IsCompact k
     μ (closure k) = μ k := by
   rw [← hk.mul_closure_one_eq_closure, measure_mul_closure_one]
 
+@[to_additive]
+lemma innerRegularWRT_isCompact_isClosed_measure_ne_top_of_group [LocallyCompactSpace G]
+    [h : InnerRegularCompactLTTop μ] :
+    InnerRegularWRT μ (fun s ↦ IsCompact s ∧ IsClosed s) (fun s ↦ MeasurableSet s ∧ μ s ≠ ∞) := by
+  intro s ⟨s_meas, μs⟩ r hr
+  rcases h.innerRegular ⟨s_meas, μs⟩ r hr with ⟨K, Ks, K_comp, hK⟩
+  refine ⟨closure K, ?_, ⟨K_comp.closure, isClosed_closure⟩, ?_⟩
+  · exact IsCompact.closure_subset_of_measurableSet_of_group K_comp s_meas Ks
+  · rwa [K_comp.measure_closure_eq_of_group]
+
 end TopologicalGroup
 
 section CommSemigroup
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -256,7 +256,7 @@ theorem isMulLeftInvariant_map_smul
     {α} [SMul α G] [SMulCommClass α G G] [MeasurableSpace α] [MeasurableSMul α G]
     [IsMulLeftInvariant μ] (a : α) :
     IsMulLeftInvariant (map (a • · : G → G) μ) :=
-  (forall_measure_preimage_mul_iff _).1 <| fun x _ hs =>
+  (forall_measure_preimage_mul_iff _).1 fun x _ hs =>
     (smulInvariantMeasure_map_smul μ a).measure_preimage_smul x hs
 
 /-- The image of a right invariant measure under a left action is right invariant, assuming that
@@ -267,7 +267,7 @@ theorem isMulRightInvariant_map_smul
     {α} [SMul α G] [SMulCommClass α Gᵐᵒᵖ G] [MeasurableSpace α] [MeasurableSMul α G]
     [IsMulRightInvariant μ] (a : α) :
     IsMulRightInvariant (map (a • · : G → G) μ) :=
-  (forall_measure_preimage_mul_right_iff _).1 <| fun x _ hs =>
+  (forall_measure_preimage_mul_right_iff _).1 fun x _ hs =>
     (smulInvariantMeasure_map_smul μ a).measure_preimage_smul (MulOpposite.op x) hs
 
 /-- The image of a left invariant measure under right multiplication is left invariant. -/
feat: extend results on product measures from sigma-finite to s-finite measures (#8713)

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -202,30 +202,26 @@ theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
 #align measure_theory.forall_measure_preimage_add_right_iff MeasureTheory.forall_measure_preimage_add_right_iff
 
 @[to_additive]
-instance Measure.prod.instIsMulLeftInvariant [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type*}
+instance Measure.prod.instIsMulLeftInvariant [IsMulLeftInvariant μ] [SFinite μ] {H : Type*}
     [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [IsMulLeftInvariant ν]
-    [SigmaFinite ν] : IsMulLeftInvariant (μ.prod ν) := by
+    [SFinite ν] : IsMulLeftInvariant (μ.prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map (g * ·) (h * ·)) (μ.prod ν) = μ.prod ν
   rw [← map_prod_map _ _ (measurable_const_mul g) (measurable_const_mul h),
     map_mul_left_eq_self μ g, map_mul_left_eq_self ν h]
-  · rw [map_mul_left_eq_self μ g]; infer_instance
-  · rw [map_mul_left_eq_self ν h]; infer_instance
 #align measure_theory.measure.prod.measure.is_mul_left_invariant MeasureTheory.Measure.prod.instIsMulLeftInvariant
 #align measure_theory.measure.prod.measure.is_add_left_invariant MeasureTheory.Measure.prod.instIsAddLeftInvariant
 
 @[to_additive]
-instance Measure.prod.instIsMulRightInvariant [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type*}
+instance Measure.prod.instIsMulRightInvariant [IsMulRightInvariant μ] [SFinite μ] {H : Type*}
     [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [IsMulRightInvariant ν]
-    [SigmaFinite ν] : IsMulRightInvariant (μ.prod ν) := by
+    [SFinite ν] : IsMulRightInvariant (μ.prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map (· * g) (· * h)) (μ.prod ν) = μ.prod ν
   rw [← map_prod_map _ _ (measurable_mul_const g) (measurable_mul_const h),
     map_mul_right_eq_self μ g, map_mul_right_eq_self ν h]
-  · rw [map_mul_right_eq_self μ g]; infer_instance
-  · rw [map_mul_right_eq_self ν h]; infer_instance
 #align measure_theory.measure.prod.measure.is_mul_right_invariant MeasureTheory.Measure.prod.instIsMulRightInvariant
 #align measure_theory.measure.prod.measure.is_add_right_invariant MeasureTheory.Measure.prod.instIsMulRightInvariant
 
@@ -435,6 +431,10 @@ theorem measurePreserving_inv (μ : Measure G) [IsInvInvariant μ] : MeasurePres
 #align measure_theory.measure.measure_preserving_inv MeasureTheory.Measure.measurePreserving_inv
 #align measure_theory.measure.measure_preserving_neg MeasureTheory.Measure.measurePreserving_neg
 
+@[to_additive]
+instance inv.instSFinite (μ : Measure G) [SFinite μ] : SFinite μ.inv := by
+  rw [Measure.inv]; infer_instance
+
 end Inv
 
 section InvolutiveInv
@@ -954,7 +954,7 @@ instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : Sig
 @[to_additive]
 instance prod.instIsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] {_ : MeasurableSpace G}
     {H : Type*} [Group H] [TopologicalSpace H] {_ : MeasurableSpace H} (μ : Measure G)
-    (ν : Measure H) [IsHaarMeasure μ] [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν]
+    (ν : Measure H) [IsHaarMeasure μ] [IsHaarMeasure ν] [SFinite μ] [SFinite ν]
     [MeasurableMul G] [MeasurableMul H] : IsHaarMeasure (μ.prod ν) where
 #align measure_theory.measure.prod.is_haar_measure MeasureTheory.Measure.prod.instIsHaarMeasure
 #align measure_theory.measure.prod.is_add_haar_measure MeasureTheory.Measure.prod.instIsAddHaarMeasure
feat: uniqueness of Haar measure in general locally compact groups (#8198)

We prove that two regular Haar measures in a locally compact group coincide up to scalar multiplication, and the same thing for inner regular Haar measures. This is implemented in a new file MeasureTheory.Measure.Haar.Unique. A few results that used to be in the MeasureTheory.Measure.Haar.Basic are moved to this file (and extended) so several imports have to be changed.

Diff
@@ -548,6 +548,16 @@ section TopologicalGroup
 
 variable [TopologicalSpace G] [BorelSpace G] {μ : Measure G} [Group G]
 
+@[to_additive]
+instance Measure.IsFiniteMeasureOnCompacts.inv [ContinuousInv G] [IsFiniteMeasureOnCompacts μ] :
+    IsFiniteMeasureOnCompacts μ.inv :=
+  IsFiniteMeasureOnCompacts.map μ (Homeomorph.inv G)
+
+@[to_additive]
+instance Measure.IsOpenPosMeasure.inv [ContinuousInv G] [IsOpenPosMeasure μ] :
+    IsOpenPosMeasure μ.inv :=
+  (Homeomorph.inv G).continuous.isOpenPosMeasure_map (Homeomorph.inv G).surjective
+
 @[to_additive]
 instance Measure.Regular.inv [ContinuousInv G] [Regular μ] : Regular μ.inv :=
   Regular.map (Homeomorph.inv G)
@@ -561,10 +571,8 @@ instance Measure.InnerRegular.inv [ContinuousInv G] [InnerRegular μ] : InnerReg
 variable [TopologicalGroup G]
 
 @[to_additive]
-theorem regular_inv_iff : μ.inv.Regular ↔ μ.Regular := by
-  constructor
-  · intro h; rw [← μ.inv_inv]; exact Measure.Regular.inv
-  · intro h; exact Measure.Regular.inv
+theorem regular_inv_iff : μ.inv.Regular ↔ μ.Regular :=
+  Regular.map_iff (Homeomorph.inv G)
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -548,16 +548,6 @@ section TopologicalGroup
 
 variable [TopologicalSpace G] [BorelSpace G] {μ : Measure G} [Group G]
 
-@[to_additive]
-instance Measure.IsFiniteMeasureOnCompacts.inv [ContinuousInv G] [IsFiniteMeasureOnCompacts μ] :
-    IsFiniteMeasureOnCompacts μ.inv :=
-  IsFiniteMeasureOnCompacts.map μ (Homeomorph.inv G)
-
-@[to_additive]
-instance Measure.IsOpenPosMeasure.inv [ContinuousInv G] [IsOpenPosMeasure μ] :
-    IsOpenPosMeasure μ.inv :=
-  (Homeomorph.inv G).continuous.isOpenPosMeasure_map (Homeomorph.inv G).surjective
-
 @[to_additive]
 instance Measure.Regular.inv [ContinuousInv G] [Regular μ] : Regular μ.inv :=
   Regular.map (Homeomorph.inv G)
@@ -571,8 +561,10 @@ instance Measure.InnerRegular.inv [ContinuousInv G] [InnerRegular μ] : InnerReg
 variable [TopologicalGroup G]
 
 @[to_additive]
-theorem regular_inv_iff : μ.inv.Regular ↔ μ.Regular :=
-  Regular.map_iff (Homeomorph.inv G)
+theorem regular_inv_iff : μ.inv.Regular ↔ μ.Regular := by
+  constructor
+  · intro h; rw [← μ.inv_inv]; exact Measure.Regular.inv
+  · intro h; exact Measure.Regular.inv
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
feat: more facts on measures in topological groups (#8286)

Prerequisites for #8198

Diff
@@ -412,6 +412,9 @@ section Inv
 
 variable [Inv G]
 
+@[to_additive]
+theorem inv_def (μ : Measure G) : μ.inv = Measure.map inv μ := rfl
+
 @[to_additive (attr := simp)]
 theorem inv_eq_self (μ : Measure G) [IsInvInvariant μ] : μ.inv = μ :=
   IsInvInvariant.inv_eq_self
@@ -546,21 +549,37 @@ section TopologicalGroup
 variable [TopologicalSpace G] [BorelSpace G] {μ : Measure G} [Group G]
 
 @[to_additive]
-instance Measure.Regular.inv [ContinuousInv G] [T2Space G] [Regular μ] : Regular μ.inv :=
+instance Measure.IsFiniteMeasureOnCompacts.inv [ContinuousInv G] [IsFiniteMeasureOnCompacts μ] :
+    IsFiniteMeasureOnCompacts μ.inv :=
+  IsFiniteMeasureOnCompacts.map μ (Homeomorph.inv G)
+
+@[to_additive]
+instance Measure.IsOpenPosMeasure.inv [ContinuousInv G] [IsOpenPosMeasure μ] :
+    IsOpenPosMeasure μ.inv :=
+  (Homeomorph.inv G).continuous.isOpenPosMeasure_map (Homeomorph.inv G).surjective
+
+@[to_additive]
+instance Measure.Regular.inv [ContinuousInv G] [Regular μ] : Regular μ.inv :=
   Regular.map (Homeomorph.inv G)
 #align measure_theory.measure.regular.inv MeasureTheory.Measure.Regular.inv
 #align measure_theory.measure.regular.neg MeasureTheory.Measure.Regular.neg
 
+@[to_additive]
+instance Measure.InnerRegular.inv [ContinuousInv G] [InnerRegular μ] : InnerRegular μ.inv :=
+  InnerRegular.map (Homeomorph.inv G)
+
 variable [TopologicalGroup G]
 
 @[to_additive]
-theorem regular_inv_iff [T2Space G] : μ.inv.Regular ↔ μ.Regular := by
-  constructor
-  · intro h; rw [← μ.inv_inv]; exact Measure.Regular.inv
-  · intro h; exact Measure.Regular.inv
+theorem regular_inv_iff : μ.inv.Regular ↔ μ.Regular :=
+  Regular.map_iff (Homeomorph.inv G)
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
+@[to_additive]
+theorem innerRegular_inv_iff : μ.inv.InnerRegular ↔ μ.InnerRegular :=
+  InnerRegular.map_iff (Homeomorph.inv G)
+
 variable [IsMulLeftInvariant μ]
 
 /-- If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
@@ -585,19 +604,27 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsComp
 
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
-theorem isOpenPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
+instance (priority := 80) isOpenPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] [NeZero μ] :
     IsOpenPosMeasure μ :=
-  let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr h₀
+  let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr (NeZero.ne μ)
   isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular
 #align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_regular
 
+/-- A nonzero left-invariant inner regular measure gives positive mass to any open set. -/
+@[to_additive "A nonzero left-invariant inner regular measure gives positive mass to any open set."]
+instance (priority := 80) isOpenPosMeasure_of_mulLeftInvariant_of_innerRegular
+    [InnerRegular μ] [NeZero μ] :
+    IsOpenPosMeasure μ :=
+  let ⟨K, hK, h2K⟩ := InnerRegular.exists_compact_not_null.mpr (NeZero.ne μ)
+  isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
+
 @[to_additive]
 theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
     μ s = 0 ↔ s = ∅ ∨ μ = 0 := by
-  by_cases h3μ : μ = 0; · simp [h3μ]
-  · haveI := isOpenPosMeasure_of_mulLeftInvariant_of_regular h3μ
-    simp only [h3μ, or_false_iff, hs.measure_eq_zero_iff μ]
+  rcases eq_zero_or_neZero μ with rfl|hμ
+  · simp
+  · simp only [or_false_iff, hs.measure_eq_zero_iff μ, NeZero.ne μ]
 #align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_isMulLeftInvariant
 #align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_isAddLeftInvariant
 
@@ -695,6 +722,40 @@ theorem measure_univ_of_isMulLeftInvariant [WeaklyLocallyCompactSpace G] [Noncom
 #align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
 #align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_isAddLeftInvariant
 
+@[to_additive]
+lemma _root_.MeasurableSet.mul_closure_one_eq {s : Set G} (hs : MeasurableSet s) :
+    s * (closure {1} : Set G) = s := by
+  apply MeasurableSet.induction_on_open (C := fun t ↦ t • (closure {1} : Set G) = t) ?_ ?_ ?_ hs
+  · intro U hU
+    exact hU.mul_closure_one_eq
+  · rintro t - ht
+    exact compl_mul_closure_one_eq_iff.2 ht
+  · rintro f - - h''f
+    simp only [iUnion_smul, h''f]
+
+/-- If a compact set is included in a measurable set, then so is its closure. -/
+@[to_additive]
+lemma _root_.IsCompact.closure_subset_of_measurableSet_of_group {k s : Set G}
+    (hk : IsCompact k) (hs : MeasurableSet s) (h : k ⊆ s) : closure k ⊆ s := by
+  rw [← hk.mul_closure_one_eq_closure, ← hs.mul_closure_one_eq]
+  exact mul_subset_mul_right h
+
+@[to_additive (attr := simp)]
+lemma measure_mul_closure_one (s : Set G) (μ : Measure G) :
+    μ (s * (closure {1} : Set G)) = μ s := by
+  apply le_antisymm ?_ (measure_mono (subset_mul_closure_one s))
+  conv_rhs => rw [measure_eq_iInf]
+  simp only [le_iInf_iff]
+  intro t kt t_meas
+  apply measure_mono
+  rw [← t_meas.mul_closure_one_eq]
+  exact smul_subset_smul_right kt
+
+@[to_additive]
+lemma _root_.IsCompact.measure_closure_eq_of_group {k : Set G} (hk : IsCompact k) (μ : Measure G) :
+    μ (closure k) = μ k := by
+  rw [← hk.mul_closure_one_eq_closure, measure_mul_closure_one]
+
 end TopologicalGroup
 
 section CommSemigroup
@@ -720,42 +781,46 @@ section Haar
 
 namespace Measure
 
-/-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
-finite mass to compact sets and positive mass to open sets. -/
+/-- A measure on an additive group is an additive Haar measure if it is left-invariant, and
+gives finite mass to compact sets and positive mass to open sets.
+
+Textbooks generally require an additional regularity assumption to ensure nice behavior on
+arbitrary locally compact groups. Use `[IsAddHaarMeasure μ] [Regular μ]` or
+`[IsAddHaarMeasure μ] [InnerRegular μ]` in these situations. Note that a Haar measure in our
+sense is automatically regular and inner regular on second countable locally compact groups, as
+checked just below this definition. -/
 class IsAddHaarMeasure {G : Type*} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
   (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ :
   Prop
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 
-/-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
-sets and positive mass to open sets. -/
+/-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to
+compact sets and positive mass to open sets.
+
+Textbooks generally require an additional regularity assumption to ensure nice behavior on
+arbitrary locally compact groups. Use `[IsHaarMeasure μ] [Regular μ]` or
+`[IsHaarMeasure μ] [InnerRegular μ]` in these situations. Note that a Haar measure in our
+sense is automatically regular and inner regular on second countable locally compact groups, as
+checked just below this definition.-/
 @[to_additive existing]
 class IsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] [MeasurableSpace G]
   (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ :
   Prop
 #align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
 
-/-- Record that a Haar measure on a locally compact space is locally finite. This is needed as the
-fact that a measure which is finite on compacts is locally finite is not registered as an instance,
-to avoid an instance loop.
+#noalign measure_theory.measure.is_locally_finite_measure_of_is_haar_measure
+#noalign measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure
 
-See Note [lower instance priority]. -/
-@[to_additive
-"Record that an additive Haar measure on a locally compact space is locally finite. This is needed
-as the fact that a measure which is finite on compacts is locally finite is not registered as an
-instance, to avoid an instance loop.
+variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
 
-See Note [lower instance priority]"]
-instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type*} [Group G]
-    [MeasurableSpace G] [TopologicalSpace G] [WeaklyLocallyCompactSpace G] (μ : Measure G)
-    [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
-  isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
-#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isAddHaarMeasure
+/-! Check that typeclass inference knows that a Haar measure on a locally compact second countable
+topological group is automatically regular and inner regular. -/
 
-section
+example [TopologicalGroup G] [LocallyCompactSpace G] [SecondCountableTopology G] [BorelSpace G] :
+    Regular μ := by infer_instance
 
-variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
+example [TopologicalGroup G] [LocallyCompactSpace G] [SecondCountableTopology G] [BorelSpace G] :
+    InnerRegular μ := by infer_instance
 
 @[to_additive (attr := simp)]
 theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ {(1 : G)} := by
@@ -803,15 +868,31 @@ theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*} [Group
 #align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
 #align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.isAddHaarMeasure_map
 
+/-- The image of a finite Haar measure under a continuous surjective group homomorphism is again
+a Haar measure. See also `isHaarMeasure_map`.-/
+@[to_additive
+"The image of a finite additive Haar measure under a continuous surjective additive group
+homomorphism is again an additive Haar measure. See also `isAddHaarMeasure_map`."]
+theorem isHaarMeasure_map_of_isFiniteMeasure
+    [BorelSpace G] [TopologicalGroup G] {H : Type*} [Group H]
+    [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [TopologicalGroup H] [IsFiniteMeasure μ]
+    (f : G →* H) (hf : Continuous f) (h_surj : Surjective f) :
+    IsHaarMeasure (Measure.map f μ) :=
+  { toIsMulLeftInvariant := isMulLeftInvariant_map f.toMulHom hf.measurable h_surj
+    lt_top_of_isCompact := fun _K hK ↦ hK.measure_lt_top
+    toIsOpenPosMeasure := hf.isOpenPosMeasure_map h_surj }
+
 /-- The image of a Haar measure under map of a left action is again a Haar measure. -/
 @[to_additive
    "The image of a Haar measure under map of a left additive action is again a Haar measure"]
-instance isHaarMeasure_map_smul {α} [BorelSpace G] [TopologicalGroup G] [T2Space G]
+instance isHaarMeasure_map_smul {α} [BorelSpace G] [TopologicalGroup G]
     [Group α] [MulAction α G] [SMulCommClass α G G] [MeasurableSpace α] [MeasurableSMul α G]
     [ContinuousConstSMul α G] (a : α) : IsHaarMeasure (Measure.map (a • · : G → G) μ) where
   toIsMulLeftInvariant := isMulLeftInvariant_map_smul _
   lt_top_of_isCompact K hK := by
-    rw [map_apply (measurable_const_smul _) hK.measurableSet]
+    let F := (Homeomorph.smul a (α := G)).toMeasurableEquiv
+    change map F μ K < ∞
+    rw [F.map_apply K]
     exact IsCompact.measure_lt_top <| (Homeomorph.isCompact_preimage (Homeomorph.smul a)).2 hK
   toIsOpenPosMeasure :=
     (continuous_const_smul a).isOpenPosMeasure_map (MulAction.surjective a)
@@ -819,18 +900,27 @@ instance isHaarMeasure_map_smul {α} [BorelSpace G] [TopologicalGroup G] [T2Spac
 /-- The image of a Haar measure under right multiplication is again a Haar measure. -/
 @[to_additive isHaarMeasure_map_add_right
   "The image of a Haar measure under right addition is again a Haar measure."]
-instance isHaarMeasure_map_mul_right [BorelSpace G] [TopologicalGroup G] [T2Space G] (g : G) :
+instance isHaarMeasure_map_mul_right [BorelSpace G] [TopologicalGroup G] (g : G) :
     IsHaarMeasure (Measure.map (· * g) μ) :=
   isHaarMeasure_map_smul μ (MulOpposite.op g)
 
 /-- A convenience wrapper for `MeasureTheory.Measure.isHaarMeasure_map`. -/
 @[to_additive "A convenience wrapper for `MeasureTheory.Measure.isAddHaarMeasure_map`."]
 nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*}
-    [Group H] [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H]
+    [Group H] [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H]
     [TopologicalGroup H] (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) :
     IsHaarMeasure (Measure.map e μ) :=
-  isHaarMeasure_map μ (e : G →* H) he e.surjective
-    ({ e with } : G ≃ₜ H).toCocompactMap.cocompact_tendsto'
+  { toIsMulLeftInvariant := isMulLeftInvariant_map e.toMulHom he.measurable e.surjective
+    lt_top_of_isCompact := by
+      intro K hK
+      let F : G ≃ₜ H := {
+        e.toEquiv with
+        continuous_toFun := he
+        continuous_invFun := hesymm }
+      change map F.toMeasurableEquiv μ K < ∞
+      rw [F.toMeasurableEquiv.map_apply K]
+      exact (F.isCompact_preimage.mpr hK).measure_lt_top
+    toIsOpenPosMeasure := he.isOpenPosMeasure_map e.surjective }
 #align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
 #align add_equiv.is_add_haar_measure_map AddEquiv.isAddHaarMeasure_map
 
@@ -838,7 +928,7 @@ nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGrou
 theorem _root_.ContinuousLinearEquiv.isAddHaarMeasure_map
     {E F R S : Type*} [Semiring R] [Semiring S]
     [AddCommGroup E] [Module R E] [AddCommGroup F] [Module S F]
-    [TopologicalSpace E] [TopologicalAddGroup E] [TopologicalSpace F] [T2Space F]
+    [TopologicalSpace E] [TopologicalAddGroup E] [TopologicalSpace F]
     [TopologicalAddGroup F]
     {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ]
     [MeasurableSpace E] [BorelSpace E] [MeasurableSpace F] [BorelSpace F]
@@ -872,14 +962,14 @@ instance prod.instIsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] {_ :
 /-- If the neutral element of a group is not isolated, then a Haar measure on this group has
 no atoms.
 
-The additive version of this instance applies in particular to show that an additive Haar measure on
-a nontrivial finite-dimensional real vector space has no atom. -/
+The additive version of this instance applies in particular to show that an additive Haar
+measure on a nontrivial finite-dimensional real vector space has no atom. -/
 @[to_additive
 "If the zero element of an additive group is not isolated, then an additive Haar measure on this
 group has no atoms.
 
-This applies in particular to show that an additive Haar measure on a nontrivial finite-dimensional
-real vector space has no atom."]
+This applies in particular to show that an additive Haar measure on a nontrivial
+finite-dimensional real vector space has no atom."]
 instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
     [WeaklyLocallyCompactSpace G] [(𝓝[≠] (1 : G)).NeBot] (μ : Measure G) [μ.IsHaarMeasure] :
     NoAtoms μ := by
@@ -893,8 +983,6 @@ instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpac
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
 
-end
-
 end Measure
 
 end Haar
refactor(Algebra/Hom): transpose Hom and file name (#8095)

I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom folder so that e.g. Mathlib.Algebra.Hom.Ring becomes Mathlib.Algebra.Ring.Hom and Mathlib.Algebra.Hom.NonUnitalAlg becomes Mathlib.Algebra.Algebra.NonUnitalHom.

While fixing the imports I went ahead and sorted them for good luck.

The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60

Diff
@@ -3,13 +3,13 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
 -/
-import Mathlib.Algebra.Hom.GroupAction
 import Mathlib.Dynamics.Ergodic.MeasurePreserving
-import Mathlib.MeasureTheory.Measure.Regular
+import Mathlib.GroupTheory.GroupAction.Hom
+import Mathlib.MeasureTheory.Constructions.Prod.Basic
+import Mathlib.MeasureTheory.Group.Action
 import Mathlib.MeasureTheory.Group.MeasurableEquiv
 import Mathlib.MeasureTheory.Measure.OpenPos
-import Mathlib.MeasureTheory.Group.Action
-import Mathlib.MeasureTheory.Constructions.Prod.Basic
+import Mathlib.MeasureTheory.Measure.Regular
 import Mathlib.Topology.ContinuousFunction.CocompactMap
 import Mathlib.Topology.Homeomorph
 
feat: expand API on locally integrable functions (#7006)

Measure theory prerequisites for Rademacher theorem in #7003.

Diff
@@ -834,6 +834,18 @@ nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGrou
 #align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
 #align add_equiv.is_add_haar_measure_map AddEquiv.isAddHaarMeasure_map
 
+/-- A convenience wrapper for MeasureTheory.Measure.isAddHaarMeasure_map`. -/
+theorem _root_.ContinuousLinearEquiv.isAddHaarMeasure_map
+    {E F R S : Type*} [Semiring R] [Semiring S]
+    [AddCommGroup E] [Module R E] [AddCommGroup F] [Module S F]
+    [TopologicalSpace E] [TopologicalAddGroup E] [TopologicalSpace F] [T2Space F]
+    [TopologicalAddGroup F]
+    {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ]
+    [MeasurableSpace E] [BorelSpace E] [MeasurableSpace F] [BorelSpace F]
+    (L : E ≃SL[σ] F) (μ : Measure E) [IsAddHaarMeasure μ] :
+    IsAddHaarMeasure (μ.map L) :=
+  AddEquiv.isAddHaarMeasure_map _ (L : E ≃+ F) L.continuous L.symm.continuous
+
 /-- A Haar measure on a σ-compact space is σ-finite.
 
 See Note [lower instance priority] -/
feat: multiplication on the right preserves left invariant measures (#6071)

The image of a left invariant measure under right addition is left invariant, and if the measure was a Haar measure it is stays a Haar measure.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2020 Floris van Doorn. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Floris van Doorn
 -/
+import Mathlib.Algebra.Hom.GroupAction
 import Mathlib.Dynamics.Ergodic.MeasurePreserving
 import Mathlib.MeasureTheory.Measure.Regular
 import Mathlib.MeasureTheory.Group.MeasurableEquiv
@@ -10,6 +11,7 @@ import Mathlib.MeasureTheory.Measure.OpenPos
 import Mathlib.MeasureTheory.Group.Action
 import Mathlib.MeasureTheory.Constructions.Prod.Basic
 import Mathlib.Topology.ContinuousFunction.CocompactMap
+import Mathlib.Topology.Homeomorph
 
 #align_import measure_theory.group.measure from "leanprover-community/mathlib"@"fd5edc43dc4f10b85abfe544b88f82cf13c5f844"
 
@@ -246,6 +248,48 @@ end MeasurableMul
 
 end Mul
 
+section Semigroup
+
+variable [Semigroup G] [MeasurableMul G] {μ : Measure G}
+
+/-- The image of a left invariant measure under a left action is left invariant, assuming that
+the action preserves multiplication. -/
+@[to_additive "The image of a left invariant measure under a left additive action is left invariant,
+assuming that the action preserves addition."]
+theorem isMulLeftInvariant_map_smul
+    {α} [SMul α G] [SMulCommClass α G G] [MeasurableSpace α] [MeasurableSMul α G]
+    [IsMulLeftInvariant μ] (a : α) :
+    IsMulLeftInvariant (map (a • · : G → G) μ) :=
+  (forall_measure_preimage_mul_iff _).1 <| fun x _ hs =>
+    (smulInvariantMeasure_map_smul μ a).measure_preimage_smul x hs
+
+/-- The image of a right invariant measure under a left action is right invariant, assuming that
+the action preserves multiplication. -/
+@[to_additive "The image of a right invariant measure under a left additive action is right
+ invariant, assuming that the action preserves addition."]
+theorem isMulRightInvariant_map_smul
+    {α} [SMul α G] [SMulCommClass α Gᵐᵒᵖ G] [MeasurableSpace α] [MeasurableSMul α G]
+    [IsMulRightInvariant μ] (a : α) :
+    IsMulRightInvariant (map (a • · : G → G) μ) :=
+  (forall_measure_preimage_mul_right_iff _).1 <| fun x _ hs =>
+    (smulInvariantMeasure_map_smul μ a).measure_preimage_smul (MulOpposite.op x) hs
+
+/-- The image of a left invariant measure under right multiplication is left invariant. -/
+@[to_additive isMulLeftInvariant_map_add_right
+"The image of a left invariant measure under right addition is left invariant."]
+instance isMulLeftInvariant_map_mul_right [IsMulLeftInvariant μ] (g : G) :
+    IsMulLeftInvariant (map (· * g) μ) :=
+  isMulLeftInvariant_map_smul (MulOpposite.op g)
+
+/-- The image of a right invariant measure under left multiplication is right invariant. -/
+@[to_additive isMulRightInvariant_map_add_left
+"The image of a right invariant measure under left addition is right invariant."]
+instance isMulRightInvariant_map_mul_left [IsMulRightInvariant μ] (g : G) :
+    IsMulRightInvariant (map (g * ·) μ) :=
+  isMulRightInvariant_map_smul g
+
+end Semigroup
+
 section DivInvMonoid
 
 variable [DivInvMonoid G]
@@ -759,6 +803,26 @@ theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*} [Group
 #align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
 #align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.isAddHaarMeasure_map
 
+/-- The image of a Haar measure under map of a left action is again a Haar measure. -/
+@[to_additive
+   "The image of a Haar measure under map of a left additive action is again a Haar measure"]
+instance isHaarMeasure_map_smul {α} [BorelSpace G] [TopologicalGroup G] [T2Space G]
+    [Group α] [MulAction α G] [SMulCommClass α G G] [MeasurableSpace α] [MeasurableSMul α G]
+    [ContinuousConstSMul α G] (a : α) : IsHaarMeasure (Measure.map (a • · : G → G) μ) where
+  toIsMulLeftInvariant := isMulLeftInvariant_map_smul _
+  lt_top_of_isCompact K hK := by
+    rw [map_apply (measurable_const_smul _) hK.measurableSet]
+    exact IsCompact.measure_lt_top <| (Homeomorph.isCompact_preimage (Homeomorph.smul a)).2 hK
+  toIsOpenPosMeasure :=
+    (continuous_const_smul a).isOpenPosMeasure_map (MulAction.surjective a)
+
+/-- The image of a Haar measure under right multiplication is again a Haar measure. -/
+@[to_additive isHaarMeasure_map_add_right
+  "The image of a Haar measure under right addition is again a Haar measure."]
+instance isHaarMeasure_map_mul_right [BorelSpace G] [TopologicalGroup G] [T2Space G] (g : G) :
+    IsHaarMeasure (Measure.map (· * g) μ) :=
+  isHaarMeasure_map_smul μ (MulOpposite.op g)
+
 /-- A convenience wrapper for `MeasureTheory.Measure.isHaarMeasure_map`. -/
 @[to_additive "A convenience wrapper for `MeasureTheory.Measure.isAddHaarMeasure_map`."]
 nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*}
feat: define weakly locally compact spaces (#6770)
Diff
@@ -606,7 +606,7 @@ on open sets has infinite mass. -/
 @[to_additive (attr := simp)
 "In a noncompact locally compact additive group, a left-invariant measure which is positive on open
 sets has infinite mass."]
-theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G]
+theorem measure_univ_of_isMulLeftInvariant [WeaklyLocallyCompactSpace G] [NoncompactSpace G]
     (μ : Measure G) [IsOpenPosMeasure μ] [μ.IsMulLeftInvariant] : μ univ = ∞ := by
   /- Consider a closed compact set `K` with nonempty interior. For any compact set `L`, one may
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
@@ -703,7 +703,7 @@ instance, to avoid an instance loop.
 
 See Note [lower instance priority]"]
 instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type*} [Group G]
-    [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
+    [MeasurableSpace G] [TopologicalSpace G] [WeaklyLocallyCompactSpace G] (μ : Measure G)
     [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
   isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
 #align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
@@ -805,7 +805,7 @@ group has no atoms.
 This applies in particular to show that an additive Haar measure on a nontrivial finite-dimensional
 real vector space has no atom."]
 instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
-    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).NeBot] (μ : Measure G) [μ.IsHaarMeasure] :
+    [WeaklyLocallyCompactSpace G] [(𝓝[≠] (1 : G)).NeBot] (μ : Measure G) [μ.IsHaarMeasure] :
     NoAtoms μ := by
   cases eq_or_ne (μ 1) 0 with
   | inl h => constructor; simpa
chore: golf some proofs, add helper lemmas (#6769)
Diff
@@ -612,11 +612,9 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
     infinitely many translates of `K` which are disjoint from each other. As they all have the
     same positive mass, it follows that the space has infinite measure. -/
-  obtain ⟨K, hK, Kclosed, Kint⟩ : ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ (1 : G) ∈ interior K := by
-    rcases local_isCompact_isClosed_nhds_of_group (isOpen_univ.mem_nhds (mem_univ (1 : G))) with
-      ⟨K, hK⟩
-    exact ⟨K, hK.1, hK.2.1, hK.2.2.2⟩
-  have K_pos : 0 < μ K := measure_pos_of_nonempty_interior _ ⟨_, Kint⟩
+  obtain ⟨K, hK, Kclosed, K1⟩ : ∃ K : Set G, IsCompact K ∧ IsClosed K ∧ K ∈ 𝓝 1 :=
+    exists_isCompact_isClosed_nhds_one G
+  have K_pos : 0 < μ K := measure_pos_of_nonempty_interior _ ⟨_, mem_interior_iff_mem_nhds.2 K1⟩
   have A : ∀ L : Set G, IsCompact L → ∃ g : G, Disjoint L (g • K) := fun L hL =>
     exists_disjoint_smul_of_isCompact hL hK
   choose! g hg using A
@@ -809,32 +807,13 @@ real vector space has no atom."]
 instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
     [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).NeBot] (μ : Measure G) [μ.IsHaarMeasure] :
     NoAtoms μ := by
-  suffices H : μ {(1 : G)} ≤ 0; · constructor; simp [le_bot_iff.1 H]
-  obtain ⟨K, K_compact, K_int⟩ : ∃ K : Set G, IsCompact K ∧ (1 : G) ∈ interior K := by
-    rcases exists_compact_subset isOpen_univ (mem_univ (1 : G)) with ⟨K, hK⟩
-    exact ⟨K, hK.1, hK.2.1⟩
-  have K_inf : Set.Infinite K := infinite_of_mem_nhds (1 : G) (mem_interior_iff_mem_nhds.1 K_int)
-  have μKlt : μ K ≠ ∞ := K_compact.measure_lt_top.ne
-  have I : ∀ n : ℕ, μ {(1 : G)} ≤ μ K / n := by
-    intro n
-    obtain ⟨t, tK, tn⟩ : ∃ t : Finset G, ↑t ⊆ K ∧ t.card = n := K_inf.exists_subset_card_eq n
-    have A : μ t ≤ μ K := measure_mono tK
-    have B : μ t = n * μ {(1 : G)} := by
-      rw [← biUnion_of_singleton (t : Set G)]
-      change μ (⋃ x ∈ t, {x}) = n * μ {1}
-      rw [@measure_biUnion_finset G G _ μ t fun i => {i}]
-      · simp only [tn, Finset.sum_const, nsmul_eq_mul, haar_singleton]
-      · intro x _ y _ xy
-        simp only [onFun, xy.symm, mem_singleton_iff, not_false_iff, disjoint_singleton_right]
-      · intro b _; exact measurableSet_singleton b
-    rw [B] at A
-    rwa [ENNReal.le_div_iff_mul_le _ (Or.inr μKlt), mul_comm]
-    right
-    apply (measure_pos_of_nonempty_interior μ ⟨_, K_int⟩).ne'
-  have J : Tendsto (fun n : ℕ => μ K / n) atTop (𝓝 (μ K / ∞)) :=
-    ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
-  simp only [ENNReal.div_top] at J
-  exact ge_of_tendsto' J I
+  cases eq_or_ne (μ 1) 0 with
+  | inl h => constructor; simpa
+  | inr h =>
+    obtain ⟨K, K_compact, K_nhds⟩ : ∃ K : Set G, IsCompact K ∧ K ∈ 𝓝 1 := exists_compact_mem_nhds 1
+    have K_inf : Set.Infinite K := infinite_of_mem_nhds (1 : G) K_nhds
+    exact absurd (K_inf.meas_eq_top ⟨_, h, fun x _ ↦ (haar_singleton _ _).ge⟩)
+      K_compact.measure_lt_top.ne
 #align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
 #align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
 
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
@@ -34,7 +34,7 @@ open scoped NNReal ENNReal Pointwise BigOperators Topology
 
 open Inv Set Function MeasureTheory.Measure Filter
 
-variable {𝕜 G H : Type _} [MeasurableSpace G] [MeasurableSpace H]
+variable {𝕜 G H : Type*} [MeasurableSpace G] [MeasurableSpace H]
 
 namespace MeasureTheory
 
@@ -130,7 +130,7 @@ theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g :
 #align measure_theory.measure_preserving_add_left MeasureTheory.measurePreserving_add_left
 
 @[to_additive]
-theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type*}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => g * f x) μ' μ :=
   (measurePreserving_mul_left μ g).comp hf
@@ -145,7 +145,7 @@ theorem measurePreserving_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g
 #align measure_theory.measure_preserving_add_right MeasureTheory.measurePreserving_add_right
 
 @[to_additive]
-theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type*}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => f x * g) μ' μ :=
   (measurePreserving_mul_right μ g).comp hf
@@ -167,7 +167,7 @@ instance IsMulRightInvariant.toSMulInvariantMeasure_op [μ.IsMulRightInvariant]
 #align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.IsMulRightInvariant.toVAddInvariantMeasure_op
 
 @[to_additive]
-instance Subgroup.smulInvariantMeasure {G α : Type _} [Group G] [MulAction G α] [MeasurableSpace α]
+instance Subgroup.smulInvariantMeasure {G α : Type*} [Group G] [MulAction G α] [MeasurableSpace α]
     {μ : Measure α} [SMulInvariantMeasure G α μ] (H : Subgroup G) : SMulInvariantMeasure H α μ :=
   ⟨fun y s hs => by convert SMulInvariantMeasure.measure_preimage_smul (μ := μ) (y : G) hs⟩
 #align measure_theory.subgroup.smul_invariant_measure MeasureTheory.Subgroup.smulInvariantMeasure
@@ -200,7 +200,7 @@ theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
 #align measure_theory.forall_measure_preimage_add_right_iff MeasureTheory.forall_measure_preimage_add_right_iff
 
 @[to_additive]
-instance Measure.prod.instIsMulLeftInvariant [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _}
+instance Measure.prod.instIsMulLeftInvariant [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type*}
     [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [IsMulLeftInvariant ν]
     [SigmaFinite ν] : IsMulLeftInvariant (μ.prod ν) := by
   constructor
@@ -214,7 +214,7 @@ instance Measure.prod.instIsMulLeftInvariant [IsMulLeftInvariant μ] [SigmaFinit
 #align measure_theory.measure.prod.measure.is_add_left_invariant MeasureTheory.Measure.prod.instIsAddLeftInvariant
 
 @[to_additive]
-instance Measure.prod.instIsMulRightInvariant [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _}
+instance Measure.prod.instIsMulRightInvariant [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type*}
     [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [IsMulRightInvariant ν]
     [SigmaFinite ν] : IsMulRightInvariant (μ.prod ν) := by
   constructor
@@ -228,7 +228,7 @@ instance Measure.prod.instIsMulRightInvariant [IsMulRightInvariant μ] [SigmaFin
 #align measure_theory.measure.prod.measure.is_add_right_invariant MeasureTheory.Measure.prod.instIsMulRightInvariant
 
 @[to_additive]
-theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
+theorem isMulLeftInvariant_map {H : Type*} [MeasurableSpace H] [Mul H] [MeasurableMul H]
     [IsMulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
     IsMulLeftInvariant (Measure.map f μ) := by
   refine' ⟨fun h => _⟩
@@ -680,7 +680,7 @@ namespace Measure
 
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
-class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
+class IsAddHaarMeasure {G : Type*} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
   (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ :
   Prop
 #align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
@@ -688,7 +688,7 @@ class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [Measurabl
 /-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
 sets and positive mass to open sets. -/
 @[to_additive existing]
-class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
+class IsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] [MeasurableSpace G]
   (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ :
   Prop
 #align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
@@ -704,7 +704,7 @@ as the fact that a measure which is finite on compacts is locally finite is not
 instance, to avoid an instance loop.
 
 See Note [lower instance priority]"]
-instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
+instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type*} [Group G]
     [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
     [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
   isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
@@ -748,7 +748,7 @@ a Haar measure. See also `MulEquiv.isHaarMeasure_map`. -/
 @[to_additive
 "The image of an additive Haar measure under a continuous surjective proper additive group
 homomorphism is again an additive Haar measure. See also `AddEquiv.isAddHaarMeasure_map`."]
-theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
     (f : G →* H) (hf : Continuous f) (h_surj : Surjective f)
     (h_prop : Tendsto f (cocompact G) (cocompact H)) : IsHaarMeasure (Measure.map f μ) :=
@@ -763,7 +763,7 @@ theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Grou
 
 /-- A convenience wrapper for `MeasureTheory.Measure.isHaarMeasure_map`. -/
 @[to_additive "A convenience wrapper for `MeasureTheory.Measure.isAddHaarMeasure_map`."]
-nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _}
+nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type*}
     [Group H] [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H]
     [TopologicalGroup H] (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) :
     IsHaarMeasure (Measure.map e μ) :=
@@ -788,8 +788,8 @@ instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : Sig
 #align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite
 
 @[to_additive]
-instance prod.instIsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] {_ : MeasurableSpace G}
-    {H : Type _} [Group H] [TopologicalSpace H] {_ : MeasurableSpace H} (μ : Measure G)
+instance prod.instIsHaarMeasure {G : Type*} [Group G] [TopologicalSpace G] {_ : MeasurableSpace G}
+    {H : Type*} [Group H] [TopologicalSpace H] {_ : MeasurableSpace H} (μ : Measure G)
     (ν : Measure H) [IsHaarMeasure μ] [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν]
     [MeasurableMul G] [MeasurableMul H] : IsHaarMeasure (μ.prod ν) where
 #align measure_theory.measure.prod.is_haar_measure MeasureTheory.Measure.prod.instIsHaarMeasure
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) 2020 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.group.measure
-! leanprover-community/mathlib commit fd5edc43dc4f10b85abfe544b88f82cf13c5f844
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Dynamics.Ergodic.MeasurePreserving
 import Mathlib.MeasureTheory.Measure.Regular
@@ -16,6 +11,8 @@ import Mathlib.MeasureTheory.Group.Action
 import Mathlib.MeasureTheory.Constructions.Prod.Basic
 import Mathlib.Topology.ContinuousFunction.CocompactMap
 
+#align_import measure_theory.group.measure from "leanprover-community/mathlib"@"fd5edc43dc4f10b85abfe544b88f82cf13c5f844"
+
 /-!
 # Measures on Groups
 
fix precedence of Nat.iterate (#5589)
Diff
@@ -623,7 +623,7 @@ theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSp
   have A : ∀ L : Set G, IsCompact L → ∃ g : G, Disjoint L (g • K) := fun L hL =>
     exists_disjoint_smul_of_isCompact hL hK
   choose! g hg using A
-  set L : ℕ → Set G := fun n => ((fun T => T ∪ g T • K)^[n]) K
+  set L : ℕ → Set G := fun n => (fun T => T ∪ g T • K)^[n] K
   have Lcompact : ∀ n, IsCompact (L n) := by
     intro n
     induction' n with n IH
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -533,10 +533,10 @@ theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsComp
   contrapose! h
   rw [← nonpos_iff_eq_zero]
   rw [← hU.interior_eq] at hne
-  obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
+  obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
     compact_covered_by_mul_left_translates hK hne
   calc
-    μ K ≤ μ (⋃ (g : G) (_H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
+    μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
 #align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact
@@ -582,10 +582,10 @@ any compact set."]
 theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOpen U)
     (h'U : U.Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ := by
   rw [← hU.interior_eq] at h'U
-  obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
+  obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
     compact_covered_by_mul_left_translates hK h'U
   calc
-    μ K ≤ μ (⋃ (g : G) (_H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
+    μ K ≤ μ (⋃ (g : G) (_ : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
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
@@ -24,7 +24,7 @@ We develop some properties of measures on (topological) groups
 * We define properties on measures: measures that are left or right invariant w.r.t. multiplication.
 * We define the measure `μ.inv : A ↦ μ(A⁻¹)` and show that it is right invariant iff
   `μ` is left invariant.
-* We define a class `HaarMeasure μ`, requiring that the measure `μ` is left-invariant, finite
+* We define a class `IsHaarMeasure μ`, requiring that the measure `μ` is left-invariant, finite
   on compact sets, and positive on open sets.
 
 We also give analogues of all these notions in the additive world.
@@ -45,33 +45,33 @@ namespace Measure
 
 /-- A measure `μ` on a measurable additive group is left invariant
   if the measure of left translations of a set are equal to the measure of the set itself. -/
-class AddLeftInvariant [Add G] (μ : Measure G) : Prop where
+class IsAddLeftInvariant [Add G] (μ : Measure G) : Prop where
   map_add_left_eq_self : ∀ g : G, map (g + ·) μ = μ
-#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.AddLeftInvariant
-#align measure_theory.measure.is_add_left_invariant.map_add_left_eq_self MeasureTheory.Measure.AddLeftInvariant.map_add_left_eq_self
+#align measure_theory.measure.is_add_left_invariant MeasureTheory.Measure.IsAddLeftInvariant
+#align measure_theory.measure.is_add_left_invariant.map_add_left_eq_self MeasureTheory.Measure.IsAddLeftInvariant.map_add_left_eq_self
 
 /-- A measure `μ` on a measurable group is left invariant
   if the measure of left translations of a set are equal to the measure of the set itself. -/
 @[to_additive existing]
-class MulLeftInvariant [Mul G] (μ : Measure G) : Prop where
+class IsMulLeftInvariant [Mul G] (μ : Measure G) : Prop where
   map_mul_left_eq_self : ∀ g : G, map (g * ·) μ = μ
-#align measure_theory.measure.is_mul_left_invariant MeasureTheory.Measure.MulLeftInvariant
-#align measure_theory.measure.is_mul_left_invariant.map_mul_left_eq_self MeasureTheory.Measure.MulLeftInvariant.map_mul_left_eq_self
+#align measure_theory.measure.is_mul_left_invariant MeasureTheory.Measure.IsMulLeftInvariant
+#align measure_theory.measure.is_mul_left_invariant.map_mul_left_eq_self MeasureTheory.Measure.IsMulLeftInvariant.map_mul_left_eq_self
 
 /-- A measure `μ` on a measurable additive group is right invariant
   if the measure of right translations of a set are equal to the measure of the set itself. -/
-class AddRightInvariant [Add G] (μ : Measure G) : Prop where
+class IsAddRightInvariant [Add G] (μ : Measure G) : Prop where
   map_add_right_eq_self : ∀ g : G, map (· + g) μ = μ
-#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.AddRightInvariant
-#align measure_theory.measure.is_add_right_invariant.map_add_right_eq_self MeasureTheory.Measure.AddRightInvariant.map_add_right_eq_self
+#align measure_theory.measure.is_add_right_invariant MeasureTheory.Measure.IsAddRightInvariant
+#align measure_theory.measure.is_add_right_invariant.map_add_right_eq_self MeasureTheory.Measure.IsAddRightInvariant.map_add_right_eq_self
 
 /-- A measure `μ` on a measurable group is right invariant
   if the measure of right translations of a set are equal to the measure of the set itself. -/
 @[to_additive existing]
-class MulRightInvariant [Mul G] (μ : Measure G) : Prop where
+class IsMulRightInvariant [Mul G] (μ : Measure G) : Prop where
   map_mul_right_eq_self : ∀ g : G, map (· * g) μ = μ
-#align measure_theory.measure.is_mul_right_invariant MeasureTheory.Measure.MulRightInvariant
-#align measure_theory.measure.is_mul_right_invariant.map_mul_right_eq_self MeasureTheory.Measure.MulRightInvariant.map_mul_right_eq_self
+#align measure_theory.measure.is_mul_right_invariant MeasureTheory.Measure.IsMulRightInvariant
+#align measure_theory.measure.is_mul_right_invariant.map_mul_right_eq_self MeasureTheory.Measure.IsMulRightInvariant.map_mul_right_eq_self
 
 end Measure
 
@@ -82,58 +82,58 @@ section Mul
 variable [Mul G] {μ : Measure G}
 
 @[to_additive]
-theorem map_mul_left_eq_self (μ : Measure G) [MulLeftInvariant μ] (g : G) :
+theorem map_mul_left_eq_self (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
     map (g * ·) μ = μ :=
-  MulLeftInvariant.map_mul_left_eq_self g
+  IsMulLeftInvariant.map_mul_left_eq_self g
 #align measure_theory.map_mul_left_eq_self MeasureTheory.map_mul_left_eq_self
 #align measure_theory.map_add_left_eq_self MeasureTheory.map_add_left_eq_self
 
 @[to_additive]
-theorem map_mul_right_eq_self (μ : Measure G) [MulRightInvariant μ] (g : G) : map (· * g) μ = μ :=
-  MulRightInvariant.map_mul_right_eq_self g
+theorem map_mul_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· * g) μ = μ :=
+  IsMulRightInvariant.map_mul_right_eq_self g
 #align measure_theory.map_mul_right_eq_self MeasureTheory.map_mul_right_eq_self
 #align measure_theory.map_add_right_eq_self MeasureTheory.map_add_right_eq_self
 
-@[to_additive MeasureTheory.addLeftInvariant_smul]
-instance mulLeftInvariant_smul [MulLeftInvariant μ] (c : ℝ≥0∞) : MulLeftInvariant (c • μ) :=
+@[to_additive MeasureTheory.isAddLeftInvariant_smul]
+instance isMulLeftInvariant_smul [IsMulLeftInvariant μ] (c : ℝ≥0∞) : IsMulLeftInvariant (c • μ) :=
   ⟨fun g => by rw [Measure.map_smul, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant_smul MeasureTheory.mulLeftInvariant_smul
-#align measure_theory.is_add_left_invariant_smul MeasureTheory.addLeftInvariant_smul
+#align measure_theory.is_mul_left_invariant_smul MeasureTheory.isMulLeftInvariant_smul
+#align measure_theory.is_add_left_invariant_smul MeasureTheory.isAddLeftInvariant_smul
 
-@[to_additive MeasureTheory.addRightInvariant_smul]
-instance mulRightInvariant_smul [MulRightInvariant μ] (c : ℝ≥0∞) :
-    MulRightInvariant (c • μ) :=
+@[to_additive MeasureTheory.isAddRightInvariant_smul]
+instance isMulRightInvariant_smul [IsMulRightInvariant μ] (c : ℝ≥0∞) :
+    IsMulRightInvariant (c • μ) :=
   ⟨fun g => by rw [Measure.map_smul, map_mul_right_eq_self]⟩
-#align measure_theory.is_mul_right_invariant_smul MeasureTheory.mulRightInvariant_smul
-#align measure_theory.is_add_right_invariant_smul MeasureTheory.addRightInvariant_smul
-
-@[to_additive MeasureTheory.addLeftInvariant_smul_nnreal]
-instance mulLeftInvariant_smul_nnreal [MulLeftInvariant μ] (c : ℝ≥0) :
-    MulLeftInvariant (c • μ) :=
-  MeasureTheory.mulLeftInvariant_smul (c : ℝ≥0∞)
-#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.mulLeftInvariant_smul_nnreal
-#align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.addLeftInvariant_smul_nnreal
-
-@[to_additive MeasureTheory.addRightInvariant_smul_nnreal]
-instance mulRightInvariant_smul_nnreal [MulRightInvariant μ] (c : ℝ≥0) :
-    MulRightInvariant (c • μ) :=
-  MeasureTheory.mulRightInvariant_smul (c : ℝ≥0∞)
-#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.mulRightInvariant_smul_nnreal
-#align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.addRightInvariant_smul_nnreal
+#align measure_theory.is_mul_right_invariant_smul MeasureTheory.isMulRightInvariant_smul
+#align measure_theory.is_add_right_invariant_smul MeasureTheory.isAddRightInvariant_smul
+
+@[to_additive MeasureTheory.isAddLeftInvariant_smul_nnreal]
+instance isMulLeftInvariant_smul_nnreal [IsMulLeftInvariant μ] (c : ℝ≥0) :
+    IsMulLeftInvariant (c • μ) :=
+  MeasureTheory.isMulLeftInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_left_invariant_smul_nnreal MeasureTheory.isMulLeftInvariant_smul_nnreal
+#align measure_theory.is_add_left_invariant_smul_nnreal MeasureTheory.isAddLeftInvariant_smul_nnreal
+
+@[to_additive MeasureTheory.isAddRightInvariant_smul_nnreal]
+instance isMulRightInvariant_smul_nnreal [IsMulRightInvariant μ] (c : ℝ≥0) :
+    IsMulRightInvariant (c • μ) :=
+  MeasureTheory.isMulRightInvariant_smul (c : ℝ≥0∞)
+#align measure_theory.is_mul_right_invariant_smul_nnreal MeasureTheory.isMulRightInvariant_smul_nnreal
+#align measure_theory.is_add_right_invariant_smul_nnreal MeasureTheory.isAddRightInvariant_smul_nnreal
 
 section MeasurableMul
 
 variable [MeasurableMul G]
 
 @[to_additive]
-theorem measurePreserving_mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G) :
+theorem measurePreserving_mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) :
     MeasurePreserving (g * ·) μ μ :=
   ⟨measurable_const_mul g, map_mul_left_eq_self μ g⟩
 #align measure_theory.measure_preserving_mul_left MeasureTheory.measurePreserving_mul_left
 #align measure_theory.measure_preserving_add_left MeasureTheory.measurePreserving_add_left
 
 @[to_additive]
-theorem MeasurePreserving.mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_left (μ : Measure G) [IsMulLeftInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => g * f x) μ' μ :=
   (measurePreserving_mul_left μ g).comp hf
@@ -141,14 +141,14 @@ theorem MeasurePreserving.mul_left (μ : Measure G) [MulLeftInvariant μ] (g : G
 #align measure_theory.measure_preserving.add_left MeasureTheory.MeasurePreserving.add_left
 
 @[to_additive]
-theorem measurePreserving_mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) :
+theorem measurePreserving_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· * g) μ μ :=
   ⟨measurable_mul_const g, map_mul_right_eq_self μ g⟩
 #align measure_theory.measure_preserving_mul_right MeasureTheory.measurePreserving_mul_right
 #align measure_theory.measure_preserving_add_right MeasureTheory.measurePreserving_add_right
 
 @[to_additive]
-theorem MeasurePreserving.mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) {X : Type _}
+theorem MeasurePreserving.mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) {X : Type _}
     [MeasurableSpace X] {μ' : Measure X} {f : X → G} (hf : MeasurePreserving f μ' μ) :
     MeasurePreserving (fun x => f x * g) μ' μ :=
   (measurePreserving_mul_right μ g).comp hf
@@ -156,18 +156,18 @@ theorem MeasurePreserving.mul_right (μ : Measure G) [MulRightInvariant μ] (g :
 #align measure_theory.measure_preserving.add_right MeasureTheory.MeasurePreserving.add_right
 
 @[to_additive]
-instance MulLeftInvariant.smulInvariantMeasure [MulLeftInvariant μ] :
+instance IsMulLeftInvariant.smulInvariantMeasure [IsMulLeftInvariant μ] :
     SMulInvariantMeasure G G μ :=
   ⟨fun x _s hs => (measurePreserving_mul_left μ x).measure_preimage hs⟩
-#align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.MulLeftInvariant.smulInvariantMeasure
-#align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.MulLeftInvariant.vaddInvariantMeasure
+#align measure_theory.is_mul_left_invariant.smul_invariant_measure MeasureTheory.IsMulLeftInvariant.smulInvariantMeasure
+#align measure_theory.is_mul_left_invariant.vadd_invariant_measure MeasureTheory.IsMulLeftInvariant.vaddInvariantMeasure
 
 @[to_additive]
-instance MulRightInvariant.toSMulInvariantMeasure_op [μ.MulRightInvariant] :
+instance IsMulRightInvariant.toSMulInvariantMeasure_op [μ.IsMulRightInvariant] :
     SMulInvariantMeasure Gᵐᵒᵖ G μ :=
   ⟨fun x _s hs => (measurePreserving_mul_right μ (MulOpposite.unop x)).measure_preimage hs⟩
-#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.MulRightInvariant.toSMulInvariantMeasure_op
-#align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.MulRightInvariant.toVAddInvariantMeasure_op
+#align measure_theory.is_mul_right_invariant.to_smul_invariant_measure_op MeasureTheory.IsMulRightInvariant.toSMulInvariantMeasure_op
+#align measure_theory.is_mul_right_invariant.to_vadd_invariant_measure_op MeasureTheory.IsMulRightInvariant.toVAddInvariantMeasure_op
 
 @[to_additive]
 instance Subgroup.smulInvariantMeasure {G α : Type _} [Group G] [MulAction G α] [MeasurableSpace α]
@@ -180,7 +180,7 @@ instance Subgroup.smulInvariantMeasure {G α : Type _} [Group G] [MulAction G α
 @[to_additive " An alternative way to prove that `μ` is left invariant under addition. "]
 theorem forall_measure_preimage_mul_iff (μ : Measure G) :
     (∀ (g : G) (A : Set G), MeasurableSet A → μ ((fun h => g * h) ⁻¹' A) = μ A) ↔
-      MulLeftInvariant μ := by
+      IsMulLeftInvariant μ := by
   trans ∀ g, map (g * ·) μ = μ
   · simp_rw [Measure.ext_iff]
     refine' forall_congr' fun g => forall_congr' fun A => forall_congr' fun hA => _
@@ -193,7 +193,7 @@ theorem forall_measure_preimage_mul_iff (μ : Measure G) :
 @[to_additive " An alternative way to prove that `μ` is right invariant under addition. "]
 theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
     (∀ (g : G) (A : Set G), MeasurableSet A → μ ((fun h => h * g) ⁻¹' A) = μ A) ↔
-      MulRightInvariant μ := by
+      IsMulRightInvariant μ := by
   trans ∀ g, map (· * g) μ = μ
   · simp_rw [Measure.ext_iff]
     refine' forall_congr' fun g => forall_congr' fun A => forall_congr' fun hA => _
@@ -203,9 +203,9 @@ theorem forall_measure_preimage_mul_right_iff (μ : Measure G) :
 #align measure_theory.forall_measure_preimage_add_right_iff MeasureTheory.forall_measure_preimage_add_right_iff
 
 @[to_additive]
-instance Measure.prod.instMulLeftInvariant [MulLeftInvariant μ] [SigmaFinite μ] {H : Type _}
-    [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [MulLeftInvariant ν]
-    [SigmaFinite ν] : MulLeftInvariant (μ.prod ν) := by
+instance Measure.prod.instIsMulLeftInvariant [IsMulLeftInvariant μ] [SigmaFinite μ] {H : Type _}
+    [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [IsMulLeftInvariant ν]
+    [SigmaFinite ν] : IsMulLeftInvariant (μ.prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map (g * ·) (h * ·)) (μ.prod ν) = μ.prod ν
@@ -213,13 +213,13 @@ instance Measure.prod.instMulLeftInvariant [MulLeftInvariant μ] [SigmaFinite μ
     map_mul_left_eq_self μ g, map_mul_left_eq_self ν h]
   · rw [map_mul_left_eq_self μ g]; infer_instance
   · rw [map_mul_left_eq_self ν h]; infer_instance
-#align measure_theory.measure.prod.measure.is_mul_left_invariant MeasureTheory.Measure.prod.instMulLeftInvariant
-#align measure_theory.measure.prod.measure.is_add_left_invariant MeasureTheory.Measure.prod.instAddLeftInvariant
+#align measure_theory.measure.prod.measure.is_mul_left_invariant MeasureTheory.Measure.prod.instIsMulLeftInvariant
+#align measure_theory.measure.prod.measure.is_add_left_invariant MeasureTheory.Measure.prod.instIsAddLeftInvariant
 
 @[to_additive]
-instance Measure.prod.instMulRightInvariant [MulRightInvariant μ] [SigmaFinite μ] {H : Type _}
-    [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [MulRightInvariant ν]
-    [SigmaFinite ν] : MulRightInvariant (μ.prod ν) := by
+instance Measure.prod.instIsMulRightInvariant [IsMulRightInvariant μ] [SigmaFinite μ] {H : Type _}
+    [Mul H] {mH : MeasurableSpace H} {ν : Measure H} [MeasurableMul H] [IsMulRightInvariant ν]
+    [SigmaFinite ν] : IsMulRightInvariant (μ.prod ν) := by
   constructor
   rintro ⟨g, h⟩
   change map (Prod.map (· * g) (· * h)) (μ.prod ν) = μ.prod ν
@@ -227,13 +227,13 @@ instance Measure.prod.instMulRightInvariant [MulRightInvariant μ] [SigmaFinite
     map_mul_right_eq_self μ g, map_mul_right_eq_self ν h]
   · rw [map_mul_right_eq_self μ g]; infer_instance
   · rw [map_mul_right_eq_self ν h]; infer_instance
-#align measure_theory.measure.prod.measure.is_mul_right_invariant MeasureTheory.Measure.prod.instMulRightInvariant
-#align measure_theory.measure.prod.measure.is_add_right_invariant MeasureTheory.Measure.prod.instMulRightInvariant
+#align measure_theory.measure.prod.measure.is_mul_right_invariant MeasureTheory.Measure.prod.instIsMulRightInvariant
+#align measure_theory.measure.prod.measure.is_add_right_invariant MeasureTheory.Measure.prod.instIsMulRightInvariant
 
 @[to_additive]
-theorem mulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
-    [MulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
-    MulLeftInvariant (Measure.map f μ) := by
+theorem isMulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [MeasurableMul H]
+    [IsMulLeftInvariant μ] (f : G →ₙ* H) (hf : Measurable f) (h_surj : Surjective f) :
+    IsMulLeftInvariant (Measure.map f μ) := by
   refine' ⟨fun h => _⟩
   rw [map_map (measurable_const_mul _) hf]
   obtain ⟨g, rfl⟩ := h_surj h
@@ -242,8 +242,8 @@ theorem mulLeftInvariant_map {H : Type _} [MeasurableSpace H] [Mul H] [Measurabl
   congr 2
   ext y
   simp only [comp_apply, map_mul]
-#align measure_theory.is_mul_left_invariant_map MeasureTheory.mulLeftInvariant_map
-#align measure_theory.is_add_left_invariant_map MeasureTheory.addLeftInvariant_map
+#align measure_theory.is_mul_left_invariant_map MeasureTheory.isMulLeftInvariant_map
+#align measure_theory.is_add_left_invariant_map MeasureTheory.isAddLeftInvariant_map
 
 end MeasurableMul
 
@@ -254,7 +254,7 @@ section DivInvMonoid
 variable [DivInvMonoid G]
 
 @[to_additive]
-theorem map_div_right_eq_self (μ : Measure G) [MulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
+theorem map_div_right_eq_self (μ : Measure G) [IsMulRightInvariant μ] (g : G) : map (· / g) μ = μ :=
   by simp_rw [div_eq_mul_inv, map_mul_right_eq_self μ g⁻¹]
 #align measure_theory.map_div_right_eq_self MeasureTheory.map_div_right_eq_self
 #align measure_theory.map_sub_right_eq_self MeasureTheory.map_sub_right_eq_self
@@ -266,7 +266,7 @@ section Group
 variable [Group G] [MeasurableMul G]
 
 @[to_additive]
-theorem measurePreserving_div_right (μ : Measure G) [MulRightInvariant μ] (g : G) :
+theorem measurePreserving_div_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) :
     MeasurePreserving (· / g) μ μ := by simp_rw [div_eq_mul_inv, measurePreserving_mul_right μ g⁻¹]
 #align measure_theory.measure_preserving_div_right MeasureTheory.measurePreserving_div_right
 #align measure_theory.measure_preserving_sub_right MeasureTheory.measurePreserving_sub_right
@@ -276,7 +276,7 @@ theorem measurePreserving_div_right (μ : Measure G) [MulRightInvariant μ] (g :
 @[to_additive (attr := simp)
 "We shorten this from `measure_preimage_add_left`, since left invariant is the preferred option for
 measures in this formalization."]
-theorem measure_preimage_mul (μ : Measure G) [MulLeftInvariant μ] (g : G) (A : Set G) :
+theorem measure_preimage_mul (μ : Measure G) [IsMulLeftInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => g * h) ⁻¹' A) = μ A :=
   calc
     μ ((fun h => g * h) ⁻¹' A) = map (fun h => g * h) μ A :=
@@ -286,7 +286,7 @@ theorem measure_preimage_mul (μ : Measure G) [MulLeftInvariant μ] (g : G) (A :
 #align measure_theory.measure_preimage_add MeasureTheory.measure_preimage_add
 
 @[to_additive (attr := simp)]
-theorem measure_preimage_mul_right (μ : Measure G) [MulRightInvariant μ] (g : G) (A : Set G) :
+theorem measure_preimage_mul_right (μ : Measure G) [IsMulRightInvariant μ] (g : G) (A : Set G) :
     μ ((fun h => h * g) ⁻¹' A) = μ A :=
   calc
     μ ((fun h => h * g) ⁻¹' A) = map (fun h => h * g) μ A :=
@@ -296,42 +296,42 @@ theorem measure_preimage_mul_right (μ : Measure G) [MulRightInvariant μ] (g :
 #align measure_theory.measure_preimage_add_right MeasureTheory.measure_preimage_add_right
 
 @[to_additive]
-theorem map_mul_left_ae (μ : Measure G) [MulLeftInvariant μ] (x : G) :
+theorem map_mul_left_ae (μ : Measure G) [IsMulLeftInvariant μ] (x : G) :
     Filter.map (fun h => x * h) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulLeft x).map_ae μ).trans <| congr_arg ae <| map_mul_left_eq_self μ x
 #align measure_theory.map_mul_left_ae MeasureTheory.map_mul_left_ae
 #align measure_theory.map_add_left_ae MeasureTheory.map_add_left_ae
 
 @[to_additive]
-theorem map_mul_right_ae (μ : Measure G) [MulRightInvariant μ] (x : G) :
+theorem map_mul_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
     Filter.map (fun h => h * x) μ.ae = μ.ae :=
   ((MeasurableEquiv.mulRight x).map_ae μ).trans <| congr_arg ae <| map_mul_right_eq_self μ x
 #align measure_theory.map_mul_right_ae MeasureTheory.map_mul_right_ae
 #align measure_theory.map_add_right_ae MeasureTheory.map_add_right_ae
 
 @[to_additive]
-theorem map_div_right_ae (μ : Measure G) [MulRightInvariant μ] (x : G) :
+theorem map_div_right_ae (μ : Measure G) [IsMulRightInvariant μ] (x : G) :
     Filter.map (fun t => t / x) μ.ae = μ.ae :=
   ((MeasurableEquiv.divRight x).map_ae μ).trans <| congr_arg ae <| map_div_right_eq_self μ x
 #align measure_theory.map_div_right_ae MeasureTheory.map_div_right_ae
 #align measure_theory.map_sub_right_ae MeasureTheory.map_sub_right_ae
 
 @[to_additive]
-theorem eventually_mul_left_iff (μ : Measure G) [MulLeftInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_mul_left_iff (μ : Measure G) [IsMulLeftInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (t * x)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_left_ae μ t]; rfl
 #align measure_theory.eventually_mul_left_iff MeasureTheory.eventually_mul_left_iff
 #align measure_theory.eventually_add_left_iff MeasureTheory.eventually_add_left_iff
 
 @[to_additive]
-theorem eventually_mul_right_iff (μ : Measure G) [MulRightInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_mul_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x * t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_mul_right_ae μ t]; rfl
 #align measure_theory.eventually_mul_right_iff MeasureTheory.eventually_mul_right_iff
 #align measure_theory.eventually_add_right_iff MeasureTheory.eventually_add_right_iff
 
 @[to_additive]
-theorem eventually_div_right_iff (μ : Measure G) [MulRightInvariant μ] (t : G) {p : G → Prop} :
+theorem eventually_div_right_iff (μ : Measure G) [IsMulRightInvariant μ] (t : G) {p : G → Prop} :
     (∀ᵐ x ∂μ, p (x / t)) ↔ ∀ᵐ x ∂μ, p x := by
   conv_rhs => rw [Filter.Eventually, ← map_div_right_ae μ t]; rfl
 #align measure_theory.eventually_div_right_iff MeasureTheory.eventually_div_right_iff
@@ -354,39 +354,39 @@ protected noncomputable def inv [Inv G] (μ : Measure G) : Measure G :=
 
 /-- A measure is invariant under negation if `- μ = μ`. Equivalently, this means that for all
 measurable `A` we have `μ (- A) = μ A`, where `- A` is the pointwise negation of `A`. -/
-class NegInvariant [Neg G] (μ : Measure G) : Prop where
+class IsNegInvariant [Neg G] (μ : Measure G) : Prop where
   neg_eq_self : μ.neg = μ
-#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.NegInvariant
-#align measure_theory.measure.is_neg_invariant.neg_eq_self MeasureTheory.Measure.NegInvariant.neg_eq_self
+#align measure_theory.measure.is_neg_invariant MeasureTheory.Measure.IsNegInvariant
+#align measure_theory.measure.is_neg_invariant.neg_eq_self MeasureTheory.Measure.IsNegInvariant.neg_eq_self
 
 /-- A measure is invariant under inversion if `μ⁻¹ = μ`. Equivalently, this means that for all
 measurable `A` we have `μ (A⁻¹) = μ A`, where `A⁻¹` is the pointwise inverse of `A`. -/
 @[to_additive existing]
-class InvInvariant [Inv G] (μ : Measure G) : Prop where
+class IsInvInvariant [Inv G] (μ : Measure G) : Prop where
   inv_eq_self : μ.inv = μ
-#align measure_theory.measure.is_inv_invariant MeasureTheory.Measure.InvInvariant
-#align measure_theory.measure.is_inv_invariant.inv_eq_self MeasureTheory.Measure.InvInvariant.inv_eq_self
+#align measure_theory.measure.is_inv_invariant MeasureTheory.Measure.IsInvInvariant
+#align measure_theory.measure.is_inv_invariant.inv_eq_self MeasureTheory.Measure.IsInvInvariant.inv_eq_self
 
 section Inv
 
 variable [Inv G]
 
 @[to_additive (attr := simp)]
-theorem inv_eq_self (μ : Measure G) [InvInvariant μ] : μ.inv = μ :=
-  InvInvariant.inv_eq_self
+theorem inv_eq_self (μ : Measure G) [IsInvInvariant μ] : μ.inv = μ :=
+  IsInvInvariant.inv_eq_self
 #align measure_theory.measure.inv_eq_self MeasureTheory.Measure.inv_eq_self
 #align measure_theory.measure.neg_eq_self MeasureTheory.Measure.neg_eq_self
 
 @[to_additive (attr := simp)]
-theorem map_inv_eq_self (μ : Measure G) [InvInvariant μ] : map Inv.inv μ = μ :=
-  InvInvariant.inv_eq_self
+theorem map_inv_eq_self (μ : Measure G) [IsInvInvariant μ] : map Inv.inv μ = μ :=
+  IsInvInvariant.inv_eq_self
 #align measure_theory.measure.map_inv_eq_self MeasureTheory.Measure.map_inv_eq_self
 #align measure_theory.measure.map_neg_eq_self MeasureTheory.Measure.map_neg_eq_self
 
 variable [MeasurableInv G]
 
 @[to_additive]
-theorem measurePreserving_inv (μ : Measure G) [InvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
+theorem measurePreserving_inv (μ : Measure G) [IsInvInvariant μ] : MeasurePreserving Inv.inv μ μ :=
   ⟨measurable_inv, map_inv_eq_self μ⟩
 #align measure_theory.measure.measure_preserving_inv MeasureTheory.Measure.measurePreserving_inv
 #align measure_theory.measure.measure_preserving_neg MeasureTheory.Measure.measurePreserving_neg
@@ -410,13 +410,13 @@ protected theorem inv_inv (μ : Measure G) : μ.inv.inv = μ :=
 #align measure_theory.measure.neg_neg MeasureTheory.Measure.neg_neg
 
 @[to_additive (attr := simp)]
-theorem measure_inv (μ : Measure G) [InvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
+theorem measure_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) : μ A⁻¹ = μ A := by
   rw [← inv_apply, inv_eq_self]
 #align measure_theory.measure.measure_inv MeasureTheory.Measure.measure_inv
 #align measure_theory.measure.measure_neg MeasureTheory.Measure.measure_neg
 
 @[to_additive]
-theorem measure_preimage_inv (μ : Measure G) [InvInvariant μ] (A : Set G) :
+theorem measure_preimage_inv (μ : Measure G) [IsInvInvariant μ] (A : Set G) :
     μ (Inv.inv ⁻¹' A) = μ A :=
   μ.measure_inv A
 #align measure_theory.measure.measure_preimage_inv MeasureTheory.Measure.measure_preimage_inv
@@ -435,27 +435,27 @@ section DivisionMonoid
 variable [DivisionMonoid G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
-instance inv.instMulRightInvariant [MulLeftInvariant μ] : MulRightInvariant μ.inv := by
+instance inv.instIsMulRightInvariant [IsMulLeftInvariant μ] : IsMulRightInvariant μ.inv := by
   constructor
   intro g
   conv_rhs => rw [← map_mul_left_eq_self μ g⁻¹]
   simp_rw [Measure.inv, map_map (measurable_mul_const g) measurable_inv,
     map_map measurable_inv (measurable_const_mul g⁻¹), Function.comp, mul_inv_rev, inv_inv]
-#align measure_theory.measure.inv.is_mul_right_invariant MeasureTheory.Measure.inv.instMulRightInvariant
-#align measure_theory.measure.neg.is_mul_right_invariant MeasureTheory.Measure.neg.instAddRightInvariant
+#align measure_theory.measure.inv.is_mul_right_invariant MeasureTheory.Measure.inv.instIsMulRightInvariant
+#align measure_theory.measure.neg.is_mul_right_invariant MeasureTheory.Measure.neg.instIsAddRightInvariant
 
 @[to_additive]
-instance inv.instMulLeftInvariant [MulRightInvariant μ] : MulLeftInvariant μ.inv := by
+instance inv.instIsMulLeftInvariant [IsMulRightInvariant μ] : IsMulLeftInvariant μ.inv := by
   constructor
   intro g
   conv_rhs => rw [← map_mul_right_eq_self μ g⁻¹]
   simp_rw [Measure.inv, map_map (measurable_const_mul g) measurable_inv,
     map_map measurable_inv (measurable_mul_const g⁻¹), Function.comp, mul_inv_rev, inv_inv]
-#align measure_theory.measure.inv.is_mul_left_invariant MeasureTheory.Measure.inv.instMulLeftInvariant
-#align measure_theory.measure.neg.is_mul_left_invariant MeasureTheory.Measure.neg.instAddLeftInvariant
+#align measure_theory.measure.inv.is_mul_left_invariant MeasureTheory.Measure.inv.instIsMulLeftInvariant
+#align measure_theory.measure.neg.is_mul_left_invariant MeasureTheory.Measure.neg.instIsAddLeftInvariant
 
 @[to_additive]
-theorem measurePreserving_div_left (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ]
+theorem measurePreserving_div_left (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => g / t) μ μ := by
   simp_rw [div_eq_mul_inv]
   exact (measurePreserving_mul_left μ g).comp (measurePreserving_inv μ)
@@ -463,21 +463,21 @@ theorem measurePreserving_div_left (μ : Measure G) [InvInvariant μ] [MulLeftIn
 #align measure_theory.measure.measure_preserving_sub_left MeasureTheory.Measure.measurePreserving_sub_left
 
 @[to_additive]
-theorem map_div_left_eq_self (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ] (g : G) :
+theorem map_div_left_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ] (g : G) :
     map (fun t => g / t) μ = μ :=
   (measurePreserving_div_left μ g).map_eq
 #align measure_theory.measure.map_div_left_eq_self MeasureTheory.Measure.map_div_left_eq_self
 #align measure_theory.measure.map_sub_left_eq_self MeasureTheory.Measure.map_sub_left_eq_self
 
 @[to_additive]
-theorem measurePreserving_mul_right_inv (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ]
+theorem measurePreserving_mul_right_inv (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : MeasurePreserving (fun t => (g * t)⁻¹) μ μ :=
   (measurePreserving_inv μ).comp <| measurePreserving_mul_left μ g
 #align measure_theory.measure.measure_preserving_mul_right_inv MeasureTheory.Measure.measurePreserving_mul_right_inv
 #align measure_theory.measure.measure_preserving_add_right_neg MeasureTheory.Measure.measurePreserving_add_right_neg
 
 @[to_additive]
-theorem map_mul_right_inv_eq_self (μ : Measure G) [InvInvariant μ] [MulLeftInvariant μ]
+theorem map_mul_right_inv_eq_self (μ : Measure G) [IsInvInvariant μ] [IsMulLeftInvariant μ]
     (g : G) : map (fun t => (g * t)⁻¹) μ = μ :=
   (measurePreserving_mul_right_inv μ g).map_eq
 #align measure_theory.measure.map_mul_right_inv_eq_self MeasureTheory.Measure.map_mul_right_inv_eq_self
@@ -490,7 +490,7 @@ section Group
 variable [Group G] [MeasurableMul G] [MeasurableInv G] {μ : Measure G}
 
 @[to_additive]
-theorem map_div_left_ae (μ : Measure G) [MulLeftInvariant μ] [InvInvariant μ] (x : G) :
+theorem map_div_left_ae (μ : Measure G) [IsMulLeftInvariant μ] [IsInvInvariant μ] (x : G) :
     Filter.map (fun t => x / t) μ.ae = μ.ae :=
   ((MeasurableEquiv.divLeft x).map_ae μ).trans <| congr_arg ae <| map_div_left_eq_self μ x
 #align measure_theory.measure.map_div_left_ae MeasureTheory.Measure.map_div_left_ae
@@ -520,15 +520,15 @@ theorem regular_inv_iff [T2Space G] : μ.inv.Regular ↔ μ.Regular := by
 #align measure_theory.regular_inv_iff MeasureTheory.regular_inv_iff
 #align measure_theory.regular_neg_iff MeasureTheory.regular_neg_iff
 
-variable [MulLeftInvariant μ]
+variable [IsMulLeftInvariant μ]
 
 /-- If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
 any open set. -/
 @[to_additive
 "If a left-invariant measure gives positive mass to a compact set, then it gives positive mass to
 any open set."]
-theorem openPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompact K)
-    (h : μ K ≠ 0) : OpenPosMeasure μ := by
+theorem isOpenPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompact K)
+    (h : μ K ≠ 0) : IsOpenPosMeasure μ := by
   refine' ⟨fun U hU hne => _⟩
   contrapose! h
   rw [← nonpos_iff_eq_zero]
@@ -539,47 +539,47 @@ theorem openPosMeasure_of_mulLeftInvariant_of_compact (K : Set G) (hK : IsCompac
     μ K ≤ μ (⋃ (g : G) (_H : g ∈ t), (fun h : G => g * h) ⁻¹' U) := measure_mono hKt
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
     _ = 0 := by simp [measure_preimage_mul, h]
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_compact
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.openPosMeasure_of_addLeftInvariant_of_compact
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_compact
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_compact MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_compact
 
 /-- A nonzero left-invariant regular measure gives positive mass to any open set. -/
 @[to_additive "A nonzero left-invariant regular measure gives positive mass to any open set."]
-theorem openPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
-    OpenPosMeasure μ :=
+theorem isOpenPosMeasure_of_mulLeftInvariant_of_regular [Regular μ] (h₀ : μ ≠ 0) :
+    IsOpenPosMeasure μ :=
   let ⟨K, hK, h2K⟩ := Regular.exists_compact_not_null.mpr h₀
-  openPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
-#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.openPosMeasure_of_mulLeftInvariant_of_regular
-#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.openPosMeasure_of_addLeftInvariant_of_regular
+  isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h2K
+#align measure_theory.is_open_pos_measure_of_mul_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_mulLeftInvariant_of_regular
+#align measure_theory.is_open_pos_measure_of_add_left_invariant_of_regular MeasureTheory.isOpenPosMeasure_of_addLeftInvariant_of_regular
 
 @[to_additive]
-theorem null_iff_of_mulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
+theorem null_iff_of_isMulLeftInvariant [Regular μ] {s : Set G} (hs : IsOpen s) :
     μ s = 0 ↔ s = ∅ ∨ μ = 0 := by
   by_cases h3μ : μ = 0; · simp [h3μ]
-  · haveI := openPosMeasure_of_mulLeftInvariant_of_regular h3μ
+  · haveI := isOpenPosMeasure_of_mulLeftInvariant_of_regular h3μ
     simp only [h3μ, or_false_iff, hs.measure_eq_zero_iff μ]
-#align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_mulLeftInvariant
-#align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_addLeftInvariant
+#align measure_theory.null_iff_of_is_mul_left_invariant MeasureTheory.null_iff_of_isMulLeftInvariant
+#align measure_theory.null_iff_of_is_add_left_invariant MeasureTheory.null_iff_of_isAddLeftInvariant
 
 @[to_additive]
-theorem measure_ne_zero_iff_nonempty_of_mulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
+theorem measure_ne_zero_iff_nonempty_of_isMulLeftInvariant [Regular μ] (hμ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : μ s ≠ 0 ↔ s.Nonempty := by
-  simpa [null_iff_of_mulLeftInvariant (μ := μ) hs, hμ] using nonempty_iff_ne_empty.symm
-#align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_mulLeftInvariant
-#align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_addLeftInvariant
+  simpa [null_iff_of_isMulLeftInvariant (μ := μ) hs, hμ] using nonempty_iff_ne_empty.symm
+#align measure_theory.measure_ne_zero_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isMulLeftInvariant
+#align measure_theory.measure_ne_zero_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_ne_zero_iff_nonempty_of_isAddLeftInvariant
 
 @[to_additive]
-theorem measure_pos_iff_nonempty_of_mulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
+theorem measure_pos_iff_nonempty_of_isMulLeftInvariant [Regular μ] (h3μ : μ ≠ 0) {s : Set G}
     (hs : IsOpen s) : 0 < μ s ↔ s.Nonempty :=
-  pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_mulLeftInvariant h3μ hs
-#align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_mulLeftInvariant
-#align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_addLeftInvariant
+  pos_iff_ne_zero.trans <| measure_ne_zero_iff_nonempty_of_isMulLeftInvariant h3μ hs
+#align measure_theory.measure_pos_iff_nonempty_of_is_mul_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isMulLeftInvariant
+#align measure_theory.measure_pos_iff_nonempty_of_is_add_left_invariant MeasureTheory.measure_pos_iff_nonempty_of_isAddLeftInvariant
 
 /-- If a left-invariant measure gives finite mass to a nonempty open set, then it gives finite mass
 to any compact set. -/
 @[to_additive
 "If a left-invariant measure gives finite mass to a nonempty open set, then it gives finite mass to
 any compact set."]
-theorem measure_lt_top_of_isCompact_of_mulLeftInvariant (U : Set G) (hU : IsOpen U)
+theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant (U : Set G) (hU : IsOpen U)
     (h'U : U.Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ := by
   rw [← hU.interior_eq] at h'U
   obtain ⟨t, hKt⟩ : ∃ t : Finset G, K ⊆ ⋃ (g : G) (_H : g ∈ t), (fun h : G => g * h) ⁻¹' U :=
@@ -589,28 +589,28 @@ theorem measure_lt_top_of_isCompact_of_mulLeftInvariant (U : Set G) (hU : IsOpen
     _ ≤ ∑ g in t, μ ((fun h : G => g * h) ⁻¹' U) := (measure_biUnion_finset_le _ _)
     _ = Finset.card t * μ U := by simp only [measure_preimage_mul, Finset.sum_const, nsmul_eq_mul]
     _ < ∞ := ENNReal.mul_lt_top (ENNReal.nat_ne_top _) h
-#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_addLeftInvariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant
 
 /-- If a left-invariant measure gives finite mass to a set with nonempty interior, then
 it gives finite mass to any compact set. -/
 @[to_additive
 "If a left-invariant measure gives finite mass to a set with nonempty interior, then it gives finite
 mass to any compact set."]
-theorem measure_lt_top_of_isCompact_of_mulLeftInvariant' {U : Set G}
+theorem measure_lt_top_of_isCompact_of_isMulLeftInvariant' {U : Set G}
     (hU : (interior U).Nonempty) (h : μ U ≠ ∞) {K : Set G} (hK : IsCompact K) : μ K < ∞ :=
-  measure_lt_top_of_isCompact_of_mulLeftInvariant (interior U) isOpen_interior hU
+  measure_lt_top_of_isCompact_of_isMulLeftInvariant (interior U) isOpen_interior hU
     ((measure_mono interior_subset).trans_lt (lt_top_iff_ne_top.2 h)).ne hK
-#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_mulLeftInvariant'
-#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_addLeftInvariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_mul_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_isMulLeftInvariant'
+#align measure_theory.measure_lt_top_of_is_compact_of_is_add_left_invariant' MeasureTheory.measure_lt_top_of_isCompact_of_isAddLeftInvariant'
 
 /-- In a noncompact locally compact group, a left-invariant measure which is positive
 on open sets has infinite mass. -/
 @[to_additive (attr := simp)
 "In a noncompact locally compact additive group, a left-invariant measure which is positive on open
 sets has infinite mass."]
-theorem measure_univ_of_mulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G]
-    (μ : Measure G) [OpenPosMeasure μ] [μ.MulLeftInvariant] : μ univ = ∞ := by
+theorem measure_univ_of_isMulLeftInvariant [LocallyCompactSpace G] [NoncompactSpace G]
+    (μ : Measure G) [IsOpenPosMeasure μ] [μ.IsMulLeftInvariant] : μ univ = ∞ := by
   /- Consider a closed compact set `K` with nonempty interior. For any compact set `L`, one may
     find `g = g (L)` such that `L` is disjoint from `g • K`. Iterating this, one finds
     infinitely many translates of `K` which are disjoint from each other. As they all have the
@@ -653,8 +653,8 @@ theorem measure_univ_of_mulLeftInvariant [LocallyCompactSpace G] [NoncompactSpac
   simp only [ENNReal.top_mul', K_pos.ne', if_false] at N
   apply top_le_iff.1
   exact le_of_tendsto' N fun n => measure_mono (subset_univ _)
-#align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_mulLeftInvariant
-#align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_addLeftInvariant
+#align measure_theory.measure_univ_of_is_mul_left_invariant MeasureTheory.measure_univ_of_isMulLeftInvariant
+#align measure_theory.measure_univ_of_is_add_left_invariant MeasureTheory.measure_univ_of_isAddLeftInvariant
 
 end TopologicalGroup
 
@@ -664,16 +664,16 @@ variable [CommSemigroup G]
 
 /-- In an abelian group every left invariant measure is also right-invariant.
   We don't declare the converse as an instance, since that would loop type-class inference, and
-  we use `MulLeftInvariant` as the default hypothesis in abelian groups. -/
-@[to_additive AddLeftInvariant.addRightInvariant
+  we use `IsMulLeftInvariant` as the default hypothesis in abelian groups. -/
+@[to_additive IsAddLeftInvariant.isAddRightInvariant
 "In an abelian additive group every left invariant measure is also right-invariant. We don't declare
 the converse as an instance, since that would loop type-class inference, and we use
-`AddLeftInvariant` as the default hypothesis in abelian groups."]
-instance (priority := 100) MulLeftInvariant.mulRightInvariant {μ : Measure G}
-    [MulLeftInvariant μ] : MulRightInvariant μ :=
+`IsAddLeftInvariant` as the default hypothesis in abelian groups."]
+instance (priority := 100) IsMulLeftInvariant.isMulRightInvariant {μ : Measure G}
+    [IsMulLeftInvariant μ] : IsMulRightInvariant μ :=
   ⟨fun g => by simp_rw [mul_comm, map_mul_left_eq_self]⟩
-#align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.MulLeftInvariant.mulRightInvariant
-#align is_add_left_invariant.is_add_right_invariant MeasureTheory.AddLeftInvariant.addRightInvariant
+#align measure_theory.is_mul_left_invariant.is_mul_right_invariant MeasureTheory.IsMulLeftInvariant.isMulRightInvariant
+#align is_add_left_invariant.is_add_right_invariant MeasureTheory.IsAddLeftInvariant.isAddRightInvariant
 
 end CommSemigroup
 
@@ -683,16 +683,18 @@ namespace Measure
 
 /-- A measure on an additive group is an additive Haar measure if it is left-invariant, and gives
 finite mass to compact sets and positive mass to open sets. -/
-class AddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, AddLeftInvariant μ, OpenPosMeasure μ : Prop
-#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.AddHaarMeasure
+class IsAddHaarMeasure {G : Type _} [AddGroup G] [TopologicalSpace G] [MeasurableSpace G]
+  (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsAddLeftInvariant μ, IsOpenPosMeasure μ :
+  Prop
+#align measure_theory.measure.is_add_haar_measure MeasureTheory.Measure.IsAddHaarMeasure
 
 /-- A measure on a group is a Haar measure if it is left-invariant, and gives finite mass to compact
 sets and positive mass to open sets. -/
 @[to_additive existing]
-class HaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
-  (μ : Measure G) extends FiniteMeasureOnCompacts μ, MulLeftInvariant μ, OpenPosMeasure μ : Prop
-#align measure_theory.measure.is_haar_measure MeasureTheory.Measure.HaarMeasure
+class IsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] [MeasurableSpace G]
+  (μ : Measure G) extends IsFiniteMeasureOnCompacts μ, IsMulLeftInvariant μ, IsOpenPosMeasure μ :
+  Prop
+#align measure_theory.measure.is_haar_measure MeasureTheory.Measure.IsHaarMeasure
 
 /-- Record that a Haar measure on a locally compact space is locally finite. This is needed as the
 fact that a measure which is finite on compacts is locally finite is not registered as an instance,
@@ -705,16 +707,16 @@ as the fact that a measure which is finite on compacts is locally finite is not
 instance, to avoid an instance loop.
 
 See Note [lower instance priority]"]
-instance (priority := 100) locallyFiniteMeasure_of_haarMeasure {G : Type _} [Group G]
+instance (priority := 100) isLocallyFiniteMeasure_of_isHaarMeasure {G : Type _} [Group G]
     [MeasurableSpace G] [TopologicalSpace G] [LocallyCompactSpace G] (μ : Measure G)
-    [HaarMeasure μ] : LocallyFiniteMeasure μ :=
-  locallyFiniteMeasure_of_finiteMeasureOnCompacts
-#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_haarMeasure
-#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.locallyFiniteMeasure_of_addHaarMeasure
+    [IsHaarMeasure μ] : IsLocallyFiniteMeasure μ :=
+  isLocallyFiniteMeasure_of_isFiniteMeasureOnCompacts
+#align measure_theory.measure.is_locally_finite_measure_of_is_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isHaarMeasure
+#align measure_theory.measure.is_locally_finite_measure_of_is_add_haar_measure MeasureTheory.Measure.isLocallyFiniteMeasure_of_isAddHaarMeasure
 
 section
 
-variable [Group G] [TopologicalSpace G] (μ : Measure G) [HaarMeasure μ]
+variable [Group G] [TopologicalSpace G] (μ : Measure G) [IsHaarMeasure μ]
 
 @[to_additive (attr := simp)]
 theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ {(1 : G)} := by
@@ -723,55 +725,55 @@ theorem haar_singleton [TopologicalGroup G] [BorelSpace G] (g : G) : μ {g} = μ
 #align measure_theory.measure.haar_singleton MeasureTheory.Measure.haar_singleton
 #align measure_theory.measure.add_haar_singleton MeasureTheory.Measure.addHaar_singleton
 
-@[to_additive AddHaarMeasure.smul]
-theorem HaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : HaarMeasure (c • μ) :=
+@[to_additive IsAddHaarMeasure.smul]
+theorem IsHaarMeasure.smul {c : ℝ≥0∞} (cpos : c ≠ 0) (ctop : c ≠ ∞) : IsHaarMeasure (c • μ) :=
   { lt_top_of_isCompact := fun _K hK => ENNReal.mul_lt_top ctop hK.measure_lt_top.ne
-    toOpenPosMeasure := openPosMeasure_smul μ cpos }
-#align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.HaarMeasure.smul
-#align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.AddHaarMeasure.smul
+    toIsOpenPosMeasure := isOpenPosMeasure_smul μ cpos }
+#align measure_theory.measure.is_haar_measure.smul MeasureTheory.Measure.IsHaarMeasure.smul
+#align measure_theory.measure.is_add_haar_measure.smul MeasureTheory.Measure.IsAddHaarMeasure.smul
 
 /-- If a left-invariant measure gives positive mass to some compact set with nonempty interior, then
 it is a Haar measure. -/
 @[to_additive
 "If a left-invariant measure gives positive mass to some compact set with nonempty interior, then
 it is an additive Haar measure."]
-theorem haarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
-    (μ : Measure G) [MulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
-    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : HaarMeasure μ :=
+theorem isHaarMeasure_of_isCompact_nonempty_interior [TopologicalGroup G] [BorelSpace G]
+    (μ : Measure G) [IsMulLeftInvariant μ] (K : Set G) (hK : IsCompact K)
+    (h'K : (interior K).Nonempty) (h : μ K ≠ 0) (h' : μ K ≠ ∞) : IsHaarMeasure μ :=
   { lt_top_of_isCompact := fun _L hL =>
-      measure_lt_top_of_isCompact_of_mulLeftInvariant' h'K h' hL
-    toOpenPosMeasure := openPosMeasure_of_mulLeftInvariant_of_compact K hK h }
-#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.haarMeasure_of_isCompact_nonempty_interior
-#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.addHaarMeasure_of_isCompact_nonempty_interior
+      measure_lt_top_of_isCompact_of_isMulLeftInvariant' h'K h' hL
+    toIsOpenPosMeasure := isOpenPosMeasure_of_mulLeftInvariant_of_compact K hK h }
+#align measure_theory.measure.is_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isHaarMeasure_of_isCompact_nonempty_interior
+#align measure_theory.measure.is_add_haar_measure_of_is_compact_nonempty_interior MeasureTheory.Measure.isAddHaarMeasure_of_isCompact_nonempty_interior
 
 /-- The image of a Haar measure under a continuous surjective proper group homomorphism is again
-a Haar measure. See also `MulEquiv.haarMeasure_map`. -/
+a Haar measure. See also `MulEquiv.isHaarMeasure_map`. -/
 @[to_additive
 "The image of an additive Haar measure under a continuous surjective proper additive group
-homomorphism is again an additive Haar measure. See also `AddEquiv.addHaarMeasure_map`."]
-theorem haarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
+homomorphism is again an additive Haar measure. See also `AddEquiv.isAddHaarMeasure_map`."]
+theorem isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _} [Group H]
     [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H] [TopologicalGroup H]
     (f : G →* H) (hf : Continuous f) (h_surj : Surjective f)
-    (h_prop : Tendsto f (cocompact G) (cocompact H)) : HaarMeasure (Measure.map f μ) :=
-  { toMulLeftInvariant := mulLeftInvariant_map f.toMulHom hf.measurable h_surj
+    (h_prop : Tendsto f (cocompact G) (cocompact H)) : IsHaarMeasure (Measure.map f μ) :=
+  { toIsMulLeftInvariant := isMulLeftInvariant_map f.toMulHom hf.measurable h_surj
     lt_top_of_isCompact := by
       intro K hK
       rw [map_apply hf.measurable hK.measurableSet]
       exact IsCompact.measure_lt_top ((⟨⟨f, hf⟩, h_prop⟩ : CocompactMap G H).isCompact_preimage hK)
-    toOpenPosMeasure := hf.openPosMeasure_map h_surj }
-#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.haarMeasure_map
-#align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.addHaarMeasure_map
+    toIsOpenPosMeasure := hf.isOpenPosMeasure_map h_surj }
+#align measure_theory.measure.is_haar_measure_map MeasureTheory.Measure.isHaarMeasure_map
+#align measure_theory.measure.is_add_haar_measure_map MeasureTheory.Measure.isAddHaarMeasure_map
 
-/-- A convenience wrapper for `MeasureTheory.Measure.haarMeasure_map`. -/
-@[to_additive "A convenience wrapper for `MeasureTheory.Measure.addHaarMeasure_map`."]
-nonrec theorem _root_.MulEquiv.haarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _}
+/-- A convenience wrapper for `MeasureTheory.Measure.isHaarMeasure_map`. -/
+@[to_additive "A convenience wrapper for `MeasureTheory.Measure.isAddHaarMeasure_map`."]
+nonrec theorem _root_.MulEquiv.isHaarMeasure_map [BorelSpace G] [TopologicalGroup G] {H : Type _}
     [Group H] [TopologicalSpace H] [MeasurableSpace H] [BorelSpace H] [T2Space H]
     [TopologicalGroup H] (e : G ≃* H) (he : Continuous e) (hesymm : Continuous e.symm) :
-    HaarMeasure (Measure.map e μ) :=
-  haarMeasure_map μ (e : G →* H) he e.surjective
+    IsHaarMeasure (Measure.map e μ) :=
+  isHaarMeasure_map μ (e : G →* H) he e.surjective
     ({ e with } : G ≃ₜ H).toCocompactMap.cocompact_tendsto'
-#align mul_equiv.is_haar_measure_map MulEquiv.haarMeasure_map
-#align add_equiv.is_add_haar_measure_map AddEquiv.addHaarMeasure_map
+#align mul_equiv.is_haar_measure_map MulEquiv.isHaarMeasure_map
+#align add_equiv.is_add_haar_measure_map AddEquiv.isAddHaarMeasure_map
 
 /-- A Haar measure on a σ-compact space is σ-finite.
 
@@ -780,21 +782,21 @@ See Note [lower instance priority] -/
 "A Haar measure on a σ-compact space is σ-finite.
 
 See Note [lower instance priority]"]
-instance (priority := 100) HaarMeasure.sigmaFinite [SigmaCompactSpace G] : SigmaFinite μ :=
+instance (priority := 100) IsHaarMeasure.sigmaFinite [SigmaCompactSpace G] : SigmaFinite μ :=
   ⟨⟨{   set := compactCovering G
         set_mem := fun _ => mem_univ _
         finite := fun n => IsCompact.measure_lt_top <| isCompact_compactCovering G n
         spanning := iUnion_compactCovering G }⟩⟩
-#align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.HaarMeasure.sigmaFinite
-#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.AddHaarMeasure.sigmaFinite
+#align measure_theory.measure.is_haar_measure.sigma_finite MeasureTheory.Measure.IsHaarMeasure.sigmaFinite
+#align measure_theory.measure.is_add_haar_measure.sigma_finite MeasureTheory.Measure.IsAddHaarMeasure.sigmaFinite
 
 @[to_additive]
-instance prod.instHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] {_ : MeasurableSpace G}
+instance prod.instIsHaarMeasure {G : Type _} [Group G] [TopologicalSpace G] {_ : MeasurableSpace G}
     {H : Type _} [Group H] [TopologicalSpace H] {_ : MeasurableSpace H} (μ : Measure G)
-    (ν : Measure H) [HaarMeasure μ] [HaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν]
-    [MeasurableMul G] [MeasurableMul H] : HaarMeasure (μ.prod ν) where
-#align measure_theory.measure.prod.is_haar_measure MeasureTheory.Measure.prod.instHaarMeasure
-#align measure_theory.measure.prod.is_add_haar_measure MeasureTheory.Measure.prod.instAddHaarMeasure
+    (ν : Measure H) [IsHaarMeasure μ] [IsHaarMeasure ν] [SigmaFinite μ] [SigmaFinite ν]
+    [MeasurableMul G] [MeasurableMul H] : IsHaarMeasure (μ.prod ν) where
+#align measure_theory.measure.prod.is_haar_measure MeasureTheory.Measure.prod.instIsHaarMeasure
+#align measure_theory.measure.prod.is_add_haar_measure MeasureTheory.Measure.prod.instIsAddHaarMeasure
 
 /-- If the neutral element of a group is not isolated, then a Haar measure on this group has
 no atoms.
@@ -807,8 +809,8 @@ group has no atoms.
 
 This applies in particular to show that an additive Haar measure on a nontrivial finite-dimensional
 real vector space has no atom."]
-instance (priority := 100) HaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
-    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).NeBot] (μ : Measure G) [μ.HaarMeasure] :
+instance (priority := 100) IsHaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace G] [T1Space G]
+    [LocallyCompactSpace G] [(𝓝[≠] (1 : G)).NeBot] (μ : Measure G) [μ.IsHaarMeasure] :
     NoAtoms μ := by
   suffices H : μ {(1 : G)} ≤ 0; · constructor; simp [le_bot_iff.1 H]
   obtain ⟨K, K_compact, K_int⟩ : ∃ K : Set G, IsCompact K ∧ (1 : G) ∈ interior K := by
@@ -836,8 +838,8 @@ instance (priority := 100) HaarMeasure.noAtoms [TopologicalGroup G] [BorelSpace
     ENNReal.Tendsto.const_div ENNReal.tendsto_nat_nhds_top (Or.inr μKlt)
   simp only [ENNReal.div_top] at J
   exact ge_of_tendsto' J I
-#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.HaarMeasure.noAtoms
-#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.AddHaarMeasure.noAtoms
+#align measure_theory.measure.is_haar_measure.has_no_atoms MeasureTheory.Measure.IsHaarMeasure.noAtoms
+#align measure_theory.measure.is_add_haar_measure.has_no_atoms MeasureTheory.Measure.IsAddHaarMeasure.noAtoms
 
 end
 
feat: port MeasureTheory.Measure.Haar.Basic (#4517)

This PR also rename locallyCompactSpace_of_Group to locallyCompactSpace_of_group, and add a reference to the issue in MeasureTheory.Group.Measure.

Diff
@@ -343,7 +343,7 @@ namespace Measure
 
 -- Porting note: Even in `noncomputable section`, a definition with `to_additive` require
 --               `noncomputable` to generate an additive definition.
---               TODO Fix this.
+--               Please refer to leanprover/lean4#2077.
 
 /-- The measure `A ↦ μ (A⁻¹)`, where `A⁻¹` is the pointwise inverse of `A`. -/
 @[to_additive "The measure `A ↦ μ (- A)`, where `- A` is the pointwise negation of `A`."]
feat: port MeasureTheory.Group.Measure (#4496)

Dependencies 10 + 644

645 files ported (98.5%)
290889 lines ported (98.2%)
Show graph

The unported dependencies are

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