@@ -24,11 +24,11 @@ variables {W Q : Type*} [normed_group W] [metric_space Q] [normed_add_torsor W Q
24
24
25
25
section normed_space
26
26
27
- variables {𝕜 : Type *} [normed_field 𝕜] [normed_space 𝕜 V]
27
+ variables {𝕜 : Type *} [normed_field 𝕜] [normed_space 𝕜 V] [normed_space 𝕜 W]
28
28
29
29
open affine_map
30
30
31
- lemma affine_subspace.is_closed_direction_iff [normed_space 𝕜 W] (s : affine_subspace 𝕜 Q) :
31
+ lemma affine_subspace.is_closed_direction_iff (s : affine_subspace 𝕜 Q) :
32
32
is_closed (s.direction : set W) ↔ is_closed (s : set Q) :=
33
33
begin
34
34
rcases s.eq_bot_or_nonempty with rfl|⟨x, hx⟩, { simp [is_closed_singleton] },
@@ -60,15 +60,6 @@ lemma lipschitz_with_line_map (p₁ p₂ : P) :
60
60
lipschitz_with.of_dist_le_mul $ λ c₁ c₂,
61
61
((dist_line_map_line_map p₁ p₂ c₁ c₂).trans (mul_comm _ _)).le
62
62
63
- omit V
64
-
65
- lemma antilipschitz_with_line_map [normed_space 𝕜 W] {p₁ p₂ : Q} (h : p₁ ≠ p₂) :
66
- antilipschitz_with (nndist p₁ p₂)⁻¹ (line_map p₁ p₂ : 𝕜 → Q) :=
67
- antilipschitz_with.of_le_mul_dist $ λ c₁ c₂, by rw [dist_line_map_line_map, nnreal.coe_inv,
68
- ← dist_nndist, mul_left_comm, inv_mul_cancel (dist_ne_zero.2 h), mul_one]
69
-
70
- include V
71
-
72
63
@[simp] lemma dist_line_map_left (p₁ p₂ : P) (c : 𝕜) :
73
64
dist (line_map p₁ p₂ c) p₁ = ∥c∥ * dist p₁ p₂ :=
74
65
by simpa only [line_map_apply_zero, dist_zero_right] using dist_line_map_line_map p₁ p₂ c 0
@@ -93,6 +84,8 @@ by rw [homothety_eq_line_map, dist_line_map_right]
93
84
dist p₂ (homothety p₁ c p₂) = ∥1 - c∥ * dist p₁ p₂ :=
94
85
by rw [dist_comm, dist_homothety_self]
95
86
87
+ section invertible_two
88
+
96
89
variables [invertible (2 :𝕜)]
97
90
98
91
@[simp] lemma dist_left_midpoint (p₁ p₂ : P) :
@@ -120,6 +113,40 @@ begin
120
113
exact div_le_div_of_le_of_nonneg (norm_add_le _ _) (norm_nonneg _),
121
114
end
122
115
116
+ end invertible_two
117
+
118
+ omit V
119
+ include W
120
+
121
+ lemma antilipschitz_with_line_map {p₁ p₂ : Q} (h : p₁ ≠ p₂) :
122
+ antilipschitz_with (nndist p₁ p₂)⁻¹ (line_map p₁ p₂ : 𝕜 → Q) :=
123
+ antilipschitz_with.of_le_mul_dist $ λ c₁ c₂, by rw [dist_line_map_line_map, nnreal.coe_inv,
124
+ ← dist_nndist, mul_left_comm, inv_mul_cancel (dist_ne_zero.2 h), mul_one]
125
+
126
+ lemma eventually_homothety_mem_of_mem_interior (x : Q) {s : set Q} {y : Q} (hy : y ∈ interior s) :
127
+ ∀ᶠ δ in 𝓝 (1 : 𝕜), homothety x δ y ∈ s :=
128
+ begin
129
+ rw (normed_group.nhds_basis_norm_lt (1 : 𝕜)).eventually_iff,
130
+ cases eq_or_ne y x with h h, { use 1 , simp [h.symm, interior_subset hy], },
131
+ have hxy : 0 < ∥y -ᵥ x∥, { rwa [norm_pos_iff, vsub_ne_zero], },
132
+ obtain ⟨u, hu₁, hu₂, hu₃⟩ := mem_interior.mp hy,
133
+ obtain ⟨ε, hε, hyε⟩ := metric.is_open_iff.mp hu₂ y hu₃,
134
+ refine ⟨ε / ∥y -ᵥ x∥, div_pos hε hxy, λ δ (hδ : ∥δ - 1 ∥ < ε / ∥y -ᵥ x∥), hu₁ (hyε _)⟩,
135
+ rw [lt_div_iff hxy, ← norm_smul, sub_smul, one_smul] at hδ,
136
+ rwa [homothety_apply, metric.mem_ball, dist_eq_norm_vsub W, vadd_vsub_eq_sub_vsub],
137
+ end
138
+
139
+ lemma eventually_homothety_image_subset_of_finite_subset_interior
140
+ (x : Q) {s : set Q} {t : set Q} (ht : t.finite) (h : t ⊆ interior s) :
141
+ ∀ᶠ δ in 𝓝 (1 : 𝕜), homothety x δ '' t ⊆ s :=
142
+ begin
143
+ suffices : ∀ y ∈ t, ∀ᶠ δ in 𝓝 (1 : 𝕜), homothety x δ y ∈ s,
144
+ { simp_rw set.image_subset_iff,
145
+ exact (filter.eventually_all_finite ht).mpr this , },
146
+ intros y hy,
147
+ exact eventually_homothety_mem_of_mem_interior x (h hy),
148
+ end
149
+
123
150
end normed_space
124
151
125
152
variables [normed_space ℝ V] [normed_space ℝ W]
0 commit comments