src/HOL/Multivariate_Analysis/Linear_Algebra.thy
changeset 56479 91958d4b30f7
parent 56444 f944ae8c80a3
child 56480 093ea91498e6
equal deleted inserted replaced
56478:92345da2349f 56479:91958d4b30f7
  1147       using fS SP vS by auto
  1147       using fS SP vS by auto
  1148     have "setsum (\<lambda>v. ?u v *\<^sub>R v) ?S =
  1148     have "setsum (\<lambda>v. ?u v *\<^sub>R v) ?S =
  1149       setsum (\<lambda>v. (- (inverse (u ?a))) *\<^sub>R (u v *\<^sub>R v)) S - ?u v *\<^sub>R v"
  1149       setsum (\<lambda>v. (- (inverse (u ?a))) *\<^sub>R (u v *\<^sub>R v)) S - ?u v *\<^sub>R v"
  1150       using fS vS uv by (simp add: setsum_diff1 divide_inverse field_simps)
  1150       using fS vS uv by (simp add: setsum_diff1 divide_inverse field_simps)
  1151     also have "\<dots> = ?a"
  1151     also have "\<dots> = ?a"
  1152       unfolding scaleR_right.setsum [symmetric] u using uv by (simp add: divide_minus_left)
  1152       unfolding scaleR_right.setsum [symmetric] u using uv by simp
  1153     finally have "setsum (\<lambda>v. ?u v *\<^sub>R v) ?S = ?a" .
  1153     finally have "setsum (\<lambda>v. ?u v *\<^sub>R v) ?S = ?a" .
  1154     with th0 have ?lhs
  1154     with th0 have ?lhs
  1155       unfolding dependent_def span_explicit
  1155       unfolding dependent_def span_explicit
  1156       apply -
  1156       apply -
  1157       apply (rule bexI[where x= "?a"])
  1157       apply (rule bexI[where x= "?a"])
  2141       by blast
  2141       by blast
  2142   next
  2142   next
  2143     case False
  2143     case False
  2144     with span_mul[OF th, of "- 1/ k"]
  2144     with span_mul[OF th, of "- 1/ k"]
  2145     have th1: "f a \<in> span (f ` b)"
  2145     have th1: "f a \<in> span (f ` b)"
  2146       by (auto simp: divide_minus_left)
  2146       by auto
  2147     from inj_on_image_set_diff[OF "2.prems"(3), of "insert a b " "{a}", symmetric]
  2147     from inj_on_image_set_diff[OF "2.prems"(3), of "insert a b " "{a}", symmetric]
  2148     have tha: "f ` insert a b - f ` {a} = f ` (insert a b - {a})" by blast
  2148     have tha: "f ` insert a b - f ` {a} = f ` (insert a b - {a})" by blast
  2149     from "2.prems"(2) [unfolded dependent_def bex_simps(8), rule_format, of "f a"]
  2149     from "2.prems"(2) [unfolded dependent_def bex_simps(8), rule_format, of "f a"]
  2150     have "f a \<notin> span (f ` b)" using tha
  2150     have "f a \<notin> span (f ` b)" using tha
  2151       using "2.hyps"(2)
  2151       using "2.hyps"(2)