topology.metric_space.isometric_smulMathlib.Topology.MetricSpace.IsometricSMul

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)

(last sync)

feat(analysis/normed_space/basic): scaling a set scales its diameter, translating it leaves it unchanged (#18990)
Diff
@@ -67,6 +67,10 @@ variables [pseudo_emetric_space X] [group G] [mul_action G X] [has_isometric_smu
   edist (c • x) (c • y) = edist x y :=
 isometry_smul X c x y
 
+@[simp, to_additive] lemma ediam_smul [has_smul M X] [has_isometric_smul M X] (c : M) (s : set X) :
+  emetric.diam (c • s) = emetric.diam s :=
+(isometry_smul _ _).ediam_image s
+
 @[to_additive] lemma isometry_mul_left [has_mul M] [pseudo_emetric_space M]
   [has_isometric_smul M M] (a : M) : isometry ((*) a) :=
 isometry_smul M a
@@ -223,6 +227,11 @@ lemma nndist_smul [pseudo_metric_space X] [has_smul M X] [has_isometric_smul M X
   (c : M) (x y : X) : nndist (c • x) (c • y) = nndist x y :=
 (isometry_smul X c).nndist_eq x y
 
+@[simp, to_additive]
+lemma diam_smul [pseudo_metric_space X] [has_smul M X] [has_isometric_smul M X]
+  (c : M) (s : set X) : metric.diam (c • s) = metric.diam s :=
+(isometry_smul _ _).diam_image s
+
 @[simp, to_additive]
 lemma dist_mul_left [pseudo_metric_space M] [has_mul M] [has_isometric_smul M M]
   (a b c : M) : dist (a * b) (a * c) = dist b c :=

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -40,7 +40,7 @@ universe u v w
 variable (M : Type u) (G : Type v) (X : Type w)
 
 #print IsometricVAdd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
 class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
@@ -48,7 +48,7 @@ class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
 -/
 
 #print IsometricSMul /-
-/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:400:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
 class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
Diff
@@ -40,7 +40,7 @@ universe u v w
 variable (M : Type u) (G : Type v) (X : Type w)
 
 #print IsometricVAdd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
 class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
@@ -48,7 +48,7 @@ class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
 -/
 
 #print IsometricSMul /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:404:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
 class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathbin.Topology.MetricSpace.Isometry
+import Topology.MetricSpace.Isometry
 
 #align_import topology.metric_space.isometric_smul from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
 
@@ -40,7 +40,7 @@ universe u v w
 variable (M : Type u) (G : Type v) (X : Type w)
 
 #print IsometricVAdd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
 class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
@@ -48,7 +48,7 @@ class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
 -/
 
 #print IsometricSMul /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
 class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module topology.metric_space.isometric_smul
-! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.MetricSpace.Isometry
 
+#align_import topology.metric_space.isometric_smul from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
+
 /-!
 # Group actions by isometries
 
Diff
@@ -43,7 +43,7 @@ universe u v w
 variable (M : Type u) (G : Type v) (X : Type w)
 
 #print IsometricVAdd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
 class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
@@ -51,7 +51,7 @@ class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
 -/
 
 #print IsometricSMul /-
-/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
 class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
@@ -142,12 +142,15 @@ theorem edist_mul_right [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ
 #align edist_add_right edist_add_right
 -/
 
+#print edist_div_right /-
 @[simp, to_additive]
 theorem edist_div_right [DivInvMonoid M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     edist (a / c) (b / c) = edist a b := by simp only [div_eq_mul_inv, edist_mul_right]
 #align edist_div_right edist_div_right
 #align edist_sub_right edist_sub_right
+-/
 
+#print edist_inv_inv /-
 @[simp, to_additive]
 theorem edist_inv_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] (a b : G) :
     edist a⁻¹ b⁻¹ = edist a b := by
@@ -155,26 +158,33 @@ theorem edist_inv_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul
     edist_comm]
 #align edist_inv_inv edist_inv_inv
 #align edist_neg_neg edist_neg_neg
+-/
 
+#print isometry_inv /-
 @[to_additive]
 theorem isometry_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] :
     Isometry (Inv.inv : G → G) :=
   edist_inv_inv
 #align isometry_inv isometry_inv
 #align isometry_neg isometry_neg
+-/
 
+#print edist_inv /-
 @[to_additive]
 theorem edist_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] (x y : G) :
     edist x⁻¹ y = edist x y⁻¹ := by rw [← edist_inv_inv, inv_inv]
 #align edist_inv edist_inv
 #align edist_neg edist_neg
+-/
 
+#print edist_div_left /-
 @[simp, to_additive]
 theorem edist_div_left [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : edist (a / b) (a / c) = edist b c := by
   rw [div_eq_mul_inv, div_eq_mul_inv, edist_mul_left, edist_inv_inv]
 #align edist_div_left edist_div_left
 #align edist_sub_left edist_sub_left
+-/
 
 namespace IsometryEquiv
 
@@ -191,14 +201,17 @@ def constSMul (c : G) : X ≃ᵢ X where
 #align isometry_equiv.const_vadd IsometryEquiv.constVAdd
 -/
 
+#print IsometryEquiv.constSMul_symm /-
 @[simp, to_additive]
 theorem constSMul_symm (c : G) : (constSMul c : X ≃ᵢ X).symm = constSMul c⁻¹ :=
   ext fun _ => rfl
 #align isometry_equiv.const_smul_symm IsometryEquiv.constSMul_symm
 #align isometry_equiv.const_vadd_symm IsometryEquiv.constVAdd_symm
+-/
 
 variable [PseudoEMetricSpace G]
 
+#print IsometryEquiv.mulLeft /-
 /-- Multiplication `y ↦ x * y` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ x + y` as an `isometry_equiv`.", simps apply toEquiv]
 def mulLeft [IsometricSMul G G] (c : G) : G ≃ᵢ G
@@ -207,13 +220,17 @@ def mulLeft [IsometricSMul G G] (c : G) : G ≃ᵢ G
   isometry_toFun := edist_mul_left c
 #align isometry_equiv.mul_left IsometryEquiv.mulLeft
 #align isometry_equiv.add_left IsometryEquiv.addLeft
+-/
 
+#print IsometryEquiv.mulLeft_symm /-
 @[simp, to_additive]
 theorem mulLeft_symm [IsometricSMul G G] (x : G) : (mulLeft x).symm = IsometryEquiv.mulLeft x⁻¹ :=
   constSMul_symm x
 #align isometry_equiv.mul_left_symm IsometryEquiv.mulLeft_symm
 #align isometry_equiv.add_left_symm IsometryEquiv.addLeft_symm
+-/
 
+#print IsometryEquiv.mulRight /-
 --ext $ λ y, rfl
 /-- Multiplication `y ↦ y * x` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ y + x` as an `isometry_equiv`.", simps apply toEquiv]
@@ -223,13 +240,17 @@ def mulRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
   isometry_toFun a b := edist_mul_right a b c
 #align isometry_equiv.mul_right IsometryEquiv.mulRight
 #align isometry_equiv.add_right IsometryEquiv.addRight
+-/
 
+#print IsometryEquiv.mulRight_symm /-
 @[simp, to_additive]
 theorem mulRight_symm [IsometricSMul Gᵐᵒᵖ G] (x : G) : (mulRight x).symm = mulRight x⁻¹ :=
   ext fun y => rfl
 #align isometry_equiv.mul_right_symm IsometryEquiv.mulRight_symm
 #align isometry_equiv.add_right_symm IsometryEquiv.addRight_symm
+-/
 
+#print IsometryEquiv.divRight /-
 /-- Division `y ↦ y / x` as an `isometry_equiv`. -/
 @[to_additive "Subtraction `y ↦ y - x` as an `isometry_equiv`.", simps apply toEquiv]
 def divRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
@@ -238,15 +259,19 @@ def divRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
   isometry_toFun a b := edist_div_right a b c
 #align isometry_equiv.div_right IsometryEquiv.divRight
 #align isometry_equiv.sub_right IsometryEquiv.subRight
+-/
 
+#print IsometryEquiv.divRight_symm /-
 @[simp, to_additive]
 theorem divRight_symm [IsometricSMul Gᵐᵒᵖ G] (c : G) : (divRight c).symm = mulRight c :=
   ext fun y => rfl
 #align isometry_equiv.div_right_symm IsometryEquiv.divRight_symm
 #align isometry_equiv.sub_right_symm IsometryEquiv.subRight_symm
+-/
 
 variable [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
 
+#print IsometryEquiv.divLeft /-
 /-- Division `y ↦ x / y` as an `isometry_equiv`. -/
 @[to_additive "Subtraction `y ↦ x - y` as an `isometry_equiv`.", simps apply symm_apply toEquiv]
 def divLeft (c : G) : G ≃ᵢ G where
@@ -254,9 +279,11 @@ def divLeft (c : G) : G ≃ᵢ G where
   isometry_toFun := edist_div_left c
 #align isometry_equiv.div_left IsometryEquiv.divLeft
 #align isometry_equiv.sub_left IsometryEquiv.subLeft
+-/
 
 variable (G)
 
+#print IsometryEquiv.inv /-
 /-- Inversion `x ↦ x⁻¹` as an `isometry_equiv`. -/
 @[to_additive "Negation `x ↦ -x` as an `isometry_equiv`.", simps apply toEquiv]
 def inv : G ≃ᵢ G where
@@ -264,12 +291,15 @@ def inv : G ≃ᵢ G where
   isometry_toFun := edist_inv_inv
 #align isometry_equiv.inv IsometryEquiv.inv
 #align isometry_equiv.neg IsometryEquiv.neg
+-/
 
+#print IsometryEquiv.inv_symm /-
 @[simp, to_additive]
 theorem inv_symm : (inv G).symm = inv G :=
   rfl
 #align isometry_equiv.inv_symm IsometryEquiv.inv_symm
 #align isometry_equiv.neg_symm IsometryEquiv.neg_symm
+-/
 
 end IsometryEquiv
 
@@ -283,11 +313,13 @@ theorem smul_ball (c : G) (x : X) (r : ℝ≥0∞) : c • ball x r = ball (c 
 #align emetric.vadd_ball EMetric.vadd_ball
 -/
 
+#print EMetric.preimage_smul_ball /-
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r :=
   by rw [preimage_smul, smul_ball]
 #align emetric.preimage_smul_ball EMetric.preimage_smul_ball
 #align emetric.preimage_vadd_ball EMetric.preimage_vadd_ball
+-/
 
 #print EMetric.smul_closedBall /-
 @[simp, to_additive]
@@ -297,41 +329,51 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) : c • closedBall x r
 #align emetric.vadd_closed_ball EMetric.vadd_closedBall
 -/
 
+#print EMetric.preimage_smul_closedBall /-
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
     (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
 #align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBall
 #align emetric.preimage_vadd_closed_ball EMetric.preimage_vadd_closedBall
+-/
 
 variable [PseudoEMetricSpace G]
 
+#print EMetric.preimage_mul_left_ball /-
 @[simp, to_additive]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
     (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
   preimage_smul_ball a b r
 #align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ball
 #align emetric.preimage_add_left_ball EMetric.preimage_add_left_ball
+-/
 
+#print EMetric.preimage_mul_right_ball /-
 @[simp, to_additive]
 theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
     (fun x => x * a) ⁻¹' ball b r = ball (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_ball (MulOpposite.op a) b r
 #align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ball
 #align emetric.preimage_add_right_ball EMetric.preimage_add_right_ball
+-/
 
+#print EMetric.preimage_mul_left_closedBall /-
 @[simp, to_additive]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
     (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
   preimage_smul_closedBall a b r
 #align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBall
 #align emetric.preimage_add_left_closed_ball EMetric.preimage_add_left_closedBall
+-/
 
+#print EMetric.preimage_mul_right_closedBall /-
 @[simp, to_additive]
 theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
     (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_closed_ball (MulOpposite.op a) b r
 #align emetric.preimage_mul_right_closed_ball EMetric.preimage_mul_right_closedBall
 #align emetric.preimage_add_right_closed_ball EMetric.preimage_add_right_closedBall
+-/
 
 end Emetric
 
@@ -400,43 +442,55 @@ theorem nndist_mul_right [PseudoMetricSpace M] [Mul M] [IsometricSMul Mᵐᵒᵖ
 #align nndist_add_right nndist_add_right
 -/
 
+#print dist_div_right /-
 @[simp, to_additive]
 theorem dist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     dist (a / c) (b / c) = dist a b := by simp only [div_eq_mul_inv, dist_mul_right]
 #align dist_div_right dist_div_right
 #align dist_sub_right dist_sub_right
+-/
 
+#print nndist_div_right /-
 @[simp, to_additive]
 theorem nndist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     nndist (a / c) (b / c) = nndist a b := by simp only [div_eq_mul_inv, nndist_mul_right]
 #align nndist_div_right nndist_div_right
 #align nndist_sub_right nndist_sub_right
+-/
 
+#print dist_inv_inv /-
 @[simp, to_additive]
 theorem dist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b : G) : dist a⁻¹ b⁻¹ = dist a b :=
   (IsometryEquiv.inv G).dist_eq a b
 #align dist_inv_inv dist_inv_inv
 #align dist_neg_neg dist_neg_neg
+-/
 
+#print nndist_inv_inv /-
 @[simp, to_additive]
 theorem nndist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b : G) : nndist a⁻¹ b⁻¹ = nndist a b :=
   (IsometryEquiv.inv G).nndist_eq a b
 #align nndist_inv_inv nndist_inv_inv
 #align nndist_neg_neg nndist_neg_neg
+-/
 
+#print dist_div_left /-
 @[simp, to_additive]
 theorem dist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : dist (a / b) (a / c) = dist b c := by simp [div_eq_mul_inv]
 #align dist_div_left dist_div_left
 #align dist_sub_left dist_sub_left
+-/
 
+#print nndist_div_left /-
 @[simp, to_additive]
 theorem nndist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : nndist (a / b) (a / c) = nndist b c := by simp [div_eq_mul_inv]
 #align nndist_div_left nndist_div_left
 #align nndist_sub_left nndist_sub_left
+-/
 
 namespace Metric
 
@@ -450,11 +504,13 @@ theorem smul_ball (c : G) (x : X) (r : ℝ) : c • ball x r = ball (c • x) r
 #align metric.vadd_ball Metric.vadd_ball
 -/
 
+#print Metric.preimage_smul_ball /-
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
   rw [preimage_smul, smul_ball]
 #align metric.preimage_smul_ball Metric.preimage_smul_ball
 #align metric.preimage_vadd_ball Metric.preimage_vadd_ball
+-/
 
 #print Metric.smul_closedBall /-
 @[simp, to_additive]
@@ -464,11 +520,13 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ) : c • closedBall x r = close
 #align metric.vadd_closed_ball Metric.vadd_closedBall
 -/
 
+#print Metric.preimage_smul_closedBall /-
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ) :
     (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
 #align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBall
 #align metric.preimage_vadd_closed_ball Metric.preimage_vadd_closedBall
+-/
 
 #print Metric.smul_sphere /-
 @[simp, to_additive]
@@ -478,41 +536,51 @@ theorem smul_sphere (c : G) (x : X) (r : ℝ) : c • sphere x r = sphere (c •
 #align metric.vadd_sphere Metric.vadd_sphere
 -/
 
+#print Metric.preimage_smul_sphere /-
 @[simp, to_additive]
 theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
     (· • ·) c ⁻¹' sphere x r = sphere (c⁻¹ • x) r := by rw [preimage_smul, smul_sphere]
 #align metric.preimage_smul_sphere Metric.preimage_smul_sphere
 #align metric.preimage_vadd_sphere Metric.preimage_vadd_sphere
+-/
 
 variable [PseudoMetricSpace G]
 
+#print Metric.preimage_mul_left_ball /-
 @[simp, to_additive]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ) :
     (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
   preimage_smul_ball a b r
 #align metric.preimage_mul_left_ball Metric.preimage_mul_left_ball
 #align metric.preimage_add_left_ball Metric.preimage_add_left_ball
+-/
 
+#print Metric.preimage_mul_right_ball /-
 @[simp, to_additive]
 theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
     (fun x => x * a) ⁻¹' ball b r = ball (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_ball (MulOpposite.op a) b r
 #align metric.preimage_mul_right_ball Metric.preimage_mul_right_ball
 #align metric.preimage_add_right_ball Metric.preimage_add_right_ball
+-/
 
+#print Metric.preimage_mul_left_closedBall /-
 @[simp, to_additive]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ) :
     (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
   preimage_smul_closedBall a b r
 #align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBall
 #align metric.preimage_add_left_closed_ball Metric.preimage_add_left_closedBall
+-/
 
+#print Metric.preimage_mul_right_closedBall /-
 @[simp, to_additive]
 theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
     (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_closed_ball (MulOpposite.op a) b r
 #align metric.preimage_mul_right_closed_ball Metric.preimage_mul_right_closedBall
 #align metric.preimage_add_right_closed_ball Metric.preimage_add_right_closedBall
+-/
 
 end Metric
 
@@ -601,15 +669,19 @@ instance Additive.isometricVAdd : IsometricVAdd (Additive M) X :=
 #align additive.has_isometric_vadd Additive.isometricVAdd
 -/
 
+#print Additive.isometricVAdd' /-
 instance Additive.isometricVAdd' [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] :
     IsometricVAdd (Additive M) (Additive M) :=
   ⟨fun c x y => edist_smul_left c.toMul x.toMul y.toMul⟩
 #align additive.has_isometric_vadd' Additive.isometricVAdd'
+-/
 
+#print Additive.isometricVAdd'' /-
 instance Additive.isometricVAdd'' [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] :
     IsometricVAdd (Additive M)ᵃᵒᵖ (Additive M) :=
   ⟨fun c x y => edist_smul_left (MulOpposite.op c.unop.toMul) x.toMul y.toMul⟩
 #align additive.has_isometric_vadd'' Additive.isometricVAdd''
+-/
 
 #print Multiplicative.isometricSMul /-
 instance Multiplicative.isometricSMul {M X} [VAdd M X] [PseudoEMetricSpace X] [IsometricVAdd M X] :
@@ -618,15 +690,19 @@ instance Multiplicative.isometricSMul {M X} [VAdd M X] [PseudoEMetricSpace X] [I
 #align multiplicative.has_isometric_smul Multiplicative.isometricSMul
 -/
 
+#print Multiplicative.isometricSMul' /-
 instance Multiplicative.isometricSMul' [Add M] [PseudoEMetricSpace M] [IsometricVAdd M M] :
     IsometricSMul (Multiplicative M) (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left c.toAdd x.toAdd y.toAdd⟩
 #align multiplicative.has_isometric_smul' Multiplicative.isometricSMul'
+-/
 
+#print Multiplicative.isometricVAdd'' /-
 instance Multiplicative.isometricVAdd'' [Add M] [PseudoEMetricSpace M] [IsometricVAdd Mᵃᵒᵖ M] :
     IsometricSMul (Multiplicative M)ᵐᵒᵖ (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left (AddOpposite.op c.unop.toAdd) x.toAdd y.toAdd⟩
 #align multiplicative.has_isometric_vadd'' Multiplicative.isometricVAdd''
+-/
 
 end Instances
 
Diff
@@ -43,7 +43,7 @@ universe u v w
 variable (M : Type u) (G : Type v) (X : Type w)
 
 #print IsometricVAdd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
 class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
@@ -51,7 +51,7 @@ class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
 -/
 
 #print IsometricSMul /-
-/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:394:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
 class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
Diff
@@ -36,7 +36,7 @@ these two notions are equivalent. A group with a right-invariant metric can be a
 
 open Set
 
-open ENNReal Pointwise
+open scoped ENNReal Pointwise
 
 universe u v w
 
Diff
@@ -142,24 +142,12 @@ theorem edist_mul_right [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ
 #align edist_add_right edist_add_right
 -/
 
-/- warning: edist_div_right -> edist_div_right is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_5 : DivInvMonoid.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_5))))] (a : M) (b : M) (c : M), Eq.{1} ENNReal (EDist.edist.{u1} M (PseudoEMetricSpace.toHasEdist.{u1} M _inst_6) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_5)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_5)) b c)) (EDist.edist.{u1} M (PseudoEMetricSpace.toHasEdist.{u1} M _inst_6) a b)
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_5 : DivInvMonoid.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_5))))] (a : M) (b : M) (c : M), Eq.{1} ENNReal (EDist.edist.{u1} M (PseudoEMetricSpace.toEDist.{u1} M _inst_6) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_5)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_5)) b c)) (EDist.edist.{u1} M (PseudoEMetricSpace.toEDist.{u1} M _inst_6) a b)
-Case conversion may be inaccurate. Consider using '#align edist_div_right edist_div_rightₓ'. -/
 @[simp, to_additive]
 theorem edist_div_right [DivInvMonoid M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     edist (a / c) (b / c) = edist a b := by simp only [div_eq_mul_inv, edist_mul_right]
 #align edist_div_right edist_div_right
 #align edist_sub_right edist_sub_right
 
-/- warning: edist_inv_inv -> edist_inv_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) b)) (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) a b)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) b)) (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) a b)
-Case conversion may be inaccurate. Consider using '#align edist_inv_inv edist_inv_invₓ'. -/
 @[simp, to_additive]
 theorem edist_inv_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] (a b : G) :
     edist a⁻¹ b⁻¹ = edist a b := by
