Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit a1bdadd

Browse files
committed
chore(topology/metric_space/hausdorff_distance): move two lemmas (#12771)
Remove the dependence of `topology/metric_space/hausdorff_distance` on `analysis.normed_space.basic`, by moving out two lemmas.
1 parent 11b2f36 commit a1bdadd

File tree

5 files changed

+39
-30
lines changed

5 files changed

+39
-30
lines changed

src/analysis/normed_space/finite_dimension.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ Copyright (c) 2019 Sébastien Gouëzel. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Sébastien Gouëzel
55
-/
6+
import analysis.asymptotics.asymptotic_equivalent
67
import analysis.normed_space.affine_isometry
78
import analysis.normed_space.operator_norm
8-
import analysis.asymptotics.asymptotic_equivalent
9+
import analysis.normed_space.riesz_lemma
910
import linear_algebra.matrix.to_lin
1011
import topology.algebra.matrix
1112

src/analysis/normed_space/riesz_lemma.lean

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
/-
22
Copyright (c) 2019 Jean Lo. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
4-
Authors: Jean Lo
4+
Authors: Jean Lo, Yury Kudryashov
55
-/
6+
import analysis.normed_space.basic
67
import topology.metric_space.hausdorff_distance
78

89
/-!
9-
# Riesz's lemma
10+
# Applications of the Hausdorff distance in normed spaces
1011
1112
Riesz's lemma, stated for a normed space over a normed field: for any
1213
closed proper subspace `F` of `E`, there is a nonzero `x` such that `∥x - F∥`
1314
is at least `r * ∥x∥` for any `r < 1`. This is `riesz_lemma`.
1415
1516
In a nondiscrete normed field (with an element `c` of norm `> 1`) and any `R > ∥c∥`, one can
1617
guarantee `∥x∥ ≤ R` and `∥x - y∥ ≥ 1` for any `y` in `F`. This is `riesz_lemma_of_norm_lt`.
18+
19+
A further lemma, `closed_ball_inf_dist_compl_subset_closure`, finds a *closed* ball within the
20+
closure of a set `s` of optimal distance from a point in `x` to the frontier of `s`.
1721
-/
1822

23+
open set metric
24+
open_locale topological_space
25+
1926
variables {𝕜 : Type*} [normed_field 𝕜]
2027
variables {E : Type*} [normed_group E] [normed_space 𝕜 E]
2128

@@ -89,3 +96,28 @@ begin
8996
mul_le_mul_of_nonneg_left (hx y' (by simp [hy', submodule.smul_mem _ _ hy])) (norm_nonneg _)
9097
... = ∥d • x - y∥ : by simp [yy', ← smul_sub, norm_smul],
9198
end
99+
100+
lemma metric.closed_ball_inf_dist_compl_subset_closure' {E : Type*} [semi_normed_group E]
101+
[normed_space ℝ E] {x : E} {s : set E} (hx : s ∈ 𝓝 x) (hs : s ≠ univ) :
102+
closed_ball x (inf_dist x sᶜ) ⊆ closure s :=
103+
begin
104+
have hne : sᶜ.nonempty, from nonempty_compl.2 hs,
105+
have hpos : 0 < inf_dist x sᶜ,
106+
{ rwa [← inf_dist_eq_closure, ← is_closed_closure.not_mem_iff_inf_dist_pos hne.closure,
107+
closure_compl, mem_compl_iff, not_not, mem_interior_iff_mem_nhds] },
108+
rw ← closure_ball x hpos,
109+
apply closure_mono,
110+
rw [← le_eq_subset, ← is_compl_compl.disjoint_right_iff],
111+
exact disjoint_ball_inf_dist
112+
end
113+
114+
lemma metric.closed_ball_inf_dist_compl_subset_closure [normed_space ℝ E]
115+
{x : E} {s : set E} (hx : x ∈ s) (hs : s ≠ univ) :
116+
closed_ball x (inf_dist x sᶜ) ⊆ closure s :=
117+
begin
118+
by_cases hx' : x ∈ closure sᶜ,
119+
{ rw [mem_closure_iff_inf_dist_zero (nonempty_compl.2 hs)] at hx',
120+
simpa [hx'] using subset_closure hx },
121+
{ rw [closure_compl, mem_compl_iff, not_not, mem_interior_iff_mem_nhds] at hx',
122+
exact metric.closed_ball_inf_dist_compl_subset_closure' hx' hs }
123+
end

src/topology/metric_space/hausdorff_distance.lean

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ Copyright (c) 2019 Sébastien Gouëzel. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Sébastien Gouëzel
55
-/
6-
import analysis.normed_space.basic
76
import analysis.specific_limits.basic
87
import topology.metric_space.isometry
98
import topology.instances.ennreal
@@ -540,31 +539,6 @@ lemma exists_mem_closure_inf_dist_eq_dist [proper_space α] (hne : s.nonempty) (
540539
∃ y ∈ closure s, inf_dist x s = dist x y :=
541540
by simpa only [inf_dist_eq_closure] using is_closed_closure.exists_inf_dist_eq_dist hne.closure x
542541

543-
lemma closed_ball_inf_dist_compl_subset_closure' {E : Type*} [semi_normed_group E]
544-
[normed_space ℝ E] {x : E} {s : set E} (hx : s ∈ 𝓝 x) (hs : s ≠ univ) :
545-
closed_ball x (inf_dist x sᶜ) ⊆ closure s :=
546-
begin
547-
have hne : sᶜ.nonempty, from nonempty_compl.2 hs,
548-
have hpos : 0 < inf_dist x sᶜ,
549-
{ rwa [← inf_dist_eq_closure, ← is_closed_closure.not_mem_iff_inf_dist_pos hne.closure,
550-
closure_compl, mem_compl_iff, not_not, mem_interior_iff_mem_nhds] },
551-
rw ← closure_ball x hpos,
552-
apply closure_mono,
553-
rw [← le_eq_subset, ← is_compl_compl.disjoint_right_iff],
554-
exact disjoint_ball_inf_dist
555-
end
556-
557-
lemma closed_ball_inf_dist_compl_subset_closure {E : Type*} [normed_group E] [normed_space ℝ E]
558-
{x : E} {s : set E} (hx : x ∈ s) (hs : s ≠ univ) :
559-
closed_ball x (inf_dist x sᶜ) ⊆ closure s :=
560-
begin
561-
by_cases hx' : x ∈ closure sᶜ,
562-
{ rw [mem_closure_iff_inf_dist_zero (nonempty_compl.2 hs)] at hx',
563-
simpa [hx'] using subset_closure hx },
564-
{ rw [closure_compl, mem_compl_iff, not_not, mem_interior_iff_mem_nhds] at hx',
565-
exact closed_ball_inf_dist_compl_subset_closure' hx' hs }
566-
end
567-
568542
/-! ### Distance of a point to a set as a function into `ℝ≥0`. -/
569543

570544
/-- The minimal distance of a point to a set as a `ℝ≥0` -/

src/topology/metric_space/pi_nat.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Copyright (c) 2022 Sébastien Gouëzel. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Sébastien Gouëzel
55
-/
6+
import tactic.ring_exp
67
import topology.metric_space.hausdorff_distance
78

89
/-!

src/topology/metric_space/polish.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Copyright (c) 2022 Sébastien Gouëzel. All rights reserved.
33
Released under Apache 2.0 license as described in the file LICENSE.
44
Authors: Sébastien Gouëzel
55
-/
6+
import analysis.normed_space.basic
67
import topology.metric_space.pi_nat
78
import topology.metric_space.isometry
89
import topology.metric_space.gluing
@@ -19,7 +20,7 @@ In this file, we establish the basic properties of Polish spaces.
1920
* `polish_space α` is a mixin typeclass on a topological space, requiring that the topology is
2021
second-countable and compatible with a complete metric. To endow the space with such a metric,
2122
use in a proof `letI := upgrade_polish_space α`.
22-
We register an instance from complete second-countable metric spaces to polish spaces, not the
23+
We register an instance from complete second-countable metric spaces to Polish spaces, not the
2324
other way around.
2425
* We register that countable products and sums of Polish spaces are Polish.
2526
* `is_closed.polish_space`: a closed subset of a Polish space is Polish.

0 commit comments

Comments
 (0)