equal
deleted
inserted
replaced
13 (* To be moved elsewhere *) |
13 (* To be moved elsewhere *) |
14 (* ------------------------------------------------------------------------- *) |
14 (* ------------------------------------------------------------------------- *) |
15 |
15 |
16 declare vector_add_ldistrib[simp] vector_ssub_ldistrib[simp] vector_smult_assoc[simp] vector_smult_rneg[simp] |
16 declare vector_add_ldistrib[simp] vector_ssub_ldistrib[simp] vector_smult_assoc[simp] vector_smult_rneg[simp] |
17 declare vector_sadd_rdistrib[simp] vector_sub_rdistrib[simp] |
17 declare vector_sadd_rdistrib[simp] vector_sub_rdistrib[simp] |
18 declare dot_ladd[simp] dot_radd[simp] dot_lsub[simp] dot_rsub[simp] |
|
19 declare dot_lmult[simp] dot_rmult[simp] dot_lneg[simp] dot_rneg[simp] |
|
20 declare UNIV_1[simp] |
18 declare UNIV_1[simp] |
21 |
19 |
22 (*lemma dim1in[intro]:"Suc 0 \<in> {1::nat .. CARD(1)}" by auto*) |
20 (*lemma dim1in[intro]:"Suc 0 \<in> {1::nat .. CARD(1)}" by auto*) |
23 |
21 |
24 lemmas vector_component_simps = vector_minus_component vector_smult_component vector_add_component vector_le_def Cart_lambda_beta basis_component vector_uminus_component |
22 lemmas vector_component_simps = vector_minus_component vector_smult_component vector_add_component vector_le_def Cart_lambda_beta basis_component vector_uminus_component |
1715 proof(cases "s={}") guess a using UNIV_witness[where 'a='n] .. |
1713 proof(cases "s={}") guess a using UNIV_witness[where 'a='n] .. |
1716 case True have "norm ((basis a)::real^'n) = 1" |
1714 case True have "norm ((basis a)::real^'n) = 1" |
1717 using norm_basis and dimindex_ge_1 by auto |
1715 using norm_basis and dimindex_ge_1 by auto |
1718 thus ?thesis apply(rule_tac x="basis a" in exI, rule_tac x=1 in exI) using True by auto |
1716 thus ?thesis apply(rule_tac x="basis a" in exI, rule_tac x=1 in exI) using True by auto |
1719 next case False thus ?thesis using False using separating_hyperplane_closed_point[OF assms] |
1717 next case False thus ?thesis using False using separating_hyperplane_closed_point[OF assms] |
1720 apply - apply(erule exE)+ unfolding dot_rzero apply(rule_tac x=a in exI, rule_tac x=b in exI) by auto qed |
1718 apply - apply(erule exE)+ unfolding inner.zero_right apply(rule_tac x=a in exI, rule_tac x=b in exI) by auto qed |
1721 |
1719 |
1722 subsection {* Now set-to-set for closed/compact sets. *} |
1720 subsection {* Now set-to-set for closed/compact sets. *} |
1723 |
1721 |
1724 lemma separating_hyperplane_closed_compact: |
1722 lemma separating_hyperplane_closed_compact: |
1725 assumes "convex (s::(real^'n) set)" "closed s" "convex t" "compact t" "t \<noteq> {}" "s \<inter> t = {}" |
1723 assumes "convex (s::(real^'n) set)" "closed s" "convex t" "compact t" "t \<noteq> {}" "s \<inter> t = {}" |