equal
deleted
inserted
replaced
1958 apply (auto simp add: field_simps) |
1958 apply (auto simp add: field_simps) |
1959 done |
1959 done |
1960 qed |
1960 qed |
1961 from setsum_norm_le[of _ ?g, OF th] |
1961 from setsum_norm_le[of _ ?g, OF th] |
1962 show "norm (f x) \<le> ?B * norm x" |
1962 show "norm (f x) \<le> ?B * norm x" |
1963 unfolding th0 setsum_left_distrib by metis |
1963 unfolding th0 setsum_distrib_right by metis |
1964 qed |
1964 qed |
1965 qed |
1965 qed |
1966 |
1966 |
1967 lemma linear_conv_bounded_linear: |
1967 lemma linear_conv_bounded_linear: |
1968 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::real_normed_vector" |
1968 fixes f :: "'a::euclidean_space \<Rightarrow> 'b::real_normed_vector" |
2019 done |
2019 done |
2020 also have "\<dots> = norm (setsum (\<lambda> (i,j). h ((x \<bullet> i) *\<^sub>R i) ((y \<bullet> j) *\<^sub>R j)) (Basis \<times> Basis))" |
2020 also have "\<dots> = norm (setsum (\<lambda> (i,j). h ((x \<bullet> i) *\<^sub>R i) ((y \<bullet> j) *\<^sub>R j)) (Basis \<times> Basis))" |
2021 unfolding bilinear_setsum[OF bh finite_Basis finite_Basis] .. |
2021 unfolding bilinear_setsum[OF bh finite_Basis finite_Basis] .. |
2022 finally have th: "norm (h x y) = \<dots>" . |
2022 finally have th: "norm (h x y) = \<dots>" . |
2023 show "norm (h x y) \<le> (\<Sum>i\<in>Basis. \<Sum>j\<in>Basis. norm (h i j)) * norm x * norm y" |
2023 show "norm (h x y) \<le> (\<Sum>i\<in>Basis. \<Sum>j\<in>Basis. norm (h i j)) * norm x * norm y" |
2024 apply (auto simp add: setsum_left_distrib th setsum.cartesian_product) |
2024 apply (auto simp add: setsum_distrib_right th setsum.cartesian_product) |
2025 apply (rule setsum_norm_le) |
2025 apply (rule setsum_norm_le) |
2026 apply simp |
2026 apply simp |
2027 apply (auto simp add: bilinear_rmul[OF bh] bilinear_lmul[OF bh] |
2027 apply (auto simp add: bilinear_rmul[OF bh] bilinear_lmul[OF bh] |
2028 field_simps simp del: scaleR_scaleR) |
2028 field_simps simp del: scaleR_scaleR) |
2029 apply (rule mult_mono) |
2029 apply (rule mult_mono) |