analysis.normed_space.riesz_lemma ⟷ Mathlib.Analysis.NormedSpace.RieszLemma

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -59,7 +59,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
   have x_ne_yβ‚€ : x - yβ‚€ βˆ‰ F := by
     by_contra h
     have : x - yβ‚€ + yβ‚€ ∈ F := F.add_mem h hyβ‚€F
-    simp only [neg_add_cancel_right, sub_eq_add_neg] at this 
+    simp only [neg_add_cancel_right, sub_eq_add_neg] at this
     exact hx this
   refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
   have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
Diff
@@ -44,7 +44,30 @@ norms, since in general the existence of an element of norm exactly 1
 is not guaranteed. For a variant giving an element with norm in `[1, R]`, see
 `riesz_lemma_of_norm_lt`. -/
 theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ x : E, x βˆ‰ F) {r : ℝ}
-    (hr : r < 1) : βˆƒ xβ‚€ : E, xβ‚€ βˆ‰ F ∧ βˆ€ y ∈ F, r * β€–xβ‚€β€– ≀ β€–xβ‚€ - yβ€– := by classical
+    (hr : r < 1) : βˆƒ xβ‚€ : E, xβ‚€ βˆ‰ F ∧ βˆ€ y ∈ F, r * β€–xβ‚€β€– ≀ β€–xβ‚€ - yβ€– := by
+  classical
+  obtain ⟨x, hx⟩ : βˆƒ x : E, x βˆ‰ F := hF
+  let d := Metric.infDist x F
+  have hFn : (F : Set E).Nonempty := ⟨_, F.zero_mem⟩
+  have hdp : 0 < d :=
+    lt_of_le_of_ne Metric.infDist_nonneg fun heq => hx ((hFc.mem_iff_inf_dist_zero hFn).2 HEq.symm)
+  let r' := max r 2⁻¹
+  have hr' : r' < 1 := by simp [r', hr]; norm_num
+  have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
+  have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
+  obtain ⟨yβ‚€, hyβ‚€F, hxyβ‚€βŸ© : βˆƒ y ∈ F, dist x y < d / r' := (Metric.infDist_lt_iff hFn).mp hdlt
+  have x_ne_yβ‚€ : x - yβ‚€ βˆ‰ F := by
+    by_contra h
+    have : x - yβ‚€ + yβ‚€ ∈ F := F.add_mem h hyβ‚€F
+    simp only [neg_add_cancel_right, sub_eq_add_neg] at this 
+    exact hx this
+  refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
+  have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
+  calc
+    r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := mul_le_mul_of_nonneg_right (le_max_left _ _) (norm_nonneg _)
+    _ < d := by rw [← dist_eq_norm]; exact (lt_div_iff' hlt).1 hxyβ‚€
+    _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
+    _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
 #align riesz_lemma riesz_lemma
 -/
 
Diff
@@ -44,30 +44,7 @@ norms, since in general the existence of an element of norm exactly 1
 is not guaranteed. For a variant giving an element with norm in `[1, R]`, see
 `riesz_lemma_of_norm_lt`. -/
 theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ x : E, x βˆ‰ F) {r : ℝ}
-    (hr : r < 1) : βˆƒ xβ‚€ : E, xβ‚€ βˆ‰ F ∧ βˆ€ y ∈ F, r * β€–xβ‚€β€– ≀ β€–xβ‚€ - yβ€– := by
-  classical
-  obtain ⟨x, hx⟩ : βˆƒ x : E, x βˆ‰ F := hF
-  let d := Metric.infDist x F
-  have hFn : (F : Set E).Nonempty := ⟨_, F.zero_mem⟩
-  have hdp : 0 < d :=
-    lt_of_le_of_ne Metric.infDist_nonneg fun heq => hx ((hFc.mem_iff_inf_dist_zero hFn).2 HEq.symm)
-  let r' := max r 2⁻¹
-  have hr' : r' < 1 := by simp [r', hr]; norm_num
-  have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
-  have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
-  obtain ⟨yβ‚€, hyβ‚€F, hxyβ‚€βŸ© : βˆƒ y ∈ F, dist x y < d / r' := (Metric.infDist_lt_iff hFn).mp hdlt
-  have x_ne_yβ‚€ : x - yβ‚€ βˆ‰ F := by
-    by_contra h
-    have : x - yβ‚€ + yβ‚€ ∈ F := F.add_mem h hyβ‚€F
-    simp only [neg_add_cancel_right, sub_eq_add_neg] at this 
-    exact hx this
-  refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
-  have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
-  calc
-    r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := mul_le_mul_of_nonneg_right (le_max_left _ _) (norm_nonneg _)
-    _ < d := by rw [← dist_eq_norm]; exact (lt_div_iff' hlt).1 hxyβ‚€
-    _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
-    _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
+    (hr : r < 1) : βˆƒ xβ‚€ : E, xβ‚€ βˆ‰ F ∧ βˆ€ y ∈ F, r * β€–xβ‚€β€– ≀ β€–xβ‚€ - yβ€– := by classical
 #align riesz_lemma riesz_lemma
 -/
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2019 Jean Lo. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jean Lo, Yury Kudryashov
 -/
-import Mathbin.Analysis.NormedSpace.Basic
-import Mathbin.Topology.MetricSpace.HausdorffDistance
+import Analysis.NormedSpace.Basic
+import Topology.MetricSpace.HausdorffDistance
 
 #align_import analysis.normed_space.riesz_lemma from "leanprover-community/mathlib"@"9a48a083b390d9b84a71efbdc4e8dfa26a687104"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2019 Jean Lo. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jean Lo, Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.normed_space.riesz_lemma
-! leanprover-community/mathlib commit 9a48a083b390d9b84a71efbdc4e8dfa26a687104
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.NormedSpace.Basic
 import Mathbin.Topology.MetricSpace.HausdorffDistance
 
+#align_import analysis.normed_space.riesz_lemma from "leanprover-community/mathlib"@"9a48a083b390d9b84a71efbdc4e8dfa26a687104"
+
 /-!
 # Applications of the Hausdorff distance in normed spaces
 
Diff
@@ -39,6 +39,7 @@ variable {E : Type _} [NormedAddCommGroup E] [NormedSpace π•œ E]
 
 variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
 
+#print riesz_lemma /-
 /-- Riesz's lemma, which usually states that it is possible to find a
 vector with norm 1 whose distance to a closed proper subspace is
 arbitrarily close to 1. The statement here is in terms of multiples of
@@ -71,7 +72,9 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
     _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
     _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
 #align riesz_lemma riesz_lemma
+-/
 
+#print riesz_lemma_of_norm_lt /-
 /--
 A version of Riesz lemma: given a strict closed subspace `F`, one may find an element of norm `≀ R`
 which is at distance  at least `1` of every element of `F`. Here, `R` is any given constant
@@ -105,6 +108,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
       (mul_le_mul_of_nonneg_left (hx y' (by simp [hy', Submodule.smul_mem _ _ hy])) (norm_nonneg _))
     _ = β€–d β€’ x - yβ€– := by simp [yy', ← smul_sub, norm_smul]
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt
+-/
 
 #print Metric.closedBall_infDist_compl_subset_closure /-
 theorem Metric.closedBall_infDist_compl_subset_closure {x : F} {s : Set F} (hx : x ∈ s) :
Diff
@@ -70,7 +70,6 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
     _ < d := by rw [← dist_eq_norm]; exact (lt_div_iff' hlt).1 hxyβ‚€
     _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
     _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
-    
 #align riesz_lemma riesz_lemma
 
 /--
@@ -105,7 +104,6 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
     _ ≀ β€–dβ€– * β€–x - y'β€– :=
       (mul_le_mul_of_nonneg_left (hx y' (by simp [hy', Submodule.smul_mem _ _ hy])) (norm_nonneg _))
     _ = β€–d β€’ x - yβ€– := by simp [yy', ← smul_sub, norm_smul]
-    
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt
 
 #print Metric.closedBall_infDist_compl_subset_closure /-
Diff
@@ -48,30 +48,29 @@ is not guaranteed. For a variant giving an element with norm in `[1, R]`, see
 theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ x : E, x βˆ‰ F) {r : ℝ}
     (hr : r < 1) : βˆƒ xβ‚€ : E, xβ‚€ βˆ‰ F ∧ βˆ€ y ∈ F, r * β€–xβ‚€β€– ≀ β€–xβ‚€ - yβ€– := by
   classical
-    obtain ⟨x, hx⟩ : βˆƒ x : E, x βˆ‰ F := hF
-    let d := Metric.infDist x F
-    have hFn : (F : Set E).Nonempty := ⟨_, F.zero_mem⟩
-    have hdp : 0 < d :=
-      lt_of_le_of_ne Metric.infDist_nonneg fun heq =>
-        hx ((hFc.mem_iff_inf_dist_zero hFn).2 HEq.symm)
-    let r' := max r 2⁻¹
-    have hr' : r' < 1 := by simp [r', hr]; norm_num
-    have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
-    have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
-    obtain ⟨yβ‚€, hyβ‚€F, hxyβ‚€βŸ© : βˆƒ y ∈ F, dist x y < d / r' := (Metric.infDist_lt_iff hFn).mp hdlt
-    have x_ne_yβ‚€ : x - yβ‚€ βˆ‰ F := by
-      by_contra h
-      have : x - yβ‚€ + yβ‚€ ∈ F := F.add_mem h hyβ‚€F
-      simp only [neg_add_cancel_right, sub_eq_add_neg] at this 
-      exact hx this
-    refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
-    have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
-    calc
-      r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := mul_le_mul_of_nonneg_right (le_max_left _ _) (norm_nonneg _)
-      _ < d := by rw [← dist_eq_norm]; exact (lt_div_iff' hlt).1 hxyβ‚€
-      _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
-      _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
-      
+  obtain ⟨x, hx⟩ : βˆƒ x : E, x βˆ‰ F := hF
+  let d := Metric.infDist x F
+  have hFn : (F : Set E).Nonempty := ⟨_, F.zero_mem⟩
+  have hdp : 0 < d :=
+    lt_of_le_of_ne Metric.infDist_nonneg fun heq => hx ((hFc.mem_iff_inf_dist_zero hFn).2 HEq.symm)
+  let r' := max r 2⁻¹
+  have hr' : r' < 1 := by simp [r', hr]; norm_num
+  have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
+  have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
+  obtain ⟨yβ‚€, hyβ‚€F, hxyβ‚€βŸ© : βˆƒ y ∈ F, dist x y < d / r' := (Metric.infDist_lt_iff hFn).mp hdlt
+  have x_ne_yβ‚€ : x - yβ‚€ βˆ‰ F := by
+    by_contra h
+    have : x - yβ‚€ + yβ‚€ ∈ F := F.add_mem h hyβ‚€F
+    simp only [neg_add_cancel_right, sub_eq_add_neg] at this 
+    exact hx this
+  refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
+  have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
+  calc
+    r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := mul_le_mul_of_nonneg_right (le_max_left _ _) (norm_nonneg _)
+    _ < d := by rw [← dist_eq_norm]; exact (lt_div_iff' hlt).1 hxyβ‚€
+    _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
+    _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
+    
 #align riesz_lemma riesz_lemma
 
 /--
Diff
@@ -62,7 +62,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
     have x_ne_yβ‚€ : x - yβ‚€ βˆ‰ F := by
       by_contra h
       have : x - yβ‚€ + yβ‚€ ∈ F := F.add_mem h hyβ‚€F
-      simp only [neg_add_cancel_right, sub_eq_add_neg] at this
+      simp only [neg_add_cancel_right, sub_eq_add_neg] at this 
       exact hx this
     refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
     have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
Diff
@@ -31,7 +31,7 @@ the closure of a set `s` of optimal distance from a point in `x` to the frontier
 
 open Set Metric
 
-open Topology
+open scoped Topology
 
 variable {π•œ : Type _} [NormedField π•œ]
 
Diff
@@ -39,9 +39,6 @@ variable {E : Type _} [NormedAddCommGroup E] [NormedSpace π•œ E]
 
 variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
 
-/- warning: riesz_lemma -> riesz_lemma is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align riesz_lemma riesz_lemmaβ‚“'. -/
 /-- Riesz's lemma, which usually states that it is possible to find a
 vector with norm 1 whose distance to a closed proper subspace is
 arbitrarily close to 1. The statement here is in terms of multiples of
@@ -77,12 +74,6 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
       
 #align riesz_lemma riesz_lemma
 
-/- warning: riesz_lemma_of_norm_lt -> riesz_lemma_of_norm_lt is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : NormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {c : π•œ}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} π•œ (NormedField.toHasNorm.{u1} π•œ _inst_1) c)) -> (forall {R : Real}, (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} π•œ (NormedField.toHasNorm.{u1} π•œ _inst_1) c) R) -> (forall {F : Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)}, (IsClosed.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (CoeTCβ‚“.coe.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (SetLike.Set.hasCoeT.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) F)) -> (Exists.{succ u2} E (fun (x : E) => Not (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) x F))) -> (Exists.{succ u2} E (fun (xβ‚€ : E) => And (LE.le.{0} Real Real.hasLe (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) xβ‚€) R) (forall (y : E), (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2))))) xβ‚€ y))))))))
-but is expected to have type
-  forall {π•œ : Type.{u2}} [_inst_1 : NormedField.{u2} π•œ] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {c : π•œ}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} π•œ (NormedField.toNorm.{u2} π•œ _inst_1) c)) -> (forall {R : Real}, (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u2} π•œ (NormedField.toNorm.{u2} π•œ _inst_1) c) R) -> (forall {F : Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)}, (IsClosed.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))) (SetLike.coe.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) F)) -> (Exists.{succ u1} E (fun (x : E) => Not (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) x F))) -> (Exists.{succ u1} E (fun (xβ‚€ : E) => And (LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) xβ‚€) R) (forall (y : E), (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (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 riesz_lemma_of_norm_lt riesz_lemma_of_norm_ltβ‚“'. -/
 /--
 A version of Riesz lemma: given a strict closed subspace `F`, one may find an element of norm `≀ R`
 which is at distance  at least `1` of every element of `F`. Here, `R` is any given constant
Diff
@@ -58,9 +58,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
       lt_of_le_of_ne Metric.infDist_nonneg fun heq =>
         hx ((hFc.mem_iff_inf_dist_zero hFn).2 HEq.symm)
     let r' := max r 2⁻¹
-    have hr' : r' < 1 := by
-      simp [r', hr]
-      norm_num
+    have hr' : r' < 1 := by simp [r', hr]; norm_num
     have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
     have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
     obtain ⟨yβ‚€, hyβ‚€F, hxyβ‚€βŸ© : βˆƒ y ∈ F, dist x y < d / r' := (Metric.infDist_lt_iff hFn).mp hdlt
@@ -73,9 +71,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
     have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
     calc
       r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := mul_le_mul_of_nonneg_right (le_max_left _ _) (norm_nonneg _)
-      _ < d := by
-        rw [← dist_eq_norm]
-        exact (lt_div_iff' hlt).1 hxyβ‚€
+      _ < d := by rw [← dist_eq_norm]; exact (lt_div_iff' hlt).1 hxyβ‚€
       _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
       _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
       
@@ -102,9 +98,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
     βˆƒ xβ‚€ : E, β€–xβ‚€β€– ≀ R ∧ βˆ€ y ∈ F, 1 ≀ β€–xβ‚€ - yβ€– :=
   by
   have Rpos : 0 < R := (norm_nonneg _).trans_lt hR
-  have : β€–cβ€– / R < 1 := by
-    rw [div_lt_iff Rpos]
-    simpa using hR
+  have : β€–cβ€– / R < 1 := by rw [div_lt_iff Rpos]; simpa using hR
   rcases riesz_lemma hFc hF this with ⟨x, xF, hx⟩
   have x0 : x β‰  0 := fun H => by simpa [H] using xF
   obtain ⟨d, d0, dxlt, ledx, -⟩ :
@@ -117,9 +111,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
   calc
     1 = β€–cβ€– / R * (R / β€–cβ€–) := by field_simp [Rpos.ne', (zero_lt_one.trans hc).ne']
     _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := (mul_le_mul_of_nonneg_left ledx (div_nonneg (norm_nonneg _) Rpos.le))
-    _ = β€–dβ€– * (β€–cβ€– / R * β€–xβ€–) := by
-      simp [norm_smul]
-      ring
+    _ = β€–dβ€– * (β€–cβ€– / R * β€–xβ€–) := by simp [norm_smul]; ring
     _ ≀ β€–dβ€– * β€–x - y'β€– :=
       (mul_le_mul_of_nonneg_left (hx y' (by simp [hy', Submodule.smul_mem _ _ hy])) (norm_nonneg _))
     _ = β€–d β€’ x - yβ€– := by simp [yy', ← smul_sub, norm_smul]
Diff
@@ -40,10 +40,7 @@ variable {E : Type _} [NormedAddCommGroup E] [NormedSpace π•œ E]
 variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
 
 /- warning: riesz_lemma -> riesz_lemma is a dubious translation:
-lean 3 declaration is
-  forall {π•œ : Type.{u1}} [_inst_1 : NormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {F : Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)}, (IsClosed.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (CoeTCβ‚“.coe.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (SetLike.Set.hasCoeT.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) F)) -> (Exists.{succ u2} E (fun (x : E) => Not (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) x F))) -> (forall {r : Real}, (LT.lt.{0} Real Real.hasLt r (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Exists.{succ u2} E (fun (xβ‚€ : E) => And (Not (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) xβ‚€ F)) (forall (y : E), (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.hasLe (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) r (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) xβ‚€)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2))))) xβ‚€ y)))))))
-but is expected to have type
-  forall {π•œ : Type.{u2}} [_inst_1 : NormedField.{u2} π•œ] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {F : Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)}, (IsClosed.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))) (SetLike.coe.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) F)) -> (Exists.{succ u1} E (fun (x : E) => Not (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) x F))) -> (forall {r : Real}, (LT.lt.{0} Real Real.instLTReal r (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Exists.{succ u1} E (fun (xβ‚€ : E) => And (Not (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) xβ‚€ F)) (forall (y : E), (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.instLEReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) r (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) xβ‚€)) (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)))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align riesz_lemma riesz_lemmaβ‚“'. -/
 /-- Riesz's lemma, which usually states that it is possible to find a
 vector with norm 1 whose distance to a closed proper subspace is
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jean Lo, Yury Kudryashov
 
 ! This file was ported from Lean 3 source module analysis.normed_space.riesz_lemma
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 9a48a083b390d9b84a71efbdc4e8dfa26a687104
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Topology.MetricSpace.HausdorffDistance
 /-!
 # Applications of the Hausdorff distance in normed spaces
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Riesz's lemma, stated for a normed space over a normed field: for any
 closed proper subspace `F` of `E`, there is a nonzero `x` such that `β€–x - Fβ€–`
 is at least `r * β€–xβ€–` for any `r < 1`. This is `riesz_lemma`.
