src/HOL/Multivariate_Analysis/Convex_Euclidean_Space.thy
changeset 45498 2dc373f1867a
parent 45051 c478d1876371
child 47108 2a1953f0d20d
equal deleted inserted replaced
45482:8f32682f78fe 45498:2dc373f1867a
   384                s \<noteq> {}; s \<subseteq> V; setsum u s = 1; n = card s \<rbrakk> \<Longrightarrow> (\<Sum>x\<in>s. u x *\<^sub>R x) \<in> V" and
   384                s \<noteq> {}; s \<subseteq> V; setsum u s = 1; n = card s \<rbrakk> \<Longrightarrow> (\<Sum>x\<in>s. u x *\<^sub>R x) \<in> V" and
   385         as:"Suc n = card s" "2 < card s" "\<forall>x\<in>V. \<forall>y\<in>V. \<forall>u v. u + v = 1 \<longrightarrow> u *\<^sub>R x + v *\<^sub>R y \<in> V"
   385         as:"Suc n = card s" "2 < card s" "\<forall>x\<in>V. \<forall>y\<in>V. \<forall>u v. u + v = 1 \<longrightarrow> u *\<^sub>R x + v *\<^sub>R y \<in> V"
   386            "finite s" "s \<noteq> {}" "s \<subseteq> V" "setsum u s = 1"
   386            "finite s" "s \<noteq> {}" "s \<subseteq> V" "setsum u s = 1"
   387       have "\<exists>x\<in>s. u x \<noteq> 1" proof(rule_tac ccontr)
   387       have "\<exists>x\<in>s. u x \<noteq> 1" proof(rule_tac ccontr)
   388         assume " \<not> (\<exists>x\<in>s. u x \<noteq> 1)" hence "setsum u s = real_of_nat (card s)" unfolding card_eq_setsum by auto
   388         assume " \<not> (\<exists>x\<in>s. u x \<noteq> 1)" hence "setsum u s = real_of_nat (card s)" unfolding card_eq_setsum by auto
   389         thus False using as(7) and `card s > 2` by (metis Numeral1_eq1_nat less_0_number_of less_int_code(15)
   389         thus False using as(7) and `card s > 2` by (metis One_nat_def
   390           less_nat_number_of not_less_iff_gr_or_eq of_nat_1 of_nat_eq_iff pos2 rel_simps(4)) qed
   390           less_Suc0 Zero_not_Suc of_nat_1 of_nat_eq_iff numeral_2_eq_2)
       
   391       qed
   391       then obtain x where x:"x\<in>s" "u x \<noteq> 1" by auto
   392       then obtain x where x:"x\<in>s" "u x \<noteq> 1" by auto
   392 
   393 
   393       have c:"card (s - {x}) = card s - 1" apply(rule card_Diff_singleton) using `x\<in>s` as(4) by auto
   394       have c:"card (s - {x}) = card s - 1" apply(rule card_Diff_singleton) using `x\<in>s` as(4) by auto
   394       have *:"s = insert x (s - {x})" "finite (s - {x})" using `x\<in>s` and as(4) by auto
   395       have *:"s = insert x (s - {x})" "finite (s - {x})" using `x\<in>s` and as(4) by auto
   395       have **:"setsum u (s - {x}) = 1 - u x"
   396       have **:"setsum u (s - {x}) = 1 - u x"