analysis.convex.strict_convex_spaceMathlib.Analysis.Convex.StrictConvexSpace

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -310,7 +310,7 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
   by
   have : y -ᵥ x ∈ [(0 : E) -[ℝ] z -ᵥ x] := by
     rw [← dist_add_dist_eq_iff, dist_zero_left, dist_vsub_cancel_right, ← dist_eq_norm_vsub', ←
-      dist_eq_norm_vsub', hxy, hyz, ← add_mul, add_sub_cancel'_right, one_mul]
+      dist_eq_norm_vsub', hxy, hyz, ← add_mul, add_sub_cancel, one_mul]
   rcases eq_or_ne x z with (rfl | hne)
   · obtain rfl : y = x := by simpa
     simp
Diff
@@ -114,7 +114,7 @@ theorem StrictConvexSpace.of_norm_combo_lt_one
     StrictConvexSpace.of_strictConvex_closed_unit_ball ℝ
       ((convex_closedBall _ _).strictConvex' fun x hx y hy hne => _)
   rw [interior_closedBall (0 : E) one_ne_zero, closed_ball_diff_ball, mem_sphere_zero_iff_norm] at
-    hx hy 
+    hx hy
   rcases h x y hx hy hne with ⟨a, b, hab, hlt⟩
   use b
   rwa [AffineMap.lineMap_apply_module, interior_closedBall (0 : E) one_ne_zero, mem_ball_zero_iff,
@@ -167,7 +167,7 @@ theorem StrictConvexSpace.of_norm_add
     (h : ∀ x y : E, ‖x‖ = 1 → ‖y‖ = 1 → ‖x + y‖ = 2 → SameRay ℝ x y) : StrictConvexSpace ℝ E :=
   by
   refine' StrictConvexSpace.of_pairwise_sphere_norm_ne_two fun x hx y hy => mt fun h₂ => _
-  rw [mem_sphere_zero_iff_norm] at hx hy 
+  rw [mem_sphere_zero_iff_norm] at hx hy
   exact (sameRay_iff_of_norm_eq (hx.trans hy.symm)).1 (h x y hx hy h₂)
 #align strict_convex_space.of_norm_add StrictConvexSpace.of_norm_add
 -/
@@ -181,7 +181,7 @@ theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall
     (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) : a • x + b • y ∈ ball z r :=
   by
   rcases eq_or_ne r 0 with (rfl | hr)
-  · rw [closed_ball_zero, mem_singleton_iff] at hx hy 
+  · rw [closed_ball_zero, mem_singleton_iff] at hx hy
     exact (hne (hx.trans hy.symm)).elim
   · simp only [← interior_closedBall _ hr] at hx hy ⊢
     exact strictConvex_closedBall ℝ z r hx hy hne ha hb hab
@@ -213,9 +213,9 @@ theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x 
 ‖y‖`. -/
 theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x‖ + ‖y‖ :=
   by
-  simp only [sameRay_iff_inv_norm_smul_eq, not_or, ← Ne.def] at h 
+  simp only [sameRay_iff_inv_norm_smul_eq, not_or, ← Ne.def] at h
   rcases h with ⟨hx, hy, hne⟩
-  rw [← norm_pos_iff] at hx hy 
+  rw [← norm_pos_iff] at hx hy
   have hxy : 0 < ‖x‖ + ‖y‖ := add_pos hx hy
   have :=
     combo_mem_ball_of_ne (inv_norm_smul_mem_closed_unit_ball x)
@@ -223,7 +223,7 @@ theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x
       (by rw [← add_div, div_self hxy.ne'])
   rwa [mem_ball_zero_iff, div_eq_inv_mul, div_eq_inv_mul, mul_smul, mul_smul, smul_inv_smul₀ hx.ne',
     smul_inv_smul₀ hy.ne', ← smul_add, norm_smul, Real.norm_of_nonneg (inv_pos.2 hxy).le, ←
-    div_eq_inv_mul, div_lt_one hxy] at this 
+    div_eq_inv_mul, div_lt_one hxy] at this
 #align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRay
 -/
 
@@ -314,12 +314,12 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
   rcases eq_or_ne x z with (rfl | hne)
   · obtain rfl : y = x := by simpa
     simp
-  · rw [← dist_ne_zero] at hne 
+  · rw [← dist_ne_zero] at hne
     rcases this with ⟨a, b, ha, hb, hab, H⟩
-    rw [smul_zero, zero_add] at H 
+    rw [smul_zero, zero_add] at H
     have H' := congr_arg norm H
     rw [norm_smul, Real.norm_of_nonneg hb, ← dist_eq_norm_vsub', ← dist_eq_norm_vsub', hxy,
-      mul_left_inj' hne] at H' 
+      mul_left_inj' hne] at H'
     rw [AffineMap.lineMap_apply, ← H', H, vsub_vadd]
 #align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
 -/
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Yury Kudryashov
 -/
-import Mathbin.Analysis.Convex.Normed
-import Mathbin.Analysis.Convex.Strict
-import Mathbin.Analysis.Normed.Order.Basic
-import Mathbin.Analysis.NormedSpace.AddTorsor
-import Mathbin.Analysis.NormedSpace.Pointwise
-import Mathbin.Analysis.NormedSpace.AffineIsometry
+import Analysis.Convex.Normed
+import Analysis.Convex.Strict
+import Analysis.Normed.Order.Basic
+import Analysis.NormedSpace.AddTorsor
+import Analysis.NormedSpace.Pointwise
+import Analysis.NormedSpace.AffineIsometry
 
 #align_import analysis.convex.strict_convex_space from "leanprover-community/mathlib"@"1b0a28e1c93409dbf6d69526863cd9984ef652ce"
 
Diff
@@ -94,24 +94,24 @@ theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
 
 variable [NormedSpace ℝ E]
 
-#print StrictConvexSpace.ofStrictConvexClosedUnitBall /-
+#print StrictConvexSpace.of_strictConvex_closed_unit_ball /-
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
-theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
+theorem StrictConvexSpace.of_strictConvex_closed_unit_ball [LinearMap.CompatibleSMul E E 𝕜 ℝ]
     (h : StrictConvex 𝕜 (closedBall (0 : E) 1)) : StrictConvexSpace 𝕜 E :=
   ⟨fun r hr => by simpa only [smul_closedUnitBall_of_nonneg hr.le] using h.smul r⟩
-#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
+#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.of_strictConvex_closed_unit_ball
 -/
 
-#print StrictConvexSpace.ofNormComboLtOne /-
+#print StrictConvexSpace.of_norm_combo_lt_one /-
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`
 and all strictly positive `a` and `b` such that `a + b = 1`. This lemma shows that it suffices to
 check this for points of norm one and some `a`, `b` such that `a + b = 1`. -/
-theorem StrictConvexSpace.ofNormComboLtOne
+theorem StrictConvexSpace.of_norm_combo_lt_one
     (h : ∀ x y : E, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ∃ a b : ℝ, a + b = 1 ∧ ‖a • x + b • y‖ < 1) :
     StrictConvexSpace ℝ E :=
   by
   refine'
-    StrictConvexSpace.ofStrictConvexClosedUnitBall ℝ
+    StrictConvexSpace.of_strictConvex_closed_unit_ball ℝ
       ((convex_closedBall _ _).strictConvex' fun x hx y hy hne => _)
   rw [interior_closedBall (0 : E) one_ne_zero, closed_ball_diff_ball, mem_sphere_zero_iff_norm] at
     hx hy 
@@ -119,56 +119,57 @@ theorem StrictConvexSpace.ofNormComboLtOne
   use b
   rwa [AffineMap.lineMap_apply_module, interior_closedBall (0 : E) one_ne_zero, mem_ball_zero_iff,
     sub_eq_iff_eq_add.2 hab.symm]
-#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOne
+#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.of_norm_combo_lt_one
 -/
 
-#print StrictConvexSpace.ofNormComboNeOne /-
-theorem StrictConvexSpace.ofNormComboNeOne
+#print StrictConvexSpace.of_norm_combo_ne_one /-
+theorem StrictConvexSpace.of_norm_combo_ne_one
     (h :
       ∀ x y : E,
         ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ∃ a b : ℝ, 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ ‖a • x + b • y‖ ≠ 1) :
     StrictConvexSpace ℝ E :=
   by
-  refine' StrictConvexSpace.ofStrictConvexClosedUnitBall ℝ ((convex_closedBall _ _).StrictConvex _)
+  refine'
+    StrictConvexSpace.of_strictConvex_closed_unit_ball ℝ ((convex_closedBall _ _).StrictConvex _)
   simp only [interior_closedBall _ one_ne_zero, closed_ball_diff_ball, Set.Pairwise,
     frontier_closedBall _ one_ne_zero, mem_sphere_zero_iff_norm]
   intro x hx y hy hne
   rcases h x y hx hy hne with ⟨a, b, ha, hb, hab, hne'⟩
   exact ⟨_, ⟨a, b, ha, hb, hab, rfl⟩, mt mem_sphere_zero_iff_norm.1 hne'⟩
-#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOne
+#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.of_norm_combo_ne_one
 -/
 
-#print StrictConvexSpace.ofNormAddNeTwo /-
-theorem StrictConvexSpace.ofNormAddNeTwo
+#print StrictConvexSpace.of_norm_add_ne_two /-
+theorem StrictConvexSpace.of_norm_add_ne_two
     (h : ∀ ⦃x y : E⦄, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   by
   refine'
-    StrictConvexSpace.ofNormComboNeOne fun x y hx hy hne =>
+    StrictConvexSpace.of_norm_combo_ne_one fun x y hx hy hne =>
       ⟨1 / 2, 1 / 2, one_half_pos.le, one_half_pos.le, add_halves _, _⟩
   rw [← smul_add, norm_smul, Real.norm_of_nonneg one_half_pos.le, one_div, ← div_eq_inv_mul, Ne.def,
     div_eq_one_iff_eq (two_ne_zero' ℝ)]
   exact h hx hy hne
-#align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwo
+#align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.of_norm_add_ne_two
 -/
 
-#print StrictConvexSpace.ofPairwiseSphereNormNeTwo /-
-theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo
+#print StrictConvexSpace.of_pairwise_sphere_norm_ne_two /-
+theorem StrictConvexSpace.of_pairwise_sphere_norm_ne_two
     (h : (sphere (0 : E) 1).Pairwise fun x y => ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
-  StrictConvexSpace.ofNormAddNeTwo fun x y hx hy =>
+  StrictConvexSpace.of_norm_add_ne_two fun x y hx hy =>
     h (mem_sphere_zero_iff_norm.2 hx) (mem_sphere_zero_iff_norm.2 hy)
-#align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwo
+#align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.of_pairwise_sphere_norm_ne_two
 -/
 
-#print StrictConvexSpace.ofNormAdd /-
+#print StrictConvexSpace.of_norm_add /-
 /-- If `‖x + y‖ = ‖x‖ + ‖y‖` implies that `x y : E` are in the same ray, then `E` is a strictly
 convex space. See also a more -/
-theorem StrictConvexSpace.ofNormAdd
+theorem StrictConvexSpace.of_norm_add
     (h : ∀ x y : E, ‖x‖ = 1 → ‖y‖ = 1 → ‖x + y‖ = 2 → SameRay ℝ x y) : StrictConvexSpace ℝ E :=
   by
-  refine' StrictConvexSpace.ofPairwiseSphereNormNeTwo fun x hx y hy => mt fun h₂ => _
+  refine' StrictConvexSpace.of_pairwise_sphere_norm_ne_two fun x hx y hy => mt fun h₂ => _
   rw [mem_sphere_zero_iff_norm] at hx hy 
   exact (sameRay_iff_of_norm_eq (hx.trans hy.symm)).1 (h x y hx hy h₂)
-#align strict_convex_space.of_norm_add StrictConvexSpace.ofNormAdd
+#align strict_convex_space.of_norm_add StrictConvexSpace.of_norm_add
 -/
 
 variable [StrictConvexSpace ℝ E] {x y z : E} {a b r : ℝ}
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.convex.strict_convex_space
-! leanprover-community/mathlib commit 1b0a28e1c93409dbf6d69526863cd9984ef652ce
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Convex.Normed
 import Mathbin.Analysis.Convex.Strict
@@ -15,6 +10,8 @@ import Mathbin.Analysis.NormedSpace.AddTorsor
 import Mathbin.Analysis.NormedSpace.Pointwise
 import Mathbin.Analysis.NormedSpace.AffineIsometry
 
+#align_import analysis.convex.strict_convex_space from "leanprover-community/mathlib"@"1b0a28e1c93409dbf6d69526863cd9984ef652ce"
+
 /-!
 # Strictly convex spaces
 
Diff
@@ -83,6 +83,7 @@ class StrictConvexSpace (𝕜 E : Type _) [NormedLinearOrderedField 𝕜] [Norme
 variable (𝕜 : Type _) {E : Type _} [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
   [NormedSpace 𝕜 E]
 
+#print strictConvex_closedBall /-
 /-- A closed ball in a strictly convex space is strictly convex. -/
 theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
     StrictConvex 𝕜 (closedBall x r) :=
@@ -92,15 +93,19 @@ theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
   rw [← vadd_closedBall_zero]
   exact (StrictConvexSpace.strictConvex_closedBall r hr).vadd _
 #align strict_convex_closed_ball strictConvex_closedBall
+-/
 
 variable [NormedSpace ℝ E]
 
+#print StrictConvexSpace.ofStrictConvexClosedUnitBall /-
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
 theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
     (h : StrictConvex 𝕜 (closedBall (0 : E) 1)) : StrictConvexSpace 𝕜 E :=
   ⟨fun r hr => by simpa only [smul_closedUnitBall_of_nonneg hr.le] using h.smul r⟩
 #align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
+-/
 
+#print StrictConvexSpace.ofNormComboLtOne /-
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`
 and all strictly positive `a` and `b` such that `a + b = 1`. This lemma shows that it suffices to
 check this for points of norm one and some `a`, `b` such that `a + b = 1`. -/
@@ -118,7 +123,9 @@ theorem StrictConvexSpace.ofNormComboLtOne
   rwa [AffineMap.lineMap_apply_module, interior_closedBall (0 : E) one_ne_zero, mem_ball_zero_iff,
     sub_eq_iff_eq_add.2 hab.symm]
 #align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOne
+-/
 
+#print StrictConvexSpace.ofNormComboNeOne /-
 theorem StrictConvexSpace.ofNormComboNeOne
     (h :
       ∀ x y : E,
@@ -132,7 +139,9 @@ theorem StrictConvexSpace.ofNormComboNeOne
   rcases h x y hx hy hne with ⟨a, b, ha, hb, hab, hne'⟩
   exact ⟨_, ⟨a, b, ha, hb, hab, rfl⟩, mt mem_sphere_zero_iff_norm.1 hne'⟩
 #align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOne
+-/
 
+#print StrictConvexSpace.ofNormAddNeTwo /-
 theorem StrictConvexSpace.ofNormAddNeTwo
     (h : ∀ ⦃x y : E⦄, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   by
@@ -143,13 +152,17 @@ theorem StrictConvexSpace.ofNormAddNeTwo
     div_eq_one_iff_eq (two_ne_zero' ℝ)]
   exact h hx hy hne
 #align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwo
+-/
 
+#print StrictConvexSpace.ofPairwiseSphereNormNeTwo /-
 theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo
     (h : (sphere (0 : E) 1).Pairwise fun x y => ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   StrictConvexSpace.ofNormAddNeTwo fun x y hx hy =>
     h (mem_sphere_zero_iff_norm.2 hx) (mem_sphere_zero_iff_norm.2 hy)
 #align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwo
+-/
 
+#print StrictConvexSpace.ofNormAdd /-
 /-- If `‖x + y‖ = ‖x‖ + ‖y‖` implies that `x y : E` are in the same ray, then `E` is a strictly
 convex space. See also a more -/
 theorem StrictConvexSpace.ofNormAdd
@@ -159,9 +172,11 @@ theorem StrictConvexSpace.ofNormAdd
   rw [mem_sphere_zero_iff_norm] at hx hy 
   exact (sameRay_iff_of_norm_eq (hx.trans hy.symm)).1 (h x y hx hy h₂)
 #align strict_convex_space.of_norm_add StrictConvexSpace.ofNormAdd
+-/
 
 variable [StrictConvexSpace ℝ E] {x y z : E} {a b r : ℝ}
 
+#print combo_mem_ball_of_ne /-
 /-- If `x ≠ y` belong to the same closed ball, then a convex combination of `x` and `y` with
 positive coefficients belongs to the corresponding open ball. -/
 theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall z r) (hne : x ≠ y)
@@ -173,6 +188,7 @@ theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall
   · simp only [← interior_closedBall _ hr] at hx hy ⊢
     exact strictConvex_closedBall ℝ z r hx hy hne ha hb hab
 #align combo_mem_ball_of_ne combo_mem_ball_of_ne
+-/
 
 #print openSegment_subset_ball_of_ne /-
 /-- If `x ≠ y` belong to the same closed ball, then the open segment with endpoints `x` and `y` is
@@ -183,6 +199,7 @@ theorem openSegment_subset_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ cl
 #align open_segment_subset_ball_of_ne openSegment_subset_ball_of_ne
 -/
 
+#print norm_combo_lt_of_ne /-
 /-- If `x` and `y` are two distinct vectors of norm at most `r`, then a convex combination of `x`
 and `y` with positive coefficients has norm strictly less than `r`. -/
 theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x ≠ y) (ha : 0 < a) (hb : 0 < b)
@@ -191,7 +208,9 @@ theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x 
   simp only [← mem_ball_zero_iff, ← mem_closedBall_zero_iff] at hx hy ⊢
   exact combo_mem_ball_of_ne hx hy hne ha hb hab
 #align norm_combo_lt_of_ne norm_combo_lt_of_ne
+-/
 
+#print norm_add_lt_of_not_sameRay /-
 /-- In a strictly convex space, if `x` and `y` are not in the same ray, then `‖x + y‖ < ‖x‖ +
 ‖y‖`. -/
 theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x‖ + ‖y‖ :=
@@ -208,59 +227,78 @@ theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x
     smul_inv_smul₀ hy.ne', ← smul_add, norm_smul, Real.norm_of_nonneg (inv_pos.2 hxy).le, ←
     div_eq_inv_mul, div_lt_one hxy] at this 
 #align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRay
+-/
 
+#print lt_norm_sub_of_not_sameRay /-
 theorem lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x‖ - ‖y‖ < ‖x - y‖ :=
   by
   nth_rw 1 [← sub_add_cancel x y] at h ⊢
   exact sub_lt_iff_lt_add.2 (norm_add_lt_of_not_sameRay fun H' => h <| H'.add_left SameRay.rfl)
 #align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRay
+-/
 
+#print abs_lt_norm_sub_of_not_sameRay /-
 theorem abs_lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : |‖x‖ - ‖y‖| < ‖x - y‖ :=
   by
   refine' abs_sub_lt_iff.2 ⟨lt_norm_sub_of_not_sameRay h, _⟩
   rw [norm_sub_rev]
   exact lt_norm_sub_of_not_sameRay (mt SameRay.symm h)
 #align abs_lt_norm_sub_of_not_same_ray abs_lt_norm_sub_of_not_sameRay
+-/
 
+#print sameRay_iff_norm_add /-
 /-- In a strictly convex space, two vectors `x`, `y` are in the same ray if and only if the triangle
 inequality for `x` and `y` becomes an equality. -/
 theorem sameRay_iff_norm_add : SameRay ℝ x y ↔ ‖x + y‖ = ‖x‖ + ‖y‖ :=
   ⟨SameRay.norm_add, fun h => Classical.not_not.1 fun h' => (norm_add_lt_of_not_sameRay h').Ne h⟩
 #align same_ray_iff_norm_add sameRay_iff_norm_add
+-/
 
+#print eq_of_norm_eq_of_norm_add_eq /-
 /-- If `x` and `y` are two vectors in a strictly convex space have the same norm and the norm of
 their sum is equal to the sum of their norms, then they are equal. -/
 theorem eq_of_norm_eq_of_norm_add_eq (h₁ : ‖x‖ = ‖y‖) (h₂ : ‖x + y‖ = ‖x‖ + ‖y‖) : x = y :=
   (sameRay_iff_norm_add.mpr h₂).eq_of_norm_eq h₁
 #align eq_of_norm_eq_of_norm_add_eq eq_of_norm_eq_of_norm_add_eq
+-/
 
+#print not_sameRay_iff_norm_add_lt /-
 /-- In a strictly convex space, two vectors `x`, `y` are not in the same ray if and only if the
 triangle inequality for `x` and `y` is strict. -/
 theorem not_sameRay_iff_norm_add_lt : ¬SameRay ℝ x y ↔ ‖x + y‖ < ‖x‖ + ‖y‖ :=
   sameRay_iff_norm_add.Not.trans (norm_add_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_norm_add_lt not_sameRay_iff_norm_add_lt
+-/
 
+#print sameRay_iff_norm_sub /-
 theorem sameRay_iff_norm_sub : SameRay ℝ x y ↔ ‖x - y‖ = |‖x‖ - ‖y‖| :=
   ⟨SameRay.norm_sub, fun h =>
     Classical.not_not.1 fun h' => (abs_lt_norm_sub_of_not_sameRay h').ne' h⟩
 #align same_ray_iff_norm_sub sameRay_iff_norm_sub
+-/
 
+#print not_sameRay_iff_abs_lt_norm_sub /-
 theorem not_sameRay_iff_abs_lt_norm_sub : ¬SameRay ℝ x y ↔ |‖x‖ - ‖y‖| < ‖x - y‖ :=
   sameRay_iff_norm_sub.Not.trans <| ne_comm.trans (abs_norm_sub_norm_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_abs_lt_norm_sub not_sameRay_iff_abs_lt_norm_sub
+-/
 
+#print dist_add_dist_eq_iff /-
 /-- In a strictly convex space, the triangle inequality turns into an equality if and only if the
 middle point belongs to the segment joining two other points. -/
 theorem dist_add_dist_eq_iff : dist x y + dist y z = dist x z ↔ y ∈ [x -[ℝ] z] := by
   simp only [mem_segment_iff_sameRay, sameRay_iff_norm_add, dist_eq_norm', sub_add_sub_cancel',
     eq_comm]
 #align dist_add_dist_eq_iff dist_add_dist_eq_iff
+-/
 
+#print norm_midpoint_lt_iff /-
 theorem norm_midpoint_lt_iff (h : ‖x‖ = ‖y‖) : ‖(1 / 2 : ℝ) • (x + y)‖ < ‖x‖ ↔ x ≠ y := by
   rw [norm_smul, Real.norm_of_nonneg (one_div_nonneg.2 zero_le_two), ← inv_eq_one_div, ←
     div_eq_inv_mul, div_lt_iff (zero_lt_two' ℝ), mul_two, ← not_sameRay_iff_of_norm_eq h,
     not_sameRay_iff_norm_add_lt, h]
 #align norm_midpoint_lt_iff norm_midpoint_lt_iff
+-/
 
 variable {F : Type _} [NormedAddCommGroup F] [NormedSpace ℝ F]
 
@@ -268,8 +306,7 @@ variable {PF : Type _} {PE : Type _} [MetricSpace PF] [MetricSpace PE]
 
 variable [NormedAddTorsor F PF] [NormedAddTorsor E PE]
 
-include E
-
+#print eq_lineMap_of_dist_eq_mul_of_dist_eq_mul /-
 theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y = r * dist x z)
     (hyz : dist y z = (1 - r) * dist x z) : y = AffineMap.lineMap x z r :=
   by
@@ -287,7 +324,9 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
       mul_left_inj' hne] at H' 
     rw [AffineMap.lineMap_apply, ← H', H, vsub_vadd]
 #align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
+-/
 
+#print eq_midpoint_of_dist_eq_half /-
 theorem eq_midpoint_of_dist_eq_half {x y z : PE} (hx : dist x y = dist x z / 2)
     (hy : dist y z = dist x z / 2) : y = midpoint ℝ x z :=
   by
@@ -295,11 +334,11 @@ theorem eq_midpoint_of_dist_eq_half {x y z : PE} (hx : dist x y = dist x z / 2)
   · rwa [invOf_eq_inv, ← div_eq_inv_mul]
   · rwa [invOf_eq_inv, ← one_div, sub_half, one_div, ← div_eq_inv_mul]
 #align eq_midpoint_of_dist_eq_half eq_midpoint_of_dist_eq_half
+-/
 
 namespace Isometry
 
-include F
-
+#print Isometry.affineIsometryOfStrictConvexSpace /-
 /-- An isometry of `normed_add_torsor`s for real normed spaces, strictly convex in the case of
 the codomain, is an affine isometry.  Unlike Mazur-Ulam, this does not require the isometry to
 be surjective.  -/
@@ -318,18 +357,23 @@ noncomputable def affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isomet
       hi.Continuous with
     norm_map := fun x => by simp [AffineMap.ofMapMidpoint, ← dist_eq_norm_vsub E, hi.dist_eq] }
 #align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpace
+-/
 
+#print Isometry.coe_affineIsometryOfStrictConvexSpace /-
 @[simp]
 theorem coe_affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f) :
     ⇑hi.affineIsometryOfStrictConvexSpace = f :=
   rfl
 #align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpace
+-/
 
+#print Isometry.affineIsometryOfStrictConvexSpace_apply /-
 @[simp]
 theorem affineIsometryOfStrictConvexSpace_apply {f : PF → PE} (hi : Isometry f) (p : PF) :
     hi.affineIsometryOfStrictConvexSpace p = f p :=
   rfl
 #align isometry.affine_isometry_of_strict_convex_space_apply Isometry.affineIsometryOfStrictConvexSpace_apply
+-/
 
 end Isometry
 
Diff
@@ -75,7 +75,7 @@ then prove that any closed ball is strictly convex in `strict_convex_closed_ball
 
 See also `strict_convex_space.of_strict_convex_closed_unit_ball`. -/
 class StrictConvexSpace (𝕜 E : Type _) [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
-  [NormedSpace 𝕜 E] : Prop where
+    [NormedSpace 𝕜 E] : Prop where
   strictConvex_closedBall : ∀ r : ℝ, 0 < r → StrictConvex 𝕜 (closedBall (0 : E) r)
 #align strict_convex_space StrictConvexSpace
 -/
@@ -112,7 +112,7 @@ theorem StrictConvexSpace.ofNormComboLtOne
     StrictConvexSpace.ofStrictConvexClosedUnitBall ℝ
       ((convex_closedBall _ _).strictConvex' fun x hx y hy hne => _)
   rw [interior_closedBall (0 : E) one_ne_zero, closed_ball_diff_ball, mem_sphere_zero_iff_norm] at
-    hx hy
+    hx hy 
   rcases h x y hx hy hne with ⟨a, b, hab, hlt⟩
   use b
   rwa [AffineMap.lineMap_apply_module, interior_closedBall (0 : E) one_ne_zero, mem_ball_zero_iff,
@@ -156,7 +156,7 @@ theorem StrictConvexSpace.ofNormAdd
     (h : ∀ x y : E, ‖x‖ = 1 → ‖y‖ = 1 → ‖x + y‖ = 2 → SameRay ℝ x y) : StrictConvexSpace ℝ E :=
   by
   refine' StrictConvexSpace.ofPairwiseSphereNormNeTwo fun x hx y hy => mt fun h₂ => _
-  rw [mem_sphere_zero_iff_norm] at hx hy
+  rw [mem_sphere_zero_iff_norm] at hx hy 
   exact (sameRay_iff_of_norm_eq (hx.trans hy.symm)).1 (h x y hx hy h₂)
 #align strict_convex_space.of_norm_add StrictConvexSpace.ofNormAdd
 
@@ -168,9 +168,9 @@ theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall
     (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) : a • x + b • y ∈ ball z r :=
   by
   rcases eq_or_ne r 0 with (rfl | hr)
-  · rw [closed_ball_zero, mem_singleton_iff] at hx hy
+  · rw [closed_ball_zero, mem_singleton_iff] at hx hy 
     exact (hne (hx.trans hy.symm)).elim
-  · simp only [← interior_closedBall _ hr] at hx hy⊢
+  · simp only [← interior_closedBall _ hr] at hx hy ⊢
     exact strictConvex_closedBall ℝ z r hx hy hne ha hb hab
 #align combo_mem_ball_of_ne combo_mem_ball_of_ne
 
@@ -188,7 +188,7 @@ and `y` with positive coefficients has norm strictly less than `r`. -/
 theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x ≠ y) (ha : 0 < a) (hb : 0 < b)
     (hab : a + b = 1) : ‖a • x + b • y‖ < r :=
   by
-  simp only [← mem_ball_zero_iff, ← mem_closedBall_zero_iff] at hx hy⊢
+  simp only [← mem_ball_zero_iff, ← mem_closedBall_zero_iff] at hx hy ⊢
   exact combo_mem_ball_of_ne hx hy hne ha hb hab
 #align norm_combo_lt_of_ne norm_combo_lt_of_ne
 
@@ -196,9 +196,9 @@ theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x 
 ‖y‖`. -/
 theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x‖ + ‖y‖ :=
   by
-  simp only [sameRay_iff_inv_norm_smul_eq, not_or, ← Ne.def] at h
+  simp only [sameRay_iff_inv_norm_smul_eq, not_or, ← Ne.def] at h 
   rcases h with ⟨hx, hy, hne⟩
-  rw [← norm_pos_iff] at hx hy
+  rw [← norm_pos_iff] at hx hy 
   have hxy : 0 < ‖x‖ + ‖y‖ := add_pos hx hy
   have :=
     combo_mem_ball_of_ne (inv_norm_smul_mem_closed_unit_ball x)
@@ -206,12 +206,12 @@ theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x
       (by rw [← add_div, div_self hxy.ne'])
   rwa [mem_ball_zero_iff, div_eq_inv_mul, div_eq_inv_mul, mul_smul, mul_smul, smul_inv_smul₀ hx.ne',
     smul_inv_smul₀ hy.ne', ← smul_add, norm_smul, Real.norm_of_nonneg (inv_pos.2 hxy).le, ←
-    div_eq_inv_mul, div_lt_one hxy] at this
+    div_eq_inv_mul, div_lt_one hxy] at this 
 #align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRay
 
 theorem lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x‖ - ‖y‖ < ‖x - y‖ :=
   by
-  nth_rw 1 [← sub_add_cancel x y] at h⊢
+  nth_rw 1 [← sub_add_cancel x y] at h ⊢
   exact sub_lt_iff_lt_add.2 (norm_add_lt_of_not_sameRay fun H' => h <| H'.add_left SameRay.rfl)
 #align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRay
 
@@ -279,12 +279,12 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
   rcases eq_or_ne x z with (rfl | hne)
   · obtain rfl : y = x := by simpa
     simp
-  · rw [← dist_ne_zero] at hne
+  · rw [← dist_ne_zero] at hne 
     rcases this with ⟨a, b, ha, hb, hab, H⟩
-    rw [smul_zero, zero_add] at H
+    rw [smul_zero, zero_add] at H 
     have H' := congr_arg norm H
     rw [norm_smul, Real.norm_of_nonneg hb, ← dist_eq_norm_vsub', ← dist_eq_norm_vsub', hxy,
-      mul_left_inj' hne] at H'
+      mul_left_inj' hne] at H' 
     rw [AffineMap.lineMap_apply, ← H', H, vsub_vadd]
 #align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
 
Diff
@@ -66,7 +66,7 @@ convex, strictly convex
 
 open Set Metric
 
-open Convex Pointwise
+open scoped Convex Pointwise
 
 #print StrictConvexSpace /-
 /-- A *strictly convex space* is a normed space where the closed balls are strictly convex. We only
Diff
@@ -83,12 +83,6 @@ class StrictConvexSpace (𝕜 E : Type _) [NormedLinearOrderedField 𝕜] [Norme
 variable (𝕜 : Type _) {E : Type _} [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
   [NormedSpace 𝕜 E]
 
-/- warning: strict_convex_closed_ball -> strictConvex_closedBall is a dubious translation:
-lean 3 declaration is
-  forall (𝕜 : Type.{u1}) {E : Type.{u2}} [_inst_1 : NormedLinearOrderedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : StrictConvexSpace.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3] (x : E) (r : Real), StrictConvex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (Metric.closedBall.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) x r)
-but is expected to have type
-  forall (𝕜 : Type.{u2}) {E : Type.{u1}} [_inst_1 : NormedLinearOrderedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NormedLinearOrderedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : StrictConvexSpace.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_3] (x : E) (r : Real), StrictConvex.{u2, u1} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} 𝕜 E (NormedLinearOrderedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) x r)
-Case conversion may be inaccurate. Consider using '#align strict_convex_closed_ball strictConvex_closedBallₓ'. -/
 /-- A closed ball in a strictly convex space is strictly convex. -/
 theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
     StrictConvex 𝕜 (closedBall x r) :=
@@ -101,18 +95,12 @@ theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
 
 variable [NormedSpace ℝ E]
 
-/- warning: strict_convex_space.of_strict_convex_closed_unit_ball -> StrictConvexSpace.ofStrictConvexClosedUnitBall is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBallₓ'. -/
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
 theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
     (h : StrictConvex 𝕜 (closedBall (0 : E) 1)) : StrictConvexSpace 𝕜 E :=
   ⟨fun r hr => by simpa only [smul_closedUnitBall_of_nonneg hr.le] using h.smul r⟩
 #align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
 
-/- warning: strict_convex_space.of_norm_combo_lt_one -> StrictConvexSpace.ofNormComboLtOne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOneₓ'. -/
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`
 and all strictly positive `a` and `b` such that `a + b = 1`. This lemma shows that it suffices to
 check this for points of norm one and some `a`, `b` such that `a + b = 1`. -/
@@ -131,9 +119,6 @@ theorem StrictConvexSpace.ofNormComboLtOne
     sub_eq_iff_eq_add.2 hab.symm]
 #align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOne
 
-/- warning: strict_convex_space.of_norm_combo_ne_one -> StrictConvexSpace.ofNormComboNeOne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOneₓ'. -/
 theorem StrictConvexSpace.ofNormComboNeOne
     (h :
       ∀ x y : E,
@@ -148,12 +133,6 @@ theorem StrictConvexSpace.ofNormComboNeOne
   exact ⟨_, ⟨a, b, ha, hb, hab, rfl⟩, mt mem_sphere_zero_iff_norm.1 hne'⟩
 #align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOne
 
-/- warning: strict_convex_space.of_norm_add_ne_two -> StrictConvexSpace.ofNormAddNeTwo is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall {{x : E}} {{y : E}}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Ne.{succ u1} E x y) -> (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall {{x : E}} {{y : E}}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Ne.{succ u1} E x y) -> (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwoₓ'. -/
 theorem StrictConvexSpace.ofNormAddNeTwo
     (h : ∀ ⦃x y : E⦄, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   by
@@ -165,24 +144,12 @@ theorem StrictConvexSpace.ofNormAddNeTwo
   exact h hx hy hne
 #align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwo
 
-/- warning: strict_convex_space.of_pairwise_sphere_norm_ne_two -> StrictConvexSpace.ofPairwiseSphereNormNeTwo is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (Set.Pairwise.{u1} E (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (fun (x : E) (y : E) => Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (Set.Pairwise.{u1} E (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (fun (x : E) (y : E) => Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwoₓ'. -/
 theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo
     (h : (sphere (0 : E) 1).Pairwise fun x y => ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   StrictConvexSpace.ofNormAddNeTwo fun x y hx hy =>
     h (mem_sphere_zero_iff_norm.2 hx) (mem_sphere_zero_iff_norm.2 hy)
 #align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwo
 
-/- warning: strict_convex_space.of_norm_add -> StrictConvexSpace.ofNormAdd is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) -> (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) -> (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_add StrictConvexSpace.ofNormAddₓ'. -/
 /-- If `‖x + y‖ = ‖x‖ + ‖y‖` implies that `x y : E` are in the same ray, then `E` is a strictly
 convex space. See also a more -/
 theorem StrictConvexSpace.ofNormAdd
@@ -195,9 +162,6 @@ theorem StrictConvexSpace.ofNormAdd
 
 variable [StrictConvexSpace ℝ E] {x y z : E} {a b r : ℝ}
 
-/- warning: combo_mem_ball_of_ne -> combo_mem_ball_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align combo_mem_ball_of_ne combo_mem_ball_of_neₓ'. -/
 /-- If `x ≠ y` belong to the same closed ball, then a convex combination of `x` and `y` with
 positive coefficients belongs to the corresponding open ball. -/
 theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall z r) (hne : x ≠ y)
@@ -219,9 +183,6 @@ theorem openSegment_subset_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ cl
 #align open_segment_subset_ball_of_ne openSegment_subset_ball_of_ne
 -/
 
-/- warning: norm_combo_lt_of_ne -> norm_combo_lt_of_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align norm_combo_lt_of_ne norm_combo_lt_of_neₓ'. -/
 /-- If `x` and `y` are two distinct vectors of norm at most `r`, then a convex combination of `x`
 and `y` with positive coefficients has norm strictly less than `r`. -/
 theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x ≠ y) (ha : 0 < a) (hb : 0 < b)
@@ -231,12 +192,6 @@ theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x 
   exact combo_mem_ball_of_ne hx hy hne ha hb hab
 #align norm_combo_lt_of_ne norm_combo_lt_of_ne
 
-/- warning: norm_add_lt_of_not_same_ray -> norm_add_lt_of_not_sameRay is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)))
-Case conversion may be inaccurate. Consider using '#align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRayₓ'. -/
 /-- In a strictly convex space, if `x` and `y` are not in the same ray, then `‖x + y‖ < ‖x‖ +
 ‖y‖`. -/
 theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x‖ + ‖y‖ :=
@@ -254,24 +209,12 @@ theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x
     div_eq_inv_mul, div_lt_one hxy] at this
 #align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRay
 
-/- warning: lt_norm_sub_of_not_same_ray -> lt_norm_sub_of_not_sameRay is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.hasLt (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.instLTReal (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
-Case conversion may be inaccurate. Consider using '#align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRayₓ'. -/
 theorem lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x‖ - ‖y‖ < ‖x - y‖ :=
   by
   nth_rw 1 [← sub_add_cancel x y] at h⊢
   exact sub_lt_iff_lt_add.2 (norm_add_lt_of_not_sameRay fun H' => h <| H'.add_left SameRay.rfl)
 #align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRay
 
-/- warning: abs_lt_norm_sub_of_not_same_ray -> abs_lt_norm_sub_of_not_sameRay is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.hasLt (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.instLTReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
-Case conversion may be inaccurate. Consider using '#align abs_lt_norm_sub_of_not_same_ray abs_lt_norm_sub_of_not_sameRayₓ'. -/
 theorem abs_lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : |‖x‖ - ‖y‖| < ‖x - y‖ :=
   by
   refine' abs_sub_lt_iff.2 ⟨lt_norm_sub_of_not_sameRay h, _⟩
@@ -279,69 +222,33 @@ theorem abs_lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : |‖x‖ - ‖y
   exact lt_norm_sub_of_not_sameRay (mt SameRay.symm h)
 #align abs_lt_norm_sub_of_not_same_ray abs_lt_norm_sub_of_not_sameRay
 
-/- warning: same_ray_iff_norm_add -> sameRay_iff_norm_add is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)))
-Case conversion may be inaccurate. Consider using '#align same_ray_iff_norm_add sameRay_iff_norm_addₓ'. -/
 /-- In a strictly convex space, two vectors `x`, `y` are in the same ray if and only if the triangle
 inequality for `x` and `y` becomes an equality. -/
 theorem sameRay_iff_norm_add : SameRay ℝ x y ↔ ‖x + y‖ = ‖x‖ + ‖y‖ :=
   ⟨SameRay.norm_add, fun h => Classical.not_not.1 fun h' => (norm_add_lt_of_not_sameRay h').Ne h⟩
 #align same_ray_iff_norm_add sameRay_iff_norm_add
 
-/- warning: eq_of_norm_eq_of_norm_add_eq -> eq_of_norm_eq_of_norm_add_eq is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))) -> (Eq.{succ u1} E x y)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))) -> (Eq.{succ u1} E x y)
-Case conversion may be inaccurate. Consider using '#align eq_of_norm_eq_of_norm_add_eq eq_of_norm_eq_of_norm_add_eqₓ'. -/
 /-- If `x` and `y` are two vectors in a strictly convex space have the same norm and the norm of
 their sum is equal to the sum of their norms, then they are equal. -/
 theorem eq_of_norm_eq_of_norm_add_eq (h₁ : ‖x‖ = ‖y‖) (h₂ : ‖x + y‖ = ‖x‖ + ‖y‖) : x = y :=
   (sameRay_iff_norm_add.mpr h₂).eq_of_norm_eq h₁
 #align eq_of_norm_eq_of_norm_add_eq eq_of_norm_eq_of_norm_add_eq
 
-/- warning: not_same_ray_iff_norm_add_lt -> not_sameRay_iff_norm_add_lt is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)))
-Case conversion may be inaccurate. Consider using '#align not_same_ray_iff_norm_add_lt not_sameRay_iff_norm_add_ltₓ'. -/
 /-- In a strictly convex space, two vectors `x`, `y` are not in the same ray if and only if the
 triangle inequality for `x` and `y` is strict. -/
 theorem not_sameRay_iff_norm_add_lt : ¬SameRay ℝ x y ↔ ‖x + y‖ < ‖x‖ + ‖y‖ :=
   sameRay_iff_norm_add.Not.trans (norm_add_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_norm_add_lt not_sameRay_iff_norm_add_lt
 
-/- warning: same_ray_iff_norm_sub -> sameRay_iff_norm_sub is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))))
-Case conversion may be inaccurate. Consider using '#align same_ray_iff_norm_sub sameRay_iff_norm_subₓ'. -/
 theorem sameRay_iff_norm_sub : SameRay ℝ x y ↔ ‖x - y‖ = |‖x‖ - ‖y‖| :=
   ⟨SameRay.norm_sub, fun h =>
     Classical.not_not.1 fun h' => (abs_lt_norm_sub_of_not_sameRay h').ne' h⟩
 #align same_ray_iff_norm_sub sameRay_iff_norm_sub
 
