topology.metric_space.antilipschitzMathlib.Topology.MetricSpace.Antilipschitz

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)

(last sync)

feat(topology/metric_space): diameter of pointwise zero and addition (#19028)
Diff
@@ -192,7 +192,8 @@ namespace antilipschitz_with
 
 open metric
 
-variables [pseudo_metric_space α] [pseudo_metric_space β] {K : ℝ≥0} {f : α → β}
+variables [pseudo_metric_space α] [pseudo_metric_space β] [pseudo_metric_space γ]
+variables {K : ℝ≥0} {f : α → β}
 
 lemma bounded_preimage (hf : antilipschitz_with K f)
   {s : set β} (hs : bounded s) :
@@ -219,6 +220,28 @@ begin
   exact (hf.image_preimage _).symm
 end
 
+lemma bounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
+  (hf : ∀ b, antilipschitz_with K₁ (λ a, f a b))
+  {s : set α} {t : set β} (hst : bounded (set.image2 f s t)) :
+  bounded s ∨ bounded t :=
+begin
+  contrapose! hst,
+  obtain ⟨b, hb⟩ : t.nonempty := nonempty_of_unbounded hst.2,
+  have : ¬bounded (set.image2 f s {b}),
+  { intro h,
+    apply hst.1,
+    rw set.image2_singleton_right at h,
+    replace h := (hf b).bounded_preimage h,
+    refine h.mono (subset_preimage_image _ _) },
+  exact mt (bounded.mono (image2_subset subset.rfl (singleton_subset_iff.mpr hb))) this,
+end
+
+lemma bounded_of_image2_right {f : α → β → γ} {K₂ : ℝ≥0}
+  (hf : ∀ a, antilipschitz_with K₂ (f a))
+  {s : set α} {t : set β} (hst : bounded (set.image2 f s t)) :
+  bounded s ∨ bounded t :=
+or.symm $ bounded_of_image2_left (flip f) hf $ image2_swap f s t ▸ hst
+
 end antilipschitz_with
 
 lemma lipschitz_with.to_right_inverse [pseudo_emetric_space α] [pseudo_emetric_space β] {K : ℝ≥0}

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -3,7 +3,7 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Topology.MetricSpace.Lipschitz
+import Topology.EMetricSpace.Lipschitz
 import Topology.UniformSpace.CompleteSeparated
 
 #align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"c8f305514e0d47dfaa710f5a52f0d21b588e6328"
Diff
@@ -246,7 +246,7 @@ theorem isClosed_range {α β : Type _} [PseudoEMetricSpace α] [EMetricSpace β
 theorem closedEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
-  { (hf.UniformEmbedding hfc).Embedding with closed_range := hf.isClosed_range hfc }
+  { (hf.UniformEmbedding hfc).Embedding with isClosed_range := hf.isClosed_range hfc }
 #align antilipschitz_with.closed_embedding AntilipschitzWith.closedEmbedding
 -/
 
Diff
@@ -196,7 +196,7 @@ theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Funct
     LipschitzWith K g := by
   intro x y
   have := hf (g x) (g y)
-  rwa [hg x, hg y] at this 
+  rwa [hg x, hg y] at this
 #align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverse
 -/
 
@@ -206,7 +206,7 @@ theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod
   refine' ((uniformity_basis_edist.comap _).le_basis_iffₓ uniformity_basis_edist).2 fun ε h₀ => _
   refine' ⟨K⁻¹ * ε, ENNReal.mul_pos (ENNReal.inv_ne_zero.2 ENNReal.coe_ne_top) h₀.ne', _⟩
   refine' fun x hx => (hf x.1 x.2).trans_lt _
-  rw [mul_comm, ← div_eq_mul_inv] at hx 
+  rw [mul_comm, ← div_eq_mul_inv] at hx
   rw [mul_comm]
   exact ENNReal.mul_lt_of_lt_div hx
 #align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_le
@@ -323,7 +323,7 @@ theorem isBounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
   have : ¬bounded (Set.image2 f s {b}) := by
     intro h
     apply hst.1
-    rw [Set.image2_singleton_right] at h 
+    rw [Set.image2_singleton_right] at h
     replace h := (hf b).isBounded_preimage h
     refine' h.mono (subset_preimage_image _ _)
   exact mt (bounded.mono (image2_subset subset.rfl (singleton_subset_iff.mpr hb))) this
Diff
@@ -303,7 +303,7 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
     (hK : AntilipschitzWith K f) (f_cont : Continuous f) (hf : Function.Surjective f) :
     ProperSpace β :=
   by
-  apply properSpace_of_compact_closedBall_of_le 0 fun x₀ r hr => _
+  apply ProperSpace.of_isCompact_closedBall_of_le 0 fun x₀ r hr => _
   let K := f ⁻¹' closed_ball x₀ r
   have A : IsClosed K := is_closed_ball.preimage f_cont
   have B : bounded K := hK.bounded_preimage bounded_closed_ball
Diff
@@ -313,6 +313,7 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
 #align antilipschitz_with.proper_space AntilipschitzWith.properSpace
 -/
 
+#print AntilipschitzWith.isBounded_of_image2_left /-
 theorem isBounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
     (hf : ∀ b, AntilipschitzWith K₁ fun a => f a b) {s : Set α} {t : Set β}
     (hst : IsBounded (Set.image2 f s t)) : IsBounded s ∨ IsBounded t :=
@@ -327,11 +328,14 @@ theorem isBounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
     refine' h.mono (subset_preimage_image _ _)
   exact mt (bounded.mono (image2_subset subset.rfl (singleton_subset_iff.mpr hb))) this
 #align antilipschitz_with.bounded_of_image2_left AntilipschitzWith.isBounded_of_image2_left
+-/
 
+#print AntilipschitzWith.isBounded_of_image2_right /-
 theorem isBounded_of_image2_right {f : α → β → γ} {K₂ : ℝ≥0} (hf : ∀ a, AntilipschitzWith K₂ (f a))
     {s : Set α} {t : Set β} (hst : IsBounded (Set.image2 f s t)) : IsBounded s ∨ IsBounded t :=
   Or.symm <| isBounded_of_image2_left (flip f) hf <| image2_swap f s t ▸ hst
 #align antilipschitz_with.bounded_of_image2_right AntilipschitzWith.isBounded_of_image2_right
+-/
 
 end AntilipschitzWith
 
Diff
@@ -6,7 +6,7 @@ Authors: Yury Kudryashov
 import Topology.MetricSpace.Lipschitz
 import Topology.UniformSpace.CompleteSeparated
 
-#align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+#align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"c8f305514e0d47dfaa710f5a52f0d21b588e6328"
 
 /-!
 # Antilipschitz functions
@@ -276,7 +276,9 @@ namespace AntilipschitzWith
 
 open Metric
 
-variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
+variable [PseudoMetricSpace α] [PseudoMetricSpace β] [PseudoMetricSpace γ]
+
+variable {K : ℝ≥0} {f : α → β}
 
 #print AntilipschitzWith.isBounded_preimage /-
 theorem isBounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : IsBounded s) :
@@ -311,6 +313,26 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
 #align antilipschitz_with.proper_space AntilipschitzWith.properSpace
 -/
 
+theorem isBounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
+    (hf : ∀ b, AntilipschitzWith K₁ fun a => f a b) {s : Set α} {t : Set β}
+    (hst : IsBounded (Set.image2 f s t)) : IsBounded s ∨ IsBounded t :=
+  by
+  contrapose! hst
+  obtain ⟨b, hb⟩ : t.nonempty := nonempty_of_unbounded hst.2
+  have : ¬bounded (Set.image2 f s {b}) := by
+    intro h
+    apply hst.1
+    rw [Set.image2_singleton_right] at h 
+    replace h := (hf b).isBounded_preimage h
+    refine' h.mono (subset_preimage_image _ _)
+  exact mt (bounded.mono (image2_subset subset.rfl (singleton_subset_iff.mpr hb))) this
+#align antilipschitz_with.bounded_of_image2_left AntilipschitzWith.isBounded_of_image2_left
+
+theorem isBounded_of_image2_right {f : α → β → γ} {K₂ : ℝ≥0} (hf : ∀ a, AntilipschitzWith K₂ (f a))
+    {s : Set α} {t : Set β} (hst : IsBounded (Set.image2 f s t)) : IsBounded s ∨ IsBounded t :=
+  Or.symm <| isBounded_of_image2_left (flip f) hf <| image2_swap f s t ▸ hst
+#align antilipschitz_with.bounded_of_image2_right AntilipschitzWith.isBounded_of_image2_right
+
 end AntilipschitzWith
 
 #print LipschitzWith.to_rightInverse /-
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathbin.Topology.MetricSpace.Lipschitz
-import Mathbin.Topology.UniformSpace.CompleteSeparated
+import Topology.MetricSpace.Lipschitz
+import Topology.UniformSpace.CompleteSeparated
 
 #align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
 
Diff
@@ -278,20 +278,20 @@ open Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
-#print AntilipschitzWith.bounded_preimage /-
-theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded s) :
-    Bounded (f ⁻¹' s) :=
+#print AntilipschitzWith.isBounded_preimage /-
+theorem isBounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : IsBounded s) :
+    IsBounded (f ⁻¹' s) :=
   Exists.intro (K * diam s) fun x hx y hy =>
     calc
       dist x y ≤ K * dist (f x) (f y) := hf.le_mul_dist x y
       _ ≤ K * diam s := mul_le_mul_of_nonneg_left (dist_le_diam_of_mem hs hx hy) K.2
-#align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
+#align antilipschitz_with.bounded_preimage AntilipschitzWith.isBounded_preimage
 -/
 
 #print AntilipschitzWith.tendsto_cobounded /-
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
   compl_surjective.forall.2 fun s (hs : IsBounded s) =>
-    Metric.isBounded_iff.2 <| hf.bounded_preimage <| Metric.isBounded_iff.1 hs
+    Metric.isBounded_iff.2 <| hf.isBounded_preimage <| Metric.isBounded_iff.1 hs
 #align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_cobounded
 -/
 
Diff
@@ -65,8 +65,8 @@ theorem antilipschitzWith_iff_le_mul_nndist :
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
 -/
 
-alias antilipschitzWith_iff_le_mul_nndist ↔ AntilipschitzWith.le_mul_nndist
-  AntilipschitzWith.of_le_mul_nndist
+alias ⟨AntilipschitzWith.le_mul_nndist, AntilipschitzWith.of_le_mul_nndist⟩ :=
+  antilipschitzWith_iff_le_mul_nndist
 #align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndist
 #align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 
@@ -77,8 +77,8 @@ theorem antilipschitzWith_iff_le_mul_dist :
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
 -/
 
-alias antilipschitzWith_iff_le_mul_dist ↔ AntilipschitzWith.le_mul_dist
-  AntilipschitzWith.of_le_mul_dist
+alias ⟨AntilipschitzWith.le_mul_dist, AntilipschitzWith.of_le_mul_dist⟩ :=
+  antilipschitzWith_iff_le_mul_dist
 #align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_dist
 #align antilipschitz_with.of_le_mul_dist AntilipschitzWith.of_le_mul_dist
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 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.antilipschitz
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Topology.MetricSpace.Lipschitz
 import Mathbin.Topology.UniformSpace.CompleteSeparated
 
+#align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+
 /-!
 # Antilipschitz functions
 
Diff
@@ -43,34 +43,42 @@ def AntilipschitzWith [PseudoEMetricSpace α] [PseudoEMetricSpace β] (K : ℝ
 #align antilipschitz_with AntilipschitzWith
 -/
 
+#print AntilipschitzWith.edist_lt_top /-
 theorem AntilipschitzWith.edist_lt_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y < ⊤ :=
   (h x y).trans_lt <| ENNReal.mul_lt_top ENNReal.coe_ne_top (edist_ne_top _ _)
 #align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_top
+-/
 
+#print AntilipschitzWith.edist_ne_top /-
 theorem AntilipschitzWith.edist_ne_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y ≠ ⊤ :=
   (h.edist_lt_top x y).Ne
 #align antilipschitz_with.edist_ne_top AntilipschitzWith.edist_ne_top
+-/
 
 section Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
+#print antilipschitzWith_iff_le_mul_nndist /-
 theorem antilipschitzWith_iff_le_mul_nndist :
     AntilipschitzWith K f ↔ ∀ x y, nndist x y ≤ K * nndist (f x) (f y) := by
   simp only [AntilipschitzWith, edist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
+-/
 
 alias antilipschitzWith_iff_le_mul_nndist ↔ AntilipschitzWith.le_mul_nndist
   AntilipschitzWith.of_le_mul_nndist
 #align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndist
 #align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 
+#print antilipschitzWith_iff_le_mul_dist /-
 theorem antilipschitzWith_iff_le_mul_dist :
     AntilipschitzWith K f ↔ ∀ x y, dist x y ≤ K * dist (f x) (f y) := by
   simp only [antilipschitzWith_iff_le_mul_nndist, dist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
+-/
 
 alias antilipschitzWith_iff_le_mul_dist ↔ AntilipschitzWith.le_mul_dist
   AntilipschitzWith.of_le_mul_dist
@@ -79,14 +87,18 @@ alias antilipschitzWith_iff_le_mul_dist ↔ AntilipschitzWith.le_mul_dist
 
 namespace AntilipschitzWith
 
+#print AntilipschitzWith.mul_le_nndist /-
 theorem mul_le_nndist (hf : AntilipschitzWith K f) (x y : α) :
     K⁻¹ * nndist x y ≤ nndist (f x) (f y) := by
   simpa only [div_eq_inv_mul] using NNReal.div_le_of_le_mul' (hf.le_mul_nndist x y)
 #align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndist
+-/
 
+#print AntilipschitzWith.mul_le_dist /-
 theorem mul_le_dist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * dist x y : ℝ) ≤ dist (f x) (f y) := by exact_mod_cast hf.mul_le_nndist x y
 #align antilipschitz_with.mul_le_dist AntilipschitzWith.mul_le_dist
+-/
 
 end AntilipschitzWith
 
@@ -110,25 +122,33 @@ protected def k (hf : AntilipschitzWith K f) : ℝ≥0 :=
 #align antilipschitz_with.K AntilipschitzWith.k
 -/
 
+#print AntilipschitzWith.injective /-
 protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) : Function.Injective f := fun x y h => by
   simpa only [h, edist_self, MulZeroClass.mul_zero, edist_le_zero] using hf x y
 #align antilipschitz_with.injective AntilipschitzWith.injective
+-/
 
+#print AntilipschitzWith.mul_le_edist /-
 theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * edist x y : ℝ≥0∞) ≤ edist (f x) (f y) :=
   by
   rw [mul_comm, ← div_eq_mul_inv]
   exact ENNReal.div_le_of_le_mul' (hf x y)
 #align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edist
+-/
 
+#print AntilipschitzWith.ediam_preimage_le /-
 theorem ediam_preimage_le (hf : AntilipschitzWith K f) (s : Set β) : diam (f ⁻¹' s) ≤ K * diam s :=
   diam_le fun x hx y hy => (hf x y).trans <| mul_le_mul_left' (edist_le_diam_of_mem hx hy) K
 #align antilipschitz_with.ediam_preimage_le AntilipschitzWith.ediam_preimage_le
+-/
 
+#print AntilipschitzWith.le_mul_ediam_image /-
 theorem le_mul_ediam_image (hf : AntilipschitzWith K f) (s : Set α) : diam s ≤ K * diam (f '' s) :=
   (diam_mono (subset_preimage_image _ _)).trans (hf.ediam_preimage_le (f '' s))
 #align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_image
+-/
 
 #print AntilipschitzWith.id /-
 protected theorem id : AntilipschitzWith 1 (id : α → α) := fun x y => by
@@ -136,6 +156,7 @@ protected theorem id : AntilipschitzWith 1 (id : α → α) := fun x y => by
 #align antilipschitz_with.id AntilipschitzWith.id
 -/
 
+#print AntilipschitzWith.comp /-
 theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf : ℝ≥0} {f : α → β}
     (hf : AntilipschitzWith Kf f) : AntilipschitzWith (Kf * Kg) (g ∘ f) := fun x y =>
   calc
@@ -143,34 +164,46 @@ theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf :
     _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := (ENNReal.mul_left_mono (hg _ _))
     _ = _ := by rw [ENNReal.coe_mul, mul_assoc]
 #align antilipschitz_with.comp AntilipschitzWith.comp
+-/
 
+#print AntilipschitzWith.restrict /-
 theorem restrict (hf : AntilipschitzWith K f) (s : Set α) : AntilipschitzWith K (s.restrict f) :=
   fun x y => hf x y
 #align antilipschitz_with.restrict AntilipschitzWith.restrict
+-/
 
+#print AntilipschitzWith.codRestrict /-
 theorem codRestrict (hf : AntilipschitzWith K f) {s : Set β} (hs : ∀ x, f x ∈ s) :
     AntilipschitzWith K (s.codRestrict f hs) := fun x y => hf x y
 #align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrict
+-/
 
+#print AntilipschitzWith.to_rightInvOn' /-
 theorem to_rightInvOn' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α} {t : Set β}
     (g_maps : MapsTo g t s) (g_inv : RightInvOn g f t) : LipschitzWith K (t.restrict g) :=
   fun x y => by
   simpa only [restrict_apply, g_inv x.mem, g_inv y.mem, Subtype.edist_eq, Subtype.coe_mk] using
     hf ⟨g x, g_maps x.mem⟩ ⟨g y, g_maps y.mem⟩
 #align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_rightInvOn'
+-/
 
+#print AntilipschitzWith.to_rightInvOn /-
 theorem to_rightInvOn (hf : AntilipschitzWith K f) {g : β → α} {t : Set β} (h : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) :=
   (hf.restrict univ).to_rightInvOn' (mapsTo_univ g t) h
 #align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOn
+-/
 
+#print AntilipschitzWith.to_rightInverse /-
 theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     LipschitzWith K g := by
   intro x y
   have := hf (g x) (g y)
   rwa [hg x, hg y] at this 
 #align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverse
+-/
 
+#print AntilipschitzWith.comap_uniformity_le /-
 theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod.map f f) ≤ 𝓤 α :=
   by
   refine' ((uniformity_basis_edist.comap _).le_basis_iffₓ uniformity_basis_edist).2 fun ε h₀ => _