@@ -168,12 +156,6 @@ theorem edist_inv_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul
 #align edist_inv_inv edist_inv_inv
 #align edist_neg_neg edist_neg_neg
 
-/- warning: isometry_inv -> isometry_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Isometry.{u1, u1} G G _inst_5 _inst_5 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Isometry.{u1, u1} G G _inst_5 _inst_5 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align isometry_inv isometry_invₓ'. -/
 @[to_additive]
 theorem isometry_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] :
     Isometry (Inv.inv : G → G) :=
@@ -181,24 +163,12 @@ theorem isometry_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul G
 #align isometry_inv isometry_inv
 #align isometry_neg isometry_neg
 
-/- warning: edist_inv -> edist_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G) (y : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x) y) (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) x (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) y))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G) (y : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x) y) (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) x (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) y))
-Case conversion may be inaccurate. Consider using '#align edist_inv edist_invₓ'. -/
 @[to_additive]
 theorem edist_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] (x y : G) :
     edist x⁻¹ y = edist x y⁻¹ := by rw [← edist_inv_inv, inv_inv]
 #align edist_inv edist_inv
 #align edist_neg edist_neg
 
-/- warning: edist_div_left -> edist_div_left is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (c : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a c)) (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) b c)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (c : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a c)) (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) b c)
-Case conversion may be inaccurate. Consider using '#align edist_div_left edist_div_leftₓ'. -/
 @[simp, to_additive]
 theorem edist_div_left [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : edist (a / b) (a / c) = edist b c := by
@@ -221,12 +191,6 @@ def constSMul (c : G) : X ≃ᵢ X where
 #align isometry_equiv.const_vadd IsometryEquiv.constVAdd
 -/
 
-/- warning: isometry_equiv.const_smul_symm -> IsometryEquiv.constSMul_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G), Eq.{succ u2} (IsometryEquiv.{u2, u2} X X _inst_1 _inst_1) (IsometryEquiv.symm.{u2, u2} X X _inst_1 _inst_1 (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 c)) (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c))
-but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G), Eq.{succ u2} (IsometryEquiv.{u2, u2} X X _inst_1 _inst_1) (IsometryEquiv.symm.{u2, u2} X X _inst_1 _inst_1 (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 c)) (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c))
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.const_smul_symm IsometryEquiv.constSMul_symmₓ'. -/
 @[simp, to_additive]
 theorem constSMul_symm (c : G) : (constSMul c : X ≃ᵢ X).symm = constSMul c⁻¹ :=
   ext fun _ => rfl
@@ -235,12 +199,6 @@ theorem constSMul_symm (c : G) : (constSMul c : X ≃ᵢ X).symm = constSMul c
 
 variable [PseudoEMetricSpace G]
 
-/- warning: isometry_equiv.mul_left -> IsometryEquiv.mulLeft is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_left IsometryEquiv.mulLeftₓ'. -/
 /-- Multiplication `y ↦ x * y` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ x + y` as an `isometry_equiv`.", simps apply toEquiv]
 def mulLeft [IsometricSMul G G] (c : G) : G ≃ᵢ G
@@ -250,24 +208,12 @@ def mulLeft [IsometricSMul G G] (c : G) : G ≃ᵢ G
 #align isometry_equiv.mul_left IsometryEquiv.mulLeft
 #align isometry_equiv.add_left IsometryEquiv.addLeft
 
-/- warning: isometry_equiv.mul_left_symm -> IsometryEquiv.mulLeft_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x))
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_left_symm IsometryEquiv.mulLeft_symmₓ'. -/
 @[simp, to_additive]
 theorem mulLeft_symm [IsometricSMul G G] (x : G) : (mulLeft x).symm = IsometryEquiv.mulLeft x⁻¹ :=
   constSMul_symm x
 #align isometry_equiv.mul_left_symm IsometryEquiv.mulLeft_symm
 #align isometry_equiv.add_left_symm IsometryEquiv.addLeft_symm
 
-/- warning: isometry_equiv.mul_right -> IsometryEquiv.mulRight is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_right IsometryEquiv.mulRightₓ'. -/
 --ext $ λ y, rfl
 /-- Multiplication `y ↦ y * x` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ y + x` as an `isometry_equiv`.", simps apply toEquiv]
@@ -278,24 +224,12 @@ def mulRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
 #align isometry_equiv.mul_right IsometryEquiv.mulRight
 #align isometry_equiv.add_right IsometryEquiv.addRight
 
-/- warning: isometry_equiv.mul_right_symm -> IsometryEquiv.mulRight_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x))
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x))
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_right_symm IsometryEquiv.mulRight_symmₓ'. -/
 @[simp, to_additive]
 theorem mulRight_symm [IsometricSMul Gᵐᵒᵖ G] (x : G) : (mulRight x).symm = mulRight x⁻¹ :=
   ext fun y => rfl
 #align isometry_equiv.mul_right_symm IsometryEquiv.mulRight_symm
 #align isometry_equiv.add_right_symm IsometryEquiv.addRight_symm
 
-/- warning: isometry_equiv.div_right -> IsometryEquiv.divRight is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.div_right IsometryEquiv.divRightₓ'. -/
 /-- Division `y ↦ y / x` as an `isometry_equiv`. -/
 @[to_additive "Subtraction `y ↦ y - x` as an `isometry_equiv`.", simps apply toEquiv]
 def divRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
@@ -305,12 +239,6 @@ def divRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
 #align isometry_equiv.div_right IsometryEquiv.divRight
 #align isometry_equiv.sub_right IsometryEquiv.subRight
 
-/- warning: isometry_equiv.div_right_symm -> IsometryEquiv.divRight_symm is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (c : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.divRight.{u1} G _inst_2 _inst_5 _inst_6 c)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 c)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (c : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.divRight.{u1} G _inst_2 _inst_5 _inst_6 c)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 c)
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.div_right_symm IsometryEquiv.divRight_symmₓ'. -/
 @[simp, to_additive]
 theorem divRight_symm [IsometricSMul Gᵐᵒᵖ G] (c : G) : (divRight c).symm = mulRight c :=
   ext fun y => rfl
@@ -319,12 +247,6 @@ theorem divRight_symm [IsometricSMul Gᵐᵒᵖ G] (c : G) : (divRight c).symm =
 
 variable [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
 
-/- warning: isometry_equiv.div_left -> IsometryEquiv.divLeft is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.div_left IsometryEquiv.divLeftₓ'. -/
 /-- Division `y ↦ x / y` as an `isometry_equiv`. -/
 @[to_additive "Subtraction `y ↦ x - y` as an `isometry_equiv`.", simps apply symm_apply toEquiv]
 def divLeft (c : G) : G ≃ᵢ G where
@@ -335,12 +257,6 @@ def divLeft (c : G) : G ≃ᵢ G where
 
 variable (G)
 
-/- warning: isometry_equiv.inv -> IsometryEquiv.inv is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], IsometryEquiv.{u1, u1} G G _inst_5 _inst_5
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], IsometryEquiv.{u1, u1} G G _inst_5 _inst_5
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.inv IsometryEquiv.invₓ'. -/
 /-- Inversion `x ↦ x⁻¹` as an `isometry_equiv`. -/
 @[to_additive "Negation `x ↦ -x` as an `isometry_equiv`.", simps apply toEquiv]
 def inv : G ≃ᵢ G where
@@ -349,12 +265,6 @@ def inv : G ≃ᵢ G where
 #align isometry_equiv.inv IsometryEquiv.inv
 #align isometry_equiv.neg IsometryEquiv.neg
 
-/- warning: isometry_equiv.inv_symm -> IsometryEquiv.inv_symm is a dubious translation:
-lean 3 declaration is
-  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)) (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)
-but is expected to have type
-  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)) (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)
-Case conversion may be inaccurate. Consider using '#align isometry_equiv.inv_symm IsometryEquiv.inv_symmₓ'. -/
 @[simp, to_additive]
 theorem inv_symm : (inv G).symm = inv G :=
   rfl
@@ -373,12 +283,6 @@ theorem smul_ball (c : G) (x : X) (r : ℝ≥0∞) : c • ball x r = ball (c 
 #align emetric.vadd_ball EMetric.vadd_ball
 -/
 
-/- warning: emetric.preimage_smul_ball -> EMetric.preimage_smul_ball is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
-but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1650 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1652 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1650 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1652) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
-Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_ball EMetric.preimage_smul_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r :=
   by rw [preimage_smul, smul_ball]
@@ -393,12 +297,6 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) : c • closedBall x r
 #align emetric.vadd_closed_ball EMetric.vadd_closedBall
 -/
 
-/- warning: emetric.preimage_smul_closed_ball -> EMetric.preimage_smul_closedBall is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
-but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1792 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1794 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1792 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1794) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
-Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
     (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
@@ -407,12 +305,6 @@ theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
 
 variable [PseudoEMetricSpace G]
 
-/- warning: emetric.preimage_mul_left_ball -> EMetric.preimage_mul_left_ball is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1913 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1915 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1913 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1915) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
-Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
     (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
@@ -420,12 +312,6 @@ theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
 #align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ball
 #align emetric.preimage_add_left_ball EMetric.preimage_add_left_ball
 
-/- warning: emetric.preimage_mul_right_ball -> EMetric.preimage_mul_right_ball is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
     (fun x => x * a) ⁻¹' ball b r = ball (b / a) r := by rw [div_eq_mul_inv];
@@ -433,12 +319,6 @@ theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ
 #align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ball
 #align emetric.preimage_add_right_ball EMetric.preimage_add_right_ball
 
-/- warning: emetric.preimage_mul_left_closed_ball -> EMetric.preimage_mul_left_closedBall is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2087 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2089 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2087 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2089) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
-Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
     (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
@@ -446,12 +326,6 @@ theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ≥0
 #align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBall
 #align emetric.preimage_add_left_closed_ball EMetric.preimage_add_left_closedBall
 
-/- warning: emetric.preimage_mul_right_closed_ball -> EMetric.preimage_mul_right_closedBall is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_right_closed_ball EMetric.preimage_mul_right_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
     (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r := by rw [div_eq_mul_inv];
@@ -526,36 +400,18 @@ theorem nndist_mul_right [PseudoMetricSpace M] [Mul M] [IsometricSMul Mᵐᵒᵖ
 #align nndist_add_right nndist_add_right
 -/
 
-/- warning: dist_div_right -> dist_div_right is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} Real (Dist.dist.{u1} M (PseudoMetricSpace.toHasDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) b c)) (Dist.dist.{u1} M (PseudoMetricSpace.toHasDist.{u1} M _inst_2) a b)
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} Real (Dist.dist.{u1} M (PseudoMetricSpace.toDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) b c)) (Dist.dist.{u1} M (PseudoMetricSpace.toDist.{u1} M _inst_2) a b)
-Case conversion may be inaccurate. Consider using '#align dist_div_right dist_div_rightₓ'. -/
 @[simp, to_additive]
 theorem dist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     dist (a / c) (b / c) = dist a b := by simp only [div_eq_mul_inv, dist_mul_right]
 #align dist_div_right dist_div_right
 #align dist_sub_right dist_sub_right
 
-/- warning: nndist_div_right -> nndist_div_right is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} NNReal (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) b c)) (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) a b)
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} NNReal (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) b c)) (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) a b)
-Case conversion may be inaccurate. Consider using '#align nndist_div_right nndist_div_rightₓ'. -/
 @[simp, to_additive]
 theorem nndist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     nndist (a / c) (b / c) = nndist a b := by simp only [div_eq_mul_inv, nndist_mul_right]
 #align nndist_div_right nndist_div_right
 #align nndist_sub_right nndist_sub_right
 
-/- warning: dist_inv_inv -> dist_inv_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) a) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) b)) (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) a b)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) a) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) b)) (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) a b)
-Case conversion may be inaccurate. Consider using '#align dist_inv_inv dist_inv_invₓ'. -/
 @[simp, to_additive]
 theorem dist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b : G) : dist a⁻¹ b⁻¹ = dist a b :=
@@ -563,12 +419,6 @@ theorem dist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [Isomet
 #align dist_inv_inv dist_inv_inv
 #align dist_neg_neg dist_neg_neg
 
-/- warning: nndist_inv_inv -> nndist_inv_inv is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) a) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) b)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) a b)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) a) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) b)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) a b)
-Case conversion may be inaccurate. Consider using '#align nndist_inv_inv nndist_inv_invₓ'. -/
 @[simp, to_additive]
 theorem nndist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b : G) : nndist a⁻¹ b⁻¹ = nndist a b :=
@@ -576,24 +426,12 @@ theorem nndist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [Isom
 #align nndist_inv_inv nndist_inv_inv
 #align nndist_neg_neg nndist_neg_neg
 
-/- warning: dist_div_left -> dist_div_left is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) b c)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) b c)
-Case conversion may be inaccurate. Consider using '#align dist_div_left dist_div_leftₓ'. -/
 @[simp, to_additive]
 theorem dist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : dist (a / b) (a / c) = dist b c := by simp [div_eq_mul_inv]
 #align dist_div_left dist_div_left
 #align dist_sub_left dist_sub_left
 
