src/HOL/Analysis/Cartesian_Euclidean_Space.thy
changeset 67155 9e5b05d54f9d
parent 66804 3f9bb52082c4
child 67399 eab6ce8368fa
equal deleted inserted replaced
67154:c7def8f836d0 67155:9e5b05d54f9d
   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"