@@ -180,34 +213,45 @@ theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod
   rw [mul_comm]
   exact ENNReal.mul_lt_of_lt_div hx
 #align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_le
+-/
 
+#print AntilipschitzWith.uniformInducing /-
 protected theorem uniformInducing (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformInducing f :=
   ⟨le_antisymm hf.comap_uniformity_le hfc.le_comap⟩
 #align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducing
+-/
 
+#print AntilipschitzWith.uniformEmbedding /-
 protected theorem uniformEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformEmbedding f :=
   ⟨hf.UniformInducing hfc, hf.Injective⟩
 #align antilipschitz_with.uniform_embedding AntilipschitzWith.uniformEmbedding
+-/
 
+#print AntilipschitzWith.isComplete_range /-
 theorem isComplete_range [CompleteSpace α] (hf : AntilipschitzWith K f)
     (hfc : UniformContinuous f) : IsComplete (range f) :=
   (hf.UniformInducing hfc).isComplete_range
 #align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_range
+-/
 
+#print AntilipschitzWith.isClosed_range /-
 theorem isClosed_range {α β : Type _} [PseudoEMetricSpace α] [EMetricSpace β] [CompleteSpace α]
     {f : α → β} {K : ℝ≥0} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     IsClosed (range f) :=
   (hf.isComplete_range hfc).IsClosed
 #align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_range
+-/
 
+#print AntilipschitzWith.closedEmbedding /-
 theorem closedEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
   { (hf.UniformEmbedding hfc).Embedding with closed_range := hf.isClosed_range hfc }
 #align antilipschitz_with.closed_embedding AntilipschitzWith.closedEmbedding
+-/
 
 #print AntilipschitzWith.subtype_coe /-
 theorem subtype_coe (s : Set α) : AntilipschitzWith 1 (coe : s → α) :=
@@ -215,15 +259,19 @@ theorem subtype_coe (s : Set α) : AntilipschitzWith 1 (coe : s → α) :=
 #align antilipschitz_with.subtype_coe AntilipschitzWith.subtype_coe
 -/
 
+#print AntilipschitzWith.of_subsingleton /-
 theorem of_subsingleton [Subsingleton α] {K : ℝ≥0} : AntilipschitzWith K f := fun x y => by
   simp only [Subsingleton.elim x y, edist_self, zero_le]
 #align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingleton
+-/
 
+#print AntilipschitzWith.subsingleton /-
 /-- If `f : α → β` is `0`-antilipschitz, then `α` is a `subsingleton`. -/
 protected theorem subsingleton {α β} [EMetricSpace α] [PseudoEMetricSpace β] {f : α → β}
     (h : AntilipschitzWith 0 f) : Subsingleton α :=
   ⟨fun x y => edist_le_zero.1 <| (h x y).trans_eq <| MulZeroClass.zero_mul _⟩
 #align antilipschitz_with.subsingleton AntilipschitzWith.subsingleton
+-/
 
 end AntilipschitzWith
 
@@ -233,6 +281,7 @@ open Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
+#print AntilipschitzWith.bounded_preimage /-
 theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded s) :
     Bounded (f ⁻¹' s) :=
   Exists.intro (K * diam s) fun x hx y hy =>
@@ -240,11 +289,14 @@ theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded
       dist x y ≤ K * dist (f x) (f y) := hf.le_mul_dist x y
       _ ≤ K * diam s := mul_le_mul_of_nonneg_left (dist_le_diam_of_mem hs hx hy) K.2
 #align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
+-/
 
+#print AntilipschitzWith.tendsto_cobounded /-
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
   compl_surjective.forall.2 fun s (hs : IsBounded s) =>
     Metric.isBounded_iff.2 <| hf.bounded_preimage <| Metric.isBounded_iff.1 hs
 #align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_cobounded
+-/
 
 #print AntilipschitzWith.properSpace /-
 /-- The image of a proper space under an expanding onto map is proper. -/
@@ -264,15 +316,19 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
 
 end AntilipschitzWith
 
+#print LipschitzWith.to_rightInverse /-
 theorem LipschitzWith.to_rightInverse [PseudoEMetricSpace α] [PseudoEMetricSpace β] {K : ℝ≥0}
     {f : α → β} (hf : LipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     AntilipschitzWith K g := fun x y => by simpa only [hg _] using hf (g x) (g y)
 #align lipschitz_with.to_right_inverse LipschitzWith.to_rightInverse
+-/
 
+#print LipschitzWith.properSpace /-
 /-- The preimage of a proper space under a Lipschitz homeomorphism is proper. -/
 @[protected]
 theorem LipschitzWith.properSpace [PseudoMetricSpace α] [MetricSpace β] [ProperSpace β] {K : ℝ≥0}
     {f : α ≃ₜ β} (hK : LipschitzWith K f) : ProperSpace α :=
   (hK.to_rightInverse f.right_inv).ProperSpace f.symm.Continuous f.symm.Surjective
 #align lipschitz_with.proper_space LipschitzWith.properSpace
+-/
 
Diff
@@ -142,7 +142,6 @@ theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf :
     edist x y ≤ Kf * edist (f x) (f y) := hf x y
     _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := (ENNReal.mul_left_mono (hg _ _))
     _ = _ := by rw [ENNReal.coe_mul, mul_assoc]
-    
 #align antilipschitz_with.comp AntilipschitzWith.comp
 
 theorem restrict (hf : AntilipschitzWith K f) (s : Set α) : AntilipschitzWith K (s.restrict f) :=
@@ -240,7 +239,6 @@ theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded
     calc
       dist x y ≤ K * dist (f x) (f y) := hf.le_mul_dist x y
       _ ≤ K * diam s := mul_le_mul_of_nonneg_left (dist_le_diam_of_mem hs hx hy) K.2
-      
 #align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
 
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
Diff
@@ -62,8 +62,8 @@ theorem antilipschitzWith_iff_le_mul_nndist :
   simp only [AntilipschitzWith, edist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
 
-alias antilipschitzWith_iff_le_mul_nndist ↔
-  AntilipschitzWith.le_mul_nndist AntilipschitzWith.of_le_mul_nndist
+alias antilipschitzWith_iff_le_mul_nndist ↔ AntilipschitzWith.le_mul_nndist
+  AntilipschitzWith.of_le_mul_nndist
 #align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndist
 #align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 
@@ -72,8 +72,8 @@ theorem antilipschitzWith_iff_le_mul_dist :
   simp only [antilipschitzWith_iff_le_mul_nndist, dist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
 
-alias antilipschitzWith_iff_le_mul_dist ↔
-  AntilipschitzWith.le_mul_dist AntilipschitzWith.of_le_mul_dist
+alias antilipschitzWith_iff_le_mul_dist ↔ AntilipschitzWith.le_mul_dist
+  AntilipschitzWith.of_le_mul_dist
 #align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_dist
 #align antilipschitz_with.of_le_mul_dist AntilipschitzWith.of_le_mul_dist
 
Diff
@@ -169,7 +169,7 @@ theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Funct
     LipschitzWith K g := by
   intro x y
   have := hf (g x) (g y)
-  rwa [hg x, hg y] at this
+  rwa [hg x, hg y] at this 
 #align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverse
 
 theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod.map f f) ≤ 𝓤 α :=
@@ -177,7 +177,7 @@ theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod
   refine' ((uniformity_basis_edist.comap _).le_basis_iffₓ uniformity_basis_edist).2 fun ε h₀ => _
   refine' ⟨K⁻¹ * ε, ENNReal.mul_pos (ENNReal.inv_ne_zero.2 ENNReal.coe_ne_top) h₀.ne', _⟩
   refine' fun x hx => (hf x.1 x.2).trans_lt _
-  rw [mul_comm, ← div_eq_mul_inv] at hx
+  rw [mul_comm, ← div_eq_mul_inv] at hx 
   rw [mul_comm]
   exact ENNReal.mul_lt_of_lt_div hx
 #align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_le
Diff
@@ -31,7 +31,7 @@ we do not have a `posreal` type.
 
 variable {α : Type _} {β : Type _} {γ : Type _}
 
-open NNReal ENNReal uniformity
+open scoped NNReal ENNReal uniformity
 
 open Set Filter Bornology
 
Diff
@@ -43,23 +43,11 @@ def AntilipschitzWith [PseudoEMetricSpace α] [PseudoEMetricSpace β] (K : ℝ
 #align antilipschitz_with AntilipschitzWith
 -/
 
-/- warning: antilipschitz_with.edist_lt_top -> AntilipschitzWith.edist_lt_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_topₓ'. -/
 theorem AntilipschitzWith.edist_lt_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y < ⊤ :=
   (h x y).trans_lt <| ENNReal.mul_lt_top ENNReal.coe_ne_top (edist_ne_top _ _)
 #align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_top
 
-/- warning: antilipschitz_with.edist_ne_top -> AntilipschitzWith.edist_ne_top is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), Ne.{1} ENNReal (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), Ne.{1} ENNReal (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.edist_ne_top AntilipschitzWith.edist_ne_topₓ'. -/
 theorem AntilipschitzWith.edist_ne_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y ≠ ⊤ :=
   (h.edist_lt_top x y).Ne
@@ -69,57 +57,21 @@ section Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
-/- warning: antilipschitz_with_iff_le_mul_nndist -> antilipschitzWith_iff_le_mul_nndist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndistₓ'. -/
 theorem antilipschitzWith_iff_le_mul_nndist :
     AntilipschitzWith K f ↔ ∀ x y, nndist x y ≤ K * nndist (f x) (f y) := by
   simp only [AntilipschitzWith, edist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
 
-/- warning: antilipschitz_with.le_mul_nndist -> AntilipschitzWith.le_mul_nndist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndistₓ'. -/
-/- warning: antilipschitz_with.of_le_mul_nndist -> AntilipschitzWith.of_le_mul_nndist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndistₓ'. -/
 alias antilipschitzWith_iff_le_mul_nndist ↔
   AntilipschitzWith.le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 #align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndist
 #align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 
-/- warning: antilipschitz_with_iff_le_mul_dist -> antilipschitzWith_iff_le_mul_dist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_distₓ'. -/
 theorem antilipschitzWith_iff_le_mul_dist :
     AntilipschitzWith K f ↔ ∀ x y, dist x y ≤ K * dist (f x) (f y) := by
   simp only [antilipschitzWith_iff_le_mul_nndist, dist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
 
-/- warning: antilipschitz_with.le_mul_dist -> AntilipschitzWith.le_mul_dist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_distₓ'. -/
-/- warning: antilipschitz_with.of_le_mul_dist -> AntilipschitzWith.of_le_mul_dist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_le_mul_dist AntilipschitzWith.of_le_mul_distₓ'. -/
 alias antilipschitzWith_iff_le_mul_dist ↔
   AntilipschitzWith.le_mul_dist AntilipschitzWith.of_le_mul_dist
 #align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_dist
@@ -127,23 +79,11 @@ alias antilipschitzWith_iff_le_mul_dist ↔
 
 namespace AntilipschitzWith
 
-/- warning: antilipschitz_with.mul_le_nndist -> AntilipschitzWith.mul_le_nndist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (Inv.inv.{0} NNReal (DivInvMonoid.toHasInv.{0} NNReal (GroupWithZero.toDivInvMonoid.{0} NNReal (DivisionSemiring.toGroupWithZero.{0} NNReal (Semifield.toDivisionSemiring.{0} NNReal (LinearOrderedSemifield.toSemifield.{0} NNReal (CanonicallyLinearOrderedSemifield.toLinearOrderedSemifield.{0} NNReal NNReal.canonicallyLinearOrderedSemifield)))))) K) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y)) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (Inv.inv.{0} NNReal (CanonicallyLinearOrderedSemifield.toInv.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) K) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y)) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndistₓ'. -/
 theorem mul_le_nndist (hf : AntilipschitzWith K f) (x y : α) :
     K⁻¹ * nndist x y ≤ nndist (f x) (f y) := by
   simpa only [div_eq_inv_mul] using NNReal.div_le_of_le_mul' (hf.le_mul_nndist x y)
 #align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndist
 
-/- warning: antilipschitz_with.mul_le_dist -> AntilipschitzWith.mul_le_dist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K)) (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y)) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal (Inv.inv.{0} NNReal (CanonicallyLinearOrderedSemifield.toInv.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) K)) (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y)) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_dist AntilipschitzWith.mul_le_distₓ'. -/
 theorem mul_le_dist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * dist x y : ℝ) ≤ dist (f x) (f y) := by exact_mod_cast hf.mul_le_nndist x y
 #align antilipschitz_with.mul_le_dist AntilipschitzWith.mul_le_dist