-/- warning: nndist_div_left -> nndist_div_left is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) b c)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) b c)
-Case conversion may be inaccurate. Consider using '#align nndist_div_left nndist_div_leftₓ'. -/
 @[simp, to_additive]
 theorem nndist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : nndist (a / b) (a / c) = nndist b c := by simp [div_eq_mul_inv]
@@ -612,12 +450,6 @@ theorem smul_ball (c : G) (x : X) (r : ℝ) : c • ball x r = ball (c • x) r
 #align metric.vadd_ball Metric.vadd_ball
 -/
 
-/- warning: metric.preimage_smul_ball -> Metric.preimage_smul_ball is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
-but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2945 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2947 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2945 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2947) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_ball Metric.preimage_smul_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
   rw [preimage_smul, smul_ball]
@@ -632,12 +464,6 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ) : c • closedBall x r = close
 #align metric.vadd_closed_ball Metric.vadd_closedBall
 -/
 
-/- warning: metric.preimage_smul_closed_ball -> Metric.preimage_smul_closedBall is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
-but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3087 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3089 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3087 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3089) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ) :
     (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
@@ -652,12 +478,6 @@ theorem smul_sphere (c : G) (x : X) (r : ℝ) : c • sphere x r = sphere (c •
 #align metric.vadd_sphere Metric.vadd_sphere
 -/
 
-/- warning: metric.preimage_smul_sphere -> Metric.preimage_smul_sphere is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
-but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3229 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3231 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3229 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3231) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_sphere Metric.preimage_smul_sphereₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
     (· • ·) c ⁻¹' sphere x r = sphere (c⁻¹ • x) r := by rw [preimage_smul, smul_sphere]
@@ -666,12 +486,6 @@ theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
 
 variable [PseudoMetricSpace G]
 
-/- warning: metric.preimage_mul_left_ball -> Metric.preimage_mul_left_ball is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3350 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3352 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3350 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3352) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_left_ball Metric.preimage_mul_left_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ) :
     (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
@@ -679,12 +493,6 @@ theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ) :
 #align metric.preimage_mul_left_ball Metric.preimage_mul_left_ball
 #align metric.preimage_add_left_ball Metric.preimage_add_left_ball
 
-/- warning: metric.preimage_mul_right_ball -> Metric.preimage_mul_right_ball is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_right_ball Metric.preimage_mul_right_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
     (fun x => x * a) ⁻¹' ball b r = ball (b / a) r := by rw [div_eq_mul_inv];
@@ -692,12 +500,6 @@ theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ)
 #align metric.preimage_mul_right_ball Metric.preimage_mul_right_ball
 #align metric.preimage_add_right_ball Metric.preimage_add_right_ball
 
-/- warning: metric.preimage_mul_left_closed_ball -> Metric.preimage_mul_left_closedBall is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3524 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3526 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3524 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3526) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ) :
     (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
@@ -705,12 +507,6 @@ theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ) :
 #align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBall
 #align metric.preimage_add_left_closed_ball Metric.preimage_add_left_closedBall
 
-/- warning: metric.preimage_mul_right_closed_ball -> Metric.preimage_mul_right_closedBall is a dubious translation:
-lean 3 declaration is
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
-Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_right_closed_ball Metric.preimage_mul_right_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
     (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r := by rw [div_eq_mul_inv];
@@ -805,23 +601,11 @@ instance Additive.isometricVAdd : IsometricVAdd (Additive M) X :=
 #align additive.has_isometric_vadd Additive.isometricVAdd
 -/
 
-/- warning: additive.has_isometric_vadd' -> Additive.isometricVAdd' is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} M M _inst_6 (Mul.toSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (Additive.{u1} M) (Additive.{u1} M) (Additive.pseudoEmetricSpace.{u1} M _inst_6) (Add.toVAdd.{u1} (Additive.{u1} M) (Additive.hasAdd.{u1} M _inst_5))
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} M M _inst_6 (Mul.toSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (Additive.{u1} M) (Additive.{u1} M) (instPseudoEMetricSpaceAdditive.{u1} M _inst_6) (Add.toVAdd.{u1} (Additive.{u1} M) (Additive.add.{u1} M _inst_5))
-Case conversion may be inaccurate. Consider using '#align additive.has_isometric_vadd' Additive.isometricVAdd'ₓ'. -/
 instance Additive.isometricVAdd' [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] :
     IsometricVAdd (Additive M) (Additive M) :=
   ⟨fun c x y => edist_smul_left c.toMul x.toMul y.toMul⟩
 #align additive.has_isometric_vadd' Additive.isometricVAdd'
 
-/- warning: additive.has_isometric_vadd'' -> Additive.isometricVAdd'' is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (AddOpposite.{u1} (Additive.{u1} M)) (Additive.{u1} M) (Additive.pseudoEmetricSpace.{u1} M _inst_6) (Add.toHasOppositeVAdd.{u1} (Additive.{u1} M) (Additive.hasAdd.{u1} M _inst_5))
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (AddOpposite.{u1} (Additive.{u1} M)) (Additive.{u1} M) (instPseudoEMetricSpaceAdditive.{u1} M _inst_6) (Add.toHasOppositeVAdd.{u1} (Additive.{u1} M) (Additive.add.{u1} M _inst_5))
-Case conversion may be inaccurate. Consider using '#align additive.has_isometric_vadd'' Additive.isometricVAdd''ₓ'. -/
 instance Additive.isometricVAdd'' [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] :
     IsometricVAdd (Additive M)ᵃᵒᵖ (Additive M) :=
   ⟨fun c x y => edist_smul_left (MulOpposite.op c.unop.toMul) x.toMul y.toMul⟩
@@ -834,23 +618,11 @@ instance Multiplicative.isometricSMul {M X} [VAdd M X] [PseudoEMetricSpace X] [I
 #align multiplicative.has_isometric_smul Multiplicative.isometricSMul
 -/
 
-/- warning: multiplicative.has_isometric_smul' -> Multiplicative.isometricSMul' is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} M M _inst_6 (Add.toVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (Multiplicative.{u1} M) (Multiplicative.{u1} M) (Multiplicative.pseudoEmetricSpace.{u1} M _inst_6) (Mul.toSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.hasMul.{u1} M _inst_5))
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} M M _inst_6 (Add.toVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (Multiplicative.{u1} M) (Multiplicative.{u1} M) (instPseudoEMetricSpaceMultiplicative.{u1} M _inst_6) (Mul.toSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.mul.{u1} M _inst_5))
-Case conversion may be inaccurate. Consider using '#align multiplicative.has_isometric_smul' Multiplicative.isometricSMul'ₓ'. -/
 instance Multiplicative.isometricSMul' [Add M] [PseudoEMetricSpace M] [IsometricVAdd M M] :
     IsometricSMul (Multiplicative M) (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left c.toAdd x.toAdd y.toAdd⟩
 #align multiplicative.has_isometric_smul' Multiplicative.isometricSMul'
 
-/- warning: multiplicative.has_isometric_vadd'' -> Multiplicative.isometricVAdd'' is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} (AddOpposite.{u1} M) M _inst_6 (Add.toHasOppositeVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (MulOpposite.{u1} (Multiplicative.{u1} M)) (Multiplicative.{u1} M) (Multiplicative.pseudoEmetricSpace.{u1} M _inst_6) (Mul.toHasOppositeSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.hasMul.{u1} M _inst_5))
-but is expected to have type
-  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} (AddOpposite.{u1} M) M _inst_6 (Add.toHasOppositeVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (MulOpposite.{u1} (Multiplicative.{u1} M)) (Multiplicative.{u1} M) (instPseudoEMetricSpaceMultiplicative.{u1} M _inst_6) (Mul.toHasOppositeSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.mul.{u1} M _inst_5))
-Case conversion may be inaccurate. Consider using '#align multiplicative.has_isometric_vadd'' Multiplicative.isometricVAdd''ₓ'. -/
 instance Multiplicative.isometricVAdd'' [Add M] [PseudoEMetricSpace M] [IsometricVAdd Mᵃᵒᵖ M] :
     IsometricSMul (Multiplicative M)ᵐᵒᵖ (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left (AddOpposite.op c.unop.toAdd) x.toAdd y.toAdd⟩
Diff
@@ -428,9 +428,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
-    (fun x => x * a) ⁻¹' ball b r = ball (b / a) r :=
-  by
-  rw [div_eq_mul_inv]
+    (fun x => x * a) ⁻¹' ball b r = ball (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_ball (MulOpposite.op a) b r
 #align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ball
 #align emetric.preimage_add_right_ball EMetric.preimage_add_right_ball
@@ -456,9 +454,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_right_closed_ball EMetric.preimage_mul_right_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
-    (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r :=
-  by
-  rw [div_eq_mul_inv]
+    (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_closed_ball (MulOpposite.op a) b r
 #align emetric.preimage_mul_right_closed_ball EMetric.preimage_mul_right_closedBall
 #align emetric.preimage_add_right_closed_ball EMetric.preimage_add_right_closedBall
@@ -691,9 +687,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_right_ball Metric.preimage_mul_right_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
-    (fun x => x * a) ⁻¹' ball b r = ball (b / a) r :=
-  by
-  rw [div_eq_mul_inv]
+    (fun x => x * a) ⁻¹' ball b r = ball (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_ball (MulOpposite.op a) b r
 #align metric.preimage_mul_right_ball Metric.preimage_mul_right_ball
 #align metric.preimage_add_right_ball Metric.preimage_add_right_ball
@@ -719,9 +713,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_right_closed_ball Metric.preimage_mul_right_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
-    (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r :=
-  by
-  rw [div_eq_mul_inv]
+    (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r := by rw [div_eq_mul_inv];
   exact preimage_smul_closed_ball (MulOpposite.op a) b r
 #align metric.preimage_mul_right_closed_ball Metric.preimage_mul_right_closedBall
 #align metric.preimage_add_right_closed_ball Metric.preimage_add_right_closedBall
Diff
@@ -97,12 +97,14 @@ theorem edist_smul_left [SMul M X] [IsometricSMul M X] (c : M) (x y : X) :
 #align edist_vadd_left edist_vadd_left
 -/
 
+#print ediam_smul /-
 @[simp, to_additive]
 theorem ediam_smul [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
     EMetric.diam (c • s) = EMetric.diam s :=
   (isometry_smul _ _).ediam_image s
 #align ediam_smul ediam_smul
 #align ediam_vadd ediam_vadd
+-/
 
 #print isometry_mul_left /-
 @[to_additive]
@@ -375,7 +377,7 @@ theorem smul_ball (c : G) (x : X) (r : ℝ≥0∞) : c • ball x r = ball (c 
 lean 3 declaration is
   forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
 but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1599 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1601 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1599 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1601) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1650 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1652 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1650 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1652) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_ball EMetric.preimage_smul_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r :=
@@ -395,7 +397,7 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) : c • closedBall x r
 lean 3 declaration is
   forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
 but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1741 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1743 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1741 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1743) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1792 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1794 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1792 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1794) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
@@ -409,7 +411,7 @@ variable [PseudoEMetricSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1862 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1864 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1862 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1864) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1913 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1915 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1913 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1915) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
@@ -437,7 +439,7 @@ theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2036 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2038 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2036 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2038) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2087 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2089 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2087 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2089) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
@@ -483,12 +485,14 @@ theorem nndist_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M)
 #align nndist_vadd nndist_vadd
 -/
 
+#print diam_smul /-
 @[simp, to_additive]
 theorem diam_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
     Metric.diam (c • s) = Metric.diam s :=
   (isometry_smul _ _).diam_image s
 #align diam_smul diam_smul
 #align diam_vadd diam_vadd
+-/
 
 #print dist_mul_left /-
 @[simp, to_additive]
@@ -616,7 +620,7 @@ theorem smul_ball (c : G) (x : X) (r : ℝ) : c • ball x r = ball (c • x) r
 lean 3 declaration is
   forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
 but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2854 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2856 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2854 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2856) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2945 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2947 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2945 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2947) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
 Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_ball Metric.preimage_smul_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
@@ -636,7 +640,7 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ) : c • closedBall x r = close
 lean 3 declaration is
   forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
 but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2996 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2998 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2996 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2998) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3087 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3089 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3087 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3089) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
 Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ) :
@@ -656,7 +660,7 @@ theorem smul_sphere (c : G) (x : X) (r : ℝ) : c • sphere x r = sphere (c •
 lean 3 declaration is
   forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
 but is expected to have type
-  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3138 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3140 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3138 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3140) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3229 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3231 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3229 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3231) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
 Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_sphere Metric.preimage_smul_sphereₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
@@ -670,7 +674,7 @@ variable [PseudoMetricSpace G]
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3259 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3261 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3259 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3261) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3350 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3352 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3350 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3352) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
 Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_left_ball Metric.preimage_mul_left_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ) :
@@ -698,7 +702,7 @@ theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ)
 lean 3 declaration is
   forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
 but is expected to have type
-  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3433 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3435 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3433 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3435) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3524 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3526 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3524 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3526) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
 Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module topology.metric_space.isometric_smul
-! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
+! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -97,6 +97,13 @@ theorem edist_smul_left [SMul M X] [IsometricSMul M X] (c : M) (x y : X) :
 #align edist_vadd_left edist_vadd_left
 -/
 
+@[simp, to_additive]
+theorem ediam_smul [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
+    EMetric.diam (c • s) = EMetric.diam s :=
+  (isometry_smul _ _).ediam_image s
+#align ediam_smul ediam_smul
+#align ediam_vadd ediam_vadd
+
 #print isometry_mul_left /-
 @[to_additive]
 theorem isometry_mul_left [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] (a : M) :
@@ -476,6 +483,13 @@ theorem nndist_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M)
 #align nndist_vadd nndist_vadd
 -/
 
+@[simp, to_additive]
+theorem diam_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
+    Metric.diam (c • s) = Metric.diam s :=
+  (isometry_smul _ _).diam_image s
+#align diam_smul diam_smul
+#align diam_vadd diam_vadd
+
 #print dist_mul_left /-
 @[simp, to_additive]
 theorem dist_mul_left [PseudoMetricSpace M] [Mul M] [IsometricSMul M M] (a b c : M) :
Diff
@@ -43,7 +43,7 @@ universe u v w
 variable (M : Type u) (G : Type v) (X : Type w)
 
 #print IsometricVAdd /-
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
 class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
@@ -51,7 +51,7 @@ class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
 -/
 
 #print IsometricSMul /-
-/- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
+/- ./././Mathport/Syntax/Translate/Command.lean:393:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
 class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
