@@ -183,3 +183,37 @@ lemma NormedDivisionRing.toNormSMulClass : NormSMulClass α β where
183183 _ = ‖r • x‖ := by rw [norm_inv, ← mul_assoc, mul_inv_cancel₀ (mt norm_eq_zero.1 h), one_mul]
184184
185185end NormedDivisionRing
186+
187+ section NormedDivisionRingModule
188+ variable [NormedDivisionRing α] [SeminormedAddCommGroup β] [Module α β] [NormSMulClass α β]
189+
190+ theorem Metric.smul_image_ball {s : α} (hs : s ≠ 0 ) (x : β) (ε : ℝ) :
191+ (s • ·) '' ball x ε = ball (s • x) (‖s‖ * ε) := by
192+ ext p
193+ simp_rw [Set.mem_image, mem_ball]
194+ constructor
195+ · rintro ⟨y, h1, rfl⟩
196+ simpa [dist_smul₀] using mul_lt_mul_of_pos_left h1 (norm_pos_iff.mpr hs)
197+ · refine fun h ↦ ⟨s⁻¹ • p, ?_, by simp [smul_smul, hs]⟩
198+ refine lt_of_mul_lt_mul_of_nonneg_left ?_ (norm_nonneg s)
199+ rw [← dist_smul₀]
200+ simpa [smul_smul, hs] using h
201+
202+ theorem Metric.smul_image_closedBall {s : α} (hs : s ≠ 0 ) (x : β) (ε : ℝ) :
203+ (s • ·) '' closedBall x ε = closedBall (s • x) (‖s‖ * ε) := by
204+ ext p
205+ simp_rw [Set.mem_image, mem_closedBall]
206+ constructor
207+ · rintro ⟨y, h1, rfl⟩
208+ simpa [dist_smul₀] using mul_le_mul_of_nonneg_left h1 (norm_nonneg s)
209+ · refine fun h ↦ ⟨s⁻¹ • p, ?_, by simp [smul_smul, hs]⟩
210+ refine le_of_mul_le_mul_of_pos_left ?_ (norm_pos_iff.mpr hs)
211+ rw [← dist_smul₀]
212+ simpa [smul_smul, hs] using h
213+
214+ theorem Metric.smul_image_sphere {s : α} (hs : s ≠ 0 ) (x : β) (ε : ℝ) :
215+ (s • ·) '' sphere x ε = sphere (s • x) (‖s‖ * ε) := by
216+ simp_rw [← Metric.closedBall_diff_ball, Set.image_diff (smul_right_injective β hs),
217+ smul_image_ball hs, smul_image_closedBall hs]
218+
219+ end NormedDivisionRingModule
0 commit comments