-/- warning: not_same_ray_iff_abs_lt_norm_sub -> not_sameRay_iff_abs_lt_norm_sub is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.hasLt (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.instLTReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
-Case conversion may be inaccurate. Consider using '#align not_same_ray_iff_abs_lt_norm_sub not_sameRay_iff_abs_lt_norm_subₓ'. -/
 theorem not_sameRay_iff_abs_lt_norm_sub : ¬SameRay ℝ x y ↔ |‖x‖ - ‖y‖| < ‖x - y‖ :=
   sameRay_iff_norm_sub.Not.trans <| ne_comm.trans (abs_norm_sub_norm_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_abs_lt_norm_sub not_sameRay_iff_abs_lt_norm_sub
 
-/- warning: dist_add_dist_eq_iff -> dist_add_dist_eq_iff is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E}, Iff (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Dist.dist.{u1} E (PseudoMetricSpace.toHasDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x y) (Dist.dist.{u1} E (PseudoMetricSpace.toHasDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) y z)) (Dist.dist.{u1} E (PseudoMetricSpace.toHasDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x z)) (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) y (segment.{0, u1} Real E Real.orderedSemiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) x z))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E}, Iff (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Dist.dist.{u1} E (PseudoMetricSpace.toDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x y) (Dist.dist.{u1} E (PseudoMetricSpace.toDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) y z)) (Dist.dist.{u1} E (PseudoMetricSpace.toDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x z)) (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y (segment.{0, u1} Real E Real.orderedSemiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) x z))
-Case conversion may be inaccurate. Consider using '#align dist_add_dist_eq_iff dist_add_dist_eq_iffₓ'. -/
 /-- In a strictly convex space, the triangle inequality turns into an equality if and only if the
 middle point belongs to the segment joining two other points. -/
 theorem dist_add_dist_eq_iff : dist x y + dist y z = dist x z ↔ y ∈ [x -[ℝ] z] := by