Diff
@@ -392,7 +392,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
-    (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closed_ball]
+    (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
 #align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBall
 #align emetric.preimage_vadd_closed_ball EMetric.preimage_vadd_closedBall
 
@@ -626,7 +626,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ) :
-    (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closed_ball]
+    (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
 #align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBall
 #align metric.preimage_vadd_closed_ball Metric.preimage_vadd_closedBall
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module topology.metric_space.isometric_smul
-! leanprover-community/mathlib commit 832a8ba8f10f11fea99367c469ff802e69a5b8ec
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Topology.MetricSpace.Isometry
 /-!
 # Group actions by isometries
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we define two typeclasses:
 
 - `has_isometric_smul M X` says that `M` multiplicatively acts on a (pseudo extended) metric space
Diff
@@ -39,109 +39,156 @@ universe u v w
 
 variable (M : Type u) (G : Type v) (X : Type w)
 
+#print IsometricVAdd /-
 /- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
-class HasIsometricVadd [PseudoEMetricSpace X] [VAdd M X] : Prop where
+class IsometricVAdd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
-#align has_isometric_vadd HasIsometricVadd
+#align has_isometric_vadd IsometricVAdd
+-/
 
+#print IsometricSMul /-
 /- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
-class HasIsometricSmul [PseudoEMetricSpace X] [SMul M X] : Prop where
+class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
   isometry_smul : ∀ c : M, Isometry ((· • ·) c : X → X)
-#align has_isometric_smul HasIsometricSmul
-#align has_isometric_vadd HasIsometricVadd
+#align has_isometric_smul IsometricSMul
+#align has_isometric_vadd IsometricVAdd
+-/
 
-export HasIsometricVadd (isometry_vadd)
+export IsometricVAdd (isometry_vadd)
 
-export HasIsometricSmul (isometry_smul)
+export IsometricSMul (isometry_smul)
 
+#print IsometricSMul.to_continuousConstSMul /-
 @[to_additive]
-instance (priority := 100) HasIsometricSmul.to_continuousConstSMul [PseudoEMetricSpace X] [SMul M X]
-    [HasIsometricSmul M X] : ContinuousConstSMul M X :=
+instance (priority := 100) IsometricSMul.to_continuousConstSMul [PseudoEMetricSpace X] [SMul M X]
+    [IsometricSMul M X] : ContinuousConstSMul M X :=
   ⟨fun c => (isometry_smul X c).Continuous⟩
-#align has_isometric_smul.to_has_continuous_const_smul HasIsometricSmul.to_continuousConstSMul
-#align has_isometric_vadd.to_has_continuous_const_vadd HasIsometricVadd.to_has_continuous_const_vadd
+#align has_isometric_smul.to_has_continuous_const_smul IsometricSMul.to_continuousConstSMul
+#align has_isometric_vadd.to_has_continuous_const_vadd IsometricVAdd.to_continuousConstVAdd
+-/
 
+#print IsometricSMul.opposite_of_comm /-
 @[to_additive]
-instance (priority := 100) HasIsometricSmul.opposite_of_comm [PseudoEMetricSpace X] [SMul M X]
-    [SMul Mᵐᵒᵖ X] [IsCentralScalar M X] [HasIsometricSmul M X] : HasIsometricSmul Mᵐᵒᵖ X :=
+instance (priority := 100) IsometricSMul.opposite_of_comm [PseudoEMetricSpace X] [SMul M X]
+    [SMul Mᵐᵒᵖ X] [IsCentralScalar M X] [IsometricSMul M X] : IsometricSMul Mᵐᵒᵖ X :=
   ⟨fun c x y => by simpa only [← op_smul_eq_smul] using isometry_smul X c.unop x y⟩
-#align has_isometric_smul.opposite_of_comm HasIsometricSmul.opposite_of_comm
-#align has_isometric_vadd.opposite_of_comm HasIsometricVadd.opposite_of_comm
+#align has_isometric_smul.opposite_of_comm IsometricSMul.opposite_of_comm
+#align has_isometric_vadd.opposite_of_comm IsometricVAdd.opposite_of_comm
+-/
 
 variable {M G X}
 
 section Emetric
 
-variable [PseudoEMetricSpace X] [Group G] [MulAction G X] [HasIsometricSmul G X]
+variable [PseudoEMetricSpace X] [Group G] [MulAction G X] [IsometricSMul G X]
 
+#print edist_smul_left /-
 @[simp, to_additive]
-theorem edist_smul_left [SMul M X] [HasIsometricSmul M X] (c : M) (x y : X) :
+theorem edist_smul_left [SMul M X] [IsometricSMul M X] (c : M) (x y : X) :
     edist (c • x) (c • y) = edist x y :=
   isometry_smul X c x y
 #align edist_smul_left edist_smul_left
 #align edist_vadd_left edist_vadd_left
+-/
 
+#print isometry_mul_left /-
 @[to_additive]
-theorem isometry_mul_left [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] (a : M) :
+theorem isometry_mul_left [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] (a : M) :
     Isometry ((· * ·) a) :=
   isometry_smul M a
 #align isometry_mul_left isometry_mul_left
 #align isometry_add_left isometry_add_left
+-/
 
+#print edist_mul_left /-
 @[simp, to_additive]
-theorem edist_mul_left [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] (a b c : M) :
+theorem edist_mul_left [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] (a b c : M) :
     edist (a * b) (a * c) = edist b c :=
   isometry_mul_left a b c
 #align edist_mul_left edist_mul_left
 #align edist_add_left edist_add_left
+-/
 
+#print isometry_mul_right /-
 @[to_additive]
-theorem isometry_mul_right [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a : M) :
+theorem isometry_mul_right [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a : M) :
     Isometry fun x => x * a :=
   isometry_smul M (MulOpposite.op a)
 #align isometry_mul_right isometry_mul_right
 #align isometry_add_right isometry_add_right
+-/
 
+#print edist_mul_right /-
 @[simp, to_additive]
-theorem edist_mul_right [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a b c : M) :
+theorem edist_mul_right [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     edist (a * c) (b * c) = edist a b :=
   isometry_mul_right c a b
 #align edist_mul_right edist_mul_right
 #align edist_add_right edist_add_right
+-/
 
+/- warning: edist_div_right -> edist_div_right is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_5 : DivInvMonoid.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_5))))] (a : M) (b : M) (c : M), Eq.{1} ENNReal (EDist.edist.{u1} M (PseudoEMetricSpace.toHasEdist.{u1} M _inst_6) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_5)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_5)) b c)) (EDist.edist.{u1} M (PseudoEMetricSpace.toHasEdist.{u1} M _inst_6) a b)
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_5 : DivInvMonoid.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_5))))] (a : M) (b : M) (c : M), Eq.{1} ENNReal (EDist.edist.{u1} M (PseudoEMetricSpace.toEDist.{u1} M _inst_6) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_5)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_5)) b c)) (EDist.edist.{u1} M (PseudoEMetricSpace.toEDist.{u1} M _inst_6) a b)
+Case conversion may be inaccurate. Consider using '#align edist_div_right edist_div_rightₓ'. -/
 @[simp, to_additive]
-theorem edist_div_right [DivInvMonoid M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
-    (a b c : M) : edist (a / c) (b / c) = edist a b := by
-  simp only [div_eq_mul_inv, edist_mul_right]
+theorem edist_div_right [DivInvMonoid M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
+    edist (a / c) (b / c) = edist a b := by simp only [div_eq_mul_inv, edist_mul_right]
 #align edist_div_right edist_div_right
 #align edist_sub_right edist_sub_right
 
+/- warning: edist_inv_inv -> edist_inv_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) b)) (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) a b)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) b)) (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) a b)
+Case conversion may be inaccurate. Consider using '#align edist_inv_inv edist_inv_invₓ'. -/
 @[simp, to_additive]
-theorem edist_inv_inv [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
-    (a b : G) : edist a⁻¹ b⁻¹ = edist a b := by
+theorem edist_inv_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] (a b : G) :
+    edist a⁻¹ b⁻¹ = edist a b := by
   rw [← edist_mul_left a, ← edist_mul_right _ _ b, mul_right_inv, one_mul, inv_mul_cancel_right,
     edist_comm]
 #align edist_inv_inv edist_inv_inv
 #align edist_neg_neg edist_neg_neg
 
+/- warning: isometry_inv -> isometry_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Isometry.{u1, u1} G G _inst_5 _inst_5 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Isometry.{u1, u1} G G _inst_5 _inst_5 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align isometry_inv isometry_invₓ'. -/
 @[to_additive]
-theorem isometry_inv [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G] :
+theorem isometry_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] :
     Isometry (Inv.inv : G → G) :=
   edist_inv_inv
 #align isometry_inv isometry_inv
 #align isometry_neg isometry_neg
 
+/- warning: edist_inv -> edist_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G) (y : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x) y) (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) x (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) y))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G) (y : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x) y) (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) x (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) y))
+Case conversion may be inaccurate. Consider using '#align edist_inv edist_invₓ'. -/
 @[to_additive]
-theorem edist_inv [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
-    (x y : G) : edist x⁻¹ y = edist x y⁻¹ := by rw [← edist_inv_inv, inv_inv]
+theorem edist_inv [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G] (x y : G) :
+    edist x⁻¹ y = edist x y⁻¹ := by rw [← edist_inv_inv, inv_inv]
 #align edist_inv edist_inv
 #align edist_neg edist_neg
 
+/- warning: edist_div_left -> edist_div_left is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (c : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a c)) (EDist.edist.{u1} G (PseudoEMetricSpace.toHasEdist.{u1} G _inst_5) b c)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (c : G), Eq.{1} ENNReal (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) a c)) (EDist.edist.{u1} G (PseudoEMetricSpace.toEDist.{u1} G _inst_5) b c)
+Case conversion may be inaccurate. Consider using '#align edist_div_left edist_div_leftₓ'. -/
 @[simp, to_additive]
-theorem edist_div_left [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
+theorem edist_div_left [PseudoEMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
     (a b c : G) : edist (a / b) (a / c) = edist b c := by
   rw [div_eq_mul_inv, div_eq_mul_inv, edist_mul_left, edist_inv_inv]
 #align edist_div_left edist_div_left
@@ -149,74 +196,123 @@ theorem edist_div_left [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometr
 
 namespace IsometryEquiv
 
+#print IsometryEquiv.constSMul /-
 /-- If a group `G` acts on `X` by isometries, then `isometry_equiv.const_smul` is the isometry of
 `X` given by multiplication of a constant element of the group. -/
 @[to_additive
       "If an additive group `G` acts on `X` by isometries, then `isometry_equiv.const_vadd`\nis the isometry of `X` given by addition of a constant element of the group.",
   simps toEquiv apply]
-def constSmul (c : G) : X ≃ᵢ X where
+def constSMul (c : G) : X ≃ᵢ X where
   toEquiv := MulAction.toPerm c
   isometry_toFun := isometry_smul X c
-#align isometry_equiv.const_smul IsometryEquiv.constSmul
-#align isometry_equiv.const_vadd IsometryEquiv.constVadd
+#align isometry_equiv.const_smul IsometryEquiv.constSMul
+#align isometry_equiv.const_vadd IsometryEquiv.constVAdd
+-/
 
+/- warning: isometry_equiv.const_smul_symm -> IsometryEquiv.constSMul_symm is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G), Eq.{succ u2} (IsometryEquiv.{u2, u2} X X _inst_1 _inst_1) (IsometryEquiv.symm.{u2, u2} X X _inst_1 _inst_1 (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 c)) (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c))
+but is expected to have type
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G), Eq.{succ u2} (IsometryEquiv.{u2, u2} X X _inst_1 _inst_1) (IsometryEquiv.symm.{u2, u2} X X _inst_1 _inst_1 (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 c)) (IsometryEquiv.constSMul.{u1, u2} G X _inst_1 _inst_2 _inst_3 _inst_4 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c))
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.const_smul_symm IsometryEquiv.constSMul_symmₓ'. -/
 @[simp, to_additive]
-theorem constSmul_symm (c : G) : (constSmul c : X ≃ᵢ X).symm = constSmul c⁻¹ :=
+theorem constSMul_symm (c : G) : (constSMul c : X ≃ᵢ X).symm = constSMul c⁻¹ :=
   ext fun _ => rfl
-#align isometry_equiv.const_smul_symm IsometryEquiv.constSmul_symm
-#align isometry_equiv.const_vadd_symm IsometryEquiv.const_vadd_symm
+#align isometry_equiv.const_smul_symm IsometryEquiv.constSMul_symm
+#align isometry_equiv.const_vadd_symm IsometryEquiv.constVAdd_symm
 
 variable [PseudoEMetricSpace G]
 
+/- warning: isometry_equiv.mul_left -> IsometryEquiv.mulLeft is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_left IsometryEquiv.mulLeftₓ'. -/
 /-- Multiplication `y ↦ x * y` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ x + y` as an `isometry_equiv`.", simps apply toEquiv]
-def mulLeft [HasIsometricSmul G G] (c : G) : G ≃ᵢ G
+def mulLeft [IsometricSMul G G] (c : G) : G ≃ᵢ G
     where
   toEquiv := Equiv.mulLeft c
   isometry_toFun := edist_mul_left c
 #align isometry_equiv.mul_left IsometryEquiv.mulLeft
 #align isometry_equiv.add_left IsometryEquiv.addLeft
 
+/- warning: isometry_equiv.mul_left_symm -> IsometryEquiv.mulLeft_symm is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulLeft.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x))
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_left_symm IsometryEquiv.mulLeft_symmₓ'. -/
 @[simp, to_additive]
-theorem mulLeft_symm [HasIsometricSmul G G] (x : G) :
-    (mulLeft x).symm = IsometryEquiv.mulLeft x⁻¹ :=
-  constSmul_symm x
+theorem mulLeft_symm [IsometricSMul G G] (x : G) : (mulLeft x).symm = IsometryEquiv.mulLeft x⁻¹ :=
+  constSMul_symm x
 #align isometry_equiv.mul_left_symm IsometryEquiv.mulLeft_symm
-#align isometry_equiv.add_left_symm IsometryEquiv.add_left_symm
-
+#align isometry_equiv.add_left_symm IsometryEquiv.addLeft_symm
+
+/- warning: isometry_equiv.mul_right -> IsometryEquiv.mulRight is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_right IsometryEquiv.mulRightₓ'. -/
 --ext $ λ y, rfl
 /-- Multiplication `y ↦ y * x` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ y + x` as an `isometry_equiv`.", simps apply toEquiv]
-def mulRight [HasIsometricSmul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
+def mulRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
     where
   toEquiv := Equiv.mulRight c
   isometry_toFun a b := edist_mul_right a b c
 #align isometry_equiv.mul_right IsometryEquiv.mulRight
 #align isometry_equiv.add_right IsometryEquiv.addRight
 
+/- warning: isometry_equiv.mul_right_symm -> IsometryEquiv.mulRight_symm is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) x))
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (x : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 x)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) x))
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.mul_right_symm IsometryEquiv.mulRight_symmₓ'. -/
 @[simp, to_additive]
-theorem mulRight_symm [HasIsometricSmul Gᵐᵒᵖ G] (x : G) : (mulRight x).symm = mulRight x⁻¹ :=
+theorem mulRight_symm [IsometricSMul Gᵐᵒᵖ G] (x : G) : (mulRight x).symm = mulRight x⁻¹ :=
   ext fun y => rfl
 #align isometry_equiv.mul_right_symm IsometryEquiv.mulRight_symm
-#align isometry_equiv.add_right_symm IsometryEquiv.add_right_symm
-
+#align isometry_equiv.add_right_symm IsometryEquiv.addRight_symm
+
+/- warning: isometry_equiv.div_right -> IsometryEquiv.divRight is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.div_right IsometryEquiv.divRightₓ'. -/
 /-- Division `y ↦ y / x` as an `isometry_equiv`. -/
 @[to_additive "Subtraction `y ↦ y - x` as an `isometry_equiv`.", simps apply toEquiv]
-def divRight [HasIsometricSmul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
+def divRight [IsometricSMul Gᵐᵒᵖ G] (c : G) : G ≃ᵢ G
     where
   toEquiv := Equiv.divRight c
   isometry_toFun a b := edist_div_right a b c
 #align isometry_equiv.div_right IsometryEquiv.divRight
 #align isometry_equiv.sub_right IsometryEquiv.subRight
 
+/- warning: isometry_equiv.div_right_symm -> IsometryEquiv.divRight_symm is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (c : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.divRight.{u1} G _inst_2 _inst_5 _inst_6 c)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 c)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (c : G), Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.divRight.{u1} G _inst_2 _inst_5 _inst_6 c)) (IsometryEquiv.mulRight.{u1} G _inst_2 _inst_5 _inst_6 c)
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.div_right_symm IsometryEquiv.divRight_symmₓ'. -/
 @[simp, to_additive]
-theorem divRight_symm [HasIsometricSmul Gᵐᵒᵖ G] (c : G) : (divRight c).symm = mulRight c :=
+theorem divRight_symm [IsometricSMul Gᵐᵒᵖ G] (c : G) : (divRight c).symm = mulRight c :=
   ext fun y => rfl
 #align isometry_equiv.div_right_symm IsometryEquiv.divRight_symm
-#align isometry_equiv.sub_right_symm IsometryEquiv.sub_right_symm
+#align isometry_equiv.sub_right_symm IsometryEquiv.subRight_symm
 
-variable [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
+variable [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
 
+/- warning: isometry_equiv.div_left -> IsometryEquiv.divLeft is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], G -> (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5)
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.div_left IsometryEquiv.divLeftₓ'. -/
 /-- Division `y ↦ x / y` as an `isometry_equiv`. -/
 @[to_additive "Subtraction `y ↦ x - y` as an `isometry_equiv`.", simps apply symm_apply toEquiv]
 def divLeft (c : G) : G ≃ᵢ G where
@@ -227,6 +323,12 @@ def divLeft (c : G) : G ≃ᵢ G where
 
 variable (G)
 
+/- warning: isometry_equiv.inv -> IsometryEquiv.inv is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], IsometryEquiv.{u1, u1} G G _inst_5 _inst_5
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], IsometryEquiv.{u1, u1} G G _inst_5 _inst_5
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.inv IsometryEquiv.invₓ'. -/
 /-- Inversion `x ↦ x⁻¹` as an `isometry_equiv`. -/
 @[to_additive "Negation `x ↦ -x` as an `isometry_equiv`.", simps apply toEquiv]
 def inv : G ≃ᵢ G where
@@ -235,6 +337,12 @@ def inv : G ≃ᵢ G where
 #align isometry_equiv.inv IsometryEquiv.inv
 #align isometry_equiv.neg IsometryEquiv.neg
 
+/- warning: isometry_equiv.inv_symm -> IsometryEquiv.inv_symm is a dubious translation:
+lean 3 declaration is
+  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)) (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)
+but is expected to have type
+  forall (G : Type.{u1}) [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))], Eq.{succ u1} (IsometryEquiv.{u1, u1} G G _inst_5 _inst_5) (IsometryEquiv.symm.{u1, u1} G G _inst_5 _inst_5 (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)) (IsometryEquiv.inv.{u1} G _inst_2 _inst_5 _inst_6 _inst_7)
+Case conversion may be inaccurate. Consider using '#align isometry_equiv.inv_symm IsometryEquiv.inv_symmₓ'. -/
 @[simp, to_additive]
 theorem inv_symm : (inv G).symm = inv G :=
   rfl
@@ -245,185 +353,294 @@ end IsometryEquiv
 
 namespace Emetric
 
+#print EMetric.smul_ball /-
 @[simp, to_additive]
 theorem smul_ball (c : G) (x : X) (r : ℝ≥0∞) : c • ball x r = ball (c • x) r :=
