equal
deleted
inserted
replaced
1410 obtains d where "D = (\<lambda>x. x *\<^sub>R d)" |
1410 obtains d where "D = (\<lambda>x. x *\<^sub>R d)" |
1411 by (metis assms linear.scaleR mult.commute mult.left_neutral real_scaleR_def) |
1411 by (metis assms linear.scaleR mult.commute mult.left_neutral real_scaleR_def) |
1412 |
1412 |
1413 corollary real_linearD: |
1413 corollary real_linearD: |
1414 fixes f :: "real \<Rightarrow> real" |
1414 fixes f :: "real \<Rightarrow> real" |
1415 assumes "linear f" obtains c where "f = op* c" |
1415 assumes "linear f" obtains c where "f = ( * ) c" |
1416 by (rule linear_imp_scaleR [OF assms]) (force simp: scaleR_conv_of_real) |
1416 by (rule linear_imp_scaleR [OF assms]) (force simp: scaleR_conv_of_real) |
1417 |
1417 |
1418 lemma linear_times_of_real: "linear (\<lambda>x. a * of_real x)" |
1418 lemma linear_times_of_real: "linear (\<lambda>x. a * of_real x)" |
1419 apply (simp add: linear_def Real_Vector_Spaces.additive_def linear_axioms_def) |
1419 apply (simp add: linear_def Real_Vector_Spaces.additive_def linear_axioms_def) |
1420 by (metis distrib_left mult_scaleR_right scaleR_conv_of_real) |
1420 by (metis distrib_left mult_scaleR_right scaleR_conv_of_real) |
1547 apply blast |
1547 apply blast |
1548 done |
1548 done |
1549 |
1549 |
1550 lemma comp1: |
1550 lemma comp1: |
1551 assumes "bounded_linear g" |
1551 assumes "bounded_linear g" |
1552 shows "bounded_bilinear (\<lambda>x. op ** (g x))" |
1552 shows "bounded_bilinear (\<lambda>x. ( ** ) (g x))" |
1553 proof unfold_locales |
1553 proof unfold_locales |
1554 interpret g: bounded_linear g by fact |
1554 interpret g: bounded_linear g by fact |
1555 show "\<And>a a' b. g (a + a') ** b = g a ** b + g a' ** b" |
1555 show "\<And>a a' b. g (a + a') ** b = g a ** b + g a' ** b" |
1556 "\<And>a b b'. g a ** (b + b') = g a ** b + g a ** b'" |
1556 "\<And>a b b'. g a ** (b + b') = g a ** b + g a ** b'" |
1557 "\<And>r a b. g (r *\<^sub>R a) ** b = r *\<^sub>R (g a ** b)" |
1557 "\<And>r a b. g (r *\<^sub>R a) ** b = r *\<^sub>R (g a ** b)" |
1649 finally show "norm (f (g x)) \<le> norm x * (Kg * Kf)" . |
1649 finally show "norm (f (g x)) \<le> norm x * (Kg * Kf)" . |
1650 qed |
1650 qed |
1651 qed |
1651 qed |
1652 qed |
1652 qed |
1653 |
1653 |
1654 lemma bounded_bilinear_mult: "bounded_bilinear (op * :: 'a \<Rightarrow> 'a \<Rightarrow> 'a::real_normed_algebra)" |
1654 lemma bounded_bilinear_mult: "bounded_bilinear (( * ) :: 'a \<Rightarrow> 'a \<Rightarrow> 'a::real_normed_algebra)" |
1655 apply (rule bounded_bilinear.intro) |
1655 apply (rule bounded_bilinear.intro) |
1656 apply (rule distrib_right) |
1656 apply (rule distrib_right) |
1657 apply (rule distrib_left) |
1657 apply (rule distrib_left) |
1658 apply (rule mult_scaleR_left) |
1658 apply (rule mult_scaleR_left) |
1659 apply (rule mult_scaleR_right) |
1659 apply (rule mult_scaleR_right) |