equal
deleted
inserted
replaced
466 qed |
466 qed |
467 then have "u x + (1 - u x) = 1 \<Longrightarrow> |
467 then have "u x + (1 - u x) = 1 \<Longrightarrow> |
468 u x *\<^sub>R x + (1 - u x) *\<^sub>R ((\<Sum>xa\<in>s - {x}. u xa *\<^sub>R xa) /\<^sub>R (1 - u x)) \<in> V" |
468 u x *\<^sub>R x + (1 - u x) *\<^sub>R ((\<Sum>xa\<in>s - {x}. u xa *\<^sub>R xa) /\<^sub>R (1 - u x)) \<in> V" |
469 apply - |
469 apply - |
470 apply (rule as(3)[rule_format]) |
470 apply (rule as(3)[rule_format]) |
471 unfolding RealVector.scaleR_right.setsum |
471 unfolding Real_Vector_Spaces.scaleR_right.setsum |
472 using x(1) as(6) apply auto |
472 using x(1) as(6) apply auto |
473 done |
473 done |
474 then show "(\<Sum>x\<in>s. u x *\<^sub>R x) \<in> V" |
474 then show "(\<Sum>x\<in>s. u x *\<^sub>R x) \<in> V" |
475 unfolding scaleR_scaleR[symmetric] and scaleR_right.setsum [symmetric] |
475 unfolding scaleR_scaleR[symmetric] and scaleR_right.setsum [symmetric] |
476 apply (subst *) |
476 apply (subst *) |
528 show "\<exists>s ua. finite s \<and> s \<noteq> {} \<and> s \<subseteq> p \<and> |
528 show "\<exists>s ua. finite s \<and> s \<noteq> {} \<and> s \<subseteq> p \<and> |
529 setsum ua s = 1 \<and> (\<Sum>v\<in>s. ua v *\<^sub>R v) = u *\<^sub>R x + v *\<^sub>R y" |
529 setsum ua s = 1 \<and> (\<Sum>v\<in>s. ua v *\<^sub>R v) = u *\<^sub>R x + v *\<^sub>R y" |
530 apply (rule_tac x="sx \<union> sy" in exI) |
530 apply (rule_tac x="sx \<union> sy" in exI) |
531 apply (rule_tac x="\<lambda>a. (if a\<in>sx then u * ux a else 0) + (if a\<in>sy then v * uy a else 0)" in exI) |
531 apply (rule_tac x="\<lambda>a. (if a\<in>sx then u * ux a else 0) + (if a\<in>sy then v * uy a else 0)" in exI) |
532 unfolding scaleR_left_distrib setsum_addf if_smult scaleR_zero_left ** setsum_restrict_set[OF xy, symmetric] |
532 unfolding scaleR_left_distrib setsum_addf if_smult scaleR_zero_left ** setsum_restrict_set[OF xy, symmetric] |
533 unfolding scaleR_scaleR[symmetric] RealVector.scaleR_right.setsum [symmetric] and setsum_right_distrib[symmetric] |
533 unfolding scaleR_scaleR[symmetric] Real_Vector_Spaces.scaleR_right.setsum [symmetric] and setsum_right_distrib[symmetric] |
534 unfolding x y |
534 unfolding x y |
535 using x(1-3) y(1-3) uv apply simp |
535 using x(1-3) y(1-3) uv apply simp |
536 done |
536 done |
537 qed |
537 qed |
538 qed |
538 qed |
2846 have "z : f ` S" using z_def rel_interior_subset[of "f ` S"] by auto |
2846 have "z : f ` S" using z_def rel_interior_subset[of "f ` S"] by auto |
2847 from this obtain x where x_def: "x : S & (f x = z)" by auto |
2847 from this obtain x where x_def: "x : S & (f x = z)" by auto |
2848 obtain e2 where e2_def: "e2>0 & cball z e2 Int affine hull (f ` S) <= (f ` S)" |
2848 obtain e2 where e2_def: "e2>0 & cball z e2 Int affine hull (f ` S) <= (f ` S)" |
2849 using z_def rel_interior_cball[of "f ` S"] by auto |
2849 using z_def rel_interior_cball[of "f ` S"] by auto |
2850 obtain K where K_def: "K>0 & (! x. norm (f x) <= norm x * K)" |
2850 obtain K where K_def: "K>0 & (! x. norm (f x) <= norm x * K)" |
2851 using assms RealVector.bounded_linear.pos_bounded[of f] by auto |
2851 using assms Real_Vector_Spaces.bounded_linear.pos_bounded[of f] by auto |
2852 def e1 == "1/K" hence e1_def: "e1>0 & (! x. e1 * norm (f x) <= norm x)" |
2852 def e1 == "1/K" hence e1_def: "e1>0 & (! x. e1 * norm (f x) <= norm x)" |
2853 using K_def pos_le_divide_eq[of e1] by auto |
2853 using K_def pos_le_divide_eq[of e1] by auto |
2854 def e == "e1 * e2" hence "e>0" using e1_def e2_def mult_pos_pos by auto |
2854 def e == "e1 * e2" hence "e>0" using e1_def e2_def mult_pos_pos by auto |
2855 { fix y assume y_def: "y : cball x e Int affine hull S" |
2855 { fix y assume y_def: "y : cball x e Int affine hull S" |
2856 from this have h1: "f y : affine hull (f ` S)" |
2856 from this have h1: "f y : affine hull (f ` S)" |