-  (IsometryEquiv.constSmul c).image_emetric_ball _ _
-#align emetric.smul_ball Emetric.smul_ball
-#align emetric.vadd_ball Emetric.vadd_ball
+  (IsometryEquiv.constSMul c).image_emetric_ball _ _
+#align emetric.smul_ball EMetric.smul_ball
+#align emetric.vadd_ball EMetric.vadd_ball
+-/
 
+/- warning: emetric.preimage_smul_ball -> EMetric.preimage_smul_ball is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
+but is expected to have type
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1599 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1601 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1599 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1601) c) (EMetric.ball.{u2} X _inst_1 x r)) (EMetric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_ball EMetric.preimage_smul_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r :=
   by rw [preimage_smul, smul_ball]
-#align emetric.preimage_smul_ball Emetric.preimage_smul_ball
-#align emetric.preimage_vadd_ball Emetric.preimage_vadd_ball
+#align emetric.preimage_smul_ball EMetric.preimage_smul_ball
+#align emetric.preimage_vadd_ball EMetric.preimage_vadd_ball
 
+#print EMetric.smul_closedBall /-
 @[simp, to_additive]
 theorem smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) : c • closedBall x r = closedBall (c • x) r :=
-  (IsometryEquiv.constSmul c).image_emetric_closedBall _ _
-#align emetric.smul_closed_ball Emetric.smul_closedBall
-#align emetric.vadd_closed_ball Emetric.vadd_closedBall
+  (IsometryEquiv.constSMul c).image_emetric_closedBall _ _
+#align emetric.smul_closed_ball EMetric.smul_closedBall
+#align emetric.vadd_closed_ball EMetric.vadd_closedBall
+-/
 
+/- warning: emetric.preimage_smul_closed_ball -> EMetric.preimage_smul_closedBall is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
+but is expected to have type
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X _inst_1 (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : ENNReal), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1741 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1743 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1741 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1743) c) (EMetric.closedBall.{u2} X _inst_1 x r)) (EMetric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+Case conversion may be inaccurate. Consider using '#align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
     (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closed_ball]
-#align emetric.preimage_smul_closed_ball Emetric.preimage_smul_closedBall
-#align emetric.preimage_vadd_closed_ball Emetric.preimage_vadd_closedBall
+#align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBall
+#align emetric.preimage_vadd_closed_ball EMetric.preimage_vadd_closedBall
 
 variable [PseudoEMetricSpace G]
 
+/- warning: emetric.preimage_mul_left_ball -> EMetric.preimage_mul_left_ball is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1862 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1864 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1862 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.1864) a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ballₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_left_ball [HasIsometricSmul G G] (a b : G) (r : ℝ≥0∞) :
+theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
     (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
   preimage_smul_ball a b r
-#align emetric.preimage_mul_left_ball Emetric.preimage_mul_left_ball
-#align emetric.preimage_add_left_ball Emetric.preimage_add_left_ball
+#align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ball
+#align emetric.preimage_add_left_ball EMetric.preimage_add_left_ball
 
+/- warning: emetric.preimage_mul_right_ball -> EMetric.preimage_mul_right_ball is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.ball.{u1} G _inst_5 b r)) (EMetric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ballₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_right_ball [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
+theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
     (fun x => x * a) ⁻¹' ball b r = ball (b / a) r :=
   by
   rw [div_eq_mul_inv]
   exact preimage_smul_ball (MulOpposite.op a) b r
-#align emetric.preimage_mul_right_ball Emetric.preimage_mul_right_ball
-#align emetric.preimage_add_right_ball Emetric.preimage_add_right_ball
+#align emetric.preimage_mul_right_ball EMetric.preimage_mul_right_ball
+#align emetric.preimage_add_right_ball EMetric.preimage_add_right_ball
 
+/- warning: emetric.preimage_mul_left_closed_ball -> EMetric.preimage_mul_left_closedBall is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G _inst_5 (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2036 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2038 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2036 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2038) a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBallₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_left_closedBall [HasIsometricSmul G G] (a b : G) (r : ℝ≥0∞) :
+theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
     (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
   preimage_smul_closedBall a b r
-#align emetric.preimage_mul_left_closed_ball Emetric.preimage_mul_left_closedBall
-#align emetric.preimage_add_left_closed_ball Emetric.preimage_add_left_closedBall
+#align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBall
+#align emetric.preimage_add_left_closed_ball EMetric.preimage_add_left_closedBall
 
+/- warning: emetric.preimage_mul_right_closed_ball -> EMetric.preimage_mul_right_closedBall is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoEMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G _inst_5 (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : ENNReal), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (EMetric.closedBall.{u1} G _inst_5 b r)) (EMetric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+Case conversion may be inaccurate. Consider using '#align emetric.preimage_mul_right_closed_ball EMetric.preimage_mul_right_closedBallₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_right_closedBall [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
+theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ≥0∞) :
     (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r :=
   by
   rw [div_eq_mul_inv]
   exact preimage_smul_closed_ball (MulOpposite.op a) b r
-#align emetric.preimage_mul_right_closed_ball Emetric.preimage_mul_right_closedBall
-#align emetric.preimage_add_right_closed_ball Emetric.preimage_add_right_closedBall
+#align emetric.preimage_mul_right_closed_ball EMetric.preimage_mul_right_closedBall
+#align emetric.preimage_add_right_closed_ball EMetric.preimage_add_right_closedBall
 
 end Emetric
 
 end Emetric
 
+#print dist_smul /-
 @[simp, to_additive]
-theorem dist_smul [PseudoMetricSpace X] [SMul M X] [HasIsometricSmul M X] (c : M) (x y : X) :
+theorem dist_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M) (x y : X) :
     dist (c • x) (c • y) = dist x y :=
   (isometry_smul X c).dist_eq x y
 #align dist_smul dist_smul
 #align dist_vadd dist_vadd
+-/
 
+#print nndist_smul /-
 @[simp, to_additive]
-theorem nndist_smul [PseudoMetricSpace X] [SMul M X] [HasIsometricSmul M X] (c : M) (x y : X) :
+theorem nndist_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M) (x y : X) :
     nndist (c • x) (c • y) = nndist x y :=
   (isometry_smul X c).nndist_eq x y
 #align nndist_smul nndist_smul
 #align nndist_vadd nndist_vadd
+-/
 
+#print dist_mul_left /-
 @[simp, to_additive]
-theorem dist_mul_left [PseudoMetricSpace M] [Mul M] [HasIsometricSmul M M] (a b c : M) :
+theorem dist_mul_left [PseudoMetricSpace M] [Mul M] [IsometricSMul M M] (a b c : M) :
     dist (a * b) (a * c) = dist b c :=
   dist_smul a b c
 #align dist_mul_left dist_mul_left
 #align dist_add_left dist_add_left
+-/
 
+#print nndist_mul_left /-
 @[simp, to_additive]
-theorem nndist_mul_left [PseudoMetricSpace M] [Mul M] [HasIsometricSmul M M] (a b c : M) :
+theorem nndist_mul_left [PseudoMetricSpace M] [Mul M] [IsometricSMul M M] (a b c : M) :
     nndist (a * b) (a * c) = nndist b c :=
   nndist_smul a b c
 #align nndist_mul_left nndist_mul_left
 #align nndist_add_left nndist_add_left
+-/
 
+#print dist_mul_right /-
 @[simp, to_additive]
-theorem dist_mul_right [Mul M] [PseudoMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a b c : M) :
+theorem dist_mul_right [Mul M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     dist (a * c) (b * c) = dist a b :=
   dist_smul (MulOpposite.op c) a b
 #align dist_mul_right dist_mul_right
 #align dist_add_right dist_add_right
+-/
 
+#print nndist_mul_right /-
 @[simp, to_additive]
-theorem nndist_mul_right [PseudoMetricSpace M] [Mul M] [HasIsometricSmul Mᵐᵒᵖ M] (a b c : M) :
+theorem nndist_mul_right [PseudoMetricSpace M] [Mul M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
     nndist (a * c) (b * c) = nndist a b :=
   nndist_smul (MulOpposite.op c) a b
 #align nndist_mul_right nndist_mul_right
 #align nndist_add_right nndist_add_right
+-/
 
+/- warning: dist_div_right -> dist_div_right is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} Real (Dist.dist.{u1} M (PseudoMetricSpace.toHasDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) b c)) (Dist.dist.{u1} M (PseudoMetricSpace.toHasDist.{u1} M _inst_2) a b)
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} Real (Dist.dist.{u1} M (PseudoMetricSpace.toDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) b c)) (Dist.dist.{u1} M (PseudoMetricSpace.toDist.{u1} M _inst_2) a b)
+Case conversion may be inaccurate. Consider using '#align dist_div_right dist_div_rightₓ'. -/
 @[simp, to_additive]
-theorem dist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
-    (a b c : M) : dist (a / c) (b / c) = dist a b := by simp only [div_eq_mul_inv, dist_mul_right]
+theorem dist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
+    dist (a / c) (b / c) = dist a b := by simp only [div_eq_mul_inv, dist_mul_right]
 #align dist_div_right dist_div_right
 #align dist_sub_right dist_sub_right
 
+/- warning: nndist_div_right -> nndist_div_right is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toHasMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} NNReal (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toHasDiv.{u1} M _inst_1)) b c)) (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) a b)
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_1 : DivInvMonoid.{u1} M] [_inst_2 : PseudoMetricSpace.{u1} M] [_inst_3 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M (PseudoMetricSpace.toPseudoEMetricSpace.{u1} M _inst_2) (Mul.toHasOppositeSMul.{u1} M (MulOneClass.toMul.{u1} M (Monoid.toMulOneClass.{u1} M (DivInvMonoid.toMonoid.{u1} M _inst_1))))] (a : M) (b : M) (c : M), Eq.{1} NNReal (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) a c) (HDiv.hDiv.{u1, u1, u1} M M M (instHDiv.{u1} M (DivInvMonoid.toDiv.{u1} M _inst_1)) b c)) (NNDist.nndist.{u1} M (PseudoMetricSpace.toNNDist.{u1} M _inst_2) a b)
+Case conversion may be inaccurate. Consider using '#align nndist_div_right nndist_div_rightₓ'. -/
 @[simp, to_additive]
-theorem nndist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
-    (a b c : M) : nndist (a / c) (b / c) = nndist a b := by
-  simp only [div_eq_mul_inv, nndist_mul_right]
+theorem nndist_div_right [DivInvMonoid M] [PseudoMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] (a b c : M) :
+    nndist (a / c) (b / c) = nndist a b := by simp only [div_eq_mul_inv, nndist_mul_right]
 #align nndist_div_right nndist_div_right
 #align nndist_sub_right nndist_sub_right
 
+/- warning: dist_inv_inv -> dist_inv_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) a) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) b)) (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) a b)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) a) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) b)) (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) a b)
+Case conversion may be inaccurate. Consider using '#align dist_inv_inv dist_inv_invₓ'. -/
 @[simp, to_additive]
-theorem dist_inv_inv [Group G] [PseudoMetricSpace G] [HasIsometricSmul G G]
-    [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) : dist a⁻¹ b⁻¹ = dist a b :=
+theorem dist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
+    (a b : G) : dist a⁻¹ b⁻¹ = dist a b :=
   (IsometryEquiv.inv G).dist_eq a b
 #align dist_inv_inv dist_inv_inv
 #align dist_neg_neg dist_neg_neg
 
+/- warning: nndist_inv_inv -> nndist_inv_inv is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) a) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) b)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) a b)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) a) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_1)))) b)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) a b)
+Case conversion may be inaccurate. Consider using '#align nndist_inv_inv nndist_inv_invₓ'. -/
 @[simp, to_additive]
-theorem nndist_inv_inv [Group G] [PseudoMetricSpace G] [HasIsometricSmul G G]
-    [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) : nndist a⁻¹ b⁻¹ = nndist a b :=
+theorem nndist_inv_inv [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
+    (a b : G) : nndist a⁻¹ b⁻¹ = nndist a b :=
   (IsometryEquiv.inv G).nndist_eq a b
 #align nndist_inv_inv nndist_inv_inv
 #align nndist_neg_neg nndist_neg_neg
 
+/- warning: dist_div_left -> dist_div_left is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (Dist.dist.{u1} G (PseudoMetricSpace.toHasDist.{u1} G _inst_2) b c)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} Real (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (Dist.dist.{u1} G (PseudoMetricSpace.toDist.{u1} G _inst_2) b c)
+Case conversion may be inaccurate. Consider using '#align dist_div_left dist_div_leftₓ'. -/
 @[simp, to_additive]
-theorem dist_div_left [Group G] [PseudoMetricSpace G] [HasIsometricSmul G G]
-    [HasIsometricSmul Gᵐᵒᵖ G] (a b c : G) : dist (a / b) (a / c) = dist b c := by
-  simp [div_eq_mul_inv]
+theorem dist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
+    (a b c : G) : dist (a / b) (a / c) = dist b c := by simp [div_eq_mul_inv]
 #align dist_div_left dist_div_left
 #align dist_sub_left dist_sub_left
 
+/- warning: nndist_div_left -> nndist_div_left is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) b c)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_1 : Group.{u1} G] [_inst_2 : PseudoMetricSpace.{u1} G] [_inst_3 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))))] [_inst_4 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_2) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1)))))] (a : G) (b : G) (c : G), Eq.{1} NNReal (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a b) (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_1))) a c)) (NNDist.nndist.{u1} G (PseudoMetricSpace.toNNDist.{u1} G _inst_2) b c)
+Case conversion may be inaccurate. Consider using '#align nndist_div_left nndist_div_leftₓ'. -/
 @[simp, to_additive]
-theorem nndist_div_left [Group G] [PseudoMetricSpace G] [HasIsometricSmul G G]
-    [HasIsometricSmul Gᵐᵒᵖ G] (a b c : G) : nndist (a / b) (a / c) = nndist b c := by
-  simp [div_eq_mul_inv]
+theorem nndist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G] [IsometricSMul Gᵐᵒᵖ G]
+    (a b c : G) : nndist (a / b) (a / c) = nndist b c := by simp [div_eq_mul_inv]
 #align nndist_div_left nndist_div_left
 #align nndist_sub_left nndist_sub_left
 
 namespace Metric
 
-variable [PseudoMetricSpace X] [Group G] [MulAction G X] [HasIsometricSmul G X]
+variable [PseudoMetricSpace X] [Group G] [MulAction G X] [IsometricSMul G X]
 
+#print Metric.smul_ball /-
 @[simp, to_additive]
 theorem smul_ball (c : G) (x : X) (r : ℝ) : c • ball x r = ball (c • x) r :=
-  (IsometryEquiv.constSmul c).image_ball _ _
+  (IsometryEquiv.constSMul c).image_ball _ _
 #align metric.smul_ball Metric.smul_ball
 #align metric.vadd_ball Metric.vadd_ball
+-/
 
+/- warning: metric.preimage_smul_ball -> Metric.preimage_smul_ball is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
+but is expected to have type
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2854 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2856 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2854 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2856) c) (Metric.ball.{u2} X _inst_1 x r)) (Metric.ball.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_ball Metric.preimage_smul_ballₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
   rw [preimage_smul, smul_ball]
 #align metric.preimage_smul_ball Metric.preimage_smul_ball
 #align metric.preimage_vadd_ball Metric.preimage_vadd_ball
 
+#print Metric.smul_closedBall /-
 @[simp, to_additive]
 theorem smul_closedBall (c : G) (x : X) (r : ℝ) : c • closedBall x r = closedBall (c • x) r :=
-  (IsometryEquiv.constSmul c).image_closedBall _ _
+  (IsometryEquiv.constSMul c).image_closedBall _ _
 #align metric.smul_closed_ball Metric.smul_closedBall
 #align metric.vadd_closed_ball Metric.vadd_closedBall
+-/
 
+/- warning: metric.preimage_smul_closed_ball -> Metric.preimage_smul_closedBall is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
+but is expected to have type
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2996 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2998 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2996 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.2998) c) (Metric.closedBall.{u2} X _inst_1 x r)) (Metric.closedBall.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBallₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ) :
     (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closed_ball]
 #align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBall
 #align metric.preimage_vadd_closed_ball Metric.preimage_vadd_closedBall
 
+#print Metric.smul_sphere /-
 @[simp, to_additive]
 theorem smul_sphere (c : G) (x : X) (r : ℝ) : c • sphere x r = sphere (c • x) r :=
-  (IsometryEquiv.constSmul c).image_sphere _ _
+  (IsometryEquiv.constSMul c).image_sphere _ _
 #align metric.smul_sphere Metric.smul_sphere
 #align metric.vadd_sphere Metric.vadd_sphere
+-/
 
+/- warning: metric.preimage_smul_sphere -> Metric.preimage_smul_sphere is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (SMul.smul.{u1, u2} G X (MulAction.toHasSmul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) c) x) r)
+but is expected to have type
+  forall {G : Type.{u1}} {X : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u2} X] [_inst_2 : Group.{u1} G] [_inst_3 : MulAction.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))] [_inst_4 : IsometricSMul.{u1, u2} G X (PseudoMetricSpace.toPseudoEMetricSpace.{u2} X _inst_1) (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)] (c : G) (x : X) (r : Real), Eq.{succ u2} (Set.{u2} X) (Set.preimage.{u2, u2} X X ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3138 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3140 : X) => HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3138 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3140) c) (Metric.sphere.{u2} X _inst_1 x r)) (Metric.sphere.{u2} X _inst_1 (HSMul.hSMul.{u1, u2, u2} G X X (instHSMul.{u1, u2} G X (MulAction.toSMul.{u1, u2} G X (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) _inst_3)) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) c) x) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_smul_sphere Metric.preimage_smul_sphereₓ'. -/
 @[simp, to_additive]
 theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
     (· • ·) c ⁻¹' sphere x r = sphere (c⁻¹ • x) r := by rw [preimage_smul, smul_sphere]
