equal
deleted
inserted
replaced
3793 proof - |
3793 proof - |
3794 have fin: "finite s" "finite t" using assms aff_independent_finite finite_subset by auto |
3794 have fin: "finite s" "finite t" using assms aff_independent_finite finite_subset by auto |
3795 { fix u v x |
3795 { fix u v x |
3796 assume uv: "sum u t = 1" "\<forall>x\<in>s. 0 \<le> v x" "sum v s = 1" |
3796 assume uv: "sum u t = 1" "\<forall>x\<in>s. 0 \<le> v x" "sum v s = 1" |
3797 "(\<Sum>x\<in>s. v x *\<^sub>R x) = (\<Sum>v\<in>t. u v *\<^sub>R v)" "x \<in> t" |
3797 "(\<Sum>x\<in>s. v x *\<^sub>R x) = (\<Sum>v\<in>t. u v *\<^sub>R v)" "x \<in> t" |
3798 then have s: "s = (s - t) \<union> t" \<comment>\<open>split into separate cases\<close> |
3798 then have s: "s = (s - t) \<union> t" \<comment> \<open>split into separate cases\<close> |
3799 using assms by auto |
3799 using assms by auto |
3800 have [simp]: "(\<Sum>x\<in>t. v x *\<^sub>R x) + (\<Sum>x\<in>s - t. v x *\<^sub>R x) = (\<Sum>x\<in>t. u x *\<^sub>R x)" |
3800 have [simp]: "(\<Sum>x\<in>t. v x *\<^sub>R x) + (\<Sum>x\<in>s - t. v x *\<^sub>R x) = (\<Sum>x\<in>t. u x *\<^sub>R x)" |
3801 "sum v t + sum v (s - t) = 1" |
3801 "sum v t + sum v (s - t) = 1" |
3802 using uv fin s |
3802 using uv fin s |
3803 by (auto simp: sum.union_disjoint [symmetric] Un_commute) |
3803 by (auto simp: sum.union_disjoint [symmetric] Un_commute) |
3911 case False |
3911 case False |
3912 have fs: "finite s" |
3912 have fs: "finite s" |
3913 using assms by (simp add: aff_independent_finite) |
3913 using assms by (simp add: aff_independent_finite) |
3914 { fix a b and d::real |
3914 { fix a b and d::real |
3915 assume ab: "a \<in> s" "b \<in> s" "a \<noteq> b" |
3915 assume ab: "a \<in> s" "b \<in> s" "a \<noteq> b" |
3916 then have s: "s = (s - {a,b}) \<union> {a,b}" \<comment>\<open>split into separate cases\<close> |
3916 then have s: "s = (s - {a,b}) \<union> {a,b}" \<comment> \<open>split into separate cases\<close> |
3917 by auto |
3917 by auto |
3918 have "(\<Sum>x\<in>s. if x = a then - d else if x = b then d else 0) = 0" |
3918 have "(\<Sum>x\<in>s. if x = a then - d else if x = b then d else 0) = 0" |
3919 "(\<Sum>x\<in>s. (if x = a then - d else if x = b then d else 0) *\<^sub>R x) = d *\<^sub>R b - d *\<^sub>R a" |
3919 "(\<Sum>x\<in>s. (if x = a then - d else if x = b then d else 0) *\<^sub>R x) = d *\<^sub>R b - d *\<^sub>R a" |
3920 using ab fs |
3920 using ab fs |
3921 by (subst s, subst sum.union_disjoint, auto)+ |
3921 by (subst s, subst sum.union_disjoint, auto)+ |