Diff
@@ -36,6 +36,12 @@ variable {E : Type _} [NormedAddCommGroup E] [NormedSpace π•œ E]
 
 variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
 
+/- warning: riesz_lemma -> riesz_lemma is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : NormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {F : Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)}, (IsClosed.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (CoeTCβ‚“.coe.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (SetLike.Set.hasCoeT.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) F)) -> (Exists.{succ u2} E (fun (x : E) => Not (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) x F))) -> (forall {r : Real}, (LT.lt.{0} Real Real.hasLt r (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne)))) -> (Exists.{succ u2} E (fun (xβ‚€ : E) => And (Not (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) xβ‚€ F)) (forall (y : E), (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.hasLe (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.hasMul) r (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) xβ‚€)) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2))))) xβ‚€ y)))))))
+but is expected to have type
+  forall {π•œ : Type.{u2}} [_inst_1 : NormedField.{u2} π•œ] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {F : Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)}, (IsClosed.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))) (SetLike.coe.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) F)) -> (Exists.{succ u1} E (fun (x : E) => Not (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) x F))) -> (forall {r : Real}, (LT.lt.{0} Real Real.instLTReal r (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal))) -> (Exists.{succ u1} E (fun (xβ‚€ : E) => And (Not (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) xβ‚€ F)) (forall (y : E), (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.instLEReal (HMul.hMul.{0, 0, 0} Real Real Real (instHMul.{0} Real Real.instMulReal) r (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) xβ‚€)) (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 riesz_lemma riesz_lemmaβ‚“'. -/
 /-- Riesz's lemma, which usually states that it is possible to find a
 vector with norm 1 whose distance to a closed proper subspace is
 arbitrarily close to 1. The statement here is in terms of multiples of
@@ -75,6 +81,12 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
       
 #align riesz_lemma riesz_lemma
 
+/- warning: riesz_lemma_of_norm_lt -> riesz_lemma_of_norm_lt is a dubious translation:
+lean 3 declaration is
+  forall {π•œ : Type.{u1}} [_inst_1 : NormedField.{u1} π•œ] {E : Type.{u2}} [_inst_2 : NormedAddCommGroup.{u2} E] [_inst_3 : NormedSpace.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)] {c : π•œ}, (LT.lt.{0} Real Real.hasLt (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u1} π•œ (NormedField.toHasNorm.{u1} π•œ _inst_1) c)) -> (forall {R : Real}, (LT.lt.{0} Real Real.hasLt (Norm.norm.{u1} π•œ (NormedField.toHasNorm.{u1} π•œ _inst_1) c) R) -> (forall {F : Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)}, (IsClosed.{u2} E (UniformSpace.toTopologicalSpace.{u2} E (PseudoMetricSpace.toUniformSpace.{u2} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u2} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2)))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (HasLiftT.mk.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (CoeTCβ‚“.coe.{succ u2, succ u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (Set.{u2} E) (SetLike.Set.hasCoeT.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))))) F)) -> (Exists.{succ u2} E (fun (x : E) => Not (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) x F))) -> (Exists.{succ u2} E (fun (xβ‚€ : E) => And (LE.le.{0} Real Real.hasLe (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) xβ‚€) R) (forall (y : E), (Membership.Mem.{u2, u2} E (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) (SetLike.hasMem.{u2, u2} (Subspace.{u1, u2} π•œ E (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3)) E (Submodule.setLike.{u1, u2} π•œ E (Ring.toSemiring.{u1} π•œ (DivisionRing.toRing.{u1} π•œ (NormedDivisionRing.toDivisionRing.{u1} π•œ (NormedField.toNormedDivisionRing.{u1} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E (NormedAddCommGroup.toAddCommGroup.{u2} E _inst_2)) (NormedSpace.toModule.{u1, u2} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u2} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.hasLe (OfNat.ofNat.{0} Real 1 (OfNat.mk.{0} Real 1 (One.one.{0} Real Real.hasOne))) (Norm.norm.{u2} E (NormedAddCommGroup.toHasNorm.{u2} E _inst_2) (HSub.hSub.{u2, u2, u2} E E E (instHSub.{u2} E (SubNegMonoid.toHasSub.{u2} E (AddGroup.toSubNegMonoid.{u2} E (NormedAddGroup.toAddGroup.{u2} E (NormedAddCommGroup.toNormedAddGroup.{u2} E _inst_2))))) xβ‚€ y))))))))
+but is expected to have type
+  forall {π•œ : Type.{u2}} [_inst_1 : NormedField.{u2} π•œ] {E : Type.{u1}} [_inst_2 : NormedAddCommGroup.{u1} E] [_inst_3 : NormedSpace.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)] {c : π•œ}, (LT.lt.{0} Real Real.instLTReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (Norm.norm.{u2} π•œ (NormedField.toNorm.{u2} π•œ _inst_1) c)) -> (forall {R : Real}, (LT.lt.{0} Real Real.instLTReal (Norm.norm.{u2} π•œ (NormedField.toNorm.{u2} π•œ _inst_1) c) R) -> (forall {F : Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)}, (IsClosed.{u1} E (UniformSpace.toTopologicalSpace.{u1} E (PseudoMetricSpace.toUniformSpace.{u1} E (SeminormedAddCommGroup.toPseudoMetricSpace.{u1} E (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2)))) (SetLike.coe.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) F)) -> (Exists.{succ u1} E (fun (x : E) => Not (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) x F))) -> (Exists.{succ u1} E (fun (xβ‚€ : E) => And (LE.le.{0} Real Real.instLEReal (Norm.norm.{u1} E (NormedAddCommGroup.toNorm.{u1} E _inst_2) xβ‚€) R) (forall (y : E), (Membership.mem.{u1, u1} E (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) (SetLike.instMembership.{u1, u1} (Subspace.{u2, u1} π•œ E (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)) (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3)) E (Submodule.setLike.{u2, u1} π•œ E (DivisionSemiring.toSemiring.{u2} π•œ (DivisionRing.toDivisionSemiring.{u2} π•œ (NormedDivisionRing.toDivisionRing.{u2} π•œ (NormedField.toNormedDivisionRing.{u2} π•œ _inst_1)))) (AddCommGroup.toAddCommMonoid.{u1} E (NormedAddCommGroup.toAddCommGroup.{u1} E _inst_2)) (NormedSpace.toModule.{u2, u1} π•œ E _inst_1 (NormedAddCommGroup.toSeminormedAddCommGroup.{u1} E _inst_2) _inst_3))) y F) -> (LE.le.{0} Real Real.instLEReal (OfNat.ofNat.{0} Real 1 (One.toOfNat1.{0} Real Real.instOneReal)) (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 riesz_lemma_of_norm_lt riesz_lemma_of_norm_ltβ‚“'. -/
 /--
 A version of Riesz lemma: given a strict closed subspace `F`, one may find an element of norm `≀ R`
 which is at distance  at least `1` of every element of `F`. Here, `R` is any given constant
@@ -114,6 +126,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
     
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt
 
+#print Metric.closedBall_infDist_compl_subset_closure /-
 theorem Metric.closedBall_infDist_compl_subset_closure {x : F} {s : Set F} (hx : x ∈ s) :
     closedBall x (infDist x (sᢜ)) βŠ† closure s :=
   by
@@ -123,4 +136,5 @@ theorem Metric.closedBall_infDist_compl_subset_closure {x : F} {s : Set F} (hx :
   Β· rw [← closure_ball x hβ‚€]
     exact closure_mono ball_inf_dist_compl_subset
 #align metric.closed_ball_inf_dist_compl_subset_closure Metric.closedBall_infDist_compl_subset_closure
+-/
 
Diff
@@ -70,7 +70,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
       _ < d := by
         rw [← dist_eq_norm]
         exact (lt_div_iff' hlt).1 hxyβ‚€
-      _ ≀ dist x (yβ‚€ + y) := Metric.infDist_le_dist_of_mem hyβ‚€y
+      _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
       _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
       
 #align riesz_lemma riesz_lemma
@@ -104,12 +104,12 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
   have yy' : y = d β€’ y' := by simp [hy', smul_smul, mul_inv_cancel d0]
   calc
     1 = β€–cβ€– / R * (R / β€–cβ€–) := by field_simp [Rpos.ne', (zero_lt_one.trans hc).ne']
-    _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := mul_le_mul_of_nonneg_left ledx (div_nonneg (norm_nonneg _) Rpos.le)
+    _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := (mul_le_mul_of_nonneg_left ledx (div_nonneg (norm_nonneg _) Rpos.le))
     _ = β€–dβ€– * (β€–cβ€– / R * β€–xβ€–) := by
       simp [norm_smul]
       ring
     _ ≀ β€–dβ€– * β€–x - y'β€– :=
-      mul_le_mul_of_nonneg_left (hx y' (by simp [hy', Submodule.smul_mem _ _ hy])) (norm_nonneg _)
+      (mul_le_mul_of_nonneg_left (hx y' (by simp [hy', Submodule.smul_mem _ _ hy])) (norm_nonneg _))
     _ = β€–d β€’ x - yβ€– := by simp [yy', ← smul_sub, norm_smul]
     
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt

Changes in mathlib4

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

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

Diff
@@ -66,7 +66,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
       _ < d := by
         rw [← dist_eq_norm]
         exact (lt_div_iff' hlt).1 hxyβ‚€
-      _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
+      _ ≀ dist x (yβ‚€ + y) := Metric.infDist_le_dist_of_mem hyβ‚€y
       _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
 #align riesz_lemma riesz_lemma
 
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -29,9 +29,7 @@ open Set Metric
 open Topology
 
 variable {π•œ : Type*} [NormedField π•œ]
-
 variable {E : Type*} [NormedAddCommGroup E] [NormedSpace π•œ E]
-
 variable {F : Type*} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
 
 /-- Riesz's lemma, which usually states that it is possible to find a
chore: prepare Lean version bump with explicit simp (#10999)

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

Diff
@@ -51,7 +51,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
         hx ((hFc.mem_iff_infDist_zero hFn).2 heq.symm)
     let r' := max r 2⁻¹
     have hr' : r' < 1 := by
-      simp only [ge_iff_le, max_lt_iff, hr, true_and]
+      simp only [r', ge_iff_le, max_lt_iff, hr, true_and]
       norm_num
     have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
     have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
@@ -96,7 +96,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
     rescale_to_shell hc Rpos x0
   refine' ⟨d β€’ x, dxlt.le, fun y hy => _⟩
   set y' := d⁻¹ β€’ y
-  have yy' : y = d β€’ y' := by simp [smul_smul, mul_inv_cancel d0]
+  have yy' : y = d β€’ y' := by simp [y', smul_smul, mul_inv_cancel d0]
   calc
     1 = β€–cβ€– / R * (R / β€–cβ€–) := by field_simp [Rpos.ne', (zero_lt_one.trans hc).ne']
     _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := by gcongr
chore(NormedSpace/Basic): move some theorems to NormedSpace.Real (#10206)

This way we don't switch between general normed spaces and real normed spaces back and forth throughout the file.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Jean Lo. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jean Lo, Yury Kudryashov
 -/
-import Mathlib.Analysis.NormedSpace.Basic
+import Mathlib.Analysis.NormedSpace.Real
 import Mathlib.Analysis.Seminorm
 import Mathlib.Topology.MetricSpace.HausdorffDistance
 
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
@@ -109,7 +109,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
 
 theorem Metric.closedBall_infDist_compl_subset_closure {x : F} {s : Set F} (hx : x ∈ s) :
     closedBall x (infDist x sᢜ) βŠ† closure s := by
-  cases' eq_or_ne (infDist x sᢜ) 0 with hβ‚€ hβ‚€
+  rcases eq_or_ne (infDist x sᢜ) 0 with hβ‚€ | hβ‚€
   Β· rw [hβ‚€, closedBall_zero']
     exact closure_mono (singleton_subset_iff.2 hx)
   Β· rw [← closure_ball x hβ‚€]
chore: space after ← (#8178)

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

Diff
@@ -104,7 +104,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
       simp only [norm_smul]
       ring
     _ ≀ β€–dβ€– * β€–x - y'β€– := by gcongr; exact hx y' (by simp [Submodule.smul_mem _ _ hy])
-    _ = β€–d β€’ x - yβ€– := by rw [yy', ←smul_sub, norm_smul]
+    _ = β€–d β€’ x - yβ€– := by rw [yy', ← smul_sub, norm_smul]
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt
 
 theorem Metric.closedBall_infDist_compl_subset_closure {x : F} {s : Set F} (hx : x ∈ s) :
chore: remove nonterminal simp (#7580)

Removes nonterminal simps on lines looking like simp [...]

Diff
@@ -51,7 +51,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
         hx ((hFc.mem_iff_infDist_zero hFn).2 heq.symm)
     let r' := max r 2⁻¹
     have hr' : r' < 1 := by
-      simp [hr]
+      simp only [ge_iff_le, max_lt_iff, hr, true_and]
       norm_num
     have hlt : 0 < r' := lt_of_lt_of_le (by norm_num) (le_max_right r 2⁻¹)
     have hdlt : d < d / r' := (lt_div_iff hlt).mpr ((mul_lt_iff_lt_one_right hdp).2 hr')
@@ -101,7 +101,7 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
     1 = β€–cβ€– / R * (R / β€–cβ€–) := by field_simp [Rpos.ne', (zero_lt_one.trans hc).ne']
     _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := by gcongr
     _ = β€–dβ€– * (β€–cβ€– / R * β€–xβ€–) := by
-      simp [norm_smul]
+      simp only [norm_smul]
       ring
     _ ≀ β€–dβ€– * β€–x - y'β€– := by gcongr; exact hx y' (by simp [Submodule.smul_mem _ _ hy])
     _ = β€–d β€’ x - yβ€– := by rw [yy', ←smul_sub, norm_smul]
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
@@ -28,11 +28,11 @@ open Set Metric
 
 open Topology
 
-variable {π•œ : Type _} [NormedField π•œ]
+variable {π•œ : Type*} [NormedField π•œ]
 
-variable {E : Type _} [NormedAddCommGroup E] [NormedSpace π•œ E]
+variable {E : Type*} [NormedAddCommGroup E] [NormedSpace π•œ E]
 
-variable {F : Type _} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
+variable {F : Type*} [SeminormedAddCommGroup F] [NormedSpace ℝ F]
 
 /-- Riesz's lemma, which usually states that it is possible to find a
 vector with norm 1 whose distance to a closed proper subspace is
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,16 +2,13 @@
 Copyright (c) 2019 Jean Lo. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jean Lo, Yury Kudryashov
-
-! This file was ported from Lean 3 source module analysis.normed_space.riesz_lemma
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.NormedSpace.Basic
 import Mathlib.Analysis.Seminorm
 import Mathlib.Topology.MetricSpace.HausdorffDistance
 
+#align_import analysis.normed_space.riesz_lemma from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
 /-!
 # Applications of the Hausdorff distance in normed spaces
 
fix: change compl precedence (#5586)

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

Diff
@@ -111,8 +111,8 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt
 
 theorem Metric.closedBall_infDist_compl_subset_closure {x : F} {s : Set F} (hx : x ∈ s) :
-    closedBall x (infDist x (sᢜ)) βŠ† closure s := by
-  cases' eq_or_ne (infDist x (sᢜ)) 0 with hβ‚€ hβ‚€
+    closedBall x (infDist x sᢜ) βŠ† closure s := by
+  cases' eq_or_ne (infDist x sᢜ) 0 with hβ‚€ hβ‚€
   Β· rw [hβ‚€, closedBall_zero']
     exact closure_mono (singleton_subset_iff.2 hx)
   Β· rw [← closure_ball x hβ‚€]
feat(Analysis/LocallyConvex/WithSeminorms): characterize continuous seminorms (#5501)

This shows that, if the topology of E is defined by some family of seminorms p, then a seminorm q is continuous iff βˆƒ s : Finset ΞΉ, βˆƒ C : ℝβ‰₯0, C β‰  0 ∧ q ≀ C β€’ s.sup p. Via Seminorm.continuous_iff_continuous_comp this gives the converse of Seminorm.continuous_from_bounded and hence a characterization of continuous linear maps between such spaces.

To do that, we restate all of the "bound of shell" lemmas in terms of seminorms, which needs changing some imports, but I've checked the current state of the port and this should not cause too much trouble since most of the touched files are already ported so we can changes the imports in mathlib4 too.

The WithSeminorms file needs a naming/dot notation refactor at some point, because the naming scheme is neither predictable nor convenient to use, but this PR is already large enough.

Diff
@@ -9,6 +9,7 @@ Authors: Jean Lo, Yury Kudryashov
 ! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.NormedSpace.Basic
+import Mathlib.Analysis.Seminorm
 import Mathlib.Topology.MetricSpace.HausdorffDistance
 
 /-!
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
@@ -76,7 +76,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
 
 /--
 A version of Riesz lemma: given a strict closed subspace `F`, one may find an element of norm `≀ R`
-which is at distance  at least `1` of every element of `F`. Here, `R` is any given constant
+which is at distance at least `1` of every element of `F`. Here, `R` is any given constant
 strictly larger than the norm of an element of norm `> 1`. For a version without an `R`, see
 `riesz_lemma`.
 
feat: golf using gcongr throughout the library (#4702)

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

Diff
@@ -66,7 +66,7 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
     refine' ⟨x - yβ‚€, x_ne_yβ‚€, fun y hy => le_of_lt _⟩
     have hyβ‚€y : yβ‚€ + y ∈ F := F.add_mem hyβ‚€F hy
     calc
-      r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := mul_le_mul_of_nonneg_right (le_max_left _ _) (norm_nonneg _)
+      r * β€–x - yβ‚€β€– ≀ r' * β€–x - yβ‚€β€– := by gcongr; apply le_max_left
       _ < d := by
         rw [← dist_eq_norm]
         exact (lt_div_iff' hlt).1 hxyβ‚€
@@ -101,12 +101,11 @@ theorem riesz_lemma_of_norm_lt {c : π•œ} (hc : 1 < β€–cβ€–) {R : ℝ} (hR : β€–
   have yy' : y = d β€’ y' := by simp [smul_smul, mul_inv_cancel d0]
   calc
     1 = β€–cβ€– / R * (R / β€–cβ€–) := by field_simp [Rpos.ne', (zero_lt_one.trans hc).ne']
-    _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := (mul_le_mul_of_nonneg_left ledx (div_nonneg (norm_nonneg _) Rpos.le))
+    _ ≀ β€–cβ€– / R * β€–d β€’ xβ€– := by gcongr
     _ = β€–dβ€– * (β€–cβ€– / R * β€–xβ€–) := by
       simp [norm_smul]
       ring
-    _ ≀ β€–dβ€– * β€–x - y'β€– :=
-      (mul_le_mul_of_nonneg_left (hx y' (by simp [Submodule.smul_mem _ _ hy])) (norm_nonneg _))
+    _ ≀ β€–dβ€– * β€–x - y'β€– := by gcongr; exact hx y' (by simp [Submodule.smul_mem _ _ hy])
     _ = β€–d β€’ x - yβ€– := by rw [yy', ←smul_sub, norm_smul]
 #align riesz_lemma_of_norm_lt riesz_lemma_of_norm_lt
 
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -72,7 +72,6 @@ theorem riesz_lemma {F : Subspace π•œ E} (hFc : IsClosed (F : Set E)) (hF : βˆƒ
         exact (lt_div_iff' hlt).1 hxyβ‚€
       _ ≀ dist x (yβ‚€ + y) := (Metric.infDist_le_dist_of_mem hyβ‚€y)
       _ = β€–x - yβ‚€ - yβ€– := by rw [sub_sub, dist_eq_norm]
-
 #align riesz_lemma riesz_lemma
 
 /--
feat: port Analysis.NormedSpace.RieszLemma (#3397)

Dependencies 10 + 615

616 files ported (98.4%)
269884 lines ported (98.1%)
Show graph

The unported dependencies are

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