@@ -432,15 +649,27 @@ theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
 
 variable [PseudoMetricSpace G]
 
+/- warning: metric.preimage_mul_left_ball -> Metric.preimage_mul_left_ball is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3259 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3261 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3259 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3261) a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_left_ball Metric.preimage_mul_left_ballₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_left_ball [HasIsometricSmul G G] (a b : G) (r : ℝ) :
+theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ) :
     (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
   preimage_smul_ball a b r
 #align metric.preimage_mul_left_ball Metric.preimage_mul_left_ball
 #align metric.preimage_add_left_ball Metric.preimage_add_left_ball
 
+/- warning: metric.preimage_mul_right_ball -> Metric.preimage_mul_right_ball is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.ball.{u1} G _inst_5 b r)) (Metric.ball.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_right_ball Metric.preimage_mul_right_ballₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_right_ball [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
+theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
     (fun x => x * a) ⁻¹' ball b r = ball (b / a) r :=
   by
   rw [div_eq_mul_inv]
@@ -448,15 +677,27 @@ theorem preimage_mul_right_ball [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) (r : 
 #align metric.preimage_mul_right_ball Metric.preimage_mul_right_ball
 #align metric.preimage_add_right_ball Metric.preimage_add_right_ball
 
+/- warning: metric.preimage_mul_left_closed_ball -> Metric.preimage_mul_left_closedBall is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (DivInvMonoid.toHasInv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) a) b) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} G G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (MulAction.toSMul.{u1, u1} G G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)) (Monoid.toMulAction.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G ((fun (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3433 : G) (x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3435 : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3433 x._@.Mathlib.Topology.MetricSpace.IsometricSMul._hyg.3435) a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) (Inv.inv.{u1} G (InvOneClass.toInv.{u1} G (DivInvOneMonoid.toInvOneClass.{u1} G (DivisionMonoid.toDivInvOneMonoid.{u1} G (Group.toDivisionMonoid.{u1} G _inst_2)))) a) b) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBallₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_left_closedBall [HasIsometricSmul G G] (a b : G) (r : ℝ) :
+theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ) :
     (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
   preimage_smul_closedBall a b r
 #align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBall
 #align metric.preimage_add_left_closed_ball Metric.preimage_add_left_closedBall
 
+/- warning: metric.preimage_mul_right_closed_ball -> Metric.preimage_mul_right_closedBall is a dubious translation:
+lean 3 declaration is
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toHasMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toHasDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+but is expected to have type
+  forall {G : Type.{u1}} [_inst_2 : Group.{u1} G] [_inst_5 : PseudoMetricSpace.{u1} G] [_inst_6 : IsometricSMul.{u1, u1} (MulOpposite.{u1} G) G (PseudoMetricSpace.toPseudoEMetricSpace.{u1} G _inst_5) (Mul.toHasOppositeSMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2)))))] (a : G) (b : G) (r : Real), Eq.{succ u1} (Set.{u1} G) (Set.preimage.{u1, u1} G G (fun (x : G) => HMul.hMul.{u1, u1, u1} G G G (instHMul.{u1} G (MulOneClass.toMul.{u1} G (Monoid.toMulOneClass.{u1} G (DivInvMonoid.toMonoid.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))))) x a) (Metric.closedBall.{u1} G _inst_5 b r)) (Metric.closedBall.{u1} G _inst_5 (HDiv.hDiv.{u1, u1, u1} G G G (instHDiv.{u1} G (DivInvMonoid.toDiv.{u1} G (Group.toDivInvMonoid.{u1} G _inst_2))) b a) r)
+Case conversion may be inaccurate. Consider using '#align metric.preimage_mul_right_closed_ball Metric.preimage_mul_right_closedBallₓ'. -/
 @[simp, to_additive]
-theorem preimage_mul_right_closedBall [HasIsometricSmul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
+theorem preimage_mul_right_closedBall [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ) :
     (fun x => x * a) ⁻¹' closedBall b r = closedBall (b / a) r :=
   by
   rw [div_eq_mul_inv]
@@ -468,99 +709,139 @@ end Metric
 
 section Instances
 
-variable {Y : Type _} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [SMul M X]
-  [HasIsometricSmul M X]
+variable {Y : Type _} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [SMul M X] [IsometricSMul M X]
 
 @[to_additive]
-instance [SMul M Y] [HasIsometricSmul M Y] : HasIsometricSmul M (X × Y) :=
+instance [SMul M Y] [IsometricSMul M Y] : IsometricSMul M (X × Y) :=
   ⟨fun c => (isometry_smul X c).Prod_map (isometry_smul Y c)⟩
 
+#print Prod.isometricSMul' /-
 @[to_additive]
-instance Prod.has_isometric_smul' {N} [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] [Mul N]
-    [PseudoEMetricSpace N] [HasIsometricSmul N N] : HasIsometricSmul (M × N) (M × N) :=
+instance Prod.isometricSMul' {N} [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] [Mul N]
+    [PseudoEMetricSpace N] [IsometricSMul N N] : IsometricSMul (M × N) (M × N) :=
   ⟨fun c => (isometry_smul M c.1).Prod_map (isometry_smul N c.2)⟩
-#align prod.has_isometric_smul' Prod.has_isometric_smul'
-#align prod.has_isometric_vadd' Prod.has_isometric_vadd'
+#align prod.has_isometric_smul' Prod.isometricSMul'
+#align prod.has_isometric_vadd' Prod.isometricVAdd'
+-/
 
+#print Prod.isometricSMul'' /-
 @[to_additive]
-instance Prod.has_isometric_smul'' {N} [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
-    [Mul N] [PseudoEMetricSpace N] [HasIsometricSmul Nᵐᵒᵖ N] :
-    HasIsometricSmul (M × N)ᵐᵒᵖ (M × N) :=
+instance Prod.isometricSMul'' {N} [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] [Mul N]
+    [PseudoEMetricSpace N] [IsometricSMul Nᵐᵒᵖ N] : IsometricSMul (M × N)ᵐᵒᵖ (M × N) :=
   ⟨fun c => (isometry_mul_right c.unop.1).Prod_map (isometry_mul_right c.unop.2)⟩
-#align prod.has_isometric_smul'' Prod.has_isometric_smul''
-#align prod.has_isometric_vadd'' Prod.has_isometric_vadd''
+#align prod.has_isometric_smul'' Prod.isometricSMul''
+#align prod.has_isometric_vadd'' Prod.isometricVAdd''
+-/
 
+#print Units.isometricSMul /-
 @[to_additive]
-instance Units.hasIsometricSmul [Monoid M] : HasIsometricSmul Mˣ X :=
+instance Units.isometricSMul [Monoid M] : IsometricSMul Mˣ X :=
   ⟨fun c => by convert isometry_smul X (c : M)⟩
-#align units.has_isometric_smul Units.hasIsometricSmul
-#align add_units.has_isometric_vadd AddUnits.has_isometric_vadd
+#align units.has_isometric_smul Units.isometricSMul
+#align add_units.has_isometric_vadd AddUnits.isometricVAdd
+-/
 
 @[to_additive]
-instance : HasIsometricSmul M Xᵐᵒᵖ :=
+instance : IsometricSMul M Xᵐᵒᵖ :=
   ⟨fun c x y => by simpa only using edist_smul_left c x.unop y.unop⟩
 
+#print ULift.isometricSMul /-
 @[to_additive]
-instance ULift.hasIsometricSmul : HasIsometricSmul (ULift M) X :=
+instance ULift.isometricSMul : IsometricSMul (ULift M) X :=
   ⟨fun c => by simpa only using isometry_smul X c.down⟩
-#align ulift.has_isometric_smul ULift.hasIsometricSmul
-#align ulift.has_isometric_vadd ULift.has_isometric_vadd
+#align ulift.has_isometric_smul ULift.isometricSMul
+#align ulift.has_isometric_vadd ULift.isometricVAdd
+-/
 
+#print ULift.isometricSMul' /-
 @[to_additive]
-instance ULift.has_isometric_smul' : HasIsometricSmul M (ULift X) :=
+instance ULift.isometricSMul' : IsometricSMul M (ULift X) :=
   ⟨fun c x y => by simpa only using edist_smul_left c x.1 y.1⟩
-#align ulift.has_isometric_smul' ULift.has_isometric_smul'
-#align ulift.has_isometric_vadd' ULift.has_isometric_vadd'
+#align ulift.has_isometric_smul' ULift.isometricSMul'
+#align ulift.has_isometric_vadd' ULift.isometricVAdd'
+-/
 
 @[to_additive]
 instance {ι} {X : ι → Type _} [Fintype ι] [∀ i, SMul M (X i)] [∀ i, PseudoEMetricSpace (X i)]
-    [∀ i, HasIsometricSmul M (X i)] : HasIsometricSmul M (∀ i, X i) :=
+    [∀ i, IsometricSMul M (X i)] : IsometricSMul M (∀ i, X i) :=
   ⟨fun c => isometry_dcomp (fun i => (· • ·) c) fun i => isometry_smul (X i) c⟩
 
+#print Pi.isometricSMul' /-
 @[to_additive]
-instance Pi.has_isometric_smul' {ι} {M X : ι → Type _} [Fintype ι] [∀ i, SMul (M i) (X i)]
-    [∀ i, PseudoEMetricSpace (X i)] [∀ i, HasIsometricSmul (M i) (X i)] :
-    HasIsometricSmul (∀ i, M i) (∀ i, X i) :=
+instance Pi.isometricSMul' {ι} {M X : ι → Type _} [Fintype ι] [∀ i, SMul (M i) (X i)]
+    [∀ i, PseudoEMetricSpace (X i)] [∀ i, IsometricSMul (M i) (X i)] :
+    IsometricSMul (∀ i, M i) (∀ i, X i) :=
   ⟨fun c => isometry_dcomp (fun i => (· • ·) (c i)) fun i => isometry_smul _ _⟩
-#align pi.has_isometric_smul' Pi.has_isometric_smul'
-#align pi.has_isometric_vadd' Pi.has_isometric_vadd'
+#align pi.has_isometric_smul' Pi.isometricSMul'
+#align pi.has_isometric_vadd' Pi.isometricVAdd'
+-/
 
+#print Pi.isometricSMul'' /-
 @[to_additive]
-instance Pi.has_isometric_smul'' {ι} {M : ι → Type _} [Fintype ι] [∀ i, Mul (M i)]
-    [∀ i, PseudoEMetricSpace (M i)] [∀ i, HasIsometricSmul (M i)ᵐᵒᵖ (M i)] :
-    HasIsometricSmul (∀ i, M i)ᵐᵒᵖ (∀ i, M i) :=
+instance Pi.isometricSMul'' {ι} {M : ι → Type _} [Fintype ι] [∀ i, Mul (M i)]
+    [∀ i, PseudoEMetricSpace (M i)] [∀ i, IsometricSMul (M i)ᵐᵒᵖ (M i)] :
+    IsometricSMul (∀ i, M i)ᵐᵒᵖ (∀ i, M i) :=
   ⟨fun c => isometry_dcomp (fun i (x : M i) => x * c.unop i) fun i => isometry_mul_right _⟩
-#align pi.has_isometric_smul'' Pi.has_isometric_smul''
-#align pi.has_isometric_vadd'' Pi.has_isometric_vadd''
+#align pi.has_isometric_smul'' Pi.isometricSMul''
+#align pi.has_isometric_vadd'' Pi.isometricVAdd''
+-/
 
-instance Additive.hasIsometricVadd : HasIsometricVadd (Additive M) X :=
+#print Additive.isometricVAdd /-
+instance Additive.isometricVAdd : IsometricVAdd (Additive M) X :=
   ⟨fun c => isometry_smul X c.toMul⟩
-#align additive.has_isometric_vadd Additive.hasIsometricVadd
+#align additive.has_isometric_vadd Additive.isometricVAdd
+-/
 
-instance Additive.has_isometric_vadd' [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] :
-    HasIsometricVadd (Additive M) (Additive M) :=
+/- warning: additive.has_isometric_vadd' -> Additive.isometricVAdd' is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} M M _inst_6 (Mul.toSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (Additive.{u1} M) (Additive.{u1} M) (Additive.pseudoEmetricSpace.{u1} M _inst_6) (Add.toVAdd.{u1} (Additive.{u1} M) (Additive.hasAdd.{u1} M _inst_5))
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} M M _inst_6 (Mul.toSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (Additive.{u1} M) (Additive.{u1} M) (instPseudoEMetricSpaceAdditive.{u1} M _inst_6) (Add.toVAdd.{u1} (Additive.{u1} M) (Additive.add.{u1} M _inst_5))
+Case conversion may be inaccurate. Consider using '#align additive.has_isometric_vadd' Additive.isometricVAdd'ₓ'. -/
+instance Additive.isometricVAdd' [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] :
+    IsometricVAdd (Additive M) (Additive M) :=
   ⟨fun c x y => edist_smul_left c.toMul x.toMul y.toMul⟩
-#align additive.has_isometric_vadd' Additive.has_isometric_vadd'
-
-instance Additive.has_isometric_vadd'' [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] :
-    HasIsometricVadd (Additive M)ᵃᵒᵖ (Additive M) :=
+#align additive.has_isometric_vadd' Additive.isometricVAdd'
+
+/- warning: additive.has_isometric_vadd'' -> Additive.isometricVAdd'' is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (AddOpposite.{u1} (Additive.{u1} M)) (Additive.{u1} M) (Additive.pseudoEmetricSpace.{u1} M _inst_6) (Add.toHasOppositeVAdd.{u1} (Additive.{u1} M) (Additive.hasAdd.{u1} M _inst_5))
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_5 : Mul.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricSMul.{u1, u1} (MulOpposite.{u1} M) M _inst_6 (Mul.toHasOppositeSMul.{u1} M _inst_5)], IsometricVAdd.{u1, u1} (AddOpposite.{u1} (Additive.{u1} M)) (Additive.{u1} M) (instPseudoEMetricSpaceAdditive.{u1} M _inst_6) (Add.toHasOppositeVAdd.{u1} (Additive.{u1} M) (Additive.add.{u1} M _inst_5))
+Case conversion may be inaccurate. Consider using '#align additive.has_isometric_vadd'' Additive.isometricVAdd''ₓ'. -/
+instance Additive.isometricVAdd'' [Mul M] [PseudoEMetricSpace M] [IsometricSMul Mᵐᵒᵖ M] :
+    IsometricVAdd (Additive M)ᵃᵒᵖ (Additive M) :=
   ⟨fun c x y => edist_smul_left (MulOpposite.op c.unop.toMul) x.toMul y.toMul⟩
-#align additive.has_isometric_vadd'' Additive.has_isometric_vadd''
+#align additive.has_isometric_vadd'' Additive.isometricVAdd''
 
-instance Multiplicative.hasIsometricSmul {M X} [VAdd M X] [PseudoEMetricSpace X]
-    [HasIsometricVadd M X] : HasIsometricSmul (Multiplicative M) X :=
+#print Multiplicative.isometricSMul /-
+instance Multiplicative.isometricSMul {M X} [VAdd M X] [PseudoEMetricSpace X] [IsometricVAdd M X] :
+    IsometricSMul (Multiplicative M) X :=
   ⟨fun c => isometry_vadd X c.toAdd⟩
-#align multiplicative.has_isometric_smul Multiplicative.hasIsometricSmul
+#align multiplicative.has_isometric_smul Multiplicative.isometricSMul
+-/
 
-instance Multiplicative.has_isometric_smul' [Add M] [PseudoEMetricSpace M] [HasIsometricVadd M M] :
-    HasIsometricSmul (Multiplicative M) (Multiplicative M) :=
+/- warning: multiplicative.has_isometric_smul' -> Multiplicative.isometricSMul' is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} M M _inst_6 (Add.toVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (Multiplicative.{u1} M) (Multiplicative.{u1} M) (Multiplicative.pseudoEmetricSpace.{u1} M _inst_6) (Mul.toSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.hasMul.{u1} M _inst_5))
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} M M _inst_6 (Add.toVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (Multiplicative.{u1} M) (Multiplicative.{u1} M) (instPseudoEMetricSpaceMultiplicative.{u1} M _inst_6) (Mul.toSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.mul.{u1} M _inst_5))
+Case conversion may be inaccurate. Consider using '#align multiplicative.has_isometric_smul' Multiplicative.isometricSMul'ₓ'. -/
+instance Multiplicative.isometricSMul' [Add M] [PseudoEMetricSpace M] [IsometricVAdd M M] :
+    IsometricSMul (Multiplicative M) (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left c.toAdd x.toAdd y.toAdd⟩
-#align multiplicative.has_isometric_smul' Multiplicative.has_isometric_smul'
-
-instance Multiplicative.has_isometric_vadd'' [Add M] [PseudoEMetricSpace M]
-    [HasIsometricVadd Mᵃᵒᵖ M] : HasIsometricSmul (Multiplicative M)ᵐᵒᵖ (Multiplicative M) :=
+#align multiplicative.has_isometric_smul' Multiplicative.isometricSMul'
+
+/- warning: multiplicative.has_isometric_vadd'' -> Multiplicative.isometricVAdd'' is a dubious translation:
+lean 3 declaration is
+  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} (AddOpposite.{u1} M) M _inst_6 (Add.toHasOppositeVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (MulOpposite.{u1} (Multiplicative.{u1} M)) (Multiplicative.{u1} M) (Multiplicative.pseudoEmetricSpace.{u1} M _inst_6) (Mul.toHasOppositeSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.hasMul.{u1} M _inst_5))
+but is expected to have type
+  forall {M : Type.{u1}} [_inst_5 : Add.{u1} M] [_inst_6 : PseudoEMetricSpace.{u1} M] [_inst_7 : IsometricVAdd.{u1, u1} (AddOpposite.{u1} M) M _inst_6 (Add.toHasOppositeVAdd.{u1} M _inst_5)], IsometricSMul.{u1, u1} (MulOpposite.{u1} (Multiplicative.{u1} M)) (Multiplicative.{u1} M) (instPseudoEMetricSpaceMultiplicative.{u1} M _inst_6) (Mul.toHasOppositeSMul.{u1} (Multiplicative.{u1} M) (Multiplicative.mul.{u1} M _inst_5))
+Case conversion may be inaccurate. Consider using '#align multiplicative.has_isometric_vadd'' Multiplicative.isometricVAdd''ₓ'. -/
+instance Multiplicative.isometricVAdd'' [Add M] [PseudoEMetricSpace M] [IsometricVAdd Mᵃᵒᵖ M] :
+    IsometricSMul (Multiplicative M)ᵐᵒᵖ (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left (AddOpposite.op c.unop.toAdd) x.toAdd y.toAdd⟩
-#align multiplicative.has_isometric_vadd'' Multiplicative.has_isometric_vadd''
+#align multiplicative.has_isometric_vadd'' Multiplicative.isometricVAdd''
 
 end Instances
 
Diff
@@ -41,14 +41,14 @@ variable (M : Type u) (G : Type v) (X : Type w)
 
 /- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`isometry_vadd] [] -/
 /-- An additive action is isometric if each map `x ↦ c +ᵥ x` is an isometry. -/
-class HasIsometricVadd [PseudoEmetricSpace X] [VAdd M X] : Prop where
+class HasIsometricVadd [PseudoEMetricSpace X] [VAdd M X] : Prop where
   isometry_vadd : ∀ c : M, Isometry ((· +ᵥ ·) c : X → X)
 #align has_isometric_vadd HasIsometricVadd
 
 /- ./././Mathport/Syntax/Translate/Command.lean:388:30: infer kinds are unsupported in Lean 4: #[`isometry_smul] [] -/
 /-- A multiplicative action is isometric if each map `x ↦ c • x` is an isometry. -/
 @[to_additive]
