6 |
6 |
7 theory Bounded_Linear_Function |
7 theory Bounded_Linear_Function |
8 imports |
8 imports |
9 Topology_Euclidean_Space |
9 Topology_Euclidean_Space |
10 Operator_Norm |
10 Operator_Norm |
|
11 Uniform_Limit |
11 begin |
12 begin |
|
13 |
|
14 lemma onorm_componentwise: |
|
15 assumes "bounded_linear f" |
|
16 shows "onorm f \<le> (\<Sum>i\<in>Basis. norm (f i))" |
|
17 proof - |
|
18 { |
|
19 fix i::'a |
|
20 assume "i \<in> Basis" |
|
21 hence "onorm (\<lambda>x. (x \<bullet> i) *\<^sub>R f i) \<le> onorm (\<lambda>x. (x \<bullet> i)) * norm (f i)" |
|
22 by (auto intro!: onorm_scaleR_left_lemma bounded_linear_inner_left) |
|
23 also have "\<dots> \<le> norm i * norm (f i)" |
|
24 by (rule mult_right_mono) |
|
25 (auto simp: ac_simps Cauchy_Schwarz_ineq2 intro!: onorm_le) |
|
26 finally have "onorm (\<lambda>x. (x \<bullet> i) *\<^sub>R f i) \<le> norm (f i)" using \<open>i \<in> Basis\<close> |
|
27 by simp |
|
28 } hence "onorm (\<lambda>x. \<Sum>i\<in>Basis. (x \<bullet> i) *\<^sub>R f i) \<le> (\<Sum>i\<in>Basis. norm (f i))" |
|
29 by (auto intro!: order_trans[OF onorm_sum_le] bounded_linear_scaleR_const |
|
30 sum_mono bounded_linear_inner_left) |
|
31 also have "(\<lambda>x. \<Sum>i\<in>Basis. (x \<bullet> i) *\<^sub>R f i) = (\<lambda>x. f (\<Sum>i\<in>Basis. (x \<bullet> i) *\<^sub>R i))" |
|
32 by (simp add: linear_sum bounded_linear.linear assms linear_simps) |
|
33 also have "\<dots> = f" |
|
34 by (simp add: euclidean_representation) |
|
35 finally show ?thesis . |
|
36 qed |
|
37 |
|
38 lemmas onorm_componentwise_le = order_trans[OF onorm_componentwise] |
12 |
39 |
13 subsection \<open>Intro rules for @{term bounded_linear}\<close> |
40 subsection \<open>Intro rules for @{term bounded_linear}\<close> |
14 |
41 |
15 named_theorems bounded_linear_intros |
42 named_theorems bounded_linear_intros |
16 |
43 |
444 continuous_blinfun_componentwiseI1: |
471 continuous_blinfun_componentwiseI1: |
445 fixes f:: "'b::t2_space \<Rightarrow> 'a::euclidean_space \<Rightarrow>\<^sub>L 'c::real_normed_vector" |
472 fixes f:: "'b::t2_space \<Rightarrow> 'a::euclidean_space \<Rightarrow>\<^sub>L 'c::real_normed_vector" |
446 assumes "\<And>i. i \<in> Basis \<Longrightarrow> continuous F (\<lambda>x. f x i)" |
473 assumes "\<And>i. i \<in> Basis \<Longrightarrow> continuous F (\<lambda>x. f x i)" |
447 shows "continuous F f" |
474 shows "continuous F f" |
448 using assms by (auto simp: continuous_def intro!: tendsto_componentwise1) |
475 using assms by (auto simp: continuous_def intro!: tendsto_componentwise1) |
|
476 |
|
477 lemma |
|
478 continuous_on_blinfun_componentwise: |
|
479 fixes f:: "'d::t2_space \<Rightarrow> 'e::euclidean_space \<Rightarrow>\<^sub>L 'f::real_normed_vector" |
|
480 assumes "\<And>i. i \<in> Basis \<Longrightarrow> continuous_on s (\<lambda>x. f x i)" |
|
481 shows "continuous_on s f" |
|
482 using assms |
|
483 by (auto intro!: continuous_at_imp_continuous_on intro!: tendsto_componentwise1 |
|
484 simp: continuous_on_eq_continuous_within continuous_def) |
449 |
485 |
450 lemma bounded_linear_blinfun_matrix: "bounded_linear (\<lambda>x. (x::_\<Rightarrow>\<^sub>L _) j \<bullet> i)" |
486 lemma bounded_linear_blinfun_matrix: "bounded_linear (\<lambda>x. (x::_\<Rightarrow>\<^sub>L _) j \<bullet> i)" |
451 by (auto intro!: bounded_linearI' bounded_linear_intros) |
487 by (auto intro!: bounded_linearI' bounded_linear_intros) |
452 |
488 |
453 lemma continuous_blinfun_matrix: |
489 lemma continuous_blinfun_matrix: |
690 lemmas [simp] = blinfun_mult_left.rep_eq |
726 lemmas [simp] = blinfun_mult_left.rep_eq |
691 |
727 |
692 lemma bounded_linear_blinfun_mult_left[bounded_linear]: "bounded_linear blinfun_mult_left" |
728 lemma bounded_linear_blinfun_mult_left[bounded_linear]: "bounded_linear blinfun_mult_left" |
693 by transfer (rule bounded_bilinear.flip[OF bounded_bilinear_mult]) |
729 by transfer (rule bounded_bilinear.flip[OF bounded_bilinear_mult]) |
694 |
730 |
|
731 lemmas bounded_linear_function_uniform_limit_intros[uniform_limit_intros] = |
|
732 bounded_linear.uniform_limit[OF bounded_linear_apply_blinfun] |
|
733 bounded_linear.uniform_limit[OF bounded_linear_blinfun_apply] |
|
734 bounded_linear.uniform_limit[OF bounded_linear_blinfun_matrix] |
|
735 |
695 end |
736 end |