src/HOL/Multivariate_Analysis/Euclidean_Space.thy
changeset 35541 7b1179be2ac5
parent 35540 3d073a3e1c61
child 35542 8f97d8caabfd
equal deleted inserted replaced
35540:3d073a3e1c61 35541:7b1179be2ac5
  3609         using cardlt ft a b by auto
  3609         using cardlt ft a b by auto
  3610       have ft': "finite (insert a (t - {b}))" using ft by auto
  3610       have ft': "finite (insert a (t - {b}))" using ft by auto
  3611       {fix x assume xs: "x \<in> s"
  3611       {fix x assume xs: "x \<in> s"
  3612         have t: "t \<subseteq> (insert b (insert a (t -{b})))" using b by auto
  3612         have t: "t \<subseteq> (insert b (insert a (t -{b})))" using b by auto
  3613         from b(1) have "b \<in> span t" by (simp add: span_superset)
  3613         from b(1) have "b \<in> span t" by (simp add: span_superset)
  3614         have bs: "b \<in> span (insert a (t - {b}))"
  3614         have bs: "b \<in> span (insert a (t - {b}))" apply(rule in_span_delete)
  3615           by (metis in_span_delete a sp mem_def subset_eq)
  3615           using  a sp unfolding subset_eq by auto
  3616         from xs sp have "x \<in> span t" by blast
  3616         from xs sp have "x \<in> span t" by blast
  3617         with span_mono[OF t]
  3617         with span_mono[OF t]
  3618         have x: "x \<in> span (insert b (insert a (t - {b})))" ..
  3618         have x: "x \<in> span (insert b (insert a (t - {b})))" ..
  3619         from span_trans[OF bs x] have "x \<in> span (insert a (t - {b}))"  .}
  3619         from span_trans[OF bs x] have "x \<in> span (insert a (t - {b}))"  .}
  3620       then have sp': "s \<subseteq> span (insert a (t - {b}))" by blast
  3620       then have sp': "s \<subseteq> span (insert a (t - {b}))" by blast
  3968   ultimately have CdV: "card C = dim V" using C(1) by simp
  3968   ultimately have CdV: "card C = dim V" using C(1) by simp
  3969   from C B CSV CdV iC show ?thesis by auto
  3969   from C B CSV CdV iC show ?thesis by auto
  3970 qed
  3970 qed
  3971 
  3971 
  3972 lemma span_eq: "span S = span T \<longleftrightarrow> S \<subseteq> span T \<and> T \<subseteq> span S"
  3972 lemma span_eq: "span S = span T \<longleftrightarrow> S \<subseteq> span T \<and> T \<subseteq> span S"
  3973   by (metis set_eq_subset span_mono span_span span_inc) (* FIXME: slow *)
  3973   using span_inc[unfolded subset_eq] using span_mono[of T "span S"] span_mono[of S "span T"]
       
  3974   by(auto simp add: span_span)
  3974 
  3975 
  3975 (* ------------------------------------------------------------------------- *)
  3976 (* ------------------------------------------------------------------------- *)
  3976 (* Low-dimensional subset is in a hyperplane (weak orthogonal complement).   *)
  3977 (* Low-dimensional subset is in a hyperplane (weak orthogonal complement).   *)
  3977 (* ------------------------------------------------------------------------- *)
  3978 (* ------------------------------------------------------------------------- *)
  3978 
  3979