-class HasIsometricSmul [PseudoEmetricSpace X] [SMul M X] : Prop where
+class HasIsometricSmul [PseudoEMetricSpace X] [SMul M X] : Prop where
   isometry_smul : ∀ c : M, Isometry ((· • ·) c : X → X)
 #align has_isometric_smul HasIsometricSmul
 #align has_isometric_vadd HasIsometricVadd
@@ -58,14 +58,14 @@ export HasIsometricVadd (isometry_vadd)
 export HasIsometricSmul (isometry_smul)
 
 @[to_additive]
-instance (priority := 100) HasIsometricSmul.to_continuousConstSMul [PseudoEmetricSpace X] [SMul M X]
+instance (priority := 100) HasIsometricSmul.to_continuousConstSMul [PseudoEMetricSpace X] [SMul M X]
     [HasIsometricSmul M X] : ContinuousConstSMul M X :=
   ⟨fun c => (isometry_smul X c).Continuous⟩
 #align has_isometric_smul.to_has_continuous_const_smul HasIsometricSmul.to_continuousConstSMul
 #align has_isometric_vadd.to_has_continuous_const_vadd HasIsometricVadd.to_has_continuous_const_vadd
 
 @[to_additive]
-instance (priority := 100) HasIsometricSmul.opposite_of_comm [PseudoEmetricSpace X] [SMul M X]
+instance (priority := 100) HasIsometricSmul.opposite_of_comm [PseudoEMetricSpace X] [SMul M X]
     [SMul Mᵐᵒᵖ X] [IsCentralScalar M X] [HasIsometricSmul M X] : HasIsometricSmul Mᵐᵒᵖ X :=
   ⟨fun c x y => by simpa only [← op_smul_eq_smul] using isometry_smul X c.unop x y⟩
 #align has_isometric_smul.opposite_of_comm HasIsometricSmul.opposite_of_comm
@@ -75,7 +75,7 @@ variable {M G X}
 
 section Emetric
 
-variable [PseudoEmetricSpace X] [Group G] [MulAction G X] [HasIsometricSmul G X]
+variable [PseudoEMetricSpace X] [Group G] [MulAction G X] [HasIsometricSmul G X]
 
 @[simp, to_additive]
 theorem edist_smul_left [SMul M X] [HasIsometricSmul M X] (c : M) (x y : X) :
@@ -85,42 +85,42 @@ theorem edist_smul_left [SMul M X] [HasIsometricSmul M X] (c : M) (x y : X) :
 #align edist_vadd_left edist_vadd_left
 
 @[to_additive]
-theorem isometry_mul_left [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul M M] (a : M) :
+theorem isometry_mul_left [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] (a : M) :
     Isometry ((· * ·) a) :=
   isometry_smul M a
 #align isometry_mul_left isometry_mul_left
 #align isometry_add_left isometry_add_left
 
 @[simp, to_additive]
-theorem edist_mul_left [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul M M] (a b c : M) :
+theorem edist_mul_left [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] (a b c : M) :
     edist (a * b) (a * c) = edist b c :=
   isometry_mul_left a b c
 #align edist_mul_left edist_mul_left
 #align edist_add_left edist_add_left
 
 @[to_additive]
-theorem isometry_mul_right [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a : M) :
+theorem isometry_mul_right [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a : M) :
     Isometry fun x => x * a :=
   isometry_smul M (MulOpposite.op a)
 #align isometry_mul_right isometry_mul_right
 #align isometry_add_right isometry_add_right
 
 @[simp, to_additive]
-theorem edist_mul_right [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a b c : M) :
+theorem edist_mul_right [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] (a b c : M) :
     edist (a * c) (b * c) = edist a b :=
   isometry_mul_right c a b
 #align edist_mul_right edist_mul_right
 #align edist_add_right edist_add_right
 
 @[simp, to_additive]