@@ -349,12 +256,6 @@ theorem dist_add_dist_eq_iff : dist x y + dist y z = dist x z ↔ y ∈ [x -[ℝ
     eq_comm]
 #align dist_add_dist_eq_iff dist_add_dist_eq_iff
 
-/- warning: norm_midpoint_lt_iff -> norm_midpoint_lt_iff is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)) -> (Iff (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y))) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x)) (Ne.{succ u1} E x y))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)) -> (Iff (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y))) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x)) (Ne.{succ u1} E x y))
-Case conversion may be inaccurate. Consider using '#align norm_midpoint_lt_iff norm_midpoint_lt_iffₓ'. -/
 theorem norm_midpoint_lt_iff (h : ‖x‖ = ‖y‖) : ‖(1 / 2 : ℝ) • (x + y)‖ < ‖x‖ ↔ x ≠ y := by
   rw [norm_smul, Real.norm_of_nonneg (one_div_nonneg.2 zero_le_two), ← inv_eq_one_div, ←
     div_eq_inv_mul, div_lt_iff (zero_lt_two' ℝ), mul_two, ← not_sameRay_iff_of_norm_eq h,
@@ -369,9 +270,6 @@ variable [NormedAddTorsor F PF] [NormedAddTorsor E PE]
 
 include E
 
-/- warning: eq_line_map_of_dist_eq_mul_of_dist_eq_mul -> eq_lineMap_of_dist_eq_mul_of_dist_eq_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mulₓ'. -/
 theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y = r * dist x z)
     (hyz : dist y z = (1 - r) * dist x z) : y = AffineMap.lineMap x z r :=
   by
@@ -390,12 +288,6 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
     rw [AffineMap.lineMap_apply, ← H', H, vsub_vadd]
 #align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
 
-/- warning: eq_midpoint_of_dist_eq_half -> eq_midpoint_of_dist_eq_half is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (Eq.{succ u2} PE y (midpoint.{0, u1, u2} Real E PE Real.ring (invertibleTwo.{0} Real Real.divisionRing (StrictOrderedSemiring.to_charZero.{0} Real Real.strictOrderedSemiring)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11) x z))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (Eq.{succ u2} PE y (midpoint.{0, u1, u2} Real E PE Real.instRingReal (invertibleTwo.{0} Real Real.instDivisionRingReal (StrictOrderedSemiring.to_charZero.{0} Real Real.strictOrderedSemiring)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11) x z))
-Case conversion may be inaccurate. Consider using '#align eq_midpoint_of_dist_eq_half eq_midpoint_of_dist_eq_halfₓ'. -/
 theorem eq_midpoint_of_dist_eq_half {x y z : PE} (hx : dist x y = dist x z / 2)
     (hy : dist y z = dist x z / 2) : y = midpoint ℝ x z :=
   by
@@ -408,12 +300,6 @@ namespace Isometry
 
 include F
 
-/- warning: isometry.affine_isometry_of_strict_convex_space -> Isometry.affineIsometryOfStrictConvexSpace is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u2}} [_inst_6 : NormedAddCommGroup.{u2} F] [_inst_7 : NormedSpace.{0, u2} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6)] {PF : Type.{u3}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u3} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u2, u3} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u1, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE}, (Isometry.{u3, u4} PF PE (PseudoMetricSpace.toPseudoEMetricSpace.{u3} PF (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)) (PseudoMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)) f) -> (AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11)
-but is expected to have type
-  forall {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u2} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u3}} [_inst_6 : NormedAddCommGroup.{u3} F] [_inst_7 : NormedSpace.{0, u3} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_6)] {PF : Type.{u1}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u1} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u3, u1} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u1} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u2, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE}, (Isometry.{u1, u4} PF PE (EMetricSpace.toPseudoEMetricSpace.{u1} PF (MetricSpace.toEMetricSpace.{u1} PF _inst_8)) (EMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toEMetricSpace.{u4} PE _inst_9)) f) -> (AffineIsometry.{0, u3, u2, u1, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u1} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11)
-Case conversion may be inaccurate. Consider using '#align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpaceₓ'. -/
 /-- An isometry of `normed_add_torsor`s for real normed spaces, strictly convex in the case of
 the codomain, is an affine isometry.  Unlike Mazur-Ulam, this does not require the isometry to
 be surjective.  -/
