src/HOL/Analysis/Linear_Algebra.thy
changeset 63918 6bf55e6e0b75
parent 63886 685fb01256af
child 63938 f6ce08859d4c
equal deleted inserted replaced
63917:40d1c5e7f407 63918:6bf55e6e0b75
  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)