equal
deleted
inserted
replaced
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}" |