@@ -433,18 +319,12 @@ noncomputable def affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isomet
     norm_map := fun x => by simp [AffineMap.ofMapMidpoint, ← dist_eq_norm_vsub E, hi.dist_eq] }
 #align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpace
 
-/- warning: isometry.coe_affine_isometry_of_strict_convex_space -> Isometry.coe_affineIsometryOfStrictConvexSpace is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpaceₓ'. -/
 @[simp]
 theorem coe_affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f) :
     ⇑hi.affineIsometryOfStrictConvexSpace = f :=
   rfl
 #align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpace
 
-/- warning: isometry.affine_isometry_of_strict_convex_space_apply -> Isometry.affineIsometryOfStrictConvexSpace_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align isometry.affine_isometry_of_strict_convex_space_apply Isometry.affineIsometryOfStrictConvexSpace_applyₓ'. -/
 @[simp]
 theorem affineIsometryOfStrictConvexSpace_apply {f : PF → PE} (hi : Isometry f) (p : PF) :
     hi.affineIsometryOfStrictConvexSpace p = f p :=
Diff
@@ -102,10 +102,7 @@ theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
 variable [NormedSpace ℝ E]
 
 /- warning: strict_convex_space.of_strict_convex_closed_unit_ball -> StrictConvexSpace.ofStrictConvexClosedUnitBall is a dubious translation:
