@@ -175,9 +175,12 @@ end general
175175
176176section bounded_sets
177177
178- variables {𝕜₁ 𝕜₂ : Type *} [normed_field 𝕜₁] [normed_field 𝕜₂] {σ : 𝕜₁ →+* 𝕜₂} {E E' F F' : Type *}
178+ variables {𝕜₁ 𝕜₂ 𝕜₃ : Type *} [normed_field 𝕜₁] [normed_field 𝕜₂] [normed_field 𝕜₃]
179+ {σ : 𝕜₁ →+* 𝕜₂} {τ : 𝕜₂ →+* 𝕜₃} {ρ : 𝕜₁ →+* 𝕜₃} [ring_hom_comp_triple σ τ ρ]
180+ {E E' F F' G : Type *}
179181 [add_comm_group E] [module 𝕜₁ E] [add_comm_group E'] [module ℝ E']
180182 [add_comm_group F] [module 𝕜₂ F] [add_comm_group F'] [module ℝ F']
183+ [add_comm_group G] [module 𝕜₃ G]
181184 [topological_space E]
182185
183186/-- The topology of bounded convergence on `E →L[𝕜] F`. This coincides with the topology induced by
@@ -224,6 +227,49 @@ protected lemma has_basis_nhds_zero [topological_space F]
224227 (λ SV, {f : E →SL[σ] F | ∀ x ∈ SV.1 , f x ∈ SV.2 }) :=
225228continuous_linear_map.has_basis_nhds_zero_of_basis (𝓝 0 ).basis_sets
226229
230+ variables (G) [topological_space F] [topological_space G]
231+
232+ /-- Pre-composition by a *fixed* continuous linear map as a continuous linear map.
233+ Note that in non-normed space it is not always true that composition is continuous
234+ in both variables, so we have to fix one of them. -/
235+ @[simps] def precomp [topological_add_group G] [has_continuous_const_smul 𝕜₃ G]
236+ [ring_hom_surjective σ] [ring_hom_isometric σ] (L : E →SL[σ] F) :
237+ (F →SL[τ] G) →L[𝕜₃] (E →SL[ρ] G) :=
238+ { to_fun := λ f, f.comp L,
239+ map_add' := λ f g, add_comp f g L,
240+ map_smul' := λ a f, smul_comp a f L,
241+ cont :=
242+ begin
243+ letI : uniform_space G := topological_add_group.to_uniform_space G,
244+ haveI : uniform_add_group G := topological_add_comm_group_is_uniform,
245+ rw (strong_topology.embedding_coe_fn _ _ _).continuous_iff,
246+ refine (uniform_on_fun.precomp_uniform_continuous _).continuous.comp
247+ (strong_topology.embedding_coe_fn _ _ _).continuous,
248+ exact λ S hS, hS.image L,
249+ end }
250+
251+ variables (E) {G}
252+
253+ /-- Post-composition by a *fixed* continuous linear map as a continuous linear map.
254+ Note that in non-normed space it is not always true that composition is continuous
255+ in both variables, so we have to fix one of them. -/
256+ @[simps] def postcomp [topological_add_group F] [topological_add_group G]
257+ [has_continuous_const_smul 𝕜₃ G] [has_continuous_const_smul 𝕜₂ F] (L : F →SL[τ] G) :
258+ (E →SL[σ] F) →SL[τ] (E →SL[ρ] G) :=
259+ { to_fun := λ f, L.comp f,
260+ map_add' := comp_add L,
261+ map_smul' := comp_smulₛₗ L,
262+ cont :=
263+ begin
264+ letI : uniform_space G := topological_add_group.to_uniform_space G,
265+ haveI : uniform_add_group G := topological_add_comm_group_is_uniform,
266+ letI : uniform_space F := topological_add_group.to_uniform_space F,
267+ haveI : uniform_add_group F := topological_add_comm_group_is_uniform,
268+ rw (strong_topology.embedding_coe_fn _ _ _).continuous_iff,
269+ exact (uniform_on_fun.postcomp_uniform_continuous L.uniform_continuous).continuous.comp
270+ (strong_topology.embedding_coe_fn _ _ _).continuous
271+ end }
272+
227273end bounded_sets
228274
229275end continuous_linear_map
@@ -249,49 +295,29 @@ variables {𝕜 : Type*} {𝕜₂ : Type*} {𝕜₃ : Type*} {𝕜₄ : Type*}
249295 [ring_hom_inv_pair σ₄₃ σ₃₄]
250296 [ring_hom_comp_triple σ₂₁ σ₁₄ σ₂₄] [ring_hom_comp_triple σ₂₄ σ₄₃ σ₂₃]
251297 [ring_hom_comp_triple σ₁₂ σ₂₃ σ₁₃] [ring_hom_comp_triple σ₁₃ σ₃₄ σ₁₄]
298+ [ring_hom_comp_triple σ₂₃ σ₃₄ σ₂₄] [ring_hom_comp_triple σ₁₂ σ₂₄ σ₁₄]
299+ [ring_hom_isometric σ₁₂] [ring_hom_isometric σ₂₁]
252300
253301include σ₁₄ σ₂₄ σ₁₃ σ₃₄ σ₂₁ σ₂₃
254302
255303/-- A pair of continuous (semi)linear equivalences generates a (semi)linear equivalence between the
256304spaces of continuous (semi)linear maps. -/
257- @[simps] def arrow_congrₛₗ (e₁₂ : E ≃SL[σ₁₂] F) (e₄₃ : H ≃SL[σ₄₃] G) :
258- (E →SL[σ₁₄] H) ≃ₛₗ [σ₄₃] (F →SL[σ₂₃] G) :=
305+ @[simps] def arrow_congrSL (e₁₂ : E ≃SL[σ₁₂] F) (e₄₃ : H ≃SL[σ₄₃] G) :
306+ (E →SL[σ₁₄] H) ≃SL [σ₄₃] (F →SL[σ₂₃] G) :=
259307{ -- given explicitly to help `simps`
260308 to_fun := λ L, (e₄₃ : H →SL[σ₄₃] G).comp (L.comp (e₁₂.symm : F →SL[σ₂₁] E)),
261309 -- given explicitly to help `simps`
262310 inv_fun := λ L, (e₄₃.symm : G →SL[σ₃₄] H).comp (L.comp (e₁₂ : E →SL[σ₁₂] F)),
263311 map_add' := λ f g, by rw [add_comp, comp_add],
264312 map_smul' := λ t f, by rw [smul_comp, comp_smulₛₗ],
313+ continuous_to_fun :=
314+ ((postcomp F e₄₃.to_continuous_linear_map).comp
315+ (precomp H e₁₂.symm.to_continuous_linear_map)).continuous,
316+ continuous_inv_fun :=
317+ ((precomp H e₁₂.to_continuous_linear_map).comp
318+ (postcomp F e₄₃.symm.to_continuous_linear_map)).continuous,
265319 .. e₁₂.arrow_congr_equiv e₄₃, }
266320
267- variables [ring_hom_isometric σ₂₁]
268-
269- lemma arrow_congrₛₗ_continuous (e₁₂ : E ≃SL[σ₁₂] F) (e₄₃ : H ≃SL[σ₄₃] G) :
270- continuous (id (e₁₂.arrow_congrₛₗ e₄₃ : (E →SL[σ₁₄] H) ≃ₛₗ[σ₄₃] (F →SL[σ₂₃] G))) :=
271- begin
272- apply continuous_of_continuous_at_zero,
273- show filter.tendsto _ _ _,
274- simp_rw [(e₁₂.arrow_congrₛₗ e₄₃).map_zero],
275- rw continuous_linear_map.has_basis_nhds_zero.tendsto_iff
276- continuous_linear_map.has_basis_nhds_zero,
277- rintros ⟨sF, sG⟩ ⟨h1 : bornology.is_vonN_bounded 𝕜₂ sF, h2 : sG ∈ nhds (0 :G)⟩,
278- dsimp,
279- refine ⟨(e₁₂.symm '' sF, e₄₃ ⁻¹' sG), ⟨h1.image (e₁₂.symm : F →SL[σ₂₁] E), _⟩,
280- λ _ h _ hx, h _ (set.mem_image_of_mem _ hx)⟩,
281- apply e₄₃.continuous.continuous_at,
282- simpa using h2,
283- end
284-
285- variables [ring_hom_isometric σ₁₂]
286-
287- /-- A pair of continuous (semi)linear equivalences generates an continuous (semi)linear equivalence
288- between the spaces of continuous (semi)linear maps. -/
289- @[simps] def arrow_congrSL (e₁₂ : E ≃SL[σ₁₂] F) (e₄₃ : H ≃SL[σ₄₃] G) :
290- (E →SL[σ₁₄] H) ≃SL[σ₄₃] (F →SL[σ₂₃] G) :=
291- { continuous_to_fun := e₁₂.arrow_congrₛₗ_continuous e₄₃,
292- continuous_inv_fun := e₁₂.symm.arrow_congrₛₗ_continuous e₄₃.symm,
293- .. e₁₂.arrow_congrₛₗ e₄₃, }
294-
295321end semilinear
296322
297323section linear
0 commit comments