src/HOL/Analysis/Linear_Algebra.thy
changeset 78656 4da1e18a9633
parent 78127 24b70433c2e8
child 82518 da14e77a48b2
equal deleted inserted replaced
78655:0d065af1a99c 78656:4da1e18a9633
   702     by (metis SVC card_eq_dim dim_span)
   702     by (metis SVC card_eq_dim dim_span)
   703 qed
   703 qed
   704 
   704 
   705 text \<open>Low-dimensional subset is in a hyperplane (weak orthogonal complement).\<close>
   705 text \<open>Low-dimensional subset is in a hyperplane (weak orthogonal complement).\<close>
   706 
   706 
   707 lemma span_not_univ_orthogonal:
   707 lemma span_not_UNIV_orthogonal:
   708   fixes S :: "'a::euclidean_space set"
   708   fixes S :: "'a::euclidean_space set"
   709   assumes sU: "span S \<noteq> UNIV"
   709   assumes sU: "span S \<noteq> UNIV"
   710   shows "\<exists>a::'a. a \<noteq> 0 \<and> (\<forall>x \<in> span S. a \<bullet> x = 0)"
   710   shows "\<exists>a::'a. a \<noteq> 0 \<and> (\<forall>x \<in> span S. a \<bullet> x = 0)"
   711 proof -
   711 proof -
   712   from sU obtain a where a: "a \<notin> span S"
   712   from sU obtain a where a: "a \<notin> span S"
   752 
   752 
   753 lemma span_not_univ_subset_hyperplane:
   753 lemma span_not_univ_subset_hyperplane:
   754   fixes S :: "'a::euclidean_space set"
   754   fixes S :: "'a::euclidean_space set"
   755   assumes SU: "span S \<noteq> UNIV"
   755   assumes SU: "span S \<noteq> UNIV"
   756   shows "\<exists> a. a \<noteq>0 \<and> span S \<subseteq> {x. a \<bullet> x = 0}"
   756   shows "\<exists> a. a \<noteq>0 \<and> span S \<subseteq> {x. a \<bullet> x = 0}"
   757   using span_not_univ_orthogonal[OF SU] by auto
   757   using span_not_UNIV_orthogonal[OF SU] by auto
   758 
   758 
   759 lemma lowdim_subset_hyperplane:
   759 lemma lowdim_subset_hyperplane:
   760   fixes S :: "'a::euclidean_space set"
   760   fixes S :: "'a::euclidean_space set"
   761   assumes d: "dim S < DIM('a)"
   761   assumes d: "dim S < DIM('a)"
   762   shows "\<exists>a::'a. a \<noteq> 0 \<and> span S \<subseteq> {x. a \<bullet> x = 0}"
   762   shows "\<exists>a::'a. a \<noteq> 0 \<and> span S \<subseteq> {x. a \<bullet> x = 0}"