-lean 3 declaration is
-  forall (𝕜 : Type.{u1}) {E : Type.{u2}} [_inst_1 : NormedLinearOrderedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : LinearMap.CompatibleSMul.{u2, u2, u1, 0} E E (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) 𝕜 Real Real.semiring (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4)], (StrictConvex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (Metric.closedBall.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) -> (StrictConvexSpace.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3)
-but is expected to have type
-  forall (𝕜 : Type.{u1}) {E : Type.{u2}} [_inst_1 : NormedLinearOrderedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : LinearMap.CompatibleSMul.{u2, u2, u1, 0} E E (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) 𝕜 Real Real.semiring (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4) (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4)], (StrictConvex.{u1, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (Metric.closedBall.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) (OfNat.ofNat.{u2} E 0 (Zero.toOfNat0.{u2} E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) -> (StrictConvexSpace.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3)
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBallₓ'. -/
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
 theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
@@ -114,10 +111,7 @@ theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul
 #align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
 
 /- warning: strict_convex_space.of_norm_combo_lt_one -> StrictConvexSpace.ofNormComboLtOne is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOneₓ'. -/
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`
 and all strictly positive `a` and `b` such that `a + b = 1`. This lemma shows that it suffices to
@@ -138,10 +132,7 @@ theorem StrictConvexSpace.ofNormComboLtOne
 #align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOne
 
 /- warning: strict_convex_space.of_norm_combo_ne_one -> StrictConvexSpace.ofNormComboNeOne is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) (And (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) b) (And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) (And (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) b) (And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+<too large>
 Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOneₓ'. -/
 theorem StrictConvexSpace.ofNormComboNeOne
     (h :
@@ -205,10 +196,7 @@ theorem StrictConvexSpace.ofNormAdd
 variable [StrictConvexSpace ℝ E] {x y z : E} {a b r : ℝ}
 
 /- warning: combo_mem_ball_of_ne -> combo_mem_ball_of_ne is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E} {a : Real} {b : Real} {r : Real}, (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) y (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E} {a : Real} {b : Real} {r : Real}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r))
+<too large>
 Case conversion may be inaccurate. Consider using '#align combo_mem_ball_of_ne combo_mem_ball_of_neₓ'. -/
 /-- If `x ≠ y` belong to the same closed ball, then a convex combination of `x` and `y` with
 positive coefficients belongs to the corresponding open ball. -/
@@ -232,10 +220,7 @@ theorem openSegment_subset_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ cl
 -/
 
 /- warning: norm_combo_lt_of_ne -> norm_combo_lt_of_ne is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {a : Real} {b : Real} {r : Real}, (LE.le.{0} Real Real.hasLe (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) r) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) r) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y))) r)
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {a : Real} {b : Real} {r : Real}, (LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) r) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) r) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y))) r)
+<too large>
 Case conversion may be inaccurate. Consider using '#align norm_combo_lt_of_ne norm_combo_lt_of_neₓ'. -/
 /-- If `x` and `y` are two distinct vectors of norm at most `r`, then a convex combination of `x`
 and `y` with positive coefficients has norm strictly less than `r`. -/
@@ -385,10 +370,7 @@ variable [NormedAddTorsor F PF] [NormedAddTorsor E PE]
 include E
 
 /- warning: eq_line_map_of_dist_eq_mul_of_dist_eq_mul -> eq_lineMap_of_dist_eq_mul_of_dist_eq_mul is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {r : Real} {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) r (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) r) (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{succ u2} PE y (coeFn.{max 1 (succ u1) (succ u2), succ u2} (AffineMap.{0, 0, 0, u1, u2} Real Real Real E PE Real.ring (NonUnitalNonAssocRing.toAddCommGroup.{0} Real (NonAssocRing.toNonUnitalNonAssocRing.{0} Real (Ring.toNonAssocRing.{0} Real Real.ring))) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.ring)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (AddCommGroupWithOne.toAddGroupWithOne.{0} Real (Ring.toAddCommGroupWithOne.{0} Real Real.ring)))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11)) (fun (_x : AffineMap.{0, 0, 0, u1, u2} Real Real Real E PE Real.ring (NonUnitalNonAssocRing.toAddCommGroup.{0} Real (NonAssocRing.toNonUnitalNonAssocRing.{0} Real (Ring.toNonAssocRing.{0} Real Real.ring))) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.ring)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (AddCommGroupWithOne.toAddGroupWithOne.{0} Real (Ring.toAddCommGroupWithOne.{0} Real Real.ring)))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11)) => Real -> PE) (AffineMap.hasCoeToFun.{0, 0, 0, u1, u2} Real Real Real E PE Real.ring (NonUnitalNonAssocRing.toAddCommGroup.{0} Real (NonAssocRing.toNonUnitalNonAssocRing.{0} Real (Ring.toNonAssocRing.{0} Real Real.ring))) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.ring)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (AddCommGroupWithOne.toAddGroupWithOne.{0} Real (Ring.toAddCommGroupWithOne.{0} Real Real.ring)))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11)) (AffineMap.lineMap.{0, u1, u2} Real E PE Real.ring (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11) x z) r))
-but is expected to have type
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {r : Real} {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) r (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) r) (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{succ u2} PE y (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (AffineMap.{0, 0, 0, u1, u2} Real Real Real E PE Real.instRingReal (Ring.toAddCommGroup.{0} Real Real.instRingReal) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.instRingReal)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (Ring.toAddGroupWithOne.{0} Real Real.instRingReal))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11)) Real (fun (_x : Real) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : Real) => PE) _x) (AffineMap.funLike.{0, 0, 0, u1, u2} Real Real Real E PE Real.instRingReal (Ring.toAddCommGroup.{0} Real Real.instRingReal) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.instRingReal)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (Ring.toAddGroupWithOne.{0} Real Real.instRingReal))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11)) (AffineMap.lineMap.{0, u1, u2} Real E PE Real.instRingReal (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11) x z) r))
+<too large>
 Case conversion may be inaccurate. Consider using '#align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mulₓ'. -/
 theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y = r * dist x z)
     (hyz : dist y z = (1 - r) * dist x z) : y = AffineMap.lineMap x z r :=
@@ -452,10 +434,7 @@ noncomputable def affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isomet
 #align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpace
 
 /- warning: isometry.coe_affine_isometry_of_strict_convex_space -> Isometry.coe_affineIsometryOfStrictConvexSpace is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u2}} [_inst_6 : NormedAddCommGroup.{u2} F] [_inst_7 : NormedSpace.{0, u2} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6)] {PF : Type.{u3}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u3} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u2, u3} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u1, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u3, u4} PF PE (PseudoMetricSpace.toPseudoEMetricSpace.{u3} PF (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)) (PseudoMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)) f), Eq.{max (succ u3) (succ u4)} (PF -> PE) (coeFn.{max (succ u2) (succ u1) (succ u3) (succ u4), max (succ u3) (succ u4)} (AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (fun (_x : AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) => PF -> PE) (AffineIsometry.hasCoeToFun.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u1, u2, u3, u4} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi)) f
-but is expected to have type
-  forall {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u2} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u1}} [_inst_6 : NormedAddCommGroup.{u1} F] [_inst_7 : NormedSpace.{0, u1} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6)] {PF : Type.{u4}} {PE : Type.{u3}} [_inst_8 : MetricSpace.{u4} PF] [_inst_9 : MetricSpace.{u3} PE] [_inst_10 : NormedAddTorsor.{u1, u4} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u2, u3} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u4, u3} PF PE (EMetricSpace.toPseudoEMetricSpace.{u4} PF (MetricSpace.toEMetricSpace.{u4} PF _inst_8)) (EMetricSpace.toPseudoEMetricSpace.{u3} PE (MetricSpace.toEMetricSpace.{u3} PE _inst_9)) f), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : PF), (fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) ᾰ) (FunLike.coe.{max (max (max (succ u4) (succ u2)) (succ u1)) (succ u3), succ u4, succ u3} (AffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) PF (fun (_x : PF) => (fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) _x) (AffineIsometry.instFunLikeAffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u4, u2, u1, u3} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi)) f
+<too large>
 Case conversion may be inaccurate. Consider using '#align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpaceₓ'. -/
 @[simp]
 theorem coe_affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f) :
@@ -464,10 +443,7 @@ theorem coe_affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f)
 #align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpace
 
 /- warning: isometry.affine_isometry_of_strict_convex_space_apply -> Isometry.affineIsometryOfStrictConvexSpace_apply is a dubious translation:
-lean 3 declaration is
-  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u2}} [_inst_6 : NormedAddCommGroup.{u2} F] [_inst_7 : NormedSpace.{0, u2} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6)] {PF : Type.{u3}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u3} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u2, u3} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u1, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u3, u4} PF PE (PseudoMetricSpace.toPseudoEMetricSpace.{u3} PF (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)) (PseudoMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)) f) (p : PF), Eq.{succ u4} PE (coeFn.{max (succ u2) (succ u1) (succ u3) (succ u4), max (succ u3) (succ u4)} (AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (fun (_x : AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) => PF -> PE) (AffineIsometry.hasCoeToFun.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u1, u2, u3, u4} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi) p) (f p)
-but is expected to have type
-  forall {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u2} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u1}} [_inst_6 : NormedAddCommGroup.{u1} F] [_inst_7 : NormedSpace.{0, u1} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6)] {PF : Type.{u4}} {PE : Type.{u3}} [_inst_8 : MetricSpace.{u4} PF] [_inst_9 : MetricSpace.{u3} PE] [_inst_10 : NormedAddTorsor.{u1, u4} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u2, u3} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u4, u3} PF PE (EMetricSpace.toPseudoEMetricSpace.{u4} PF (MetricSpace.toEMetricSpace.{u4} PF _inst_8)) (EMetricSpace.toPseudoEMetricSpace.{u3} PE (MetricSpace.toEMetricSpace.{u3} PE _inst_9)) f) (p : PF), Eq.{succ u3} ((fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) p) (FunLike.coe.{max (max (max (succ u4) (succ u2)) (succ u1)) (succ u3), succ u4, succ u3} (AffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) PF (fun (_x : PF) => (fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) _x) (AffineIsometry.instFunLikeAffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u4, u2, u1, u3} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi) p) (f p)
+<too large>
 Case conversion may be inaccurate. Consider using '#align isometry.affine_isometry_of_strict_convex_space_apply Isometry.affineIsometryOfStrictConvexSpace_applyₓ'. -/
 @[simp]
 theorem affineIsometryOfStrictConvexSpace_apply {f : PF → PE} (hi : Isometry f) (p : PF) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Yury Kudryashov
 
 ! This file was ported from Lean 3 source module analysis.convex.strict_convex_space
-! leanprover-community/mathlib commit a63928c34ec358b5edcda2bf7513c50052a5230f
+! leanprover-community/mathlib commit 1b0a28e1c93409dbf6d69526863cd9984ef652ce
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.Analysis.NormedSpace.AffineIsometry
 /-!
 # Strictly convex spaces
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines strictly convex spaces. A normed space is strictly convex if all closed balls are
 strictly convex. This does **not** mean that the norm is strictly convex (in fact, it never is).
 
Diff
@@ -65,6 +65,7 @@ open Set Metric
 
 open Convex Pointwise
 
+#print StrictConvexSpace /-
 /-- A *strictly convex space* is a normed space where the closed balls are strictly convex. We only
 require balls of positive radius with center at the origin to be strictly convex in the definition,
 then prove that any closed ball is strictly convex in `strict_convex_closed_ball` below.
@@ -74,10 +75,17 @@ class StrictConvexSpace (𝕜 E : Type _) [NormedLinearOrderedField 𝕜] [Norme
   [NormedSpace 𝕜 E] : Prop where
   strictConvex_closedBall : ∀ r : ℝ, 0 < r → StrictConvex 𝕜 (closedBall (0 : E) r)
 #align strict_convex_space StrictConvexSpace
+-/
 
 variable (𝕜 : Type _) {E : Type _} [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
   [NormedSpace 𝕜 E]
 
+/- warning: strict_convex_closed_ball -> strictConvex_closedBall is a dubious translation:
+lean 3 declaration is
+  forall (𝕜 : Type.{u1}) {E : Type.{u2}} [_inst_1 : NormedLinearOrderedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : StrictConvexSpace.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3] (x : E) (r : Real), StrictConvex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (Metric.closedBall.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) x r)
+but is expected to have type
+  forall (𝕜 : Type.{u2}) {E : Type.{u1}} [_inst_1 : NormedLinearOrderedField.{u2} 𝕜] [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} 𝕜 E (NormedLinearOrderedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_4 : StrictConvexSpace.{u2, u1} 𝕜 E _inst_1 _inst_2 _inst_3] (x : E) (r : Real), StrictConvex.{u2, u1} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (SMulZeroClass.toSMul.{u2, u1} 𝕜 E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 E (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 E (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u2} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} 𝕜 E (NormedLinearOrderedField.toNormedField.{u2} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))))) (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) x r)
+Case conversion may be inaccurate. Consider using '#align strict_convex_closed_ball strictConvex_closedBallₓ'. -/
 /-- A closed ball in a strictly convex space is strictly convex. -/
 theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
     StrictConvex 𝕜 (closedBall x r) :=
@@ -90,12 +98,24 @@ theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
 
 variable [NormedSpace ℝ E]
 
+/- warning: strict_convex_space.of_strict_convex_closed_unit_ball -> StrictConvexSpace.ofStrictConvexClosedUnitBall is a dubious translation:
+lean 3 declaration is
+  forall (𝕜 : Type.{u1}) {E : Type.{u2}} [_inst_1 : NormedLinearOrderedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : LinearMap.CompatibleSMul.{u2, u2, u1, 0} E E (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) 𝕜 Real Real.semiring (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4)], (StrictConvex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (NormedRing.toRing.{u1} 𝕜 (NormedCommRing.toNormedRing.{u1} 𝕜 (NormedField.toNormedCommRing.{u1} 𝕜 (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E (SeminormedAddCommGroup.toAddCommGroup.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2))) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (Metric.closedBall.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) (OfNat.ofNat.{u2} E 0 (OfNat.mk.{u2} E 0 (Zero.zero.{u2} E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (SubNegMonoid.toAddMonoid.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))))) -> (StrictConvexSpace.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3)
+but is expected to have type
+  forall (𝕜 : Type.{u1}) {E : Type.{u2}} [_inst_1 : NormedLinearOrderedField.{u1} 𝕜] [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : LinearMap.CompatibleSMul.{u2, u2, u1, 0} E E (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) 𝕜 Real Real.semiring (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4) (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (NormedSpace.toModule.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_4)], (StrictConvex.{u1, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (SMulZeroClass.toSMul.{u1, u2} 𝕜 E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{u1, u2} 𝕜 E (CommMonoidWithZero.toZero.{u1} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u1} 𝕜 (Semifield.toCommGroupWithZero.{u1} 𝕜 (LinearOrderedSemifield.toSemifield.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1))))))) (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (StrictOrderedSemiring.toSemiring.{u1} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u1} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u1} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u1} 𝕜 (NormedLinearOrderedField.toLinearOrderedField.{u1} 𝕜 _inst_1)))))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} 𝕜 E (NormedLinearOrderedField.toNormedField.{u1} 𝕜 _inst_1) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) (Metric.closedBall.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)) (OfNat.ofNat.{u2} E 0 (Zero.toOfNat0.{u2} E (NegZeroClass.toZero.{u2} E (SubNegZeroMonoid.toNegZeroClass.{u2} E (SubtractionMonoid.toSubNegZeroMonoid.{u2} E (SubtractionCommMonoid.toSubtractionMonoid.{u2} E (AddCommGroup.toDivisionAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)))) -> (StrictConvexSpace.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_3)
+Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBallₓ'. -/
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
 theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
     (h : StrictConvex 𝕜 (closedBall (0 : E) 1)) : StrictConvexSpace 𝕜 E :=
   ⟨fun r hr => by simpa only [smul_closedUnitBall_of_nonneg hr.le] using h.smul r⟩
 #align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
 
+/- warning: strict_convex_space.of_norm_combo_lt_one -> StrictConvexSpace.ofNormComboLtOne is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOneₓ'. -/
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`
 and all strictly positive `a` and `b` such that `a + b = 1`. This lemma shows that it suffices to
 check this for points of norm one and some `a`, `b` such that `a + b = 1`. -/
@@ -114,6 +134,12 @@ theorem StrictConvexSpace.ofNormComboLtOne
     sub_eq_iff_eq_add.2 hab.symm]
 #align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOne
 
+/- warning: strict_convex_space.of_norm_combo_ne_one -> StrictConvexSpace.ofNormComboNeOne is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) (And (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) b) (And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Ne.{succ u1} E x y) -> (Exists.{1} Real (fun (a : Real) => Exists.{1} Real (fun (b : Real) => And (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) (And (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) b) (And (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOneₓ'. -/
 theorem StrictConvexSpace.ofNormComboNeOne
     (h :
       ∀ x y : E,
@@ -128,6 +154,12 @@ theorem StrictConvexSpace.ofNormComboNeOne
   exact ⟨_, ⟨a, b, ha, hb, hab, rfl⟩, mt mem_sphere_zero_iff_norm.1 hne'⟩
 #align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOne
 
+/- warning: strict_convex_space.of_norm_add_ne_two -> StrictConvexSpace.ofNormAddNeTwo is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall {{x : E}} {{y : E}}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Ne.{succ u1} E x y) -> (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall {{x : E}} {{y : E}}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Ne.{succ u1} E x y) -> (Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwoₓ'. -/
 theorem StrictConvexSpace.ofNormAddNeTwo
     (h : ∀ ⦃x y : E⦄, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   by
@@ -139,12 +171,24 @@ theorem StrictConvexSpace.ofNormAddNeTwo
   exact h hx hy hne
 #align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwo
 
+/- warning: strict_convex_space.of_pairwise_sphere_norm_ne_two -> StrictConvexSpace.ofPairwiseSphereNormNeTwo is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (Set.Pairwise.{u1} E (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) (OfNat.ofNat.{u1} E 0 (OfNat.mk.{u1} E 0 (Zero.zero.{u1} E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) (fun (x : E) (y : E) => Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (Set.Pairwise.{u1} E (Metric.sphere.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) (OfNat.ofNat.{u1} E 0 (Zero.toOfNat0.{u1} E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))))) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) (fun (x : E) (y : E) => Ne.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwoₓ'. -/
 theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo
     (h : (sphere (0 : E) 1).Pairwise fun x y => ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
   StrictConvexSpace.ofNormAddNeTwo fun x y hx hy =>
     h (mem_sphere_zero_iff_norm.2 hx) (mem_sphere_zero_iff_norm.2 hy)
 #align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwo
 
+/- warning: strict_convex_space.of_norm_add -> StrictConvexSpace.ofNormAdd is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) -> (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)], (forall (x : E) (y : E), (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) -> (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4)
+Case conversion may be inaccurate. Consider using '#align strict_convex_space.of_norm_add StrictConvexSpace.ofNormAddₓ'. -/
 /-- If `‖x + y‖ = ‖x‖ + ‖y‖` implies that `x y : E` are in the same ray, then `E` is a strictly
 convex space. See also a more -/
 theorem StrictConvexSpace.ofNormAdd
@@ -157,6 +201,12 @@ theorem StrictConvexSpace.ofNormAdd
 
 variable [StrictConvexSpace ℝ E] {x y z : E} {a b r : ℝ}
 
+/- warning: combo_mem_ball_of_ne -> combo_mem_ball_of_ne is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E} {a : Real} {b : Real} {r : Real}, (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) x (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) y (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E} {a : Real} {b : Real} {r : Real}, (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) x (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y (Metric.closedBall.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r)) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y)) (Metric.ball.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)) z r))
+Case conversion may be inaccurate. Consider using '#align combo_mem_ball_of_ne combo_mem_ball_of_neₓ'. -/
 /-- If `x ≠ y` belong to the same closed ball, then a convex combination of `x` and `y` with
 positive coefficients belongs to the corresponding open ball. -/
 theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall z r) (hne : x ≠ y)
@@ -169,13 +219,21 @@ theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall
     exact strictConvex_closedBall ℝ z r hx hy hne ha hb hab
 #align combo_mem_ball_of_ne combo_mem_ball_of_ne
 
+#print openSegment_subset_ball_of_ne /-
 /-- If `x ≠ y` belong to the same closed ball, then the open segment with endpoints `x` and `y` is
 included in the corresponding open ball. -/
 theorem openSegment_subset_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall z r)
     (hne : x ≠ y) : openSegment ℝ x y ⊆ ball z r :=
   (openSegment_subset_iff _).2 fun a b => combo_mem_ball_of_ne hx hy hne
 #align open_segment_subset_ball_of_ne openSegment_subset_ball_of_ne
+-/
 
+/- warning: norm_combo_lt_of_ne -> norm_combo_lt_of_ne is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {a : Real} {b : Real} {r : Real}, (LE.le.{0} Real Real.hasLe (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) r) -> (LE.le.{0} Real Real.hasLe (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y) r) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) a) -> (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 0 (OfNat.mk.{0} Real 0 (Zero.zero.{0} Real Real.hasZero))) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) a b) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) a x) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) b y))) r)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {a : Real} {b : Real} {r : Real}, (LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) r) -> (LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y) r) -> (Ne.{succ u1} E x y) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) a) -> (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 0 (Zero.toOfNat0.{0} Real Real.instZeroReal)) b) -> (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) a b) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) a x) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) b y))) r)
+Case conversion may be inaccurate. Consider using '#align norm_combo_lt_of_ne norm_combo_lt_of_neₓ'. -/
 /-- If `x` and `y` are two distinct vectors of norm at most `r`, then a convex combination of `x`
 and `y` with positive coefficients has norm strictly less than `r`. -/
 theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x ≠ y) (ha : 0 < a) (hb : 0 < b)
@@ -185,6 +243,12 @@ theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x 
   exact combo_mem_ball_of_ne hx hy hne ha hb hab
 #align norm_combo_lt_of_ne norm_combo_lt_of_ne
 
+/- warning: norm_add_lt_of_not_same_ray -> norm_add_lt_of_not_sameRay is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)))
+Case conversion may be inaccurate. Consider using '#align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRayₓ'. -/
 /-- In a strictly convex space, if `x` and `y` are not in the same ray, then `‖x + y‖ < ‖x‖ +
 ‖y‖`. -/
 theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x‖ + ‖y‖ :=
@@ -202,12 +266,24 @@ theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x
     div_eq_inv_mul, div_lt_one hxy] at this
 #align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRay
 
+/- warning: lt_norm_sub_of_not_same_ray -> lt_norm_sub_of_not_sameRay is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.hasLt (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.instLTReal (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
+Case conversion may be inaccurate. Consider using '#align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRayₓ'. -/
 theorem lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x‖ - ‖y‖ < ‖x - y‖ :=
   by
   nth_rw 1 [← sub_add_cancel x y] at h⊢
   exact sub_lt_iff_lt_add.2 (norm_add_lt_of_not_sameRay fun H' => h <| H'.add_left SameRay.rfl)
 #align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRay
 
+/- warning: abs_lt_norm_sub_of_not_same_ray -> abs_lt_norm_sub_of_not_sameRay is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.hasLt (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) -> (LT.lt.{0} Real Real.instLTReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
+Case conversion may be inaccurate. Consider using '#align abs_lt_norm_sub_of_not_same_ray abs_lt_norm_sub_of_not_sameRayₓ'. -/
 theorem abs_lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : |‖x‖ - ‖y‖| < ‖x - y‖ :=
   by
   refine' abs_sub_lt_iff.2 ⟨lt_norm_sub_of_not_sameRay h, _⟩
@@ -215,33 +291,69 @@ theorem abs_lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : |‖x‖ - ‖y
   exact lt_norm_sub_of_not_sameRay (mt SameRay.symm h)
 #align abs_lt_norm_sub_of_not_same_ray abs_lt_norm_sub_of_not_sameRay
 
+/- warning: same_ray_iff_norm_add -> sameRay_iff_norm_add is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)))
+Case conversion may be inaccurate. Consider using '#align same_ray_iff_norm_add sameRay_iff_norm_addₓ'. -/
 /-- In a strictly convex space, two vectors `x`, `y` are in the same ray if and only if the triangle
 inequality for `x` and `y` becomes an equality. -/
 theorem sameRay_iff_norm_add : SameRay ℝ x y ↔ ‖x + y‖ = ‖x‖ + ‖y‖ :=
   ⟨SameRay.norm_add, fun h => Classical.not_not.1 fun h' => (norm_add_lt_of_not_sameRay h').Ne h⟩
 #align same_ray_iff_norm_add sameRay_iff_norm_add
 
+/- warning: eq_of_norm_eq_of_norm_add_eq -> eq_of_norm_eq_of_norm_add_eq is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))) -> (Eq.{succ u1} E x y)
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)) -> (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))) -> (Eq.{succ u1} E x y)
+Case conversion may be inaccurate. Consider using '#align eq_of_norm_eq_of_norm_add_eq eq_of_norm_eq_of_norm_add_eqₓ'. -/
 /-- If `x` and `y` are two vectors in a strictly convex space have the same norm and the norm of
 their sum is equal to the sum of their norms, then they are equal. -/
 theorem eq_of_norm_eq_of_norm_add_eq (h₁ : ‖x‖ = ‖y‖) (h₂ : ‖x + y‖ = ‖x‖ + ‖y‖) : x = y :=
   (sameRay_iff_norm_add.mpr h₂).eq_of_norm_eq h₁
 #align eq_of_norm_eq_of_norm_add_eq eq_of_norm_eq_of_norm_add_eq
 