@@ -170,23 +110,11 @@ protected def k (hf : AntilipschitzWith K f) : ℝ≥0 :=
 #align antilipschitz_with.K AntilipschitzWith.k
 -/
 
-/- warning: antilipschitz_with.injective -> AntilipschitzWith.injective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) _inst_5 K f) -> (Function.Injective.{succ u1, succ u2} α β f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) _inst_5 K f) -> (Function.Injective.{succ u2, succ u1} α β f)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.injective AntilipschitzWith.injectiveₓ'. -/
 protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) : Function.Injective f := fun x y h => by
   simpa only [h, edist_self, MulZeroClass.mul_zero, edist_le_zero] using hf x y
 #align antilipschitz_with.injective AntilipschitzWith.injective
 
-/- warning: antilipschitz_with.mul_le_edist -> AntilipschitzWith.mul_le_edist is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K)) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y)) (EDist.edist.{u2} β (PseudoEMetricSpace.toHasEdist.{u2} β _inst_2) (f x) (f y)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (ENNReal.some K)) (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y)) (EDist.edist.{u1} β (PseudoEMetricSpace.toEDist.{u1} β _inst_2) (f x) (f y)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edistₓ'. -/
 theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * edist x y : ℝ≥0∞) ≤ edist (f x) (f y) :=
   by
@@ -194,22 +122,10 @@ theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
   exact ENNReal.div_le_of_le_mul' (hf x y)
 #align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edist
 
-/- warning: antilipschitz_with.ediam_preimage_le -> AntilipschitzWith.ediam_preimage_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} β), LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 s)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} β), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EMetric.diam.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (ENNReal.some K) (EMetric.diam.{u1} β _inst_2 s)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.ediam_preimage_le AntilipschitzWith.ediam_preimage_leₓ'. -/
 theorem ediam_preimage_le (hf : AntilipschitzWith K f) (s : Set β) : diam (f ⁻¹' s) ≤ K * diam s :=
   diam_le fun x hx y hy => (hf x y).trans <| mul_le_mul_left' (edist_le_diam_of_mem hx hy) K
 #align antilipschitz_with.ediam_preimage_le AntilipschitzWith.ediam_preimage_le
 
-/- warning: antilipschitz_with.le_mul_ediam_image -> AntilipschitzWith.le_mul_ediam_image is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} α), LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 (Set.image.{u1, u2} α β f s))))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EMetric.diam.{u2} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (ENNReal.some K) (EMetric.diam.{u1} β _inst_2 (Set.image.{u2, u1} α β f s))))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_imageₓ'. -/
 theorem le_mul_ediam_image (hf : AntilipschitzWith K f) (s : Set α) : diam s ≤ K * diam (f '' s) :=
   (diam_mono (subset_preimage_image _ _)).trans (hf.ediam_preimage_le (f '' s))
 #align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_image
@@ -220,12 +136,6 @@ protected theorem id : AntilipschitzWith 1 (id : α → α) := fun x y => by
 #align antilipschitz_with.id AntilipschitzWith.id
 -/
 
-/- warning: antilipschitz_with.comp -> AntilipschitzWith.comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] [_inst_3 : PseudoEMetricSpace.{u3} γ] {Kg : NNReal} {g : β -> γ}, (AntilipschitzWith.{u2, u3} β γ _inst_2 _inst_3 Kg g) -> (forall {Kf : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 Kf f) -> (AntilipschitzWith.{u1, u3} α γ _inst_1 _inst_3 (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) Kf Kg) (Function.comp.{succ u1, succ u2, succ u3} α β γ g f)))
-but is expected to have type
-  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u3} β] [_inst_3 : PseudoEMetricSpace.{u2} γ] {Kg : NNReal} {g : β -> γ}, (AntilipschitzWith.{u3, u2} β γ _inst_2 _inst_3 Kg g) -> (forall {Kf : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u3} α β _inst_1 _inst_2 Kf f) -> (AntilipschitzWith.{u1, u2} α γ _inst_1 _inst_3 (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) Kf Kg) (Function.comp.{succ u1, succ u3, succ u2} α β γ g f)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.comp AntilipschitzWith.compₓ'. -/
 theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf : ℝ≥0} {f : α → β}
     (hf : AntilipschitzWith Kf f) : AntilipschitzWith (Kf * Kg) (g ∘ f) := fun x y =>
   calc
@@ -235,32 +145,14 @@ theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf :
     
 #align antilipschitz_with.comp AntilipschitzWith.comp
 
-/- warning: antilipschitz_with.restrict -> AntilipschitzWith.restrict is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} α), AntilipschitzWith.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.pseudoEmetricSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) _inst_2 K (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} α), AntilipschitzWith.{u2, u1} (Set.Elem.{u2} α s) β (instPseudoEMetricSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) _inst_1) _inst_2 K (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.restrict AntilipschitzWith.restrictₓ'. -/
 theorem restrict (hf : AntilipschitzWith K f) (s : Set α) : AntilipschitzWith K (s.restrict f) :=
   fun x y => hf x y
 #align antilipschitz_with.restrict AntilipschitzWith.restrict
 
-/- warning: antilipschitz_with.cod_restrict -> AntilipschitzWith.codRestrict is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {s : Set.{u2} β} (hs : forall (x : α), Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (f x) s), AntilipschitzWith.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s) _inst_2) K (Set.codRestrict.{u2, succ u1} β α f s hs))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {s : Set.{u1} β} (hs : forall (x : α), Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (f x) s), AntilipschitzWith.{u2, u1} α (Set.Elem.{u1} β s) _inst_1 (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s) _inst_2) K (Set.codRestrict.{u1, succ u2} β α f s hs))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrictₓ'. -/
 theorem codRestrict (hf : AntilipschitzWith K f) {s : Set β} (hs : ∀ x, f x ∈ s) :
     AntilipschitzWith K (s.codRestrict f hs) := fun x y => hf x y
 #align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrict
 
-/- warning: antilipschitz_with.to_right_inv_on' -> AntilipschitzWith.to_rightInvOn' is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β} {s : Set.{u1} α}, (AntilipschitzWith.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.pseudoEmetricSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) _inst_2 K (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f)) -> (forall {g : β -> α} {t : Set.{u2} β}, (Set.MapsTo.{u2, u1} β α g t s) -> (Set.RightInvOn.{u1, u2} α β g f t) -> (LipschitzWith.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) α (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t) _inst_2) _inst_1 K (Set.restrict.{u2, u1} β (fun (ᾰ : β) => α) t g)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β} {s : Set.{u2} α}, (AntilipschitzWith.{u2, u1} (Set.Elem.{u2} α s) β (instPseudoEMetricSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) _inst_1) _inst_2 K (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f)) -> (forall {g : β -> α} {t : Set.{u1} β}, (Set.MapsTo.{u1, u2} β α g t s) -> (Set.RightInvOn.{u2, u1} α β g f t) -> (LipschitzWith.{u1, u2} (Set.Elem.{u1} β t) α (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x t) _inst_2) _inst_1 K (Set.restrict.{u1, u2} β (fun (ᾰ : β) => α) t g)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_rightInvOn'ₓ'. -/
 theorem to_rightInvOn' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α} {t : Set β}
     (g_maps : MapsTo g t s) (g_inv : RightInvOn g f t) : LipschitzWith K (t.restrict g) :=
   fun x y => by
@@ -268,23 +160,11 @@ theorem to_rightInvOn' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g
     hf ⟨g x, g_maps x.mem⟩ ⟨g y, g_maps y.mem⟩
 #align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_rightInvOn'
 
-/- warning: antilipschitz_with.to_right_inv_on -> AntilipschitzWith.to_rightInvOn is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α} {t : Set.{u2} β}, (Set.RightInvOn.{u1, u2} α β g f t) -> (LipschitzWith.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) α (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t) _inst_2) _inst_1 K (Set.restrict.{u2, u1} β (fun (ᾰ : β) => α) t g)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α} {t : Set.{u1} β}, (Set.RightInvOn.{u2, u1} α β g f t) -> (LipschitzWith.{u1, u2} (Set.Elem.{u1} β t) α (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x t) _inst_2) _inst_1 K (Set.restrict.{u1, u2} β (fun (ᾰ : β) => α) t g)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOnₓ'. -/
 theorem to_rightInvOn (hf : AntilipschitzWith K f) {g : β → α} {t : Set β} (h : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) :=
   (hf.restrict univ).to_rightInvOn' (mapsTo_univ g t) h
 #align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOn
 
-/- warning: antilipschitz_with.to_right_inverse -> AntilipschitzWith.to_rightInverse is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u1, succ u2} α β g f) -> (LipschitzWith.{u2, u1} β α _inst_2 _inst_1 K g))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u2, succ u1} α β g f) -> (LipschitzWith.{u1, u2} β α _inst_2 _inst_1 K g))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverseₓ'. -/
 theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     LipschitzWith K g := by
   intro x y
@@ -292,12 +172,6 @@ theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Funct
   rwa [hg x, hg y] at this
 #align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverse
 
-/- warning: antilipschitz_with.comap_uniformity_le -> AntilipschitzWith.comap_uniformity_le is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (LE.le.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Preorder.toHasLe.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (PartialOrder.toPreorder.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.partialOrder.{u1} (Prod.{u1, u1} α α)))) (Filter.comap.{u1, u2} (Prod.{u1, u1} α α) (Prod.{u2, u2} β β) (Prod.map.{u1, u2, u1, u2} α β α β f f) (uniformity.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2))) (uniformity.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (LE.le.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (Preorder.toLE.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (PartialOrder.toPreorder.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (Filter.instPartialOrderFilter.{u2} (Prod.{u2, u2} α α)))) (Filter.comap.{u2, u1} (Prod.{u2, u2} α α) (Prod.{u1, u1} β β) (Prod.map.{u2, u1, u2, u1} α β α β f f) (uniformity.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2))) (uniformity.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_leₓ'. -/
 theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod.map f f) ≤ 𝓤 α :=
   by
   refine' ((uniformity_basis_edist.comap _).le_basis_iffₓ uniformity_basis_edist).2 fun ε h₀ => _
@@ -308,58 +182,28 @@ theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod
   exact ENNReal.mul_lt_of_lt_div hx
 #align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_le
 
-/- warning: antilipschitz_with.uniform_inducing -> AntilipschitzWith.uniformInducing is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) f) -> (UniformInducing.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) f) -> (UniformInducing.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) f)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducingₓ'. -/
 protected theorem uniformInducing (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformInducing f :=
   ⟨le_antisymm hf.comap_uniformity_le hfc.le_comap⟩
 #align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducing
 
-/- warning: antilipschitz_with.uniform_embedding -> AntilipschitzWith.uniformEmbedding is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) _inst_5 K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_5) f) -> (UniformEmbedding.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_5) f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) _inst_5 K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_5) f) -> (UniformEmbedding.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_5) f)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.uniform_embedding AntilipschitzWith.uniformEmbeddingₓ'. -/
 protected theorem uniformEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformEmbedding f :=
   ⟨hf.UniformInducing hfc, hf.Injective⟩
 #align antilipschitz_with.uniform_embedding AntilipschitzWith.uniformEmbedding
 
-/- warning: antilipschitz_with.is_complete_range -> AntilipschitzWith.isComplete_range is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β} [_inst_4 : CompleteSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1)], (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) f) -> (IsComplete.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) (Set.range.{u2, succ u1} β α f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β} [_inst_4 : CompleteSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1)], (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) f) -> (IsComplete.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) (Set.range.{u1, succ u2} β α f))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_rangeₓ'. -/
 theorem isComplete_range [CompleteSpace α] (hf : AntilipschitzWith K f)
     (hfc : UniformContinuous f) : IsComplete (range f) :=
   (hf.UniformInducing hfc).isComplete_range
 #align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_range
 
-/- warning: antilipschitz_with.is_closed_range -> AntilipschitzWith.isClosed_range is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : PseudoEMetricSpace.{u1} α] [_inst_5 : EMetricSpace.{u2} β] [_inst_6 : CompleteSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_4)] {f : α -> β} {K : NNReal}, (AntilipschitzWith.{u1, u2} α β _inst_4 (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5) K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_4) (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5)) f) -> (IsClosed.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5))) (Set.range.{u2, succ u1} β α f))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : PseudoEMetricSpace.{u2} α] [_inst_5 : EMetricSpace.{u1} β] [_inst_6 : CompleteSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_4)] {f : α -> β} {K : NNReal}, (AntilipschitzWith.{u2, u1} α β _inst_4 (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5) K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_4) (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5)) f) -> (IsClosed.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5))) (Set.range.{u1, succ u2} β α f))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_rangeₓ'. -/
 theorem isClosed_range {α β : Type _} [PseudoEMetricSpace α] [EMetricSpace β] [CompleteSpace α]
     {f : α → β} {K : ℝ≥0} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     IsClosed (range f) :=
   (hf.isComplete_range hfc).IsClosed
 #align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_range
 
-/- warning: antilipschitz_with.closed_embedding -> AntilipschitzWith.closedEmbedding is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : EMetricSpace.{u2} β] {K : NNReal} {f : α -> β} [_inst_6 : CompleteSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4))], (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5) K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5)) f) -> (ClosedEmbedding.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4))) (UniformSpace.toTopologicalSpace.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5))) f)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : EMetricSpace.{u1} β] {K : NNReal} {f : α -> β} [_inst_6 : CompleteSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4))], (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5) K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5)) f) -> (ClosedEmbedding.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4))) (UniformSpace.toTopologicalSpace.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5))) f)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.closed_embedding AntilipschitzWith.closedEmbeddingₓ'. -/
 theorem closedEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
@@ -372,22 +216,10 @@ theorem subtype_coe (s : Set α) : AntilipschitzWith 1 (coe : s → α) :=
 #align antilipschitz_with.subtype_coe AntilipschitzWith.subtype_coe
 -/
 
-/- warning: antilipschitz_with.of_subsingleton -> AntilipschitzWith.of_subsingleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {f : α -> β} [_inst_4 : Subsingleton.{succ u1} α] {K : NNReal}, AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {f : α -> β} [_inst_4 : Subsingleton.{succ u2} α] {K : NNReal}, AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingletonₓ'. -/
 theorem of_subsingleton [Subsingleton α] {K : ℝ≥0} : AntilipschitzWith K f := fun x y => by
   simp only [Subsingleton.elim x y, edist_self, zero_le]
 #align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingleton
 
-/- warning: antilipschitz_with.subsingleton -> AntilipschitzWith.subsingleton is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : PseudoEMetricSpace.{u2} β] {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) _inst_5 (OfNat.ofNat.{0} NNReal 0 (OfNat.mk.{0} NNReal 0 (Zero.zero.{0} NNReal (MulZeroClass.toHasZero.{0} NNReal (NonUnitalNonAssocSemiring.toMulZeroClass.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))))) f) -> (Subsingleton.{succ u1} α)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : PseudoEMetricSpace.{u1} β] {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) _inst_5 (OfNat.ofNat.{0} NNReal 0 (Zero.toOfNat0.{0} NNReal instNNRealZero)) f) -> (Subsingleton.{succ u2} α)
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.subsingleton AntilipschitzWith.subsingletonₓ'. -/
 /-- If `f : α → β` is `0`-antilipschitz, then `α` is a `subsingleton`. -/
 protected theorem subsingleton {α β} [EMetricSpace α] [PseudoEMetricSpace β] {f : α → β}
     (h : AntilipschitzWith 0 f) : Subsingleton α :=
