src/HOL/Analysis/Convex_Euclidean_Space.thy
changeset 64788 19f3d4af7a7d
parent 64773 223b2ebdda79
child 65036 ab7e11730ad8
equal deleted inserted replaced
64787:067cacdd1117 64788:19f3d4af7a7d
  1311 lemma snd_linear: "linear snd"
  1311 lemma snd_linear: "linear snd"
  1312   unfolding linear_iff by (simp add: algebra_simps)
  1312   unfolding linear_iff by (simp add: algebra_simps)
  1313 
  1313 
  1314 lemma fst_snd_linear: "linear (\<lambda>(x,y). x + y)"
  1314 lemma fst_snd_linear: "linear (\<lambda>(x,y). x + y)"
  1315   unfolding linear_iff by (simp add: algebra_simps)
  1315   unfolding linear_iff by (simp add: algebra_simps)
  1316 
       
  1317 lemma scaleR_2:
       
  1318   fixes x :: "'a::real_vector"
       
  1319   shows "scaleR 2 x = x + x"
       
  1320   unfolding one_add_one [symmetric] scaleR_left_distrib by simp
       
  1321 
       
  1322 lemma scaleR_half_double [simp]:
       
  1323   fixes a :: "'a::real_normed_vector"
       
  1324   shows "(1 / 2) *\<^sub>R (a + a) = a"
       
  1325 proof -
       
  1326   have "\<And>r. r *\<^sub>R (a + a) = (r * 2) *\<^sub>R a"
       
  1327     by (metis scaleR_2 scaleR_scaleR)
       
  1328   then show ?thesis
       
  1329     by simp
       
  1330 qed
       
  1331 
  1316 
  1332 lemma vector_choose_size:
  1317 lemma vector_choose_size:
  1333   assumes "0 \<le> c"
  1318   assumes "0 \<le> c"
  1334   obtains x :: "'a::{real_normed_vector, perfect_space}" where "norm x = c"
  1319   obtains x :: "'a::{real_normed_vector, perfect_space}" where "norm x = c"
  1335 proof -
  1320 proof -