+/- warning: not_same_ray_iff_norm_add_lt -> not_sameRay_iff_norm_add_lt is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y)) (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)))
+Case conversion may be inaccurate. Consider using '#align not_same_ray_iff_norm_add_lt not_sameRay_iff_norm_add_ltₓ'. -/
 /-- In a strictly convex space, two vectors `x`, `y` are not in the same ray if and only if the
 triangle inequality for `x` and `y` is strict. -/
 theorem not_sameRay_iff_norm_add_lt : ¬SameRay ℝ x y ↔ ‖x + y‖ < ‖x‖ + ‖y‖ :=
   sameRay_iff_norm_add.Not.trans (norm_add_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_norm_add_lt not_sameRay_iff_norm_add_lt
 
+/- warning: same_ray_iff_norm_sub -> sameRay_iff_norm_sub is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y) (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)) (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))))
+Case conversion may be inaccurate. Consider using '#align same_ray_iff_norm_sub sameRay_iff_norm_subₓ'. -/
 theorem sameRay_iff_norm_sub : SameRay ℝ x y ↔ ‖x - y‖ = |‖x‖ - ‖y‖| :=
   ⟨SameRay.norm_sub, fun h =>
     Classical.not_not.1 fun h' => (abs_lt_norm_sub_of_not_sameRay h').ne' h⟩
 #align same_ray_iff_norm_sub sameRay_iff_norm_sub
 
+/- warning: not_same_ray_iff_abs_lt_norm_sub -> not_sameRay_iff_abs_lt_norm_sub is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.hasLt (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.hasNeg Real.hasSup) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toHasSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, Iff (Not (SameRay.{0, u1} Real Real.strictOrderedCommSemiring E (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) x y)) (LT.lt.{0} Real Real.instLTReal (Abs.abs.{0} Real (Neg.toHasAbs.{0} Real Real.instNegReal Real.instSupReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y))) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSub.hSub.{u1, u1, u1} E E E (instHSub.{u1} E (SubNegMonoid.toSub.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))) x y)))
+Case conversion may be inaccurate. Consider using '#align not_same_ray_iff_abs_lt_norm_sub not_sameRay_iff_abs_lt_norm_subₓ'. -/
 theorem not_sameRay_iff_abs_lt_norm_sub : ¬SameRay ℝ x y ↔ |‖x‖ - ‖y‖| < ‖x - y‖ :=
   sameRay_iff_norm_sub.Not.trans <| ne_comm.trans (abs_norm_sub_norm_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_abs_lt_norm_sub not_sameRay_iff_abs_lt_norm_sub
 
+/- warning: dist_add_dist_eq_iff -> dist_add_dist_eq_iff is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E}, Iff (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.hasAdd) (Dist.dist.{u1} E (PseudoMetricSpace.toHasDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x y) (Dist.dist.{u1} E (PseudoMetricSpace.toHasDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) y z)) (Dist.dist.{u1} E (PseudoMetricSpace.toHasDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x z)) (Membership.Mem.{u1, u1} E (Set.{u1} E) (Set.hasMem.{u1} E) y (segment.{0, u1} Real E Real.orderedSemiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) x z))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E} {z : E}, Iff (Eq.{1} Real (HAdd.hAdd.{0, 0, 0} Real Real Real (instHAdd.{0} Real Real.instAddReal) (Dist.dist.{u1} E (PseudoMetricSpace.toDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x y) (Dist.dist.{u1} E (PseudoMetricSpace.toDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) y z)) (Dist.dist.{u1} E (PseudoMetricSpace.toDist.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) x z)) (Membership.mem.{u1, u1} E (Set.{u1} E) (Set.instMembershipSet.{u1} E) y (segment.{0, u1} Real E Real.orderedSemiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) x z))
+Case conversion may be inaccurate. Consider using '#align dist_add_dist_eq_iff dist_add_dist_eq_iffₓ'. -/
 /-- In a strictly convex space, the triangle inequality turns into an equality if and only if the
 middle point belongs to the segment joining two other points. -/
 theorem dist_add_dist_eq_iff : dist x y + dist y z = dist x z ↔ y ∈ [x -[ℝ] z] := by
@@ -249,6 +361,12 @@ theorem dist_add_dist_eq_iff : dist x y + dist y z = dist x z ↔ y ∈ [x -[ℝ
     eq_comm]
 #align dist_add_dist_eq_iff dist_add_dist_eq_iff
 
+/- warning: norm_midpoint_lt_iff -> norm_midpoint_lt_iff is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) y)) -> (Iff (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) (SMul.smul.{0, u1} Real E (SMulZeroClass.toHasSmul.{0, u1} Real E (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSmulZeroClass.{0, u1} Real E (MulZeroClass.toHasZero.{0} Real (MulZeroOneClass.toMulZeroClass.{0} Real (MonoidWithZero.toMulZeroOneClass.{0} Real (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E (Semiring.toMonoidWithZero.{0} Real (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField))))) (AddZeroClass.toHasZero.{u1} E (AddMonoid.toAddZeroClass.{u1} E (AddCommMonoid.toAddMonoid.{u1} E (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E (Ring.toSemiring.{0} Real (NormedRing.toRing.{0} Real (NormedCommRing.toNormedRing.{0} Real (NormedField.toNormedCommRing.{0} Real Real.normedField)))) (AddCommGroup.toAddCommMonoid.{u1} E (SeminormedAddCommGroup.toAddCommGroup.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2))) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne))))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toHasAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y))) (Norm.norm.{u1} E (NormedAddCommGroup.toHasNorm.{u1} E _inst_2) x)) (Ne.{succ u1} E x y))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {x : E} {y : E}, (Eq.{1} Real (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) y)) -> (Iff (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) (HSMul.hSMul.{0, u1, u1} Real E E (instHSMul.{0, u1} Real E (SMulZeroClass.toSMul.{0, u1} Real E (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (SMulWithZero.toSMulZeroClass.{0, u1} Real E Real.instZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (MulActionWithZero.toSMulWithZero.{0, u1} Real E Real.instMonoidWithZeroReal (NegZeroClass.toZero.{u1} E (SubNegZeroMonoid.toNegZeroClass.{u1} E (SubtractionMonoid.toSubNegZeroMonoid.{u1} E (SubtractionCommMonoid.toSubtractionMonoid.{u1} E (AddCommGroup.toDivisionAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)))))) (Module.toMulActionWithZero.{0, u1} Real E Real.semiring (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4)))))) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) (HAdd.hAdd.{u1, u1, u1} E E E (instHAdd.{u1} E (AddZeroClass.toAdd.{u1} E (AddMonoid.toAddZeroClass.{u1} E (SubNegMonoid.toAddMonoid.{u1} E (AddGroup.toSubNegMonoid.{u1} E (NormedAddGroup.toAddGroup.{u1} E (NormedAddCommGroup.toNormedAddGroup.{u1} E _inst_2))))))) x y))) (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) x)) (Ne.{succ u1} E x y))
+Case conversion may be inaccurate. Consider using '#align norm_midpoint_lt_iff norm_midpoint_lt_iffₓ'. -/
 theorem norm_midpoint_lt_iff (h : ‖x‖ = ‖y‖) : ‖(1 / 2 : ℝ) • (x + y)‖ < ‖x‖ ↔ x ≠ y := by
   rw [norm_smul, Real.norm_of_nonneg (one_div_nonneg.2 zero_le_two), ← inv_eq_one_div, ←
     div_eq_inv_mul, div_lt_iff (zero_lt_two' ℝ), mul_two, ← not_sameRay_iff_of_norm_eq h,
@@ -263,6 +381,12 @@ variable [NormedAddTorsor F PF] [NormedAddTorsor E PE]
 
 include E
 
+/- warning: eq_line_map_of_dist_eq_mul_of_dist_eq_mul -> eq_lineMap_of_dist_eq_mul_of_dist_eq_mul is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {r : Real} {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) r (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.hasSub) (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) r) (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{succ u2} PE y (coeFn.{max 1 (succ u1) (succ u2), succ u2} (AffineMap.{0, 0, 0, u1, u2} Real Real Real E PE Real.ring (NonUnitalNonAssocRing.toAddCommGroup.{0} Real (NonAssocRing.toNonUnitalNonAssocRing.{0} Real (Ring.toNonAssocRing.{0} Real Real.ring))) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.ring)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (AddCommGroupWithOne.toAddGroupWithOne.{0} Real (Ring.toAddCommGroupWithOne.{0} Real Real.ring)))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11)) (fun (_x : AffineMap.{0, 0, 0, u1, u2} Real Real Real E PE Real.ring (NonUnitalNonAssocRing.toAddCommGroup.{0} Real (NonAssocRing.toNonUnitalNonAssocRing.{0} Real (Ring.toNonAssocRing.{0} Real Real.ring))) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.ring)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (AddCommGroupWithOne.toAddGroupWithOne.{0} Real (Ring.toAddCommGroupWithOne.{0} Real Real.ring)))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11)) => Real -> PE) (AffineMap.hasCoeToFun.{0, 0, 0, u1, u2} Real Real Real E PE Real.ring (NonUnitalNonAssocRing.toAddCommGroup.{0} Real (NonAssocRing.toNonUnitalNonAssocRing.{0} Real (Ring.toNonAssocRing.{0} Real Real.ring))) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.ring)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (AddCommGroupWithOne.toAddGroupWithOne.{0} Real (Ring.toAddCommGroupWithOne.{0} Real Real.ring)))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11)) (AffineMap.lineMap.{0, u1, u2} Real E PE Real.ring (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11) x z) r))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {r : Real} {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) r (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) (HSub.hSub.{0, 0, 0} Real Real Real (instHSub.{0} Real Real.instSubReal) (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) r) (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z))) -> (Eq.{succ u2} PE y (FunLike.coe.{max (succ u1) (succ u2), 1, succ u2} (AffineMap.{0, 0, 0, u1, u2} Real Real Real E PE Real.instRingReal (Ring.toAddCommGroup.{0} Real Real.instRingReal) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.instRingReal)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (Ring.toAddGroupWithOne.{0} Real Real.instRingReal))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11)) Real (fun (_x : Real) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : Real) => PE) _x) (AffineMap.funLike.{0, 0, 0, u1, u2} Real Real Real E PE Real.instRingReal (Ring.toAddCommGroup.{0} Real Real.instRingReal) (Semiring.toModule.{0} Real (Ring.toSemiring.{0} Real Real.instRingReal)) (addGroupIsAddTorsor.{0} Real (AddGroupWithOne.toAddGroup.{0} Real (Ring.toAddGroupWithOne.{0} Real Real.instRingReal))) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11)) (AffineMap.lineMap.{0, u1, u2} Real E PE Real.instRingReal (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11) x z) r))
+Case conversion may be inaccurate. Consider using '#align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mulₓ'. -/
 theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y = r * dist x z)
     (hyz : dist y z = (1 - r) * dist x z) : y = AffineMap.lineMap x z r :=
   by
@@ -281,6 +405,12 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
     rw [AffineMap.lineMap_apply, ← H', H, vsub_vadd]
 #align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
 
+/- warning: eq_midpoint_of_dist_eq_half -> eq_midpoint_of_dist_eq_half is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (DivInvMonoid.toHasDiv.{0} Real (DivisionRing.toDivInvMonoid.{0} Real Real.divisionRing))) (Dist.dist.{u2} PE (PseudoMetricSpace.toHasDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (OfNat.mk.{0} Real 2 (bit0.{0} Real Real.hasAdd (One.one.{0} Real Real.hasOne)))))) -> (Eq.{succ u2} PE y (midpoint.{0, u1, u2} Real E PE Real.ring (invertibleTwo.{0} Real Real.divisionRing (StrictOrderedSemiring.to_charZero.{0} Real Real.strictOrderedSemiring)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor'.{u1, u2} E PE _inst_2 _inst_9 _inst_11) x z))
+but is expected to have type
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {PE : Type.{u2}} [_inst_9 : MetricSpace.{u2} PE] [_inst_11 : NormedAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)] {x : PE} {y : PE} {z : PE}, (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x y) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (Eq.{1} Real (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) y z) (HDiv.hDiv.{0, 0, 0} Real Real Real (instHDiv.{0} Real (LinearOrderedField.toDiv.{0} Real Real.instLinearOrderedFieldReal)) (Dist.dist.{u2} PE (PseudoMetricSpace.toDist.{u2} PE (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9)) x z) (OfNat.ofNat.{0} Real 2 (instOfNat.{0} Real 2 Real.natCast (instAtLeastTwoHAddNatInstHAddInstAddNatOfNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) -> (Eq.{succ u2} PE y (midpoint.{0, u1, u2} Real E PE Real.instRingReal (invertibleTwo.{0} Real Real.instDivisionRingReal (StrictOrderedSemiring.to_charZero.{0} Real Real.strictOrderedSemiring)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_4) (NormedAddTorsor.toAddTorsor.{u1, u2} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u2} PE _inst_9) _inst_11) x z))
+Case conversion may be inaccurate. Consider using '#align eq_midpoint_of_dist_eq_half eq_midpoint_of_dist_eq_halfₓ'. -/
 theorem eq_midpoint_of_dist_eq_half {x y z : PE} (hx : dist x y = dist x z / 2)
     (hy : dist y z = dist x z / 2) : y = midpoint ℝ x z :=
   by
@@ -293,6 +423,12 @@ namespace Isometry
 
 include F
 
+/- warning: isometry.affine_isometry_of_strict_convex_space -> Isometry.affineIsometryOfStrictConvexSpace is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u2}} [_inst_6 : NormedAddCommGroup.{u2} F] [_inst_7 : NormedSpace.{0, u2} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6)] {PF : Type.{u3}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u3} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u2, u3} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u1, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE}, (Isometry.{u3, u4} PF PE (PseudoMetricSpace.toPseudoEMetricSpace.{u3} PF (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)) (PseudoMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)) f) -> (AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11)
+but is expected to have type
+  forall {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u2} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u3}} [_inst_6 : NormedAddCommGroup.{u3} F] [_inst_7 : NormedSpace.{0, u3} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_6)] {PF : Type.{u1}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u1} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u3, u1} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u1} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u2, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE}, (Isometry.{u1, u4} PF PE (EMetricSpace.toPseudoEMetricSpace.{u1} PF (MetricSpace.toEMetricSpace.{u1} PF _inst_8)) (EMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toEMetricSpace.{u4} PE _inst_9)) f) -> (AffineIsometry.{0, u3, u2, u1, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u3} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u1} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11)
+Case conversion may be inaccurate. Consider using '#align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpaceₓ'. -/
 /-- An isometry of `normed_add_torsor`s for real normed spaces, strictly convex in the case of
 the codomain, is an affine isometry.  Unlike Mazur-Ulam, this does not require the isometry to
 be surjective.  -/
@@ -312,12 +448,24 @@ noncomputable def affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isomet
     norm_map := fun x => by simp [AffineMap.ofMapMidpoint, ← dist_eq_norm_vsub E, hi.dist_eq] }
 #align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpace
 
