@@ -93,6 +93,8 @@ instance instUniformContinuousConstSMul {M : Type*}
93
93
haveI := uniformContinuousConstSMul_of_continuousConstSMul M F
94
94
uniformEmbedding_toUniformOnFun.uniformContinuousConstSMul fun _ _ ↦ rfl
95
95
96
+ section CompleteSpace
97
+
96
98
variable [∀ i, ContinuousSMul 𝕜 (E i)] [ContinuousConstSMul 𝕜 F] [CompleteSpace F] [T2Space F]
97
99
98
100
open UniformOnFun in
@@ -116,6 +118,30 @@ instance instCompleteSpace [∀ i, TopologicalAddGroup (E i)] [SequentialSpace (
116
118
CompleteSpace (ContinuousMultilinearMap 𝕜 E F) :=
117
119
completeSpace <| .of_seq fun _u x hux ↦ (hux.isVonNBounded_range 𝕜).insert x
118
120
121
+ end CompleteSpace
122
+
123
+ section RestrictScalars
124
+
125
+ variable (𝕜' : Type *) [NontriviallyNormedField 𝕜'] [NormedAlgebra 𝕜' 𝕜]
126
+ [∀ i, Module 𝕜' (E i)] [∀ i, IsScalarTower 𝕜' 𝕜 (E i)] [Module 𝕜' F] [IsScalarTower 𝕜' 𝕜 F]
127
+ [∀ i, ContinuousSMul 𝕜 (E i)]
128
+
129
+ theorem uniformEmbedding_restrictScalars :
130
+ UniformEmbedding
131
+ (restrictScalars 𝕜' : ContinuousMultilinearMap 𝕜 E F → ContinuousMultilinearMap 𝕜' E F) := by
132
+ letI : NontriviallyNormedField 𝕜 :=
133
+ ⟨let ⟨x, hx⟩ := @NontriviallyNormedField.non_trivial 𝕜' _; ⟨algebraMap 𝕜' 𝕜 x, by simpa⟩⟩
134
+ rw [← uniformEmbedding_toUniformOnFun.of_comp_iff]
135
+ convert uniformEmbedding_toUniformOnFun using 4 with s
136
+ exact ⟨fun h ↦ h.extend_scalars _, fun h ↦ h.restrict_scalars _⟩
137
+
138
+ theorem uniformContinuous_restrictScalars :
139
+ UniformContinuous
140
+ (restrictScalars 𝕜' : ContinuousMultilinearMap 𝕜 E F → ContinuousMultilinearMap 𝕜' E F) :=
141
+ (uniformEmbedding_restrictScalars 𝕜').uniformContinuous
142
+
143
+ end RestrictScalars
144
+
119
145
end UniformAddGroup
120
146
121
147
variable [TopologicalSpace F] [TopologicalAddGroup F]
@@ -171,6 +197,35 @@ theorem continuous_coe_fun :
171
197
instance instT2Space [T2Space F] : T2Space (ContinuousMultilinearMap 𝕜 E F) :=
172
198
.of_injective_continuous DFunLike.coe_injective continuous_coe_fun
173
199
200
+ section RestrictScalars
201
+
202
+ variable {𝕜' : Type *} [NontriviallyNormedField 𝕜'] [NormedAlgebra 𝕜' 𝕜]
203
+ [∀ i, Module 𝕜' (E i)] [∀ i, IsScalarTower 𝕜' 𝕜 (E i)] [Module 𝕜' F] [IsScalarTower 𝕜' 𝕜 F]
204
+
205
+ theorem embedding_restrictScalars :
206
+ Embedding
207
+ (restrictScalars 𝕜' : ContinuousMultilinearMap 𝕜 E F → ContinuousMultilinearMap 𝕜' E F) :=
208
+ letI : UniformSpace F := TopologicalAddGroup.toUniformSpace F
209
+ haveI : UniformAddGroup F := comm_topologicalAddGroup_is_uniform
210
+ (uniformEmbedding_restrictScalars _).embedding
211
+
212
+ @[continuity, fun_prop]
213
+ theorem continuous_restrictScalars :
214
+ Continuous
215
+ (restrictScalars 𝕜' : ContinuousMultilinearMap 𝕜 E F → ContinuousMultilinearMap 𝕜' E F) :=
216
+ embedding_restrictScalars.continuous
217
+
218
+ variable (𝕜') in
219
+ /-- `ContinuousMultilinearMap.restrictScalars` as a `ContinuousLinearMap`. -/
220
+ @[simps (config := .asFn) apply]
221
+ def restrictScalarsLinear [ContinuousConstSMul 𝕜' F] :
222
+ ContinuousMultilinearMap 𝕜 E F →L[𝕜'] ContinuousMultilinearMap 𝕜' E F where
223
+ toFun := restrictScalars 𝕜'
224
+ map_add' _ _ := rfl
225
+ map_smul' _ _ := rfl
226
+
227
+ end RestrictScalars
228
+
174
229
variable (𝕜 E F)
175
230
176
231
/-- The application of a multilinear map as a `ContinuousLinearMap`. -/
0 commit comments