-theorem edist_div_right [DivInvMonoid M] [PseudoEmetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
+theorem edist_div_right [DivInvMonoid M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
     (a b c : M) : edist (a / c) (b / c) = edist a b := by
   simp only [div_eq_mul_inv, edist_mul_right]
 #align edist_div_right edist_div_right
 #align edist_sub_right edist_sub_right
 
 @[simp, to_additive]
-theorem edist_inv_inv [PseudoEmetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
+theorem edist_inv_inv [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
     (a b : G) : edist a⁻¹ b⁻¹ = edist a b := by
   rw [← edist_mul_left a, ← edist_mul_right _ _ b, mul_right_inv, one_mul, inv_mul_cancel_right,
     edist_comm]
@@ -128,20 +128,20 @@ theorem edist_inv_inv [PseudoEmetricSpace G] [HasIsometricSmul G G] [HasIsometri
 #align edist_neg_neg edist_neg_neg
 
 @[to_additive]
-theorem isometry_inv [PseudoEmetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G] :
+theorem isometry_inv [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G] :
     Isometry (Inv.inv : G → G) :=
   edist_inv_inv
 #align isometry_inv isometry_inv
 #align isometry_neg isometry_neg
 
 @[to_additive]
-theorem edist_inv [PseudoEmetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
+theorem edist_inv [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
     (x y : G) : edist x⁻¹ y = edist x y⁻¹ := by rw [← edist_inv_inv, inv_inv]
 #align edist_inv edist_inv
 #align edist_neg edist_neg
 
 @[simp, to_additive]
-theorem edist_div_left [PseudoEmetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
+theorem edist_div_left [PseudoEMetricSpace G] [HasIsometricSmul G G] [HasIsometricSmul Gᵐᵒᵖ G]
     (a b c : G) : edist (a / b) (a / c) = edist b c := by
   rw [div_eq_mul_inv, div_eq_mul_inv, edist_mul_left, edist_inv_inv]
 #align edist_div_left edist_div_left
@@ -166,7 +166,7 @@ theorem constSmul_symm (c : G) : (constSmul c : X ≃ᵢ X).symm = constSmul c
 #align isometry_equiv.const_smul_symm IsometryEquiv.constSmul_symm
 #align isometry_equiv.const_vadd_symm IsometryEquiv.const_vadd_symm
 
-variable [PseudoEmetricSpace G]
+variable [PseudoEMetricSpace G]
 
 /-- Multiplication `y ↦ x * y` as an `isometry_equiv`. -/
 @[to_additive "Addition `y ↦ x + y` as an `isometry_equiv`.", simps apply toEquiv]
@@ -269,7 +269,7 @@ theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
 #align emetric.preimage_smul_closed_ball Emetric.preimage_smul_closedBall
 #align emetric.preimage_vadd_closed_ball Emetric.preimage_vadd_closedBall
 
-variable [PseudoEmetricSpace G]
+variable [PseudoEMetricSpace G]
 
 @[simp, to_additive]
 theorem preimage_mul_left_ball [HasIsometricSmul G G] (a b : G) (r : ℝ≥0∞) :
@@ -468,7 +468,7 @@ end Metric
 
 section Instances
 
-variable {Y : Type _} [PseudoEmetricSpace X] [PseudoEmetricSpace Y] [SMul M X]
+variable {Y : Type _} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [SMul M X]
   [HasIsometricSmul M X]
 
 @[to_additive]
@@ -476,15 +476,15 @@ instance [SMul M Y] [HasIsometricSmul M Y] : HasIsometricSmul M (X × Y) :=
   ⟨fun c => (isometry_smul X c).Prod_map (isometry_smul Y c)⟩
 
 @[to_additive]
-instance Prod.has_isometric_smul' {N} [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul M M] [Mul N]
-    [PseudoEmetricSpace N] [HasIsometricSmul N N] : HasIsometricSmul (M × N) (M × N) :=
+instance Prod.has_isometric_smul' {N} [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] [Mul N]
+    [PseudoEMetricSpace N] [HasIsometricSmul N N] : HasIsometricSmul (M × N) (M × N) :=
   ⟨fun c => (isometry_smul M c.1).Prod_map (isometry_smul N c.2)⟩
 #align prod.has_isometric_smul' Prod.has_isometric_smul'
 #align prod.has_isometric_vadd' Prod.has_isometric_vadd'
 
 @[to_additive]
-instance Prod.has_isometric_smul'' {N} [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
-    [Mul N] [PseudoEmetricSpace N] [HasIsometricSmul Nᵐᵒᵖ N] :
+instance Prod.has_isometric_smul'' {N} [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M]
+    [Mul N] [PseudoEMetricSpace N] [HasIsometricSmul Nᵐᵒᵖ N] :
     HasIsometricSmul (M × N)ᵐᵒᵖ (M × N) :=
   ⟨fun c => (isometry_mul_right c.unop.1).Prod_map (isometry_mul_right c.unop.2)⟩
 #align prod.has_isometric_smul'' Prod.has_isometric_smul''
@@ -513,13 +513,13 @@ instance ULift.has_isometric_smul' : HasIsometricSmul M (ULift X) :=
 #align ulift.has_isometric_vadd' ULift.has_isometric_vadd'
 
 @[to_additive]
-instance {ι} {X : ι → Type _} [Fintype ι] [∀ i, SMul M (X i)] [∀ i, PseudoEmetricSpace (X i)]
+instance {ι} {X : ι → Type _} [Fintype ι] [∀ i, SMul M (X i)] [∀ i, PseudoEMetricSpace (X i)]
     [∀ i, HasIsometricSmul M (X i)] : HasIsometricSmul M (∀ i, X i) :=
   ⟨fun c => isometry_dcomp (fun i => (· • ·) c) fun i => isometry_smul (X i) c⟩
 
 @[to_additive]
 instance Pi.has_isometric_smul' {ι} {M X : ι → Type _} [Fintype ι] [∀ i, SMul (M i) (X i)]
-    [∀ i, PseudoEmetricSpace (X i)] [∀ i, HasIsometricSmul (M i) (X i)] :
+    [∀ i, PseudoEMetricSpace (X i)] [∀ i, HasIsometricSmul (M i) (X i)] :
     HasIsometricSmul (∀ i, M i) (∀ i, X i) :=
   ⟨fun c => isometry_dcomp (fun i => (· • ·) (c i)) fun i => isometry_smul _ _⟩
 #align pi.has_isometric_smul' Pi.has_isometric_smul'
@@ -527,7 +527,7 @@ instance Pi.has_isometric_smul' {ι} {M X : ι → Type _} [Fintype ι] [∀ i,
 
 @[to_additive]
 instance Pi.has_isometric_smul'' {ι} {M : ι → Type _} [Fintype ι] [∀ i, Mul (M i)]
-    [∀ i, PseudoEmetricSpace (M i)] [∀ i, HasIsometricSmul (M i)ᵐᵒᵖ (M i)] :
+    [∀ i, PseudoEMetricSpace (M i)] [∀ i, HasIsometricSmul (M i)ᵐᵒᵖ (M i)] :
     HasIsometricSmul (∀ i, M i)ᵐᵒᵖ (∀ i, M i) :=
   ⟨fun c => isometry_dcomp (fun i (x : M i) => x * c.unop i) fun i => isometry_mul_right _⟩
 #align pi.has_isometric_smul'' Pi.has_isometric_smul''
@@ -537,27 +537,27 @@ instance Additive.hasIsometricVadd : HasIsometricVadd (Additive M) X :=
   ⟨fun c => isometry_smul X c.toMul⟩
 #align additive.has_isometric_vadd Additive.hasIsometricVadd
 
-instance Additive.has_isometric_vadd' [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul M M] :
+instance Additive.has_isometric_vadd' [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul M M] :
     HasIsometricVadd (Additive M) (Additive M) :=
   ⟨fun c x y => edist_smul_left c.toMul x.toMul y.toMul⟩
 #align additive.has_isometric_vadd' Additive.has_isometric_vadd'
 
-instance Additive.has_isometric_vadd'' [Mul M] [PseudoEmetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] :
+instance Additive.has_isometric_vadd'' [Mul M] [PseudoEMetricSpace M] [HasIsometricSmul Mᵐᵒᵖ M] :
     HasIsometricVadd (Additive M)ᵃᵒᵖ (Additive M) :=
   ⟨fun c x y => edist_smul_left (MulOpposite.op c.unop.toMul) x.toMul y.toMul⟩
 #align additive.has_isometric_vadd'' Additive.has_isometric_vadd''
 
-instance Multiplicative.hasIsometricSmul {M X} [VAdd M X] [PseudoEmetricSpace X]
+instance Multiplicative.hasIsometricSmul {M X} [VAdd M X] [PseudoEMetricSpace X]
     [HasIsometricVadd M X] : HasIsometricSmul (Multiplicative M) X :=
   ⟨fun c => isometry_vadd X c.toAdd⟩
 #align multiplicative.has_isometric_smul Multiplicative.hasIsometricSmul
 
-instance Multiplicative.has_isometric_smul' [Add M] [PseudoEmetricSpace M] [HasIsometricVadd M M] :
+instance Multiplicative.has_isometric_smul' [Add M] [PseudoEMetricSpace M] [HasIsometricVadd M M] :
     HasIsometricSmul (Multiplicative M) (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left c.toAdd x.toAdd y.toAdd⟩
 #align multiplicative.has_isometric_smul' Multiplicative.has_isometric_smul'
 
-instance Multiplicative.has_isometric_vadd'' [Add M] [PseudoEmetricSpace M]
+instance Multiplicative.has_isometric_vadd'' [Add M] [PseudoEMetricSpace M]
     [HasIsometricVadd Mᵃᵒᵖ M] : HasIsometricSmul (Multiplicative M)ᵐᵒᵖ (Multiplicative M) :=
   ⟨fun c x y => edist_vadd_left (AddOpposite.op c.unop.toAdd) x.toAdd y.toAdd⟩
 #align multiplicative.has_isometric_vadd'' Multiplicative.has_isometric_vadd''
Diff
@@ -33,7 +33,7 @@ these two notions are equivalent. A group with a right-invariant metric can be a
 
 open Set
 
-open Ennreal Pointwise
+open ENNReal Pointwise
 
 universe u v w
 

Changes in mathlib4

mathlib3
mathlib4
feat: add lake exe shake to CI (#9751)

This checks files for unused imports. The output here is piped through gh-problem-matcher-wrap so that it will show up as annotations.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
+import Mathlib.Data.Set.Pointwise.SMul
 import Mathlib.Topology.MetricSpace.Isometry
 import Mathlib.Topology.MetricSpace.Lipschitz
 
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
 import Mathlib.Topology.MetricSpace.Isometry
+import Mathlib.Topology.MetricSpace.Lipschitz
 
 #align_import topology.metric_space.isometric_smul from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
 
chore: Replace (· op ·) a by (a op ·) (#8843)

I used the regex \(\(· (.) ·\) (.)\), replacing with ($2 $1 ·).

Diff
@@ -89,7 +89,7 @@ theorem ediam_smul [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
 
 @[to_additive]
 theorem isometry_mul_left [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] (a : M) :
-    Isometry ((· * ·) a) :=
+    Isometry (a * ·) :=
   isometry_smul M a
 #align isometry_mul_left isometry_mul_left
 #align isometry_add_left isometry_add_left
@@ -277,7 +277,7 @@ theorem smul_ball (c : G) (x : X) (r : ℝ≥0∞) : c • ball x r = ball (c 
 
 @[to_additive (attr := simp)]
 theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) :
-    (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
+    (c • ·) ⁻¹' ball x r = ball (c⁻¹ • x) r := by
   rw [preimage_smul, smul_ball]
 #align emetric.preimage_smul_ball EMetric.preimage_smul_ball
 #align emetric.preimage_vadd_ball EMetric.preimage_vadd_ball
@@ -290,7 +290,7 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) : c • closedBall x r
 
 @[to_additive (attr := simp)]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ≥0∞) :
-    (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by
+    (c • ·) ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by
   rw [preimage_smul, smul_closedBall]
 #align emetric.preimage_smul_closed_ball EMetric.preimage_smul_closedBall
 #align emetric.preimage_vadd_closed_ball EMetric.preimage_vadd_closedBall
@@ -299,7 +299,7 @@ variable [PseudoEMetricSpace G]
 
 @[to_additive (attr := simp)]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
-    (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
+    (a * ·) ⁻¹' ball b r = ball (a⁻¹ * b) r :=
   preimage_smul_ball a b r
 #align emetric.preimage_mul_left_ball EMetric.preimage_mul_left_ball
 #align emetric.preimage_add_left_ball EMetric.preimage_add_left_ball
@@ -314,7 +314,7 @@ theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ
 
 @[to_additive (attr := simp)]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ≥0∞) :
-    (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
+    (a * ·) ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
   preimage_smul_closedBall a b r
 #align emetric.preimage_mul_left_closed_ball EMetric.preimage_mul_left_closedBall
 #align emetric.preimage_add_left_closed_ball EMetric.preimage_add_left_closedBall
@@ -441,7 +441,7 @@ theorem smul_ball (c : G) (x : X) (r : ℝ) : c • ball x r = ball (c • x) r
 #align metric.vadd_ball Metric.vadd_ball
 
 @[to_additive (attr := simp)]
-theorem preimage_smul_ball (c : G) (x : X) (r : ℝ) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
+theorem preimage_smul_ball (c : G) (x : X) (r : ℝ) : (c • ·) ⁻¹' ball x r = ball (c⁻¹ • x) r := by
   rw [preimage_smul, smul_ball]
 #align metric.preimage_smul_ball Metric.preimage_smul_ball
 #align metric.preimage_vadd_ball Metric.preimage_vadd_ball
@@ -454,7 +454,7 @@ theorem smul_closedBall (c : G) (x : X) (r : ℝ) : c • closedBall x r = close
 
 @[to_additive (attr := simp)]
 theorem preimage_smul_closedBall (c : G) (x : X) (r : ℝ) :
-    (· • ·) c ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
+    (c • ·) ⁻¹' closedBall x r = closedBall (c⁻¹ • x) r := by rw [preimage_smul, smul_closedBall]
 #align metric.preimage_smul_closed_ball Metric.preimage_smul_closedBall
 #align metric.preimage_vadd_closed_ball Metric.preimage_vadd_closedBall
 
@@ -466,7 +466,7 @@ theorem smul_sphere (c : G) (x : X) (r : ℝ) : c • sphere x r = sphere (c •
 
 @[to_additive (attr := simp)]
 theorem preimage_smul_sphere (c : G) (x : X) (r : ℝ) :
-    (· • ·) c ⁻¹' sphere x r = sphere (c⁻¹ • x) r := by rw [preimage_smul, smul_sphere]
+    (c • ·) ⁻¹' sphere x r = sphere (c⁻¹ • x) r := by rw [preimage_smul, smul_sphere]
 #align metric.preimage_smul_sphere Metric.preimage_smul_sphere
 #align metric.preimage_vadd_sphere Metric.preimage_vadd_sphere
 
@@ -474,7 +474,7 @@ variable [PseudoMetricSpace G]
 
 @[to_additive (attr := simp)]
 theorem preimage_mul_left_ball [IsometricSMul G G] (a b : G) (r : ℝ) :
-    (· * ·) a ⁻¹' ball b r = ball (a⁻¹ * b) r :=
+    (a * ·) ⁻¹' ball b r = ball (a⁻¹ * b) r :=
   preimage_smul_ball a b r
 #align metric.preimage_mul_left_ball Metric.preimage_mul_left_ball
 #align metric.preimage_add_left_ball Metric.preimage_add_left_ball
@@ -489,7 +489,7 @@ theorem preimage_mul_right_ball [IsometricSMul Gᵐᵒᵖ G] (a b : G) (r : ℝ)
 
 @[to_additive (attr := simp)]
 theorem preimage_mul_left_closedBall [IsometricSMul G G] (a b : G) (r : ℝ) :
-    (· * ·) a ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
+    (a * ·) ⁻¹' closedBall b r = closedBall (a⁻¹ * b) r :=
   preimage_smul_closedBall a b r
 #align metric.preimage_mul_left_closed_ball Metric.preimage_mul_left_closedBall
 #align metric.preimage_add_left_closed_ball Metric.preimage_add_left_closedBall
style: cleanup by putting by on the same line as := (#8407)

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

Diff
@@ -276,8 +276,9 @@ theorem smul_ball (c : G) (x : X) (r : ℝ≥0∞) : c • ball x r = ball (c 
 #align emetric.vadd_ball EMetric.vadd_ball
 
 @[to_additive (attr := simp)]
-theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) : (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r :=
-  by rw [preimage_smul, smul_ball]
+theorem preimage_smul_ball (c : G) (x : X) (r : ℝ≥0∞) :
+    (· • ·) c ⁻¹' ball x r = ball (c⁻¹ • x) r := by
+  rw [preimage_smul, smul_ball]
 #align emetric.preimage_smul_ball EMetric.preimage_smul_ball
 #align emetric.preimage_vadd_ball EMetric.preimage_vadd_ball
 
refactor(Topology/MetricSpace): remove Metric.Bounded (#7240)

Use Bornology.IsBounded instead.

Diff
@@ -420,16 +420,16 @@ theorem nndist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G]
 #align nndist_div_left nndist_div_left
 #align nndist_sub_left nndist_sub_left
 
-namespace Metric
-
 /-- If `G` acts isometrically on `X`, then the image of a bounded set in `X` under scalar
-multiplication by `c : G` is bounded. See also `Metric.Bounded.smul₀` for a similar lemma about
+multiplication by `c : G` is bounded. See also `Bornology.IsBounded.smul₀` for a similar lemma about
 normed spaces. -/
 @[to_additive "Given an additive isometric action of `G` on `X`, the image of a bounded set in `X`
 under translation by `c : G` is bounded"]
-theorem Bounded.smul [PseudoMetricSpace X] [SMul G X] [IsometricSMul G X] {s : Set X}
-    (hs : Bounded s) (c : G) : Bounded (c • s) :=
-  (isometry_smul X c).lipschitz.bounded_image hs
+theorem Bornology.IsBounded.smul [PseudoMetricSpace X] [SMul G X] [IsometricSMul G X] {s : Set X}
+    (hs : IsBounded s) (c : G) : IsBounded (c • s) :=
+  (isometry_smul X c).lipschitz.isBounded_image hs
+
+namespace Metric
 
 variable [PseudoMetricSpace X] [Group G] [MulAction G X] [IsometricSMul G X]
 
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
@@ -505,7 +505,7 @@ end Metric
 
 section Instances
 
-variable {Y : Type _} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [SMul M X]
+variable {Y : Type*} [PseudoEMetricSpace X] [PseudoEMetricSpace Y] [SMul M X]
   [IsometricSMul M X]
 
 @[to_additive]
@@ -550,12 +550,12 @@ instance ULift.isometricSMul' : IsometricSMul M (ULift X) :=
 #align ulift.has_isometric_vadd' ULift.isometricVAdd'
 
 @[to_additive]
-instance {ι} {X : ι → Type _} [Fintype ι] [∀ i, SMul M (X i)] [∀ i, PseudoEMetricSpace (X i)]
+instance {ι} {X : ι → Type*} [Fintype ι] [∀ i, SMul M (X i)] [∀ i, PseudoEMetricSpace (X i)]
     [∀ i, IsometricSMul M (X i)] : IsometricSMul M (∀ i, X i) :=
   ⟨fun c => isometry_dcomp (fun _ => (c • ·)) fun i => isometry_smul (X i) c⟩
 
 @[to_additive]
-instance Pi.isometricSMul' {ι} {M X : ι → Type _} [Fintype ι] [∀ i, SMul (M i) (X i)]
+instance Pi.isometricSMul' {ι} {M X : ι → Type*} [Fintype ι] [∀ i, SMul (M i) (X i)]
     [∀ i, PseudoEMetricSpace (X i)] [∀ i, IsometricSMul (M i) (X i)] :
     IsometricSMul (∀ i, M i) (∀ i, X i) :=
   ⟨fun c => isometry_dcomp (fun i => (c i • ·)) fun _ => isometry_smul _ _⟩
@@ -563,7 +563,7 @@ instance Pi.isometricSMul' {ι} {M X : ι → Type _} [Fintype ι] [∀ i, SMul
 #align pi.has_isometric_vadd' Pi.isometricVAdd'
 
 @[to_additive]
-instance Pi.isometricSMul'' {ι} {M : ι → Type _} [Fintype ι] [∀ i, Mul (M i)]
+instance Pi.isometricSMul'' {ι} {M : ι → Type*} [Fintype ι] [∀ i, Mul (M i)]
     [∀ i, PseudoEMetricSpace (M i)] [∀ i, IsometricSMul (M i)ᵐᵒᵖ (M i)] :
     IsometricSMul (∀ i, M i)ᵐᵒᵖ (∀ i, M i) :=
   ⟨fun c => isometry_dcomp (fun i (x : M i) => x * c.unop i) fun _ => isometry_mul_right _⟩
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module topology.metric_space.isometric_smul
-! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.MetricSpace.Isometry
 
+#align_import topology.metric_space.isometric_smul from "leanprover-community/mathlib"@"bc91ed7093bf098d253401e69df601fc33dde156"
+
 /-!
 # Group actions by isometries
 
feat: add Metric.Bounded.vadd (#5270)

Add Metric.Bounded.smul and Metric.Bounded.vadd, rename the old smul to smul₀.

Diff
@@ -425,6 +425,15 @@ theorem nndist_div_left [Group G] [PseudoMetricSpace G] [IsometricSMul G G]
 
 namespace Metric
 
+/-- If `G` acts isometrically on `X`, then the image of a bounded set in `X` under scalar
+multiplication by `c : G` is bounded. See also `Metric.Bounded.smul₀` for a similar lemma about
+normed spaces. -/
+@[to_additive "Given an additive isometric action of `G` on `X`, the image of a bounded set in `X`
+under translation by `c : G` is bounded"]
+theorem Bounded.smul [PseudoMetricSpace X] [SMul G X] [IsometricSMul G X] {s : Set X}
+    (hs : Bounded s) (c : G) : Bounded (c • s) :=
+  (isometry_smul X c).lipschitz.bounded_image hs
+
 variable [PseudoMetricSpace X] [Group G] [MulAction G X] [IsometricSMul G X]
 
 @[to_additive (attr := simp)]
chore: fix many typos (#4535)

Run codespell Mathlib and keep some suggestions.

Diff
@@ -50,7 +50,7 @@ class IsometricSMul [PseudoEMetricSpace X] [SMul M X] : Prop where
   protected isometry_smul : ∀ c : M, Isometry ((c • ·) : X → X)
 #align has_isometric_smul IsometricSMul
 
--- Porting note: Lean 4 doesn' support `[]` in classes, so make a lemma instead of `export`ing
+-- Porting note: Lean 4 doesn't support `[]` in classes, so make a lemma instead of `export`ing
 @[to_additive]
 theorem isometry_smul {M : Type u} (X : Type w) [PseudoEMetricSpace X] [SMul M X]
     [IsometricSMul M X] (c : M) : Isometry (c • · : X → X) :=
chore: update SHA sums (#4342)

The actual forward-porting was done in #4327 and #4328

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module topology.metric_space.isometric_smul
-! leanprover-community/mathlib commit 832a8ba8f10f11fea99367c469ff802e69a5b8ec
+! leanprover-community/mathlib commit bc91ed7093bf098d253401e69df601fc33dde156
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
feat: forward-port PR 18990 (#4328)

Forward-port of leanprover-community/mathlib#18990

Original title: feat(analysis/normed_space/basic): scaling a set scales its diameter, translating it leaves it unchanged

Diff
@@ -83,6 +83,13 @@ theorem edist_smul_left [SMul M X] [IsometricSMul M X] (c : M) (x y : X) :
 #align edist_smul_left edist_smul_left
 #align edist_vadd_left edist_vadd_left
 
+@[to_additive (attr := simp)]
+theorem ediam_smul [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
+    EMetric.diam (c • s) = EMetric.diam s :=
+  (isometry_smul _ _).ediam_image s
+#align ediam_smul ediam_smul
+#align ediam_vadd ediam_vadd
+
 @[to_additive]
 theorem isometry_mul_left [Mul M] [PseudoEMetricSpace M] [IsometricSMul M M] (a : M) :
     Isometry ((· * ·) a) :=
@@ -340,6 +347,13 @@ theorem nndist_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M)
 #align nndist_smul nndist_smul
 #align nndist_vadd nndist_vadd
 
+@[to_additive (attr := simp)]
+theorem diam_smul [PseudoMetricSpace X] [SMul M X] [IsometricSMul M X] (c : M) (s : Set X) :
+    Metric.diam (c • s) = Metric.diam s :=
+  (isometry_smul _ _).diam_image s
+#align diam_smul diam_smul
+#align diam_vadd diam_vadd
+
 @[to_additive (attr := simp)]
 theorem dist_mul_left [PseudoMetricSpace M] [Mul M] [IsometricSMul M M] (a b c : M) :
     dist (a * b) (a * c) = dist b c :=
feat: improvements to congr! and convert (#2606)
  • There is now configuration for congr!, convert, and convert_to to control parts of the congruence algorithm, in particular transparency settings when applying congruence lemmas.
  • congr! now applies congruence lemmas with reducible transparency by default. This prevents it from unfolding definitions when applying congruence lemmas. It also now tries both the LHS-biased and RHS-biased simp congruence lemmas, with a configuration option to set which it should try first.
  • There is now a new HEq congruence lemma generator that gives each hypothesis access to the proofs of previous hypotheses. This means that if you have an equality ⊢ ⟨a, x⟩ = ⟨b, y⟩ of sigma types, congr! turns this into goals ⊢ a = b and ⊢ a = b → HEq x y (note that congr! will also auto-introduce a = b for you in the second goal). This congruence lemma generator applies to more cases than the simp congruence lemma generator does.
  • congr! (and hence convert) are more careful about applying lemmas that don't force definitions to unfold. There were a number of cases in mathlib where the implementation of congr was being abused to unfold definitions.
  • With set_option trace.congr! true you can see what congr! sees when it is deciding on congruence lemmas.
  • There is also a bug fix in convert_to to do using 1 when there is no using clause, to match its documentation.

Note that congr! is more capable than congr at finding a way to equate left-hand sides and right-hand sides, so you will frequently need to limit its depth with a using clause. However, there is also a new heuristic to prevent considering unlikely-to-be-provable type equalities (controlled by the typeEqs option), which can help limit the depth automatically.

There is also a predefined configuration that you can invoke with, for example, convert (config := .unfoldSameFun) h, that causes it to behave more like congr, including using default transparency when unfolding.

Diff
@@ -509,7 +509,7 @@ instance Prod.isometricSMul'' {N} [Mul M] [PseudoEMetricSpace M] [IsometricSMul
 
 @[to_additive]
 instance Units.isometricSMul [Monoid M] : IsometricSMul Mˣ X :=
-  ⟨fun c => by convert isometry_smul X (c : M)⟩
+  ⟨fun c => isometry_smul X (c : M)⟩
 #align units.has_isometric_smul Units.isometricSMul
 #align add_units.has_isometric_vadd AddUnits.isometricVAdd
 
feat: port Topology.MetricSpace.IsometricSmul (#2675)

Dependencies 10 + 492

493 files ported (98.0%)
216854 lines ported (97.6%)
Show graph

The unported dependencies are

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