+/- warning: isometry.coe_affine_isometry_of_strict_convex_space -> Isometry.coe_affineIsometryOfStrictConvexSpace is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u2}} [_inst_6 : NormedAddCommGroup.{u2} F] [_inst_7 : NormedSpace.{0, u2} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6)] {PF : Type.{u3}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u3} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u2, u3} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u1, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u3, u4} PF PE (PseudoMetricSpace.toPseudoEMetricSpace.{u3} PF (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)) (PseudoMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)) f), Eq.{max (succ u3) (succ u4)} (PF -> PE) (coeFn.{max (succ u2) (succ u1) (succ u3) (succ u4), max (succ u3) (succ u4)} (AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (fun (_x : AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) => PF -> PE) (AffineIsometry.hasCoeToFun.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u1, u2, u3, u4} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi)) f
+but is expected to have type
+  forall {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u2} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u1}} [_inst_6 : NormedAddCommGroup.{u1} F] [_inst_7 : NormedSpace.{0, u1} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6)] {PF : Type.{u4}} {PE : Type.{u3}} [_inst_8 : MetricSpace.{u4} PF] [_inst_9 : MetricSpace.{u3} PE] [_inst_10 : NormedAddTorsor.{u1, u4} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u2, u3} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u4, u3} PF PE (EMetricSpace.toPseudoEMetricSpace.{u4} PF (MetricSpace.toEMetricSpace.{u4} PF _inst_8)) (EMetricSpace.toPseudoEMetricSpace.{u3} PE (MetricSpace.toEMetricSpace.{u3} PE _inst_9)) f), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : PF), (fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) ᾰ) (FunLike.coe.{max (max (max (succ u4) (succ u2)) (succ u1)) (succ u3), succ u4, succ u3} (AffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) PF (fun (_x : PF) => (fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) _x) (AffineIsometry.instFunLikeAffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u4, u2, u1, u3} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi)) f
+Case conversion may be inaccurate. Consider using '#align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpaceₓ'. -/
 @[simp]
 theorem coe_affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f) :
     ⇑hi.affineIsometryOfStrictConvexSpace = f :=
   rfl
 #align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpace
 
+/- warning: isometry.affine_isometry_of_strict_convex_space_apply -> Isometry.affineIsometryOfStrictConvexSpace_apply is a dubious translation:
+lean 3 declaration is
+  forall {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_4 : NormedSpace.{0, u1} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u1} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u2}} [_inst_6 : NormedAddCommGroup.{u2} F] [_inst_7 : NormedSpace.{0, u2} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6)] {PF : Type.{u3}} {PE : Type.{u4}} [_inst_8 : MetricSpace.{u3} PF] [_inst_9 : MetricSpace.{u4} PE] [_inst_10 : NormedAddTorsor.{u2, u3} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u1, u4} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u3, u4} PF PE (PseudoMetricSpace.toPseudoEMetricSpace.{u3} PF (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8)) (PseudoMetricSpace.toPseudoEMetricSpace.{u4} PE (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9)) f) (p : PF), Eq.{succ u4} PE (coeFn.{max (succ u2) (succ u1) (succ u3) (succ u4), max (succ u3) (succ u4)} (AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (fun (_x : AffineIsometry.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) => PF -> PE) (AffineIsometry.hasCoeToFun.{0, u2, u1, u3, u4} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u3} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u4} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u1, u2, u3, u4} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi) p) (f p)
+but is expected to have type
+  forall {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_4 : NormedSpace.{0, u2} Real E Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] [_inst_5 : StrictConvexSpace.{0, u2} Real E Real.normedLinearOrderedField _inst_2 _inst_4] {F : Type.{u1}} [_inst_6 : NormedAddCommGroup.{u1} F] [_inst_7 : NormedSpace.{0, u1} Real F Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6)] {PF : Type.{u4}} {PE : Type.{u3}} [_inst_8 : MetricSpace.{u4} PF] [_inst_9 : MetricSpace.{u3} PE] [_inst_10 : NormedAddTorsor.{u1, u4} F PF (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8)] [_inst_11 : NormedAddTorsor.{u2, u3} E PE (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9)] {f : PF -> PE} (hi : Isometry.{u4, u3} PF PE (EMetricSpace.toPseudoEMetricSpace.{u4} PF (MetricSpace.toEMetricSpace.{u4} PF _inst_8)) (EMetricSpace.toPseudoEMetricSpace.{u3} PE (MetricSpace.toEMetricSpace.{u3} PE _inst_9)) f) (p : PF), Eq.{succ u3} ((fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) p) (FunLike.coe.{max (max (max (succ u4) (succ u2)) (succ u1)) (succ u3), succ u4, succ u3} (AffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) PF (fun (_x : PF) => (fun (x._@.Mathlib.Analysis.NormedSpace.AffineIsometry._hyg.1845 : PF) => PE) _x) (AffineIsometry.instFunLikeAffineIsometry.{0, u1, u2, u4, u3} Real F E PF PE Real.normedField (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} F _inst_6) (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_7 _inst_4 (MetricSpace.toPseudoMetricSpace.{u4} PF _inst_8) (MetricSpace.toPseudoMetricSpace.{u3} PE _inst_9) _inst_10 _inst_11) (Isometry.affineIsometryOfStrictConvexSpace.{u4, u2, u1, u3} E _inst_2 _inst_4 _inst_5 F _inst_6 _inst_7 PF PE _inst_8 _inst_9 _inst_10 _inst_11 f hi) p) (f p)
+Case conversion may be inaccurate. Consider using '#align isometry.affine_isometry_of_strict_convex_space_apply Isometry.affineIsometryOfStrictConvexSpace_applyₓ'. -/
 @[simp]
 theorem affineIsometryOfStrictConvexSpace_apply {f : PF → PE} (hi : Isometry f) (p : PF) :
     hi.affineIsometryOfStrictConvexSpace p = f p :=
Diff
@@ -105,7 +105,7 @@ theorem StrictConvexSpace.ofNormComboLtOne
   by
   refine'
     StrictConvexSpace.ofStrictConvexClosedUnitBall ℝ