@@ -402,12 +234,6 @@ open Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
-/- warning: antilipschitz_with.bounded_preimage -> AntilipschitzWith.bounded_preimage is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall {s : Set.{u2} β}, (Metric.Bounded.{u2} β _inst_2 s) -> (Metric.Bounded.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall {s : Set.{u1} β}, (Metric.Bounded.{u1} β _inst_2 s) -> (Metric.Bounded.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f s)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimageₓ'. -/
 theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded s) :
     Bounded (f ⁻¹' s) :=
   Exists.intro (K * diam s) fun x hx y hy =>
@@ -417,12 +243,6 @@ theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded
       
 #align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
 
-/- warning: antilipschitz_with.tendsto_cobounded -> AntilipschitzWith.tendsto_cobounded is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (Filter.Tendsto.{u1, u2} α β f (Bornology.cobounded.{u1} α (PseudoMetricSpace.toBornology.{u1} α _inst_1)) (Bornology.cobounded.{u2} β (PseudoMetricSpace.toBornology.{u2} β _inst_2)))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (Filter.Tendsto.{u2, u1} α β f (Bornology.cobounded.{u2} α (PseudoMetricSpace.toBornology.{u2} α _inst_1)) (Bornology.cobounded.{u1} β (PseudoMetricSpace.toBornology.{u1} β _inst_2)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_coboundedₓ'. -/
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
   compl_surjective.forall.2 fun s (hs : IsBounded s) =>
     Metric.isBounded_iff.2 <| hf.bounded_preimage <| Metric.isBounded_iff.1 hs
@@ -446,23 +266,11 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
 
 end AntilipschitzWith
 
-/- warning: lipschitz_with.to_right_inverse -> LipschitzWith.to_rightInverse is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (LipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u1, succ u2} α β g f) -> (AntilipschitzWith.{u2, u1} β α _inst_2 _inst_1 K g))
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (LipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u2, succ u1} α β g f) -> (AntilipschitzWith.{u1, u2} β α _inst_2 _inst_1 K g))
-Case conversion may be inaccurate. Consider using '#align lipschitz_with.to_right_inverse LipschitzWith.to_rightInverseₓ'. -/
 theorem LipschitzWith.to_rightInverse [PseudoEMetricSpace α] [PseudoEMetricSpace β] {K : ℝ≥0}
     {f : α → β} (hf : LipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     AntilipschitzWith K g := fun x y => by simpa only [hg _] using hf (g x) (g y)
 #align lipschitz_with.to_right_inverse LipschitzWith.to_rightInverse
 
-/- warning: lipschitz_with.proper_space -> LipschitzWith.properSpace is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MetricSpace.{u2} β] [_inst_3 : ProperSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)] {K : NNReal} {f : Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))}, (LipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)) K (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) (fun (_x : Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) => α -> β) (Homeomorph.hasCoeToFun.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) f)) -> (ProperSpace.{u1} α _inst_1)
-but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : MetricSpace.{u1} β] [_inst_3 : ProperSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)] {K : NNReal} {f : Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))}, (LipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (EMetricSpace.toPseudoEMetricSpace.{u1} β (MetricSpace.toEMetricSpace.{u1} β _inst_2)) K (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α (fun (_x : α) => β) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))))) f)) -> (ProperSpace.{u2} α _inst_1)
-Case conversion may be inaccurate. Consider using '#align lipschitz_with.proper_space LipschitzWith.properSpaceₓ'. -/
 /-- The preimage of a proper space under a Lipschitz homeomorphism is proper. -/
 @[protected]
 theorem LipschitzWith.properSpace [PseudoMetricSpace α] [MetricSpace β] [ProperSpace β] {K : ℝ≥0}
Diff
@@ -76,10 +76,8 @@ but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndistₓ'. -/
 theorem antilipschitzWith_iff_le_mul_nndist :
-    AntilipschitzWith K f ↔ ∀ x y, nndist x y ≤ K * nndist (f x) (f y) :=
-  by
-  simp only [AntilipschitzWith, edist_nndist]
-  norm_cast
+    AntilipschitzWith K f ↔ ∀ x y, nndist x y ≤ K * nndist (f x) (f y) := by
+  simp only [AntilipschitzWith, edist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
 
 /- warning: antilipschitz_with.le_mul_nndist -> AntilipschitzWith.le_mul_nndist is a dubious translation:
@@ -106,10 +104,8 @@ but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y))))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_distₓ'. -/
 theorem antilipschitzWith_iff_le_mul_dist :
-    AntilipschitzWith K f ↔ ∀ x y, dist x y ≤ K * dist (f x) (f y) :=
-  by
-  simp only [antilipschitzWith_iff_le_mul_nndist, dist_nndist]
-  norm_cast
+    AntilipschitzWith K f ↔ ∀ x y, dist x y ≤ K * dist (f x) (f y) := by
+  simp only [antilipschitzWith_iff_le_mul_nndist, dist_nndist]; norm_cast
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
 
 /- warning: antilipschitz_with.le_mul_dist -> AntilipschitzWith.le_mul_dist is a dubious translation:
Diff
@@ -45,7 +45,7 @@ def AntilipschitzWith [PseudoEMetricSpace α] [PseudoEMetricSpace β] (K : ℝ
 
 /- warning: antilipschitz_with.edist_lt_top -> AntilipschitzWith.edist_lt_top is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toHasLt.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_topₓ'. -/
@@ -71,7 +71,7 @@ variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α →
 
 /- warning: antilipschitz_with_iff_le_mul_nndist -> antilipschitzWith_iff_le_mul_nndist is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndistₓ'. -/
@@ -84,13 +84,13 @@ theorem antilipschitzWith_iff_le_mul_nndist :
 
 /- warning: antilipschitz_with.le_mul_nndist -> AntilipschitzWith.le_mul_nndist is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndistₓ'. -/
 /- warning: antilipschitz_with.of_le_mul_nndist -> AntilipschitzWith.of_le_mul_nndist is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f)
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f)
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f)
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndistₓ'. -/
@@ -133,7 +133,7 @@ namespace AntilipschitzWith
 
 /- warning: antilipschitz_with.mul_le_nndist -> AntilipschitzWith.mul_le_nndist is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (Inv.inv.{0} NNReal (DivInvMonoid.toHasInv.{0} NNReal (GroupWithZero.toDivInvMonoid.{0} NNReal (DivisionSemiring.toGroupWithZero.{0} NNReal (Semifield.toDivisionSemiring.{0} NNReal (LinearOrderedSemifield.toSemifield.{0} NNReal (CanonicallyLinearOrderedSemifield.toLinearOrderedSemifield.{0} NNReal NNReal.canonicallyLinearOrderedSemifield)))))) K) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y)) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toHasLe.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (Inv.inv.{0} NNReal (DivInvMonoid.toHasInv.{0} NNReal (GroupWithZero.toDivInvMonoid.{0} NNReal (DivisionSemiring.toGroupWithZero.{0} NNReal (Semifield.toDivisionSemiring.{0} NNReal (LinearOrderedSemifield.toSemifield.{0} NNReal (CanonicallyLinearOrderedSemifield.toLinearOrderedSemifield.{0} NNReal NNReal.canonicallyLinearOrderedSemifield)))))) K) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y)) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (Inv.inv.{0} NNReal (CanonicallyLinearOrderedSemifield.toInv.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) K) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y)) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y)))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndistₓ'. -/
@@ -187,7 +187,7 @@ protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [Pseud
 
 /- warning: antilipschitz_with.mul_le_edist -> AntilipschitzWith.mul_le_edist is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K)) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y)) (EDist.edist.{u2} β (PseudoEMetricSpace.toHasEdist.{u2} β _inst_2) (f x) (f y)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K)) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y)) (EDist.edist.{u2} β (PseudoEMetricSpace.toHasEdist.{u2} β _inst_2) (f x) (f y)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (ENNReal.some K)) (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y)) (EDist.edist.{u1} β (PseudoEMetricSpace.toEDist.{u1} β _inst_2) (f x) (f y)))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edistₓ'. -/
@@ -200,7 +200,7 @@ theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
 
 /- warning: antilipschitz_with.ediam_preimage_le -> AntilipschitzWith.ediam_preimage_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} β), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 s)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} β), LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 s)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} β), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EMetric.diam.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (ENNReal.some K) (EMetric.diam.{u1} β _inst_2 s)))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.ediam_preimage_le AntilipschitzWith.ediam_preimage_leₓ'. -/
@@ -210,7 +210,7 @@ theorem ediam_preimage_le (hf : AntilipschitzWith K f) (s : Set β) : diam (f 
 
 /- warning: antilipschitz_with.le_mul_ediam_image -> AntilipschitzWith.le_mul_ediam_image is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 (Set.image.{u1, u2} α β f s))))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} α), LE.le.{0} ENNReal (Preorder.toHasLe.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 (Set.image.{u1, u2} α β f s))))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EMetric.diam.{u2} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (ENNReal.some K) (EMetric.diam.{u1} β _inst_2 (Set.image.{u2, u1} α β f s))))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_imageₓ'. -/
@@ -298,7 +298,7 @@ theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Funct
 
 /- warning: antilipschitz_with.comap_uniformity_le -> AntilipschitzWith.comap_uniformity_le is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (LE.le.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Preorder.toLE.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (PartialOrder.toPreorder.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.partialOrder.{u1} (Prod.{u1, u1} α α)))) (Filter.comap.{u1, u2} (Prod.{u1, u1} α α) (Prod.{u2, u2} β β) (Prod.map.{u1, u2, u1, u2} α β α β f f) (uniformity.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2))) (uniformity.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1)))
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (LE.le.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Preorder.toHasLe.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (PartialOrder.toPreorder.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.partialOrder.{u1} (Prod.{u1, u1} α α)))) (Filter.comap.{u1, u2} (Prod.{u1, u1} α α) (Prod.{u2, u2} β β) (Prod.map.{u1, u2, u1, u2} α β α β f f) (uniformity.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2))) (uniformity.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (LE.le.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (Preorder.toLE.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (PartialOrder.toPreorder.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (Filter.instPartialOrderFilter.{u2} (Prod.{u2, u2} α α)))) (Filter.comap.{u2, u1} (Prod.{u2, u2} α α) (Prod.{u1, u1} β β) (Prod.map.{u2, u1, u2, u1} α β α β f f) (uniformity.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2))) (uniformity.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1)))
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_leₓ'. -/
Diff
@@ -259,18 +259,18 @@ theorem codRestrict (hf : AntilipschitzWith K f) {s : Set β} (hs : ∀ x, f x 
     AntilipschitzWith K (s.codRestrict f hs) := fun x y => hf x y
 #align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrict
 
-/- warning: antilipschitz_with.to_right_inv_on' -> AntilipschitzWith.to_right_inv_on' is a dubious translation:
+/- warning: antilipschitz_with.to_right_inv_on' -> AntilipschitzWith.to_rightInvOn' is a dubious translation:
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β} {s : Set.{u1} α}, (AntilipschitzWith.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.pseudoEmetricSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) _inst_2 K (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f)) -> (forall {g : β -> α} {t : Set.{u2} β}, (Set.MapsTo.{u2, u1} β α g t s) -> (Set.RightInvOn.{u1, u2} α β g f t) -> (LipschitzWith.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) α (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t) _inst_2) _inst_1 K (Set.restrict.{u2, u1} β (fun (ᾰ : β) => α) t g)))
 but is expected to have type
   forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β} {s : Set.{u2} α}, (AntilipschitzWith.{u2, u1} (Set.Elem.{u2} α s) β (instPseudoEMetricSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) _inst_1) _inst_2 K (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f)) -> (forall {g : β -> α} {t : Set.{u1} β}, (Set.MapsTo.{u1, u2} β α g t s) -> (Set.RightInvOn.{u2, u1} α β g f t) -> (LipschitzWith.{u1, u2} (Set.Elem.{u1} β t) α (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x t) _inst_2) _inst_1 K (Set.restrict.{u1, u2} β (fun (ᾰ : β) => α) t g)))
-Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_right_inv_on'ₓ'. -/
-theorem to_right_inv_on' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α}
-    {t : Set β} (g_maps : MapsTo g t s) (g_inv : RightInvOn g f t) :
-    LipschitzWith K (t.restrict g) := fun x y => by
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_rightInvOn'ₓ'. -/
+theorem to_rightInvOn' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α} {t : Set β}
+    (g_maps : MapsTo g t s) (g_inv : RightInvOn g f t) : LipschitzWith K (t.restrict g) :=
+  fun x y => by
   simpa only [restrict_apply, g_inv x.mem, g_inv y.mem, Subtype.edist_eq, Subtype.coe_mk] using
     hf ⟨g x, g_maps x.mem⟩ ⟨g y, g_maps y.mem⟩
-#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_right_inv_on'
+#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_rightInvOn'
 
 /- warning: antilipschitz_with.to_right_inv_on -> AntilipschitzWith.to_rightInvOn is a dubious translation:
 lean 3 declaration is
@@ -280,7 +280,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOnₓ'. -/
 theorem to_rightInvOn (hf : AntilipschitzWith K f) {g : β → α} {t : Set β} (h : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) :=
-  (hf.restrict univ).to_right_inv_on' (mapsTo_univ g t) h
+  (hf.restrict univ).to_rightInvOn' (mapsTo_univ g t) h
 #align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOn
 
 /- warning: antilipschitz_with.to_right_inverse -> AntilipschitzWith.to_rightInverse is a dubious translation:
Diff
@@ -465,7 +465,7 @@ theorem LipschitzWith.to_rightInverse [PseudoEMetricSpace α] [PseudoEMetricSpac
 lean 3 declaration is
   forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MetricSpace.{u2} β] [_inst_3 : ProperSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)] {K : NNReal} {f : Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))}, (LipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)) K (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) (fun (_x : Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) => α -> β) (Homeomorph.hasCoeToFun.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) f)) -> (ProperSpace.{u1} α _inst_1)
 but is expected to have type
-  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : MetricSpace.{u1} β] [_inst_3 : ProperSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)] {K : NNReal} {f : Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))}, (LipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (EMetricSpace.toPseudoEMetricSpace.{u1} β (MetricSpace.toEMetricSpace.{u1} β _inst_2)) K (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))))) f)) -> (ProperSpace.{u2} α _inst_1)
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : MetricSpace.{u1} β] [_inst_3 : ProperSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)] {K : NNReal} {f : Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))}, (LipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (EMetricSpace.toPseudoEMetricSpace.{u1} β (MetricSpace.toEMetricSpace.{u1} β _inst_2)) K (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α (fun (_x : α) => β) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))))) f)) -> (ProperSpace.{u2} α _inst_1)
 Case conversion may be inaccurate. Consider using '#align lipschitz_with.proper_space LipschitzWith.properSpaceₓ'. -/
 /-- The preimage of a proper space under a Lipschitz homeomorphism is proper. -/
 @[protected]
Diff
@@ -182,7 +182,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align antilipschitz_with.injective AntilipschitzWith.injectiveₓ'. -/
 protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) : Function.Injective f := fun x y h => by
-  simpa only [h, edist_self, mul_zero, edist_le_zero] using hf x y
+  simpa only [h, edist_self, MulZeroClass.mul_zero, edist_le_zero] using hf x y
 #align antilipschitz_with.injective AntilipschitzWith.injective
 
 /- warning: antilipschitz_with.mul_le_edist -> AntilipschitzWith.mul_le_edist is a dubious translation:
@@ -395,7 +395,7 @@ Case conversion may be inaccurate. Consider using '#align antilipschitz_with.sub
 /-- If `f : α → β` is `0`-antilipschitz, then `α` is a `subsingleton`. -/
 protected theorem subsingleton {α β} [EMetricSpace α] [PseudoEMetricSpace β] {f : α → β}
     (h : AntilipschitzWith 0 f) : Subsingleton α :=
-  ⟨fun x y => edist_le_zero.1 <| (h x y).trans_eq <| zero_mul _⟩
+  ⟨fun x y => edist_le_zero.1 <| (h x y).trans_eq <| MulZeroClass.zero_mul _⟩
 #align antilipschitz_with.subsingleton AntilipschitzWith.subsingleton
 
 end AntilipschitzWith
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.antilipschitz
-! leanprover-community/mathlib commit 97f079b7e89566de3a1143f887713667328c38ba
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Topology.UniformSpace.CompleteSeparated
 /-!
 # Antilipschitz functions
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We say that a map `f : α → β` between two (extended) metric spaces is
 `antilipschitz_with K`, `K ≥ 0`, if for all `x, y` we have `edist x y ≤ K * edist (f x) (f y)`.
 For a metric space, the latter inequality is equivalent to `dist x y ≤ K * dist (f x) (f y)`.
Diff
@@ -32,17 +32,31 @@ open NNReal ENNReal uniformity
 
 open Set Filter Bornology
 
+#print AntilipschitzWith /-
 /-- We say that `f : α → β` is `antilipschitz_with K` if for any two points `x`, `y` we have
 `edist x y ≤ K * edist (f x) (f y)`. -/
 def AntilipschitzWith [PseudoEMetricSpace α] [PseudoEMetricSpace β] (K : ℝ≥0) (f : α → β) :=
   ∀ x y, edist x y ≤ K * edist (f x) (f y)
 #align antilipschitz_with AntilipschitzWith
+-/
 
+/- warning: antilipschitz_with.edist_lt_top -> AntilipschitzWith.edist_lt_top is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LT.lt.{0} ENNReal (Preorder.toLT.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_topₓ'. -/
 theorem AntilipschitzWith.edist_lt_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y < ⊤ :=
   (h x y).trans_lt <| ENNReal.mul_lt_top ENNReal.coe_ne_top (edist_ne_top _ _)
 #align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_top
 
+/- warning: antilipschitz_with.edist_ne_top -> AntilipschitzWith.edist_ne_top is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), Ne.{1} ENNReal (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toHasTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), Ne.{1} ENNReal (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y) (Top.top.{0} ENNReal (CompleteLattice.toTop.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.edist_ne_top AntilipschitzWith.edist_ne_topₓ'. -/
 theorem AntilipschitzWith.edist_ne_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y ≠ ⊤ :=
   (h.edist_lt_top x y).Ne
@@ -52,6 +66,12 @@ section Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
+/- warning: antilipschitz_with_iff_le_mul_nndist -> antilipschitzWith_iff_le_mul_nndist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndistₓ'. -/
 theorem antilipschitzWith_iff_le_mul_nndist :
     AntilipschitzWith K f ↔ ∀ x y, nndist x y ≤ K * nndist (f x) (f y) :=
   by
@@ -59,11 +79,29 @@ theorem antilipschitzWith_iff_le_mul_nndist :
   norm_cast
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
 
+/- warning: antilipschitz_with.le_mul_nndist -> AntilipschitzWith.le_mul_nndist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndistₓ'. -/
+/- warning: antilipschitz_with.of_le_mul_nndist -> AntilipschitzWith.of_le_mul_nndist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) K (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) K (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndistₓ'. -/
 alias antilipschitzWith_iff_le_mul_nndist ↔
   AntilipschitzWith.le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 #align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndist
 #align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 
+/- warning: antilipschitz_with_iff_le_mul_dist -> antilipschitzWith_iff_le_mul_dist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, Iff (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_distₓ'. -/
 theorem antilipschitzWith_iff_le_mul_dist :
     AntilipschitzWith K f ↔ ∀ x y, dist x y ≤ K * dist (f x) (f y) :=
   by
@@ -71,6 +109,18 @@ theorem antilipschitzWith_iff_le_mul_dist :
   norm_cast
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
 
+/- warning: antilipschitz_with.le_mul_dist -> AntilipschitzWith.le_mul_dist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_distₓ'. -/
+/- warning: antilipschitz_with.of_le_mul_dist -> AntilipschitzWith.of_le_mul_dist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal K) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y)))) -> (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_le_mul_dist AntilipschitzWith.of_le_mul_distₓ'. -/
 alias antilipschitzWith_iff_le_mul_dist ↔
   AntilipschitzWith.le_mul_dist AntilipschitzWith.of_le_mul_dist
 #align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_dist
@@ -78,11 +128,23 @@ alias antilipschitzWith_iff_le_mul_dist ↔
 
 namespace AntilipschitzWith
 
+/- warning: antilipschitz_with.mul_le_nndist -> AntilipschitzWith.mul_le_nndist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (OrderedCancelAddCommMonoid.toPartialOrder.{0} NNReal (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} NNReal NNReal.strictOrderedSemiring)))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) (Inv.inv.{0} NNReal (DivInvMonoid.toHasInv.{0} NNReal (GroupWithZero.toDivInvMonoid.{0} NNReal (DivisionSemiring.toGroupWithZero.{0} NNReal (Semifield.toDivisionSemiring.{0} NNReal (LinearOrderedSemifield.toSemifield.{0} NNReal (CanonicallyLinearOrderedSemifield.toLinearOrderedSemifield.{0} NNReal NNReal.canonicallyLinearOrderedSemifield)))))) K) (NNDist.nndist.{u1} α (PseudoMetricSpace.toNNDist.{u1} α _inst_1) x y)) (NNDist.nndist.{u2} β (PseudoMetricSpace.toNNDist.{u2} β _inst_2) (f x) (f y)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} NNReal (Preorder.toLE.{0} NNReal (PartialOrder.toPreorder.{0} NNReal (StrictOrderedSemiring.toPartialOrder.{0} NNReal instNNRealStrictOrderedSemiring))) (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) (Inv.inv.{0} NNReal (CanonicallyLinearOrderedSemifield.toInv.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) K) (NNDist.nndist.{u2} α (PseudoMetricSpace.toNNDist.{u2} α _inst_1) x y)) (NNDist.nndist.{u1} β (PseudoMetricSpace.toNNDist.{u1} β _inst_2) (f x) (f y)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndistₓ'. -/
 theorem mul_le_nndist (hf : AntilipschitzWith K f) (x y : α) :
     K⁻¹ * nndist x y ≤ nndist (f x) (f y) := by
   simpa only [div_eq_inv_mul] using NNReal.div_le_of_le_mul' (hf.le_mul_nndist x y)
 #align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndist
 
+/- warning: antilipschitz_with.mul_le_dist -> AntilipschitzWith.mul_le_dist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.hasLe (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (Inv.inv.{0} Real Real.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal Real (HasLiftT.mk.{1, 1} NNReal Real (CoeTCₓ.coe.{1, 1} NNReal Real (coeBase.{1, 1} NNReal Real NNReal.Real.hasCoe))) K)) (Dist.dist.{u1} α (PseudoMetricSpace.toHasDist.{u1} α _inst_1) x y)) (Dist.dist.{u2} β (PseudoMetricSpace.toHasDist.{u2} β _inst_2) (f x) (f y)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall (x : α) (y : α), LE.le.{0} Real Real.instLEReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (NNReal.toReal (Inv.inv.{0} NNReal (CanonicallyLinearOrderedSemifield.toInv.{0} NNReal NNReal.instCanonicallyLinearOrderedSemifieldNNReal) K)) (Dist.dist.{u2} α (PseudoMetricSpace.toDist.{u2} α _inst_1) x y)) (Dist.dist.{u1} β (PseudoMetricSpace.toDist.{u1} β _inst_2) (f x) (f y)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_dist AntilipschitzWith.mul_le_distₓ'. -/
 theorem mul_le_dist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * dist x y : ℝ) ≤ dist (f x) (f y) := by exact_mod_cast hf.mul_le_nndist x y
 #align antilipschitz_with.mul_le_dist AntilipschitzWith.mul_le_dist
@@ -99,6 +161,7 @@ variable {K : ℝ≥0} {f : α → β}
 
 open Emetric
 
+#print AntilipschitzWith.k /-
 -- uses neither `f` nor `hf`
 /-- Extract the constant from `hf : antilipschitz_with K f`. This is useful, e.g.,
 if `K` is given by a long formula, and we want to reuse this value. -/
@@ -106,12 +169,25 @@ if `K` is given by a long formula, and we want to reuse this value. -/
 protected def k (hf : AntilipschitzWith K f) : ℝ≥0 :=
   K
 #align antilipschitz_with.K AntilipschitzWith.k
+-/
 
+/- warning: antilipschitz_with.injective -> AntilipschitzWith.injective is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) _inst_5 K f) -> (Function.Injective.{succ u1, succ u2} α β f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) _inst_5 K f) -> (Function.Injective.{succ u2, succ u1} α β f)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.injective AntilipschitzWith.injectiveₓ'. -/
 protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) : Function.Injective f := fun x y h => by
   simpa only [h, edist_self, mul_zero, edist_le_zero] using hf x y
 #align antilipschitz_with.injective AntilipschitzWith.injective
 
+/- warning: antilipschitz_with.mul_le_edist -> AntilipschitzWith.mul_le_edist is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) (Inv.inv.{0} ENNReal ENNReal.hasInv ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K)) (EDist.edist.{u1} α (PseudoEMetricSpace.toHasEdist.{u1} α _inst_1) x y)) (EDist.edist.{u2} β (PseudoEMetricSpace.toHasEdist.{u2} β _inst_2) (f x) (f y)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (x : α) (y : α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (Inv.inv.{0} ENNReal ENNReal.instInvENNReal (ENNReal.some K)) (EDist.edist.{u2} α (PseudoEMetricSpace.toEDist.{u2} α _inst_1) x y)) (EDist.edist.{u1} β (PseudoEMetricSpace.toEDist.{u1} β _inst_2) (f x) (f y)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edistₓ'. -/
 theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * edist x y : ℝ≥0∞) ≤ edist (f x) (f y) :=
   by
@@ -119,18 +195,38 @@ theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
   exact ENNReal.div_le_of_le_mul' (hf x y)
 #align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edist
 
+/- warning: antilipschitz_with.ediam_preimage_le -> AntilipschitzWith.ediam_preimage_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} β), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 s)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} β), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EMetric.diam.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f s)) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (ENNReal.some K) (EMetric.diam.{u1} β _inst_2 s)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.ediam_preimage_le AntilipschitzWith.ediam_preimage_leₓ'. -/
 theorem ediam_preimage_le (hf : AntilipschitzWith K f) (s : Set β) : diam (f ⁻¹' s) ≤ K * diam s :=
   diam_le fun x hx y hy => (hf x y).trans <| mul_le_mul_left' (edist_le_diam_of_mem hx hy) K
 #align antilipschitz_with.ediam_preimage_le AntilipschitzWith.ediam_preimage_le
 
+/- warning: antilipschitz_with.le_mul_ediam_image -> AntilipschitzWith.le_mul_ediam_image is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.completeLinearOrder))))) (EMetric.diam.{u1} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (Distrib.toHasMul.{0} ENNReal (NonUnitalNonAssocSemiring.toDistrib.{0} ENNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} ENNReal (Semiring.toNonAssocSemiring.{0} ENNReal (OrderedSemiring.toSemiring.{0} ENNReal (OrderedCommSemiring.toOrderedSemiring.{0} ENNReal (CanonicallyOrderedCommSemiring.toOrderedCommSemiring.{0} ENNReal ENNReal.canonicallyOrderedCommSemiring)))))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) NNReal ENNReal (HasLiftT.mk.{1, 1} NNReal ENNReal (CoeTCₓ.coe.{1, 1} NNReal ENNReal (coeBase.{1, 1} NNReal ENNReal ENNReal.hasCoe))) K) (EMetric.diam.{u2} β _inst_2 (Set.image.{u1, u2} α β f s))))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} α), LE.le.{0} ENNReal (Preorder.toLE.{0} ENNReal (PartialOrder.toPreorder.{0} ENNReal (CompleteSemilatticeInf.toPartialOrder.{0} ENNReal (CompleteLattice.toCompleteSemilatticeInf.{0} ENNReal (CompleteLinearOrder.toCompleteLattice.{0} ENNReal ENNReal.instCompleteLinearOrderENNReal))))) (EMetric.diam.{u2} α _inst_1 s) (HMul.hMul.{0, 0, 0} ENNReal ENNReal ENNReal (instHMul.{0} ENNReal (CanonicallyOrderedCommSemiring.toMul.{0} ENNReal ENNReal.instCanonicallyOrderedCommSemiringENNReal)) (ENNReal.some K) (EMetric.diam.{u1} β _inst_2 (Set.image.{u2, u1} α β f s))))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_imageₓ'. -/
 theorem le_mul_ediam_image (hf : AntilipschitzWith K f) (s : Set α) : diam s ≤ K * diam (f '' s) :=
   (diam_mono (subset_preimage_image _ _)).trans (hf.ediam_preimage_le (f '' s))
 #align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_image
 
+#print AntilipschitzWith.id /-
 protected theorem id : AntilipschitzWith 1 (id : α → α) := fun x y => by
   simp only [ENNReal.coe_one, one_mul, id, le_refl]
 #align antilipschitz_with.id AntilipschitzWith.id
+-/
 
+/- warning: antilipschitz_with.comp -> AntilipschitzWith.comp is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] [_inst_3 : PseudoEMetricSpace.{u3} γ] {Kg : NNReal} {g : β -> γ}, (AntilipschitzWith.{u2, u3} β γ _inst_2 _inst_3 Kg g) -> (forall {Kf : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 Kf f) -> (AntilipschitzWith.{u1, u3} α γ _inst_1 _inst_3 (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (Distrib.toHasMul.{0} NNReal (NonUnitalNonAssocSemiring.toDistrib.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))) Kf Kg) (Function.comp.{succ u1, succ u2, succ u3} α β γ g f)))
+but is expected to have type
+  forall {α : Type.{u1}} {β : Type.{u3}} {γ : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u3} β] [_inst_3 : PseudoEMetricSpace.{u2} γ] {Kg : NNReal} {g : β -> γ}, (AntilipschitzWith.{u3, u2} β γ _inst_2 _inst_3 Kg g) -> (forall {Kf : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u3} α β _inst_1 _inst_2 Kf f) -> (AntilipschitzWith.{u1, u2} α γ _inst_1 _inst_3 (HMul.hMul.{0, 0, 0} NNReal NNReal NNReal (instHMul.{0} NNReal (CanonicallyOrderedCommSemiring.toMul.{0} NNReal instNNRealCanonicallyOrderedCommSemiring)) Kf Kg) (Function.comp.{succ u1, succ u3, succ u2} α β γ g f)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.comp AntilipschitzWith.compₓ'. -/
 theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf : ℝ≥0} {f : α → β}
     (hf : AntilipschitzWith Kf f) : AntilipschitzWith (Kf * Kg) (g ∘ f) := fun x y =>
   calc
@@ -140,14 +236,32 @@ theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf :
     
 #align antilipschitz_with.comp AntilipschitzWith.comp
 
