@@ -7,6 +7,7 @@ Authors: Filippo A. E. Nuccio
77import Mathlib.Analysis.Convex.Uniform
88import Mathlib.Analysis.Normed.Module.WeakDual
99import Mathlib.LinearAlgebra.Dual.Defs
10+ import Mathlib.Topology.Algebra.Module.LinearMap
1011
1112open scoped Topology NNReal
1213
@@ -20,6 +21,7 @@ variable [NormedAddCommGroup E] [SeminormedAddCommGroup F]
2021variable [DenselyNormedField 𝕜] [NormedAlgebra ℝ 𝕜] [NontriviallyNormedField 𝕜']
2122variable [NormedSpace 𝕜 E] [NormedSpace 𝕜' F] {σ₁₂ : 𝕜 →+* 𝕜'} [RingHomIsometric σ₁₂]
2223
24+
2325theorem exists_nnorm_eq_one_lt_apply_of_lt_opNorm (f : E →SL[σ₁₂] F) {r : ℝ} (hr₀ : 0 ≤ r)
2426 (hr : r < ‖f‖) : ∃ x : E, ‖x‖ = 1 ∧ r < ‖f x‖ := by
2527 obtain ⟨x, hlt, hr⟩ := exists_lt_apply_of_lt_opNorm f hr
@@ -57,12 +59,15 @@ end ContinuousLinearMap
5759
5860end opNorm
5961
60- variable {E : Type *} [NormedAddCommGroup E] [NormedSpace ℝ E]
62+ variable {𝕜 𝕜₁ 𝕜₂ E E₁ E₂ : Type *} [RCLike 𝕜₂] [NontriviallyNormedField 𝕜] [NormedField 𝕜₁]
63+ [NormedAddCommGroup E] [NormedSpace 𝕜 E]
64+ [SeminormedAddCommGroup E₁] [NormedSpace 𝕜₁ E₁]
65+ [NormedAddCommGroup E₂] [NormedSpace 𝕜₂ E₂]
6166
6267open Metric NormedSpace Function ContinuousLinearMap Pointwise
6368
64- local notation3 "E**" => StrongDual ℝ (StrongDual ℝ E)
65- local notation3 "𝒰" => (inclusionInDoubleDual ℝ E ) '' closedBall 0 1
69+ local notation3 "E**" => StrongDual 𝕜 (StrongDual 𝕜 E)
70+ local notation3 "𝒰" => (inclusionInDoubleDual 𝕜₂ E₂ ) '' closedBall 0 1
6671
6772-- **TODO** : Change name, generalise to every radious/centre, align assumptions with
6873-- `double_dual_bound`
@@ -71,39 +76,40 @@ local notation3 "𝒰" => (inclusionInDoubleDual ℝ E) '' closedBall 0 1
7176-- grw [← hxa, mem_closedBall_zero_iff, double_dual_bound, ← mem_closedBall_zero_iff]
7277-- assumption
7378
74- lemma IsClosed_image_ball [CompleteSpace E] : IsClosed 𝒰 :=
75- (inclusionInDoubleDualLi ℝ E).isometry.isClosedEmbedding.isClosedMap _ isClosed_closedBall
79+ -- **FAE** serve RCLike, not-Semi(Normed)
80+ lemma IsClosed_image_ball [CompleteSpace E₂] : IsClosed 𝒰 :=
81+ (inclusionInDoubleDualLi 𝕜₂ E₂).isometry.isClosedEmbedding.isClosedMap _ isClosed_closedBall
7682
83+ -- **FAE** serve Nontriviallynormed, basta SeminormedAddGroup
7784lemma WeakClosure_subset_closedBall {s : Set E**} {c : E**} {ε : ℝ} (hs : s ⊆ closedBall c ε) :
78- letI 𝒯 : TopologicalSpace (WeakDual ℝ (StrongDual ℝ E)) := inferInstance
85+ letI 𝒯 : TopologicalSpace (WeakDual 𝕜 (StrongDual 𝕜 E)) := inferInstance
7986 (closure[𝒯] s) ⊆ closedBall (α := E**) c ε :=
8087 closure_minimal hs (WeakDual.isClosed_closedBall ..)
8188
8289
8390-- **TODO** Check not in Mathlib, miminise assumptions, golf proof.
84- lemma surjective_iff_sphere_subset_range {F : Type *} [NormedAddCommGroup F] [NormedSpace ℝ F]
85- (f : E →L[ℝ] F) : Surjective f ↔ ∃ ρ > 0 , sphere 0 ρ ⊆ Set.range f := by
91+ lemma surjective_iff_sphere_subset_range [Algebra ℝ 𝕜₁]
92+ {F : Type *} [NormedAddCommGroup F] [Module 𝕜₁ F]
93+ [NormedSpace ℝ F] [IsScalarTower ℝ 𝕜₁ F] [Module ℝ E₁] [IsScalarTower ℝ 𝕜₁ E₁]
94+ (f : E₁ →L[𝕜₁] F) : Surjective f ↔ ∃ ρ > 0 , sphere 0 ρ ⊆ Set.range f := by
8695 refine ⟨fun _ ↦ ⟨1 , by simp_all⟩, fun ⟨ρ, ρ_pos, sphere_le⟩ z ↦ ?_⟩
8796 by_cases hz : z = 0
8897 · exact ⟨0 , by simp_all⟩
89- set α := ‖z‖ with hα_def
90- have hα : α ≠ 0 := by
91- rwa [norm_ne_zero_iff]
92- set y := (ρ * α⁻¹) • z with hy_def
93- have hy : y ∈ sphere 0 ρ := by
94- simp
95- calc ‖y‖ = ‖(ρ * α⁻¹) • z‖ := by rw [hy_def]
96- _ = |ρ * α⁻¹| * ‖z‖ := by rw [norm_smul, Real.norm_eq_abs]
97- _ = |ρ * α⁻¹| * |α| := by simp [hα_def]
98- _ = ρ := by
99- simpa [← abs_mul, mul_assoc, inv_mul_cancel₀ hα] using le_of_lt ρ_pos
100- obtain ⟨x, hx⟩ := sphere_le hy
98+ set α := ‖z‖
99+ have hα : α ≠ 0 := by rwa [norm_ne_zero_iff]
100+ have h_mem : (ρ * α⁻¹) • z ∈ sphere 0 ρ := by
101+ simp only [mem_sphere_iff_norm, sub_zero]
102+ calc ‖(ρ * α⁻¹) • z‖ = |ρ * α⁻¹| * |α| := by rw [norm_smul, Real.norm_eq_abs, abs_mul,
103+ abs_norm]
104+ _ = ρ := by simpa [← abs_mul, mul_assoc, inv_mul_cancel₀ hα] using le_of_lt ρ_pos
105+ obtain ⟨x, hx⟩ := sphere_le h_mem
101106 use (ρ⁻¹ * α) • x
102- rw [map_smul, hx, hy_def, ← smul_assoc, smul_eq_mul, show (ρ⁻¹ * α * (ρ * α⁻¹)) = 1 by grind,
103- one_smul]
107+ simp [hx, ← smul_assoc, show (ρ⁻¹ * α * (ρ * α⁻¹)) = 1 by grind]
104108
105- lemma surjective_iff_closedBall_subset_range {F : Type *} [NormedAddCommGroup F] [NormedSpace ℝ F]
106- (f : E →L[ℝ] F) : Surjective f ↔ ∃ ρ > 0 , closedBall 0 ρ ⊆ Set.range f :=
109+ lemma surjective_iff_closedBall_subset_range [Algebra ℝ 𝕜₁]
110+ {F : Type *} [NormedAddCommGroup F] [Module 𝕜₁ F]
111+ [NormedSpace ℝ F] [IsScalarTower ℝ 𝕜₁ F] [Module ℝ E₁] [IsScalarTower ℝ 𝕜₁ E₁]
112+ (f : E₁ →L[𝕜₁] F) : Surjective f ↔ ∃ ρ > 0 , closedBall 0 ρ ⊆ Set.range f :=
107113 ⟨fun _ ↦ ⟨1 , by simp_all⟩,
108114 fun ⟨_, ρ_pos, sphere_le⟩ ↦ (surjective_iff_sphere_subset_range f).mpr ⟨_, ρ_pos, fun _ hx ↦
109115 sphere_le (sphere_subset_closedBall hx)⟩⟩
@@ -116,7 +122,7 @@ the pairing whose *first* variable is in `M*` and the second is in `M`. -/
116122axiom goldstine : closure (X := (WeakBilin (strongDualPairing ℝ (StrongDual ℝ E))))
117123 (inclusionInDoubleDual ℝ E '' (closedBall 0 1 )) = closedBall (0 : E**) 1 -- := by sorry
118124
119- lemma exists_sub_one_lt {ξ : E**} {δ : ℝ} (hδ₀ : 0 < δ) (hδ₁ : δ < 1 ) (h : ‖ξ‖ = 1 ) :
125+ lemma exists_functional_sub_one_lt {ξ : E**} {δ : ℝ} (hδ₀ : 0 < δ) (hδ₁ : δ < 1 ) (h : ‖ξ‖ = 1 ) :
120126 ∃ φ : StrongDual ℝ E, ‖φ‖ = 1 ∧ |ξ φ - 1 | < δ := by
121127 obtain ⟨φ, hφ_eq, hφ_lt⟩ := exists_nnorm_eq_one_lt_apply_of_lt_opNorm
122128 (f := ξ) (r := 1 - δ) (by grind) (by grind)
@@ -146,7 +152,7 @@ lemma exists_ball_lt [UniformConvexSpace E] {ξ : E**} {ε : ℝ} (hε : 0 < ε)
146152 _ = min δ' (1 /2 ) := by rfl
147153 _ ≤ (1 /2 ) := min_le_right ..
148154 _ < 1 := by linarith
149- obtain ⟨φ, hφ_norm, hφ_lt⟩ := exists_sub_one_lt hδ₀ hδ₁ hξ_norm
155+ obtain ⟨φ, hφ_norm, hφ_lt⟩ := exists_functional_sub_one_lt hδ₀ hδ₁ hξ_norm
150156 replace hφ_lt : |ξ φ - 1 | < δ'/2 := by
151157 apply lt_of_lt_of_le hφ_lt
152158 rw [div_le_div_iff_of_pos_right (zero_lt_two), δ_def]
0 commit comments