Skip to content

Commit 16962a2

Browse files
committed
feat: drop unneeded assumptions (#5296)
Drop unneeded assumptions in `gauge_lt_one_of_mem_of_open` and `gauge_lt_of_mem_smul`
1 parent d57027b commit 16962a2

File tree

2 files changed

+22
-26
lines changed

2 files changed

+22
-26
lines changed

Mathlib/Analysis/Convex/Gauge.lean

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -330,25 +330,18 @@ section TopologicalSpace
330330

331331
variable [TopologicalSpace E] [ContinuousSMul ℝ E]
332332

333+
open Filter in
333334
theorem interior_subset_gauge_lt_one (s : Set E) : interior s ⊆ { x | gauge s x < 1 } := by
334335
intro x hx
335-
let f : ℝ → E := fun t => t • x
336-
have hf : Continuous f := by continuity
337-
let s' := f ⁻¹' interior s
338-
have hs' : IsOpen s' := hf.isOpen_preimage _ isOpen_interior
339-
have one_mem : (1 : ℝ) ∈ s' := by simpa only [Set.mem_preimage, one_smul]
340-
obtain ⟨ε, hε₀, hε⟩ := (Metric.nhds_basis_closedBall.1 _).1 (isOpen_iff_mem_nhds.1 hs' 1 one_mem)
341-
rw [Real.closedBall_eq_Icc] at hε
342-
have hε₁ : 0 < 1 + ε := hε₀.trans (lt_one_add ε)
343-
have : (1 + ε)⁻¹ < 1 := by
344-
rw [inv_lt_one_iff]
345-
right
346-
linarith
347-
refine' (gauge_le_of_mem (inv_nonneg.2 hε₁.le) _).trans_lt this
348-
rw [mem_inv_smul_set_iff₀ hε₁.ne']
349-
exact
350-
interior_subset
351-
(hε ⟨(sub_le_self _ hε₀.le).trans ((le_add_iff_nonneg_right _).2 hε₀.le), le_rfl⟩)
336+
have H₁ : Tendsto (fun r : ℝ ↦ r⁻¹ • x) (𝓝[<] 1) (𝓝 ((1 : ℝ)⁻¹ • x)) :=
337+
((tendsto_id.inv₀ one_ne_zero).smul tendsto_const_nhds).mono_left inf_le_left
338+
rw [inv_one, one_smul] at H₁
339+
have H₂ : ∀ᶠ r in 𝓝[<] (1 : ℝ), x ∈ r • s ∧ 0 < r ∧ r < 1
340+
· filter_upwards [H₁ (mem_interior_iff_mem_nhds.1 hx), Ioo_mem_nhdsWithin_Iio' one_pos]
341+
intro r h₁ h₂
342+
exact ⟨(mem_smul_set_iff_inv_smul_mem₀ h₂.1.ne' _ _).2 h₁, h₂⟩
343+
rcases H₂.exists with ⟨r, hxr, hr₀, hr₁⟩
344+
exact (gauge_le_of_mem hr₀.le hxr).trans_lt hr₁
352345
#align interior_subset_gauge_lt_one interior_subset_gauge_lt_one
353346

354347
theorem gauge_lt_one_eq_self_of_open (hs₁ : Convex ℝ s) (hs₀ : (0 : E) ∈ s) (hs₂ : IsOpen s) :
@@ -358,17 +351,20 @@ theorem gauge_lt_one_eq_self_of_open (hs₁ : Convex ℝ s) (hs₀ : (0 : E) ∈
358351
exact hs₂.interior_eq.symm
359352
#align gauge_lt_one_eq_self_of_open gauge_lt_one_eq_self_of_open
360353

361-
theorem gauge_lt_one_of_mem_of_open (hs₁ : Convex ℝ s) (hs₀ : (0 : E) ∈ s) (hs₂ : IsOpen s) {x : E}
362-
(hx : x ∈ s) : gauge s x < 1 := by rwa [← gauge_lt_one_eq_self_of_open hs₁ hs₀ hs₂] at hx
363-
#align gauge_lt_one_of_mem_of_open gauge_lt_one_of_mem_of_open
354+
-- porting note: droped unneeded assumptions
355+
theorem gauge_lt_one_of_mem_of_open (hs₂ : IsOpen s) {x : E} (hx : x ∈ s) :
356+
gauge s x < 1 :=
357+
interior_subset_gauge_lt_one s <| by rwa [hs₂.interior_eq]
358+
#align gauge_lt_one_of_mem_of_open gauge_lt_one_of_mem_of_openₓ
364359

365-
theorem gauge_lt_of_mem_smul (x : E) (ε : ℝ) (hε : 0 < ε) (hs₀ : (0 : E) ∈ s) (hs₁ : Convex ℝ s)
366-
(hs₂ : IsOpen s) (hx : x ∈ ε • s) : gauge s x < ε := by
360+
-- porting note: droped unneeded assumptions
361+
theorem gauge_lt_of_mem_smul (x : E) (ε : ℝ) (hε : 0 < ε) (hs₂ : IsOpen s) (hx : x ∈ ε • s) :
362+
gauge s x < ε := by
367363
have : ε⁻¹ • x ∈ s := by rwa [← mem_smul_set_iff_inv_smul_mem₀ hε.ne']
368-
have h_gauge_lt := gauge_lt_one_of_mem_of_open hs₁ hs₀ hs₂ this
364+
have h_gauge_lt := gauge_lt_one_of_mem_of_open hs₂ this
369365
rwa [gauge_smul_of_nonneg (inv_nonneg.2 hε.le), smul_eq_mul, inv_mul_lt_iff hε, mul_one]
370366
at h_gauge_lt
371-
#align gauge_lt_of_mem_smul gauge_lt_of_mem_smul
367+
#align gauge_lt_of_mem_smul gauge_lt_of_mem_smulₓ
372368

373369
end TopologicalSpace
374370

@@ -404,7 +400,7 @@ variable {hs₀ : Balanced 𝕜 s} {hs₁ : Convex ℝ s} {hs₂ : Absorbent ℝ
404400

405401
theorem gaugeSeminorm_lt_one_of_open (hs : IsOpen s) {x : E} (hx : x ∈ s) :
406402
gaugeSeminorm hs₀ hs₁ hs₂ x < 1 :=
407-
gauge_lt_one_of_mem_of_open hs₁ hs₂.zero_mem hs hx
403+
gauge_lt_one_of_mem_of_open hs hx
408404
#align gauge_seminorm_lt_one_of_open gaugeSeminorm_lt_one_of_open
409405

410406
theorem gaugeSeminorm_ball_one (hs : IsOpen s) : (gaugeSeminorm hs₀ hs₁ hs₂).ball 0 1 = s := by

Mathlib/Analysis/NormedSpace/HahnBanach/Separation.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ theorem separate_convex_open_set [TopologicalSpace E] [AddCommGroup E] [Topologi
5858
rw [← f.domain.coe_mk x₀ (Submodule.mem_span_singleton_self _), hφ₁,
5959
LinearPMap.mkSpanSingleton'_apply_self]
6060
have hφ₄ : ∀ x ∈ s, φ x < 1 := fun x hx =>
61-
(hφ₂ x).trans_lt (gauge_lt_one_of_mem_of_open hs₁ hs₀ hs₂ hx)
61+
(hφ₂ x).trans_lt (gauge_lt_one_of_mem_of_open hs₂ hx)
6262
· refine' ⟨⟨φ, _⟩, hφ₃, hφ₄⟩
6363
refine'
6464
φ.continuous_of_nonzero_on_open _ (hs₂.vadd (-x₀)) (Nonempty.vadd_set ⟨0, hs₀⟩)

0 commit comments

Comments
 (0)