+/- warning: antilipschitz_with.restrict -> AntilipschitzWith.restrict is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u1} α), AntilipschitzWith.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.pseudoEmetricSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) _inst_2 K (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall (s : Set.{u2} α), AntilipschitzWith.{u2, u1} (Set.Elem.{u2} α s) β (instPseudoEMetricSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) _inst_1) _inst_2 K (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.restrict AntilipschitzWith.restrictₓ'. -/
 theorem restrict (hf : AntilipschitzWith K f) (s : Set α) : AntilipschitzWith K (s.restrict f) :=
   fun x y => hf x y
 #align antilipschitz_with.restrict AntilipschitzWith.restrict
 
+/- warning: antilipschitz_with.cod_restrict -> AntilipschitzWith.codRestrict is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {s : Set.{u2} β} (hs : forall (x : α), Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) (f x) s), AntilipschitzWith.{u1, u2} α (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) s) _inst_1 (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x s) _inst_2) K (Set.codRestrict.{u2, succ u1} β α f s hs))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {s : Set.{u1} β} (hs : forall (x : α), Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) (f x) s), AntilipschitzWith.{u2, u1} α (Set.Elem.{u1} β s) _inst_1 (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x s) _inst_2) K (Set.codRestrict.{u1, succ u2} β α f s hs))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrictₓ'. -/
 theorem codRestrict (hf : AntilipschitzWith K f) {s : Set β} (hs : ∀ x, f x ∈ s) :
     AntilipschitzWith K (s.codRestrict f hs) := fun x y => hf x y
 #align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrict
 
+/- warning: antilipschitz_with.to_right_inv_on' -> AntilipschitzWith.to_right_inv_on' is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β} {s : Set.{u1} α}, (AntilipschitzWith.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) s) β (Subtype.pseudoEmetricSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) _inst_1) _inst_2 K (Set.restrict.{u1, u2} α (fun (ᾰ : α) => β) s f)) -> (forall {g : β -> α} {t : Set.{u2} β}, (Set.MapsTo.{u2, u1} β α g t s) -> (Set.RightInvOn.{u1, u2} α β g f t) -> (LipschitzWith.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) α (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t) _inst_2) _inst_1 K (Set.restrict.{u2, u1} β (fun (ᾰ : β) => α) t g)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β} {s : Set.{u2} α}, (AntilipschitzWith.{u2, u1} (Set.Elem.{u2} α s) β (instPseudoEMetricSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x s) _inst_1) _inst_2 K (Set.restrict.{u2, u1} α (fun (ᾰ : α) => β) s f)) -> (forall {g : β -> α} {t : Set.{u1} β}, (Set.MapsTo.{u1, u2} β α g t s) -> (Set.RightInvOn.{u2, u1} α β g f t) -> (LipschitzWith.{u1, u2} (Set.Elem.{u1} β t) α (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x t) _inst_2) _inst_1 K (Set.restrict.{u1, u2} β (fun (ᾰ : β) => α) t g)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_right_inv_on'ₓ'. -/
 theorem to_right_inv_on' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α}
     {t : Set β} (g_maps : MapsTo g t s) (g_inv : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) := fun x y => by
@@ -155,11 +269,23 @@ theorem to_right_inv_on' {s : Set α} (hf : AntilipschitzWith K (s.restrict f))
     hf ⟨g x, g_maps x.mem⟩ ⟨g y, g_maps y.mem⟩
 #align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_right_inv_on'
 
+/- warning: antilipschitz_with.to_right_inv_on -> AntilipschitzWith.to_rightInvOn is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α} {t : Set.{u2} β}, (Set.RightInvOn.{u1, u2} α β g f t) -> (LipschitzWith.{u2, u1} (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) t) α (Subtype.pseudoEmetricSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x t) _inst_2) _inst_1 K (Set.restrict.{u2, u1} β (fun (ᾰ : β) => α) t g)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α} {t : Set.{u1} β}, (Set.RightInvOn.{u2, u1} α β g f t) -> (LipschitzWith.{u1, u2} (Set.Elem.{u1} β t) α (instPseudoEMetricSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x t) _inst_2) _inst_1 K (Set.restrict.{u1, u2} β (fun (ᾰ : β) => α) t g)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOnₓ'. -/
 theorem to_rightInvOn (hf : AntilipschitzWith K f) {g : β → α} {t : Set β} (h : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) :=
   (hf.restrict univ).to_right_inv_on' (mapsTo_univ g t) h
 #align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOn
 
+/- warning: antilipschitz_with.to_right_inverse -> AntilipschitzWith.to_rightInverse is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u1, succ u2} α β g f) -> (LipschitzWith.{u2, u1} β α _inst_2 _inst_1 K g))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u2, succ u1} α β g f) -> (LipschitzWith.{u1, u2} β α _inst_2 _inst_1 K g))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverseₓ'. -/
 theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     LipschitzWith K g := by
   intro x y
@@ -167,6 +293,12 @@ theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Funct
   rwa [hg x, hg y] at this
 #align antilipschitz_with.to_right_inverse AntilipschitzWith.to_rightInverse
 
+/- warning: antilipschitz_with.comap_uniformity_le -> AntilipschitzWith.comap_uniformity_le is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (LE.le.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Preorder.toLE.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (PartialOrder.toPreorder.{u1} (Filter.{u1} (Prod.{u1, u1} α α)) (Filter.partialOrder.{u1} (Prod.{u1, u1} α α)))) (Filter.comap.{u1, u2} (Prod.{u1, u1} α α) (Prod.{u2, u2} β β) (Prod.map.{u1, u2, u1, u2} α β α β f f) (uniformity.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2))) (uniformity.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (LE.le.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (Preorder.toLE.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (PartialOrder.toPreorder.{u2} (Filter.{u2} (Prod.{u2, u2} α α)) (Filter.instPartialOrderFilter.{u2} (Prod.{u2, u2} α α)))) (Filter.comap.{u2, u1} (Prod.{u2, u2} α α) (Prod.{u1, u1} β β) (Prod.map.{u2, u1, u2, u1} α β α β f f) (uniformity.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2))) (uniformity.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_leₓ'. -/
 theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod.map f f) ≤ 𝓤 α :=
   by
   refine' ((uniformity_basis_edist.comap _).le_basis_iffₓ uniformity_basis_edist).2 fun ε h₀ => _
@@ -177,42 +309,86 @@ theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod
   exact ENNReal.mul_lt_of_lt_div hx
 #align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_le
 
+/- warning: antilipschitz_with.uniform_inducing -> AntilipschitzWith.uniformInducing is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) f) -> (UniformInducing.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) f) -> (UniformInducing.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) f)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducingₓ'. -/
 protected theorem uniformInducing (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformInducing f :=
   ⟨le_antisymm hf.comap_uniformity_le hfc.le_comap⟩
 #align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducing
 
+/- warning: antilipschitz_with.uniform_embedding -> AntilipschitzWith.uniformEmbedding is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) _inst_5 K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_5) f) -> (UniformEmbedding.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_5) f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) _inst_5 K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_5) f) -> (UniformEmbedding.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_5) f)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.uniform_embedding AntilipschitzWith.uniformEmbeddingₓ'. -/
 protected theorem uniformEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformEmbedding f :=
   ⟨hf.UniformInducing hfc, hf.Injective⟩
 #align antilipschitz_with.uniform_embedding AntilipschitzWith.uniformEmbedding
 
+/- warning: antilipschitz_with.is_complete_range -> AntilipschitzWith.isComplete_range is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β} [_inst_4 : CompleteSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1)], (AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) f) -> (IsComplete.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β _inst_2) (Set.range.{u2, succ u1} β α f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β} [_inst_4 : CompleteSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1)], (AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_1) (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) f) -> (IsComplete.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β _inst_2) (Set.range.{u1, succ u2} β α f))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_rangeₓ'. -/
 theorem isComplete_range [CompleteSpace α] (hf : AntilipschitzWith K f)
     (hfc : UniformContinuous f) : IsComplete (range f) :=
   (hf.UniformInducing hfc).isComplete_range
 #align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_range
 
+/- warning: antilipschitz_with.is_closed_range -> AntilipschitzWith.isClosed_range is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : PseudoEMetricSpace.{u1} α] [_inst_5 : EMetricSpace.{u2} β] [_inst_6 : CompleteSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_4)] {f : α -> β} {K : NNReal}, (AntilipschitzWith.{u1, u2} α β _inst_4 (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5) K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α _inst_4) (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5)) f) -> (IsClosed.{u2} β (UniformSpace.toTopologicalSpace.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5))) (Set.range.{u2, succ u1} β α f))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : PseudoEMetricSpace.{u2} α] [_inst_5 : EMetricSpace.{u1} β] [_inst_6 : CompleteSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_4)] {f : α -> β} {K : NNReal}, (AntilipschitzWith.{u2, u1} α β _inst_4 (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5) K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α _inst_4) (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5)) f) -> (IsClosed.{u1} β (UniformSpace.toTopologicalSpace.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5))) (Set.range.{u1, succ u2} β α f))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_rangeₓ'. -/
 theorem isClosed_range {α β : Type _} [PseudoEMetricSpace α] [EMetricSpace β] [CompleteSpace α]
     {f : α → β} {K : ℝ≥0} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     IsClosed (range f) :=
   (hf.isComplete_range hfc).IsClosed
 #align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_range
 
+/- warning: antilipschitz_with.closed_embedding -> AntilipschitzWith.closedEmbedding is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : EMetricSpace.{u2} β] {K : NNReal} {f : α -> β} [_inst_6 : CompleteSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4))], (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5) K f) -> (UniformContinuous.{u1, u2} α β (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5)) f) -> (ClosedEmbedding.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoEMetricSpace.toUniformSpace.{u1} α (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4))) (UniformSpace.toTopologicalSpace.{u2} β (PseudoEMetricSpace.toUniformSpace.{u2} β (EMetricSpace.toPseudoEmetricSpace.{u2} β _inst_5))) f)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : EMetricSpace.{u1} β] {K : NNReal} {f : α -> β} [_inst_6 : CompleteSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4))], (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5) K f) -> (UniformContinuous.{u2, u1} α β (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4)) (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5)) f) -> (ClosedEmbedding.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoEMetricSpace.toUniformSpace.{u2} α (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4))) (UniformSpace.toTopologicalSpace.{u1} β (PseudoEMetricSpace.toUniformSpace.{u1} β (EMetricSpace.toPseudoEMetricSpace.{u1} β _inst_5))) f)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.closed_embedding AntilipschitzWith.closedEmbeddingₓ'. -/
 theorem closedEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
   { (hf.UniformEmbedding hfc).Embedding with closed_range := hf.isClosed_range hfc }
 #align antilipschitz_with.closed_embedding AntilipschitzWith.closedEmbedding
 
+#print AntilipschitzWith.subtype_coe /-
 theorem subtype_coe (s : Set α) : AntilipschitzWith 1 (coe : s → α) :=
   AntilipschitzWith.id.restrict s
 #align antilipschitz_with.subtype_coe AntilipschitzWith.subtype_coe
+-/
 
+/- warning: antilipschitz_with.of_subsingleton -> AntilipschitzWith.of_subsingleton is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {f : α -> β} [_inst_4 : Subsingleton.{succ u1} α] {K : NNReal}, AntilipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {f : α -> β} [_inst_4 : Subsingleton.{succ u2} α] {K : NNReal}, AntilipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingletonₓ'. -/
 theorem of_subsingleton [Subsingleton α] {K : ℝ≥0} : AntilipschitzWith K f := fun x y => by
   simp only [Subsingleton.elim x y, edist_self, zero_le]
 #align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingleton
 
+/- warning: antilipschitz_with.subsingleton -> AntilipschitzWith.subsingleton is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_4 : EMetricSpace.{u1} α] [_inst_5 : PseudoEMetricSpace.{u2} β] {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (EMetricSpace.toPseudoEmetricSpace.{u1} α _inst_4) _inst_5 (OfNat.ofNat.{0} NNReal 0 (OfNat.mk.{0} NNReal 0 (Zero.zero.{0} NNReal (MulZeroClass.toHasZero.{0} NNReal (NonUnitalNonAssocSemiring.toMulZeroClass.{0} NNReal (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} NNReal (Semiring.toNonAssocSemiring.{0} NNReal NNReal.semiring))))))) f) -> (Subsingleton.{succ u1} α)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_4 : EMetricSpace.{u2} α] [_inst_5 : PseudoEMetricSpace.{u1} β] {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (EMetricSpace.toPseudoEMetricSpace.{u2} α _inst_4) _inst_5 (OfNat.ofNat.{0} NNReal 0 (Zero.toOfNat0.{0} NNReal instNNRealZero)) f) -> (Subsingleton.{succ u2} α)
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.subsingleton AntilipschitzWith.subsingletonₓ'. -/
 /-- If `f : α → β` is `0`-antilipschitz, then `α` is a `subsingleton`. -/
 protected theorem subsingleton {α β} [EMetricSpace α] [PseudoEMetricSpace β] {f : α → β}
     (h : AntilipschitzWith 0 f) : Subsingleton α :=
@@ -227,6 +403,12 @@ open Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
+/- warning: antilipschitz_with.bounded_preimage -> AntilipschitzWith.bounded_preimage is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (forall {s : Set.{u2} β}, (Metric.Bounded.{u2} β _inst_2 s) -> (Metric.Bounded.{u1} α _inst_1 (Set.preimage.{u1, u2} α β f s)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (forall {s : Set.{u1} β}, (Metric.Bounded.{u1} β _inst_2 s) -> (Metric.Bounded.{u2} α _inst_1 (Set.preimage.{u2, u1} α β f s)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimageₓ'. -/
 theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded s) :
     Bounded (f ⁻¹' s) :=
   Exists.intro (K * diam s) fun x hx y hy =>
@@ -236,11 +418,18 @@ theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded
       
 #align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
 
+/- warning: antilipschitz_with.tendsto_cobounded -> AntilipschitzWith.tendsto_cobounded is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : PseudoMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β _inst_2) K f) -> (Filter.Tendsto.{u1, u2} α β f (Bornology.cobounded.{u1} α (PseudoMetricSpace.toBornology.{u1} α _inst_1)) (Bornology.cobounded.{u2} β (PseudoMetricSpace.toBornology.{u2} β _inst_2)))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : PseudoMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (AntilipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u1} β _inst_2) K f) -> (Filter.Tendsto.{u2, u1} α β f (Bornology.cobounded.{u2} α (PseudoMetricSpace.toBornology.{u2} α _inst_1)) (Bornology.cobounded.{u1} β (PseudoMetricSpace.toBornology.{u1} β _inst_2)))
+Case conversion may be inaccurate. Consider using '#align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_coboundedₓ'. -/
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
   compl_surjective.forall.2 fun s (hs : IsBounded s) =>
     Metric.isBounded_iff.2 <| hf.bounded_preimage <| Metric.isBounded_iff.1 hs
 #align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_cobounded
 
+#print AntilipschitzWith.properSpace /-
 /-- The image of a proper space under an expanding onto map is proper. -/
 protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f : α → β} [ProperSpace α]
     (hK : AntilipschitzWith K f) (f_cont : Continuous f) (hf : Function.Surjective f) :
@@ -254,14 +443,27 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
   convert this.image f_cont
   exact (hf.image_preimage _).symm
 #align antilipschitz_with.proper_space AntilipschitzWith.properSpace
+-/
 
 end AntilipschitzWith
 