-      ((convex_closedBall _ _).strict_convex' fun x hx y hy hne => _)
+      ((convex_closedBall _ _).strictConvex' fun x hx y hy hne => _)
   rw [interior_closedBall (0 : E) one_ne_zero, closed_ball_diff_ball, mem_sphere_zero_iff_norm] at
     hx hy
   rcases h x y hx hy hne with ⟨a, b, hab, hlt⟩
Diff
@@ -93,7 +93,7 @@ variable [NormedSpace ℝ E]
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
 theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
     (h : StrictConvex 𝕜 (closedBall (0 : E) 1)) : StrictConvexSpace 𝕜 E :=
-  ⟨fun r hr => by simpa only [smul_closed_unit_ball_of_nonneg hr.le] using h.smul r⟩
+  ⟨fun r hr => by simpa only [smul_closedUnitBall_of_nonneg hr.le] using h.smul r⟩
 #align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
 
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`

Changes in mathlib4

mathlib3
mathlib4
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -125,7 +125,7 @@ theorem StrictConvexSpace.of_norm_add_ne_two
   refine'
     StrictConvexSpace.of_norm_combo_ne_one fun x y hx hy hne =>
       ⟨1 / 2, 1 / 2, one_half_pos.le, one_half_pos.le, add_halves _, _⟩
-  rw [← smul_add, norm_smul, Real.norm_of_nonneg one_half_pos.le, one_div, ← div_eq_inv_mul, Ne.def,
+  rw [← smul_add, norm_smul, Real.norm_of_nonneg one_half_pos.le, one_div, ← div_eq_inv_mul, Ne,
     div_eq_one_iff_eq (two_ne_zero' ℝ)]
   exact h hx hy hne
 #align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.of_norm_add_ne_two
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
@@ -8,7 +8,7 @@ import Mathlib.Analysis.Convex.Strict
 import Mathlib.Analysis.Normed.Order.Basic
 import Mathlib.Analysis.NormedSpace.AddTorsor
 import Mathlib.Analysis.NormedSpace.Pointwise
-import Mathlib.Analysis.NormedSpace.AffineIsometry
+import Mathlib.Analysis.NormedSpace.Ray
 
 #align_import analysis.convex.strict_convex_space from "leanprover-community/mathlib"@"a63928c34ec358b5edcda2bf7513c50052a5230f"
 
chore(Analysis,Geometry): remove almost all autoImplicit (#9691)

After this PR, no file in Geometry uses autoImplicit, and in Analysis it's scoped to six declarations.

Diff
@@ -57,12 +57,7 @@ formulated only for the case `𝕜 = ℝ`.
 convex, strictly convex
 -/
 
-set_option autoImplicit true
-
-
-open Set Metric
-
-open Convex Pointwise
+open Convex Pointwise Set Metric
 
 /-- A *strictly convex space* is a normed space where the closed balls are strictly convex. We only
 require balls of positive radius with center at the origin to be strictly convex in the definition,
chore: remove uses of cases' (#9171)

I literally went through and regex'd some uses of cases', replacing them with rcases; this is meant to be a low effort PR as I hope that tools can do this in the future.

rcases is an easier replacement than cases, though with better tools we could in future do a second pass converting simple rcases added here (and existing ones) to cases.

Diff
@@ -80,7 +80,7 @@ variable (𝕜 : Type*) {E : Type*} [NormedLinearOrderedField 𝕜] [NormedAddCo
 /-- A closed ball in a strictly convex space is strictly convex. -/
 theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
     StrictConvex 𝕜 (closedBall x r) := by
-  cases' le_or_lt r 0 with hr hr
+  rcases le_or_lt r 0 with hr | hr
   · exact (subsingleton_closedBall x hr).strictConvex
   rw [← vadd_closedBall_zero]
   exact (StrictConvexSpace.strictConvex_closedBall r hr).vadd _
feat: Flat triangles have aligned vertices (#7733)

In a normed torsor over a strictly convex space, if the triangle inequality dist a c ≤ dist a b + dist b c is an equality, then b lies between a and c.

Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -232,77 +232,8 @@ theorem not_sameRay_iff_abs_lt_norm_sub : ¬SameRay ℝ x y ↔ |‖x‖ - ‖y
   sameRay_iff_norm_sub.not.trans <| ne_comm.trans (abs_norm_sub_norm_le _ _).lt_iff_ne.symm
 #align not_same_ray_iff_abs_lt_norm_sub not_sameRay_iff_abs_lt_norm_sub
 
-/-- In a strictly convex space, the triangle inequality turns into an equality if and only if the
-middle point belongs to the segment joining two other points. -/
-theorem dist_add_dist_eq_iff : dist x y + dist y z = dist x z ↔ y ∈ [x -[ℝ] z] := by
-  simp only [mem_segment_iff_sameRay, sameRay_iff_norm_add, dist_eq_norm', sub_add_sub_cancel',
-    eq_comm]
-#align dist_add_dist_eq_iff dist_add_dist_eq_iff
-
 theorem norm_midpoint_lt_iff (h : ‖x‖ = ‖y‖) : ‖(1 / 2 : ℝ) • (x + y)‖ < ‖x‖ ↔ x ≠ y := by
   rw [norm_smul, Real.norm_of_nonneg (one_div_nonneg.2 zero_le_two), ← inv_eq_one_div, ←
     div_eq_inv_mul, div_lt_iff (zero_lt_two' ℝ), mul_two, ← not_sameRay_iff_of_norm_eq h,
     not_sameRay_iff_norm_add_lt, h]
 #align norm_midpoint_lt_iff norm_midpoint_lt_iff
-
-variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F]
-
-variable {PF : Type u} {PE : Type*} [MetricSpace PF] [MetricSpace PE]
-
-variable [NormedAddTorsor F PF] [NormedAddTorsor E PE]
-
-theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y = r * dist x z)
-    (hyz : dist y z = (1 - r) * dist x z) : y = AffineMap.lineMap x z r := by
-  have : y -ᵥ x ∈ [(0 : E) -[ℝ] z -ᵥ x] := by
-    rw [← dist_add_dist_eq_iff, dist_zero_left, dist_vsub_cancel_right, ← dist_eq_norm_vsub', ←
-      dist_eq_norm_vsub', hxy, hyz, ← add_mul, add_sub_cancel'_right, one_mul]
-  rcases eq_or_ne x z with (rfl | hne)
-  · obtain rfl : y = x := by simpa
-    simp
-  · rw [← dist_ne_zero] at hne
-    rcases this with ⟨a, b, _, hb, _, H⟩
-    rw [smul_zero, zero_add] at H
-    have H' := congr_arg norm H
-    rw [norm_smul, Real.norm_of_nonneg hb, ← dist_eq_norm_vsub', ← dist_eq_norm_vsub', hxy,
-      mul_left_inj' hne] at H'
-    rw [AffineMap.lineMap_apply, ← H', H, vsub_vadd]
-#align eq_line_map_of_dist_eq_mul_of_dist_eq_mul eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
-
-theorem eq_midpoint_of_dist_eq_half {x y z : PE} (hx : dist x y = dist x z / 2)
-    (hy : dist y z = dist x z / 2) : y = midpoint ℝ x z := by
-  apply eq_lineMap_of_dist_eq_mul_of_dist_eq_mul
-  · rwa [invOf_eq_inv, ← div_eq_inv_mul]
-  · rwa [invOf_eq_inv, ← one_div, sub_half, one_div, ← div_eq_inv_mul]
-#align eq_midpoint_of_dist_eq_half eq_midpoint_of_dist_eq_half
-
-namespace Isometry
-
-/-- An isometry of `NormedAddTorsor`s for real normed spaces, strictly convex in the case of
-the codomain, is an affine isometry.  Unlike Mazur-Ulam, this does not require the isometry to
-be surjective. -/
-noncomputable def affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f) :
-    PF →ᵃⁱ[ℝ] PE :=
-  { AffineMap.ofMapMidpoint f
-      (fun x y => by
-        apply eq_midpoint_of_dist_eq_half
-        · rw [hi.dist_eq, hi.dist_eq]
-          simp only [dist_left_midpoint, Real.norm_of_nonneg zero_le_two, div_eq_inv_mul]
-        · rw [hi.dist_eq, hi.dist_eq]
-          simp only [dist_midpoint_right, Real.norm_of_nonneg zero_le_two, div_eq_inv_mul])
-      hi.continuous with
-    norm_map := fun x => by simp [AffineMap.ofMapMidpoint, ← dist_eq_norm_vsub E, hi.dist_eq] }
-#align isometry.affine_isometry_of_strict_convex_space Isometry.affineIsometryOfStrictConvexSpace
-
-@[simp]
-theorem coe_affineIsometryOfStrictConvexSpace {f : PF → PE} (hi : Isometry f) :
-    ⇑hi.affineIsometryOfStrictConvexSpace = f :=
-  rfl
-#align isometry.coe_affine_isometry_of_strict_convex_space Isometry.coe_affineIsometryOfStrictConvexSpace
-
-@[simp]
-theorem affineIsometryOfStrictConvexSpace_apply {f : PF → PE} (hi : Isometry f) (p : PF) :
-    hi.affineIsometryOfStrictConvexSpace p = f p :=
-  rfl
-#align isometry.affine_isometry_of_strict_convex_space_apply Isometry.affineIsometryOfStrictConvexSpace_apply
-
-end Isometry
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

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

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -57,6 +57,8 @@ formulated only for the case `𝕜 = ℝ`.
 convex, strictly convex
 -/
 
+set_option autoImplicit true
+
 
 open Set Metric
 
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
@@ -67,12 +67,12 @@ require balls of positive radius with center at the origin to be strictly convex
 then prove that any closed ball is strictly convex in `strictConvex_closedBall` below.
 
 See also `StrictConvexSpace.of_strictConvex_closed_unit_ball`. -/
-class StrictConvexSpace (𝕜 E : Type _) [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
+class StrictConvexSpace (𝕜 E : Type*) [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
   [NormedSpace 𝕜 E] : Prop where
   strictConvex_closedBall : ∀ r : ℝ, 0 < r → StrictConvex 𝕜 (closedBall (0 : E) r)
 #align strict_convex_space StrictConvexSpace
 
-variable (𝕜 : Type _) {E : Type _} [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
+variable (𝕜 : Type*) {E : Type*} [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
   [NormedSpace 𝕜 E]
 
 /-- A closed ball in a strictly convex space is strictly convex. -/
@@ -243,9 +243,9 @@ theorem norm_midpoint_lt_iff (h : ‖x‖ = ‖y‖) : ‖(1 / 2 : ℝ) • (x +
     not_sameRay_iff_norm_add_lt, h]
 #align norm_midpoint_lt_iff norm_midpoint_lt_iff
 
-variable {F : Type _} [NormedAddCommGroup F] [NormedSpace ℝ F]
+variable {F : Type*} [NormedAddCommGroup F] [NormedSpace ℝ F]
 
-variable {PF : Type u} {PE : Type _} [MetricSpace PF] [MetricSpace PE]
+variable {PF : Type u} {PE : Type*} [MetricSpace PF] [MetricSpace PE]
 
 variable [NormedAddTorsor F PF] [NormedAddTorsor E PE]
 
@@ -256,7 +256,7 @@ theorem eq_lineMap_of_dist_eq_mul_of_dist_eq_mul {x y z : PE} (hxy : dist x y =
       dist_eq_norm_vsub', hxy, hyz, ← add_mul, add_sub_cancel'_right, one_mul]
   rcases eq_or_ne x z with (rfl | hne)
   · obtain rfl : y = x := by simpa
-    simp; rfl
+    simp
   · rw [← dist_ne_zero] at hne
     rcases this with ⟨a, b, _, hb, _, H⟩
     rw [smul_zero, zero_add] at H
chore: tidy various files (#5999)
Diff
@@ -41,10 +41,10 @@ In a strictly convex space, we prove
 
 We also provide several lemmas that can be used as alternative constructors for `StrictConvex ℝ E`:
 
-- `StrictConvexSpace.ofStrictConvexClosedUnitBall`: if `closed_ball (0 : E) 1` is strictly
+- `StrictConvexSpace.of_strictConvex_closed_unit_ball`: if `closed_ball (0 : E) 1` is strictly
   convex, then `E` is a strictly convex space;
 
-- `StrictConvexSpace.ofNormAdd`: if `‖x + y‖ = ‖x‖ + ‖y‖` implies `SameRay ℝ x y` for all
+- `StrictConvexSpace.of_norm_add`: if `‖x + y‖ = ‖x‖ + ‖y‖` implies `SameRay ℝ x y` for all
   nonzero `x y : E`, then `E` is a strictly convex space.
 
 ## Implementation notes
@@ -66,7 +66,7 @@ open Convex Pointwise
 require balls of positive radius with center at the origin to be strictly convex in the definition,
 then prove that any closed ball is strictly convex in `strictConvex_closedBall` below.
 
-See also `StrictConvexSpace.ofStrictConvexClosedUnitBall`. -/
+See also `StrictConvexSpace.of_strictConvex_closed_unit_ball`. -/
 class StrictConvexSpace (𝕜 E : Type _) [NormedLinearOrderedField 𝕜] [NormedAddCommGroup E]
   [NormedSpace 𝕜 E] : Prop where
   strictConvex_closedBall : ∀ r : ℝ, 0 < r → StrictConvex 𝕜 (closedBall (0 : E) r)
@@ -87,19 +87,19 @@ theorem strictConvex_closedBall [StrictConvexSpace 𝕜 E] (x : E) (r : ℝ) :
 variable [NormedSpace ℝ E]
 
 /-- A real normed vector space is strictly convex provided that the unit ball is strictly convex. -/
-theorem StrictConvexSpace.ofStrictConvexClosedUnitBall [LinearMap.CompatibleSMul E E 𝕜 ℝ]
+theorem StrictConvexSpace.of_strictConvex_closed_unit_ball [LinearMap.CompatibleSMul E E 𝕜 ℝ]
     (h : StrictConvex 𝕜 (closedBall (0 : E) 1)) : StrictConvexSpace 𝕜 E :=
   ⟨fun r hr => by simpa only [smul_closedUnitBall_of_nonneg hr.le] using h.smul r⟩
-#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.ofStrictConvexClosedUnitBall
+#align strict_convex_space.of_strict_convex_closed_unit_ball StrictConvexSpace.of_strictConvex_closed_unit_ball
 
 /-- Strict convexity is equivalent to `‖a • x + b • y‖ < 1` for all `x` and `y` of norm at most `1`
 and all strictly positive `a` and `b` such that `a + b = 1`. This lemma shows that it suffices to
 check this for points of norm one and some `a`, `b` such that `a + b = 1`. -/
-theorem StrictConvexSpace.ofNormComboLtOne
+theorem StrictConvexSpace.of_norm_combo_lt_one
     (h : ∀ x y : E, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ∃ a b : ℝ, a + b = 1 ∧ ‖a • x + b • y‖ < 1) :
     StrictConvexSpace ℝ E := by
   refine'
-    StrictConvexSpace.ofStrictConvexClosedUnitBall ℝ
+    StrictConvexSpace.of_strictConvex_closed_unit_ball ℝ
       ((convex_closedBall _ _).strictConvex' fun x hx y hy hne => _)
   rw [interior_closedBall (0 : E) one_ne_zero, closedBall_diff_ball,
     mem_sphere_zero_iff_norm] at hx hy
@@ -107,45 +107,46 @@ theorem StrictConvexSpace.ofNormComboLtOne
   use b
   rwa [AffineMap.lineMap_apply_module, interior_closedBall (0 : E) one_ne_zero, mem_ball_zero_iff,
     sub_eq_iff_eq_add.2 hab.symm]
-#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.ofNormComboLtOne
+#align strict_convex_space.of_norm_combo_lt_one StrictConvexSpace.of_norm_combo_lt_one
 
-theorem StrictConvexSpace.ofNormComboNeOne
+theorem StrictConvexSpace.of_norm_combo_ne_one
     (h :
       ∀ x y : E,
         ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ∃ a b : ℝ, 0 ≤ a ∧ 0 ≤ b ∧ a + b = 1 ∧ ‖a • x + b • y‖ ≠ 1) :
     StrictConvexSpace ℝ E := by
-  refine' StrictConvexSpace.ofStrictConvexClosedUnitBall ℝ ((convex_closedBall _ _).strictConvex _)
+  refine' StrictConvexSpace.of_strictConvex_closed_unit_ball ℝ
+    ((convex_closedBall _ _).strictConvex _)
   simp only [interior_closedBall _ one_ne_zero, closedBall_diff_ball, Set.Pairwise,
     frontier_closedBall _ one_ne_zero, mem_sphere_zero_iff_norm]
   intro x hx y hy hne
   rcases h x y hx hy hne with ⟨a, b, ha, hb, hab, hne'⟩
   exact ⟨_, ⟨a, b, ha, hb, hab, rfl⟩, mt mem_sphere_zero_iff_norm.1 hne'⟩
-#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.ofNormComboNeOne
+#align strict_convex_space.of_norm_combo_ne_one StrictConvexSpace.of_norm_combo_ne_one
 
-theorem StrictConvexSpace.ofNormAddNeTwo
+theorem StrictConvexSpace.of_norm_add_ne_two
     (h : ∀ ⦃x y : E⦄, ‖x‖ = 1 → ‖y‖ = 1 → x ≠ y → ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E := by
   refine'
-    StrictConvexSpace.ofNormComboNeOne fun x y hx hy hne =>
+    StrictConvexSpace.of_norm_combo_ne_one fun x y hx hy hne =>
       ⟨1 / 2, 1 / 2, one_half_pos.le, one_half_pos.le, add_halves _, _⟩
   rw [← smul_add, norm_smul, Real.norm_of_nonneg one_half_pos.le, one_div, ← div_eq_inv_mul, Ne.def,
     div_eq_one_iff_eq (two_ne_zero' ℝ)]
   exact h hx hy hne
-#align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.ofNormAddNeTwo
+#align strict_convex_space.of_norm_add_ne_two StrictConvexSpace.of_norm_add_ne_two
 
-theorem StrictConvexSpace.ofPairwiseSphereNormNeTwo
+theorem StrictConvexSpace.of_pairwise_sphere_norm_ne_two
     (h : (sphere (0 : E) 1).Pairwise fun x y => ‖x + y‖ ≠ 2) : StrictConvexSpace ℝ E :=
-  StrictConvexSpace.ofNormAddNeTwo fun _ _ hx hy =>
+  StrictConvexSpace.of_norm_add_ne_two fun _ _ hx hy =>
     h (mem_sphere_zero_iff_norm.2 hx) (mem_sphere_zero_iff_norm.2 hy)
-#align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.ofPairwiseSphereNormNeTwo
+#align strict_convex_space.of_pairwise_sphere_norm_ne_two StrictConvexSpace.of_pairwise_sphere_norm_ne_two
 
 /-- If `‖x + y‖ = ‖x‖ + ‖y‖` implies that `x y : E` are in the same ray, then `E` is a strictly
 convex space. See also a more -/
-theorem StrictConvexSpace.ofNormAdd
+theorem StrictConvexSpace.of_norm_add
     (h : ∀ x y : E, ‖x‖ = 1 → ‖y‖ = 1 → ‖x + y‖ = 2 → SameRay ℝ x y) : StrictConvexSpace ℝ E := by
-  refine' StrictConvexSpace.ofPairwiseSphereNormNeTwo fun x hx y hy => mt fun h₂ => _
+  refine' StrictConvexSpace.of_pairwise_sphere_norm_ne_two fun x hx y hy => mt fun h₂ => _
   rw [mem_sphere_zero_iff_norm] at hx hy
   exact (sameRay_iff_of_norm_eq (hx.trans hy.symm)).1 (h x y hx hy h₂)
-#align strict_convex_space.of_norm_add StrictConvexSpace.ofNormAdd
+#align strict_convex_space.of_norm_add StrictConvexSpace.of_norm_add
 
 variable [StrictConvexSpace ℝ E] {x y z : E} {a b 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,11 +2,6 @@
 Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.convex.strict_convex_space
-! leanprover-community/mathlib commit a63928c34ec358b5edcda2bf7513c50052a5230f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Convex.Normed
 import Mathlib.Analysis.Convex.Strict
@@ -15,6 +10,8 @@ import Mathlib.Analysis.NormedSpace.AddTorsor
 import Mathlib.Analysis.NormedSpace.Pointwise
 import Mathlib.Analysis.NormedSpace.AffineIsometry
 
+#align_import analysis.convex.strict_convex_space from "leanprover-community/mathlib"@"a63928c34ec358b5edcda2bf7513c50052a5230f"
+
 /-!
 # Strictly convex spaces
 
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -159,7 +159,7 @@ theorem combo_mem_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ closedBall
   rcases eq_or_ne r 0 with (rfl | hr)
   · rw [closedBall_zero, mem_singleton_iff] at hx hy
     exact (hne (hx.trans hy.symm)).elim
-  · simp only [← interior_closedBall _ hr] at hx hy⊢
+  · simp only [← interior_closedBall _ hr] at hx hy ⊢
     exact strictConvex_closedBall ℝ z r hx hy hne ha hb hab
 #align combo_mem_ball_of_ne combo_mem_ball_of_ne
 
@@ -174,7 +174,7 @@ theorem openSegment_subset_ball_of_ne (hx : x ∈ closedBall z r) (hy : y ∈ cl
 and `y` with positive coefficients has norm strictly less than `r`. -/
 theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x ≠ y) (ha : 0 < a) (hb : 0 < b)
     (hab : a + b = 1) : ‖a • x + b • y‖ < r := by
-  simp only [← mem_ball_zero_iff, ← mem_closedBall_zero_iff] at hx hy⊢
+  simp only [← mem_ball_zero_iff, ← mem_closedBall_zero_iff] at hx hy ⊢
   exact combo_mem_ball_of_ne hx hy hne ha hb hab
 #align norm_combo_lt_of_ne norm_combo_lt_of_ne
 
@@ -195,7 +195,7 @@ theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x
 #align norm_add_lt_of_not_same_ray norm_add_lt_of_not_sameRay
 
 theorem lt_norm_sub_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x‖ - ‖y‖ < ‖x - y‖ := by
-  nth_rw 1 [← sub_add_cancel x y] at h⊢
+  nth_rw 1 [← sub_add_cancel x y] at h ⊢
   exact sub_lt_iff_lt_add.2 (norm_add_lt_of_not_sameRay fun H' => h <| H'.add_left SameRay.rfl)
 #align lt_norm_sub_of_not_same_ray lt_norm_sub_of_not_sameRay
 
chore: fix backtick in docs (#5077)

I wrote a script to find lines that contain an odd number of backticks

Diff
@@ -178,8 +178,8 @@ theorem norm_combo_lt_of_ne (hx : ‖x‖ ≤ r) (hy : ‖y‖ ≤ r) (hne : x 
   exact combo_mem_ball_of_ne hx hy hne ha hb hab
 #align norm_combo_lt_of_ne norm_combo_lt_of_ne
 
-/-- In a strictly convex space, if `x` and `y` are not in the same ray, then `‖x + y‖ < ‖x‖ +
-‖y‖`. -/
+/-- In a strictly convex space, if `x` and `y` are not in the same ray, then `‖x + y‖ < ‖x‖ + ‖y‖`.
+-/
 theorem norm_add_lt_of_not_sameRay (h : ¬SameRay ℝ x y) : ‖x + y‖ < ‖x‖ + ‖y‖ := by
   simp only [sameRay_iff_inv_norm_smul_eq, not_or, ← Ne.def] at h
   rcases h with ⟨hx, hy, hne⟩
feat: port Analysis.Complex.Arg (#4355)

Co-authored-by: Eric Rodriguez <37984851+ericrbg@users.noreply.github.com>

Diff
@@ -224,7 +224,7 @@ theorem not_sameRay_iff_norm_add_lt : ¬SameRay ℝ x y ↔ ‖x + y‖ < ‖x
 #align not_same_ray_iff_norm_add_lt not_sameRay_iff_norm_add_lt
 
 theorem sameRay_iff_norm_sub : SameRay ℝ x y ↔ ‖x - y‖ = |‖x‖ - ‖y‖| :=
-  ⟨SameRay.norm_sub (F := E), fun h =>
+  ⟨SameRay.norm_sub, fun h =>
     Classical.not_not.1 fun h' => (abs_lt_norm_sub_of_not_sameRay h').ne' h⟩
 #align same_ray_iff_norm_sub sameRay_iff_norm_sub
 
feat: port Analysis.Convex.StrictConvexSpace (#4120)

Dependencies 10 + 674

675 files ported (98.5%)
292901 lines ported (98.2%)
Show graph

The unported dependencies are

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