@@ -41,44 +41,52 @@ variable [AddCommGroup E] [UniformSpace E] [IsUniformAddGroup E]
4141 [ContinuousConstSMul 𝕜 Eₗ] [ContinuousConstSMul 𝕜₂ F]
4242 {σ₁₂ : 𝕜 →+* 𝕜₂} (f g : E →SL[σ₁₂] F) [CompleteSpace F] (e : E →L[𝕜] Eₗ)
4343
44- variable (h_dense : DenseRange e) (h_e : IsUniformInducing e)
45-
44+ open scoped Classical in
4645/-- Extension of a continuous linear map `f : E →SL[σ₁₂] F`, with `E` a normed space and `F` a
4746complete normed space, along a uniform and dense embedding `e : E →L[𝕜] Eₗ`. -/
4847def extend : Eₗ →SL[σ₁₂] F :=
48+ if h : DenseRange e ∧ IsUniformInducing e then
4949 -- extension of `f` is continuous
50- have cont := (uniformContinuous_uniformly_extend h_e h_dense f.uniformContinuous).continuous
50+ have cont := (uniformContinuous_uniformly_extend h. 2 h. 1 f.uniformContinuous).continuous
5151 -- extension of `f` agrees with `f` on the domain of the embedding `e`
52- have eq := uniformly_extend_of_ind h_e h_dense f.uniformContinuous
53- { toFun := (h_e. isDenseInducing h_dense ).extend f
52+ have eq := uniformly_extend_of_ind h. 2 h. 1 f.uniformContinuous
53+ { toFun := (h. 2 . isDenseInducing h. 1 ).extend f
5454 map_add' := by
55- refine h_dense .induction_on₂ ?_ ?_
55+ refine h. 1 .induction_on₂ ?_ ?_
5656 · exact isClosed_eq (cont.comp continuous_add)
5757 ((cont.comp continuous_fst).add (cont.comp continuous_snd))
5858 · intro x y
5959 simp only [eq, ← e.map_add]
6060 exact f.map_add _ _
6161 map_smul' := fun k => by
62- refine fun b => h_dense .induction_on b ?_ ?_
62+ refine fun b => h. 1 .induction_on b ?_ ?_
6363 · exact isClosed_eq (cont.comp (continuous_const_smul _))
6464 ((continuous_const_smul _).comp cont)
6565 · intro x
6666 rw [← map_smul]
6767 simp only [eq]
6868 exact ContinuousLinearMap.map_smulₛₗ _ _ _
6969 cont }
70+ else 0
7071
71- @[simp]
72- theorem extend_eq (x : E) : extend f e h_dense h_e (e x) = f x :=
73- IsDenseInducing.extend_eq (h_e.isDenseInducing h_dense) f.cont _
72+ variable {e}
7473
75- theorem extend_unique (g : Eₗ →SL[σ₁₂] F) (H : g.comp e = f) : extend f e h_dense h_e = g :=
76- ContinuousLinearMap.coeFn_injective <|
74+ @[simp]
75+ theorem extend_eq (h_dense : DenseRange e) (h_e : IsUniformInducing e) (x : E) :
76+ extend f e (e x) = f x := by
77+ simp only [extend, h_dense, h_e, and_self, ↓reduceDIte, coe_mk', LinearMap.coe_mk, AddHom.coe_mk]
78+ exact IsDenseInducing.extend_eq (h_e.isDenseInducing h_dense) f.cont _
79+
80+ theorem extend_unique (h_dense : DenseRange e) (h_e : IsUniformInducing e) (g : Eₗ →SL[σ₁₂] F)
81+ (H : g.comp e = f) : extend f e = g := by
82+ simp only [extend, h_dense, h_e, and_self, ↓reduceDIte]
83+ exact ContinuousLinearMap.coeFn_injective <|
7784 uniformly_extend_unique h_e h_dense (ContinuousLinearMap.ext_iff.1 H) g.continuous
7885
7986@[simp]
80- theorem extend_zero : extend (0 : E →SL[σ₁₂] F) e h_dense h_e = 0 :=
81- extend_unique _ _ _ _ _ (zero_comp _)
87+ theorem extend_zero (h_dense : DenseRange e) (h_e : IsUniformInducing e) :
88+ extend (0 : E →SL[σ₁₂] F) e = 0 :=
89+ extend_unique _ h_dense h_e _ (zero_comp _)
8290
8391end Ring
8492
@@ -87,16 +95,16 @@ section NormedField
8795variable [NontriviallyNormedField 𝕜] [NontriviallyNormedField 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂}
8896 [NormedAddCommGroup E] [NormedAddCommGroup Eₗ] [NormedAddCommGroup F] [NormedAddCommGroup Fₗ]
8997 [NormedSpace 𝕜 E] [NormedSpace 𝕜 Eₗ] [NormedSpace 𝕜₂ F] [NormedSpace 𝕜₂ Fₗ] [CompleteSpace F]
90- (f g : E →SL[σ₁₂] F) ( e : E →L[𝕜] Eₗ)
98+ (f g : E →SL[σ₁₂] F) { e : E →L[𝕜] Eₗ}
9199
92100variable (h_dense : DenseRange e) (h_e : IsUniformInducing e)
93101
94- variable {N : ℝ≥0 } (h_e : ∀ x, ‖x‖ ≤ N * ‖e x‖) [RingHomIsometric σ₁₂]
102+ variable {N : ℝ≥0 } [RingHomIsometric σ₁₂]
95103
96104/-- If a dense embedding `e : E →L[𝕜] G` expands the norm by a constant factor `N⁻¹`, then the
97105norm of the extension of `f` along `e` is bounded by `N * ‖f‖`. -/
98- theorem opNorm_extend_le :
99- ‖f.extend e h_dense (isUniformEmbedding_of_bound _ h_e).isUniformInducing ‖ ≤ N * ‖f‖ := by
106+ theorem opNorm_extend_le (h_dense : DenseRange e) (h_e : ∀ x, ‖x‖ ≤ N * ‖e x‖) :
107+ ‖f.extend e‖ ≤ N * ‖f‖ := by
100108 -- Add `opNorm_le_of_dense`?
101109 refine opNorm_le_bound _ ?_ (isClosed_property h_dense (isClosed_le ?_ ?_) fun x ↦ ?_)
102110 · cases le_total 0 N with
@@ -108,7 +116,7 @@ theorem opNorm_extend_le :
108116 simp
109117 · exact (cont _).norm
110118 · exact continuous_const.mul continuous_norm
111- · rw [extend_eq]
119+ · rw [extend_eq _ h_dense (isUniformEmbedding_of_bound _ h_e).isUniformInducing ]
112120 calc
113121 ‖f x‖ ≤ ‖f‖ * ‖x‖ := le_opNorm _ _
114122 _ ≤ ‖f‖ * (N * ‖e x‖) := mul_le_mul_of_nonneg_left (h_e x) (norm_nonneg _)
0 commit comments