+/- warning: lipschitz_with.to_right_inverse -> LipschitzWith.to_rightInverse is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoEMetricSpace.{u1} α] [_inst_2 : PseudoEMetricSpace.{u2} β] {K : NNReal} {f : α -> β}, (LipschitzWith.{u1, u2} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u1, succ u2} α β g f) -> (AntilipschitzWith.{u2, u1} β α _inst_2 _inst_1 K g))
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoEMetricSpace.{u2} α] [_inst_2 : PseudoEMetricSpace.{u1} β] {K : NNReal} {f : α -> β}, (LipschitzWith.{u2, u1} α β _inst_1 _inst_2 K f) -> (forall {g : β -> α}, (Function.RightInverse.{succ u2, succ u1} α β g f) -> (AntilipschitzWith.{u1, u2} β α _inst_2 _inst_1 K g))
+Case conversion may be inaccurate. Consider using '#align lipschitz_with.to_right_inverse LipschitzWith.to_rightInverseₓ'. -/
 theorem LipschitzWith.to_rightInverse [PseudoEMetricSpace α] [PseudoEMetricSpace β] {K : ℝ≥0}
     {f : α → β} (hf : LipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     AntilipschitzWith K g := fun x y => by simpa only [hg _] using hf (g x) (g y)
 #align lipschitz_with.to_right_inverse LipschitzWith.to_rightInverse
 
+/- warning: lipschitz_with.proper_space -> LipschitzWith.properSpace is a dubious translation:
+lean 3 declaration is
+  forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : PseudoMetricSpace.{u1} α] [_inst_2 : MetricSpace.{u2} β] [_inst_3 : ProperSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)] {K : NNReal} {f : Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))}, (LipschitzWith.{u1, u2} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u1} α _inst_1) (PseudoMetricSpace.toPseudoEMetricSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)) K (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) (fun (_x : Homeomorph.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) => α -> β) (Homeomorph.hasCoeToFun.{u1, u2} α β (UniformSpace.toTopologicalSpace.{u1} α (PseudoMetricSpace.toUniformSpace.{u1} α _inst_1)) (UniformSpace.toTopologicalSpace.{u2} β (PseudoMetricSpace.toUniformSpace.{u2} β (MetricSpace.toPseudoMetricSpace.{u2} β _inst_2)))) f)) -> (ProperSpace.{u1} α _inst_1)
+but is expected to have type
+  forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : PseudoMetricSpace.{u2} α] [_inst_2 : MetricSpace.{u1} β] [_inst_3 : ProperSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)] {K : NNReal} {f : Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))}, (LipschitzWith.{u2, u1} α β (PseudoMetricSpace.toPseudoEMetricSpace.{u2} α _inst_1) (EMetricSpace.toPseudoEMetricSpace.{u1} β (MetricSpace.toEMetricSpace.{u1} β _inst_2)) K (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => β) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (Homeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))) α β (Homeomorph.instEquivLikeHomeomorph.{u2, u1} α β (UniformSpace.toTopologicalSpace.{u2} α (PseudoMetricSpace.toUniformSpace.{u2} α _inst_1)) (UniformSpace.toTopologicalSpace.{u1} β (PseudoMetricSpace.toUniformSpace.{u1} β (MetricSpace.toPseudoMetricSpace.{u1} β _inst_2)))))) f)) -> (ProperSpace.{u2} α _inst_1)
+Case conversion may be inaccurate. Consider using '#align lipschitz_with.proper_space LipschitzWith.properSpaceₓ'. -/
 /-- The preimage of a proper space under a Lipschitz homeomorphism is proper. -/
 @[protected]
 theorem LipschitzWith.properSpace [PseudoMetricSpace α] [MetricSpace β] [ProperSpace β] {K : ℝ≥0}
Diff
@@ -34,16 +34,16 @@ open Set Filter Bornology
 
 /-- We say that `f : α → β` is `antilipschitz_with K` if for any two points `x`, `y` we have
 `edist x y ≤ K * edist (f x) (f y)`. -/
-def AntilipschitzWith [PseudoEmetricSpace α] [PseudoEmetricSpace β] (K : ℝ≥0) (f : α → β) :=
+def AntilipschitzWith [PseudoEMetricSpace α] [PseudoEMetricSpace β] (K : ℝ≥0) (f : α → β) :=
   ∀ x y, edist x y ≤ K * edist (f x) (f y)
 #align antilipschitz_with AntilipschitzWith
 
