288 lemma vector_mul_rcancel_imp: "x \<noteq> 0 \<Longrightarrow> (a::real) *s x = b *s x ==> a = b" |
288 lemma vector_mul_rcancel_imp: "x \<noteq> 0 \<Longrightarrow> (a::real) *s x = b *s x ==> a = b" |
289 by (metis vector_mul_rcancel) |
289 by (metis vector_mul_rcancel) |
290 |
290 |
291 lemma component_le_norm_cart: "\<bar>x$i\<bar> <= norm x" |
291 lemma component_le_norm_cart: "\<bar>x$i\<bar> <= norm x" |
292 apply (simp add: norm_vec_def) |
292 apply (simp add: norm_vec_def) |
293 apply (rule member_le_setL2, simp_all) |
293 apply (rule member_le_L2_set, simp_all) |
294 done |
294 done |
295 |
295 |
296 lemma norm_bound_component_le_cart: "norm x <= e ==> \<bar>x$i\<bar> <= e" |
296 lemma norm_bound_component_le_cart: "norm x <= e ==> \<bar>x$i\<bar> <= e" |
297 by (metis component_le_norm_cart order_trans) |
297 by (metis component_le_norm_cart order_trans) |
298 |
298 |
299 lemma norm_bound_component_lt_cart: "norm x < e ==> \<bar>x$i\<bar> < e" |
299 lemma norm_bound_component_lt_cart: "norm x < e ==> \<bar>x$i\<bar> < e" |
300 by (metis component_le_norm_cart le_less_trans) |
300 by (metis component_le_norm_cart le_less_trans) |
301 |
301 |
302 lemma norm_le_l1_cart: "norm x <= sum(\<lambda>i. \<bar>x$i\<bar>) UNIV" |
302 lemma norm_le_l1_cart: "norm x <= sum(\<lambda>i. \<bar>x$i\<bar>) UNIV" |
303 by (simp add: norm_vec_def setL2_le_sum) |
303 by (simp add: norm_vec_def L2_set_le_sum) |
304 |
304 |
305 lemma scalar_mult_eq_scaleR: "c *s x = c *\<^sub>R x" |
305 lemma scalar_mult_eq_scaleR: "c *s x = c *\<^sub>R x" |
306 unfolding scaleR_vec_def vector_scalar_mult_def by simp |
306 unfolding scaleR_vec_def vector_scalar_mult_def by simp |
307 |
307 |
308 lemma dist_mul[simp]: "dist (c *s x) (c *s y) = \<bar>c\<bar> * dist x y" |
308 lemma dist_mul[simp]: "dist (c *s x) (c *s y) = \<bar>c\<bar> * dist x y" |
982 by simp |
982 by simp |
983 moreover |
983 moreover |
984 { fix n |
984 { fix n |
985 assume n: "\<forall>i. dist (f (r n) $ i) (l $ i) < e / (real_of_nat (card ?d))" |
985 assume n: "\<forall>i. dist (f (r n) $ i) (l $ i) < e / (real_of_nat (card ?d))" |
986 have "dist (f (r n)) l \<le> (\<Sum>i\<in>?d. dist (f (r n) $ i) (l $ i))" |
986 have "dist (f (r n)) l \<le> (\<Sum>i\<in>?d. dist (f (r n) $ i) (l $ i))" |
987 unfolding dist_vec_def using zero_le_dist by (rule setL2_le_sum) |
987 unfolding dist_vec_def using zero_le_dist by (rule L2_set_le_sum) |
988 also have "\<dots> < (\<Sum>i\<in>?d. e / (real_of_nat (card ?d)))" |
988 also have "\<dots> < (\<Sum>i\<in>?d. e / (real_of_nat (card ?d)))" |
989 by (rule sum_strict_mono) (simp_all add: n) |
989 by (rule sum_strict_mono) (simp_all add: n) |
990 finally have "dist (f (r n)) l < e" by simp |
990 finally have "dist (f (r n)) l < e" by simp |
991 } |
991 } |
992 ultimately have "eventually (\<lambda>n. dist (f (r n)) l < e) sequentially" |
992 ultimately have "eventually (\<lambda>n. dist (f (r n)) l < e) sequentially" |