-theorem AntilipschitzWith.edist_lt_top [PseudoEmetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
+theorem AntilipschitzWith.edist_lt_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y < ⊤ :=
   (h x y).trans_lt <| ENNReal.mul_lt_top ENNReal.coe_ne_top (edist_ne_top _ _)
 #align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_top
 
-theorem AntilipschitzWith.edist_ne_top [PseudoEmetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
+theorem AntilipschitzWith.edist_ne_top [PseudoEMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y ≠ ⊤ :=
   (h.edist_lt_top x y).Ne
 #align antilipschitz_with.edist_ne_top AntilipschitzWith.edist_ne_top
@@ -93,7 +93,7 @@ end Metric
 
 namespace AntilipschitzWith
 
-variable [PseudoEmetricSpace α] [PseudoEmetricSpace β] [PseudoEmetricSpace γ]
+variable [PseudoEMetricSpace α] [PseudoEMetricSpace β] [PseudoEMetricSpace γ]
 
 variable {K : ℝ≥0} {f : α → β}
 
@@ -107,7 +107,7 @@ protected def k (hf : AntilipschitzWith K f) : ℝ≥0 :=
   K
 #align antilipschitz_with.K AntilipschitzWith.k
 
-protected theorem injective {α : Type _} {β : Type _} [EmetricSpace α] [PseudoEmetricSpace β]
+protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) : Function.Injective f := fun x y h => by
   simpa only [h, edist_self, mul_zero, edist_le_zero] using hf x y
 #align antilipschitz_with.injective AntilipschitzWith.injective
@@ -182,7 +182,7 @@ protected theorem uniformInducing (hf : AntilipschitzWith K f) (hfc : UniformCon
   ⟨le_antisymm hf.comap_uniformity_le hfc.le_comap⟩
 #align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducing
 
-protected theorem uniformEmbedding {α : Type _} {β : Type _} [EmetricSpace α] [PseudoEmetricSpace β]
+protected theorem uniformEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformEmbedding f :=
   ⟨hf.UniformInducing hfc, hf.Injective⟩
@@ -193,13 +193,13 @@ theorem isComplete_range [CompleteSpace α] (hf : AntilipschitzWith K f)
   (hf.UniformInducing hfc).isComplete_range
 #align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_range
 
-theorem isClosed_range {α β : Type _} [PseudoEmetricSpace α] [EmetricSpace β] [CompleteSpace α]
+theorem isClosed_range {α β : Type _} [PseudoEMetricSpace α] [EMetricSpace β] [CompleteSpace α]
     {f : α → β} {K : ℝ≥0} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     IsClosed (range f) :=
   (hf.isComplete_range hfc).IsClosed
 #align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_range
 
-theorem closedEmbedding {α : Type _} {β : Type _} [EmetricSpace α] [EmetricSpace β] {K : ℝ≥0}
+theorem closedEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
   { (hf.UniformEmbedding hfc).Embedding with closed_range := hf.isClosed_range hfc }
@@ -214,7 +214,7 @@ theorem of_subsingleton [Subsingleton α] {K : ℝ≥0} : AntilipschitzWith K f
 #align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingleton
 
 /-- If `f : α → β` is `0`-antilipschitz, then `α` is a `subsingleton`. -/
-protected theorem subsingleton {α β} [EmetricSpace α] [PseudoEmetricSpace β] {f : α → β}
+protected theorem subsingleton {α β} [EMetricSpace α] [PseudoEMetricSpace β] {f : α → β}
     (h : AntilipschitzWith 0 f) : Subsingleton α :=
   ⟨fun x y => edist_le_zero.1 <| (h x y).trans_eq <| zero_mul _⟩
 #align antilipschitz_with.subsingleton AntilipschitzWith.subsingleton
@@ -257,7 +257,7 @@ protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f :
 
 end AntilipschitzWith
 
-theorem LipschitzWith.to_rightInverse [PseudoEmetricSpace α] [PseudoEmetricSpace β] {K : ℝ≥0}
+theorem LipschitzWith.to_rightInverse [PseudoEMetricSpace α] [PseudoEMetricSpace β] {K : ℝ≥0}
     {f : α → β} (hf : LipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
     AntilipschitzWith K g := fun x y => by simpa only [hg _] using hf (g x) (g y)
 #align lipschitz_with.to_right_inverse LipschitzWith.to_rightInverse
Diff
@@ -135,7 +135,7 @@ theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf :
     (hf : AntilipschitzWith Kf f) : AntilipschitzWith (Kf * Kg) (g ∘ f) := fun x y =>
   calc
     edist x y ≤ Kf * edist (f x) (f y) := hf x y
-    _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := ENNReal.mul_left_mono (hg _ _)
+    _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := (ENNReal.mul_left_mono (hg _ _))
     _ = _ := by rw [ENNReal.coe_mul, mul_assoc]
     
 #align antilipschitz_with.comp AntilipschitzWith.comp
Diff
@@ -28,7 +28,7 @@ we do not have a `posreal` type.
 
 variable {α : Type _} {β : Type _} {γ : Type _}
 
-open NNReal Ennreal uniformity
+open NNReal ENNReal uniformity
 
 open Set Filter Bornology
 
@@ -40,7 +40,7 @@ def AntilipschitzWith [PseudoEmetricSpace α] [PseudoEmetricSpace β] (K : ℝ
 
 theorem AntilipschitzWith.edist_lt_top [PseudoEmetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
     {f : α → β} (h : AntilipschitzWith K f) (x y : α) : edist x y < ⊤ :=
-  (h x y).trans_lt <| Ennreal.mul_lt_top Ennreal.coe_ne_top (edist_ne_top _ _)
+  (h x y).trans_lt <| ENNReal.mul_lt_top ENNReal.coe_ne_top (edist_ne_top _ _)
 #align antilipschitz_with.edist_lt_top AntilipschitzWith.edist_lt_top
 
 theorem AntilipschitzWith.edist_ne_top [PseudoEmetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0}
@@ -116,7 +116,7 @@ theorem mul_le_edist (hf : AntilipschitzWith K f) (x y : α) :
     (K⁻¹ * edist x y : ℝ≥0∞) ≤ edist (f x) (f y) :=
   by
   rw [mul_comm, ← div_eq_mul_inv]
-  exact Ennreal.div_le_of_le_mul' (hf x y)
+  exact ENNReal.div_le_of_le_mul' (hf x y)
 #align antilipschitz_with.mul_le_edist AntilipschitzWith.mul_le_edist
 
 theorem ediam_preimage_le (hf : AntilipschitzWith K f) (s : Set β) : diam (f ⁻¹' s) ≤ K * diam s :=
@@ -128,15 +128,15 @@ theorem le_mul_ediam_image (hf : AntilipschitzWith K f) (s : Set α) : diam s 
 #align antilipschitz_with.le_mul_ediam_image AntilipschitzWith.le_mul_ediam_image
 
 protected theorem id : AntilipschitzWith 1 (id : α → α) := fun x y => by
-  simp only [Ennreal.coe_one, one_mul, id, le_refl]
+  simp only [ENNReal.coe_one, one_mul, id, le_refl]
 #align antilipschitz_with.id AntilipschitzWith.id
 
 theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf : ℝ≥0} {f : α → β}
     (hf : AntilipschitzWith Kf f) : AntilipschitzWith (Kf * Kg) (g ∘ f) := fun x y =>
   calc
     edist x y ≤ Kf * edist (f x) (f y) := hf x y
-    _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := Ennreal.mul_left_mono (hg _ _)
-    _ = _ := by rw [Ennreal.coe_mul, mul_assoc]
+    _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := ENNReal.mul_left_mono (hg _ _)
+    _ = _ := by rw [ENNReal.coe_mul, mul_assoc]
     
 #align antilipschitz_with.comp AntilipschitzWith.comp
 
@@ -170,11 +170,11 @@ theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Funct
 theorem comap_uniformity_le (hf : AntilipschitzWith K f) : (𝓤 β).comap (Prod.map f f) ≤ 𝓤 α :=
   by
   refine' ((uniformity_basis_edist.comap _).le_basis_iffₓ uniformity_basis_edist).2 fun ε h₀ => _
-  refine' ⟨K⁻¹ * ε, Ennreal.mul_pos (Ennreal.inv_ne_zero.2 Ennreal.coe_ne_top) h₀.ne', _⟩
+  refine' ⟨K⁻¹ * ε, ENNReal.mul_pos (ENNReal.inv_ne_zero.2 ENNReal.coe_ne_top) h₀.ne', _⟩
   refine' fun x hx => (hf x.1 x.2).trans_lt _
   rw [mul_comm, ← div_eq_mul_inv] at hx
   rw [mul_comm]
-  exact Ennreal.mul_lt_of_lt_div hx
+  exact ENNReal.mul_lt_of_lt_div hx
 #align antilipschitz_with.comap_uniformity_le AntilipschitzWith.comap_uniformity_le
 
 protected theorem uniformInducing (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :

Changes in mathlib4

mathlib3
mathlib4
chore: superfluous parentheses part 2 (#12131)

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

Diff
@@ -130,7 +130,7 @@ theorem comp {Kg : ℝ≥0} {g : β → γ} (hg : AntilipschitzWith Kg g) {Kf :
     (hf : AntilipschitzWith Kf f) : AntilipschitzWith (Kf * Kg) (g ∘ f) := fun x y =>
   calc
     edist x y ≤ Kf * edist (f x) (f y) := hf x y
-    _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := (ENNReal.mul_left_mono (hg _ _))
+    _ ≤ Kf * (Kg * edist (g (f x)) (g (f y))) := ENNReal.mul_left_mono (hg _ _)
     _ = _ := by rw [ENNReal.coe_mul, mul_assoc]; rfl
 #align antilipschitz_with.comp AntilipschitzWith.comp
 
chore: rename open_range to isOpen_range, closed_range to isClosed_range (#11438)

All these lemmas refer to the range of some function being open/range (i.e. isOpen or isClosed).

Diff
@@ -195,7 +195,7 @@ theorem isClosed_range {α β : Type*} [PseudoEMetricSpace α] [EMetricSpace β]
 theorem closedEmbedding {α : Type*} {β : Type*} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
-  { (hf.uniformEmbedding hfc).embedding with closed_range := hf.isClosed_range hfc }
+  { (hf.uniformEmbedding hfc).embedding with isClosed_range := hf.isClosed_range hfc }
 #align antilipschitz_with.closed_embedding AntilipschitzWith.closedEmbedding
 
 theorem subtype_coe (s : Set α) : AntilipschitzWith 1 ((↑) : s → α) :=
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -90,7 +90,6 @@ end Metric
 namespace AntilipschitzWith
 
 variable [PseudoEMetricSpace α] [PseudoEMetricSpace β] [PseudoEMetricSpace γ]
-
 variable {K : ℝ≥0} {f : α → β}
 
 open EMetric
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -203,7 +203,7 @@ theorem subtype_coe (s : Set α) : AntilipschitzWith 1 ((↑) : s → α) :=
   AntilipschitzWith.id.restrict s
 #align antilipschitz_with.subtype_coe AntilipschitzWith.subtype_coe
 
-@[nontriviality] -- porting note: added `nontriviality`
+@[nontriviality] -- Porting note: added `nontriviality`
 theorem of_subsingleton [Subsingleton α] {K : ℝ≥0} : AntilipschitzWith K f := fun x y => by
   simp only [Subsingleton.elim x y, edist_self, zero_le]
 #align antilipschitz_with.of_subsingleton AntilipschitzWith.of_subsingleton
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -256,7 +256,7 @@ theorem isBounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
     apply hst.1
     rw [Set.image2_singleton_right] at h
     replace h := (hf b).isBounded_preimage h
-    refine' h.subset (subset_preimage_image _ _)
+    exact h.subset (subset_preimage_image _ _)
   exact mt (IsBounded.subset · (image2_subset subset_rfl (singleton_subset_iff.mpr hb))) this
 #align antilipschitz_with.bounded_of_image2_left AntilipschitzWith.isBounded_of_image2_left
 
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
@@ -3,8 +3,10 @@ Copyright (c) 2020 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathlib.Topology.MetricSpace.Lipschitz
 import Mathlib.Topology.UniformSpace.CompleteSeparated
+import Mathlib.Topology.EMetricSpace.Lipschitz
+import Mathlib.Topology.MetricSpace.Basic
+import Mathlib.Topology.MetricSpace.Bounded
 
 #align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"c8f305514e0d47dfaa710f5a52f0d21b588e6328"
 
chore: replace exact_mod_cast tactic with mod_cast elaborator where possible (#8404)

We still have the exact_mod_cast tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast are the ones that don't work using the term elaborator by itself.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -78,7 +78,7 @@ theorem mul_le_nndist (hf : AntilipschitzWith K f) (x y : α) :
 #align antilipschitz_with.mul_le_nndist AntilipschitzWith.mul_le_nndist
 
 theorem mul_le_dist (hf : AntilipschitzWith K f) (x y : α) :
-    (K⁻¹ * dist x y : ℝ) ≤ dist (f x) (f y) := by exact_mod_cast hf.mul_le_nndist x y
+    (K⁻¹ * dist x y : ℝ) ≤ dist (f x) (f y) := mod_cast hf.mul_le_nndist x y
 #align antilipschitz_with.mul_le_dist AntilipschitzWith.mul_le_dist
 
 end AntilipschitzWith
chore: forward-port leanprover-community/mathlib#19028 (#8083)

This was "feat(topology/metric_space): diameter of pointwise zero and addition"

Diff
@@ -6,7 +6,7 @@ Authors: Yury Kudryashov
 import Mathlib.Topology.MetricSpace.Lipschitz
 import Mathlib.Topology.UniformSpace.CompleteSeparated
 
-#align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"97f079b7e89566de3a1143f887713667328c38ba"
+#align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"c8f305514e0d47dfaa710f5a52f0d21b588e6328"
 
 /-!
 # Antilipschitz functions
@@ -218,7 +218,8 @@ namespace AntilipschitzWith
 
 open Metric
 
-variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
+variable [PseudoMetricSpace α] [PseudoMetricSpace β] [PseudoMetricSpace γ]
+variable {K : ℝ≥0} {f : α → β}
 
 theorem isBounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : IsBounded s) :
     IsBounded (f ⁻¹' s) :=
@@ -243,6 +244,25 @@ protected theorem properSpace {α : Type*} [MetricSpace α] {K : ℝ≥0} {f : 
   exact (hf.image_preimage _).symm
 #align antilipschitz_with.proper_space AntilipschitzWith.properSpace
 
+theorem isBounded_of_image2_left (f : α → β → γ) {K₁ : ℝ≥0}
+    (hf : ∀ b, AntilipschitzWith K₁ fun a => f a b) {s : Set α} {t : Set β}
+    (hst : IsBounded (Set.image2 f s t)) : IsBounded s ∨ IsBounded t := by
+  contrapose! hst
+  obtain ⟨b, hb⟩ : t.Nonempty := nonempty_of_not_isBounded hst.2
+  have : ¬IsBounded (Set.image2 f s {b}) := by
+    intro h
+    apply hst.1
+    rw [Set.image2_singleton_right] at h
+    replace h := (hf b).isBounded_preimage h
+    refine' h.subset (subset_preimage_image _ _)
+  exact mt (IsBounded.subset · (image2_subset subset_rfl (singleton_subset_iff.mpr hb))) this
+#align antilipschitz_with.bounded_of_image2_left AntilipschitzWith.isBounded_of_image2_left
+
+theorem isBounded_of_image2_right {f : α → β → γ} {K₂ : ℝ≥0} (hf : ∀ a, AntilipschitzWith K₂ (f a))
+    {s : Set α} {t : Set β} (hst : IsBounded (Set.image2 f s t)) : IsBounded s ∨ IsBounded t :=
+  Or.symm <| isBounded_of_image2_left (flip f) hf <| image2_swap f s t ▸ hst
+#align antilipschitz_with.bounded_of_image2_right AntilipschitzWith.isBounded_of_image2_right
+
 end AntilipschitzWith
 
 theorem LipschitzWith.to_rightInverse [PseudoEMetricSpace α] [PseudoEMetricSpace β] {K : ℝ≥0}
refactor(Topology/MetricSpace): remove Metric.Bounded (#7240)

Use Bornology.IsBounded instead.

Diff
@@ -220,17 +220,14 @@ open Metric
 
 variable [PseudoMetricSpace α] [PseudoMetricSpace β] {K : ℝ≥0} {f : α → β}
 
-theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded s) :
-    Bounded (f ⁻¹' s) :=
-  Exists.intro (K * diam s) fun x hx y hy =>
-    calc
-      dist x y ≤ K * dist (f x) (f y) := hf.le_mul_dist x y
-      _ ≤ K * diam s := by gcongr; exact dist_le_diam_of_mem hs hx hy
-#align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
+theorem isBounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : IsBounded s) :
+    IsBounded (f ⁻¹' s) :=
+  isBounded_iff_ediam_ne_top.2 <| ne_top_of_le_ne_top
+    (ENNReal.mul_ne_top ENNReal.coe_ne_top hs.ediam_ne_top) (hf.ediam_preimage_le _)
+#align antilipschitz_with.bounded_preimage AntilipschitzWith.isBounded_preimage
 
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
-  compl_surjective.forall.2 fun s (hs : IsBounded s) =>
-    Metric.isBounded_iff.2 <| hf.bounded_preimage <| Metric.isBounded_iff.1 hs
+  compl_surjective.forall.2 fun _ ↦ hf.isBounded_preimage
 #align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_cobounded
 
 /-- The image of a proper space under an expanding onto map is proper. -/
@@ -240,7 +237,7 @@ protected theorem properSpace {α : Type*} [MetricSpace α] {K : ℝ≥0} {f : 
   refine ⟨fun x₀ r => ?_⟩
   let K := f ⁻¹' closedBall x₀ r
   have A : IsClosed K := isClosed_ball.preimage f_cont
-  have B : Bounded K := hK.bounded_preimage bounded_closedBall
+  have B : IsBounded K := hK.isBounded_preimage isBounded_closedBall
   have : IsCompact K := isCompact_iff_isClosed_bounded.2 ⟨A, B⟩
   convert this.image f_cont
   exact (hf.image_preimage _).symm
feat: patch for new alias command (#6172)
Diff
@@ -54,8 +54,8 @@ theorem antilipschitzWith_iff_le_mul_nndist :
   norm_cast
 #align antilipschitz_with_iff_le_mul_nndist antilipschitzWith_iff_le_mul_nndist
 
-alias antilipschitzWith_iff_le_mul_nndist ↔
-  AntilipschitzWith.le_mul_nndist AntilipschitzWith.of_le_mul_nndist
+alias ⟨AntilipschitzWith.le_mul_nndist, AntilipschitzWith.of_le_mul_nndist⟩ :=
+  antilipschitzWith_iff_le_mul_nndist
 #align antilipschitz_with.le_mul_nndist AntilipschitzWith.le_mul_nndist
 #align antilipschitz_with.of_le_mul_nndist AntilipschitzWith.of_le_mul_nndist
 
@@ -65,8 +65,8 @@ theorem antilipschitzWith_iff_le_mul_dist :
   norm_cast
 #align antilipschitz_with_iff_le_mul_dist antilipschitzWith_iff_le_mul_dist
 
-alias antilipschitzWith_iff_le_mul_dist ↔
-  AntilipschitzWith.le_mul_dist AntilipschitzWith.of_le_mul_dist
+alias ⟨AntilipschitzWith.le_mul_dist, AntilipschitzWith.of_le_mul_dist⟩ :=
+  antilipschitzWith_iff_le_mul_dist
 #align antilipschitz_with.le_mul_dist AntilipschitzWith.le_mul_dist
 #align antilipschitz_with.of_le_mul_dist AntilipschitzWith.of_le_mul_dist
 
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
@@ -23,7 +23,7 @@ we do not have a `posreal` type.
 -/
 
 
-variable {α β γ : Type _}
+variable {α β γ : Type*}
 
 open scoped NNReal ENNReal Uniformity Topology
 open Set Filter Bornology
@@ -101,7 +101,7 @@ protected def k (_hf : AntilipschitzWith K f) : ℝ≥0 := K
 set_option linter.uppercaseLean3 false in
 #align antilipschitz_with.K AntilipschitzWith.k
 
-protected theorem injective {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
+protected theorem injective {α : Type*} {β : Type*} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) : Function.Injective f := fun x y h => by
   simpa only [h, edist_self, mul_zero, edist_le_zero] using hf x y
 #align antilipschitz_with.injective AntilipschitzWith.injective
@@ -174,7 +174,7 @@ protected theorem uniformInducing (hf : AntilipschitzWith K f) (hfc : UniformCon
   ⟨le_antisymm hf.comap_uniformity_le hfc.le_comap⟩
 #align antilipschitz_with.uniform_inducing AntilipschitzWith.uniformInducing
 
-protected theorem uniformEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [PseudoEMetricSpace β]
+protected theorem uniformEmbedding {α : Type*} {β : Type*} [EMetricSpace α] [PseudoEMetricSpace β]
     {K : ℝ≥0} {f : α → β} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     UniformEmbedding f :=
   ⟨hf.uniformInducing hfc, hf.injective⟩
@@ -185,13 +185,13 @@ theorem isComplete_range [CompleteSpace α] (hf : AntilipschitzWith K f)
   (hf.uniformInducing hfc).isComplete_range
 #align antilipschitz_with.is_complete_range AntilipschitzWith.isComplete_range
 
-theorem isClosed_range {α β : Type _} [PseudoEMetricSpace α] [EMetricSpace β] [CompleteSpace α]
+theorem isClosed_range {α β : Type*} [PseudoEMetricSpace α] [EMetricSpace β] [CompleteSpace α]
     {f : α → β} {K : ℝ≥0} (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     IsClosed (range f) :=
   (hf.isComplete_range hfc).isClosed
 #align antilipschitz_with.is_closed_range AntilipschitzWith.isClosed_range
 
-theorem closedEmbedding {α : Type _} {β : Type _} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
+theorem closedEmbedding {α : Type*} {β : Type*} [EMetricSpace α] [EMetricSpace β] {K : ℝ≥0}
     {f : α → β} [CompleteSpace α] (hf : AntilipschitzWith K f) (hfc : UniformContinuous f) :
     ClosedEmbedding f :=
   { (hf.uniformEmbedding hfc).embedding with closed_range := hf.isClosed_range hfc }
@@ -234,7 +234,7 @@ theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α
 #align antilipschitz_with.tendsto_cobounded AntilipschitzWith.tendsto_cobounded
 
 /-- The image of a proper space under an expanding onto map is proper. -/
-protected theorem properSpace {α : Type _} [MetricSpace α] {K : ℝ≥0} {f : α → β} [ProperSpace α]
+protected theorem properSpace {α : Type*} [MetricSpace α] {K : ℝ≥0} {f : α → β} [ProperSpace α]
     (hK : AntilipschitzWith K f) (f_cont : Continuous f) (hf : Function.Surjective f) :
     ProperSpace β := by
   refine ⟨fun x₀ r => ?_⟩
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,15 +2,12 @@
 Copyright (c) 2020 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.antilipschitz
-! leanprover-community/mathlib commit 97f079b7e89566de3a1143f887713667328c38ba
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Topology.MetricSpace.Lipschitz
 import Mathlib.Topology.UniformSpace.CompleteSeparated
 
+#align_import topology.metric_space.antilipschitz from "leanprover-community/mathlib"@"97f079b7e89566de3a1143f887713667328c38ba"
+
 /-!
 # Antilipschitz functions
 
feat: golf using gcongr throughout the library (#4702)

100 sample uses of the new tactic gcongr, added in #3965.

Diff
@@ -228,7 +228,7 @@ theorem bounded_preimage (hf : AntilipschitzWith K f) {s : Set β} (hs : Bounded
   Exists.intro (K * diam s) fun x hx y hy =>
     calc
       dist x y ≤ K * dist (f x) (f y) := hf.le_mul_dist x y
-      _ ≤ K * diam s := mul_le_mul_of_nonneg_left (dist_le_diam_of_mem hs hx hy) K.2
+      _ ≤ K * diam s := by gcongr; exact dist_le_diam_of_mem hs hx hy
 #align antilipschitz_with.bounded_preimage AntilipschitzWith.bounded_preimage
 
 theorem tendsto_cobounded (hf : AntilipschitzWith K f) : Tendsto f (cobounded α) (cobounded β) :=
chore: fix many typos (#4535)

Run codespell Mathlib and keep some suggestions.

Diff
@@ -20,7 +20,7 @@ For a metric space, the latter inequality is equivalent to `dist x y ≤ K * dis
 
 ## Implementation notes
 
-The parameter `K` has type `ℝ≥0`. This way we avoid conjuction in the definition and have
+The parameter `K` has type `ℝ≥0`. This way we avoid conjunction in the definition and have
 coercions both to `ℝ` and `ℝ≥0∞`. We do not require `0 < K` in the definition, mostly because
 we do not have a `posreal` type.
 -/
chore: tidy various files (#3124)
Diff
@@ -144,16 +144,16 @@ theorem codRestrict (hf : AntilipschitzWith K f) {s : Set β} (hs : ∀ x, f x 
     AntilipschitzWith K (s.codRestrict f hs) := fun x y => hf x y
 #align antilipschitz_with.cod_restrict AntilipschitzWith.codRestrict
 
-theorem to_right_inv_on' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α}
+theorem to_rightInvOn' {s : Set α} (hf : AntilipschitzWith K (s.restrict f)) {g : β → α}
     {t : Set β} (g_maps : MapsTo g t s) (g_inv : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) := fun x y => by
   simpa only [restrict_apply, g_inv x.mem, g_inv y.mem, Subtype.edist_eq, Subtype.coe_mk] using
     hf ⟨g x, g_maps x.mem⟩ ⟨g y, g_maps y.mem⟩
-#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_right_inv_on'
+#align antilipschitz_with.to_right_inv_on' AntilipschitzWith.to_rightInvOn'
 
 theorem to_rightInvOn (hf : AntilipschitzWith K f) {g : β → α} {t : Set β} (h : RightInvOn g f t) :
     LipschitzWith K (t.restrict g) :=
-  (hf.restrict univ).to_right_inv_on' (mapsTo_univ g t) h
+  (hf.restrict univ).to_rightInvOn' (mapsTo_univ g t) h
 #align antilipschitz_with.to_right_inv_on AntilipschitzWith.to_rightInvOn
 
 theorem to_rightInverse (hf : AntilipschitzWith K f) {g : β → α} (hg : Function.RightInverse g f) :
feat: port Topology.MetricSpace.Antilipschitz (#2635)

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 10 + 490

491 files ported (98.0%)
215949 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