src/HOL/Real_Vector_Spaces.thy
changeset 64788 19f3d4af7a7d
parent 64272 f76b6dda2e56
child 65036 ab7e11730ad8
equal deleted inserted replaced
64787:067cacdd1117 64788:19f3d4af7a7d
   173 lemmas scaleR_right_diff_distrib = scaleR_diff_right
   173 lemmas scaleR_right_diff_distrib = scaleR_diff_right
   174 
   174 
   175 lemma scaleR_minus1_left [simp]: "scaleR (-1) x = - x"
   175 lemma scaleR_minus1_left [simp]: "scaleR (-1) x = - x"
   176   for x :: "'a::real_vector"
   176   for x :: "'a::real_vector"
   177   using scaleR_minus_left [of 1 x] by simp
   177   using scaleR_minus_left [of 1 x] by simp
       
   178 
       
   179 lemma scaleR_2:
       
   180   fixes x :: "'a::real_vector"
       
   181   shows "scaleR 2 x = x + x"
       
   182   unfolding one_add_one [symmetric] scaleR_left_distrib by simp
       
   183 
       
   184 lemma scaleR_half_double [simp]:
       
   185   fixes a :: "'a::real_vector"
       
   186   shows "(1 / 2) *\<^sub>R (a + a) = a"
       
   187 proof -
       
   188   have "\<And>r. r *\<^sub>R (a + a) = (r * 2) *\<^sub>R a"
       
   189     by (metis scaleR_2 scaleR_scaleR)
       
   190   then show ?thesis
       
   191     by simp
       
   192 qed
   178 
   193 
   179 class real_algebra = real_vector + ring +
   194 class real_algebra = real_vector + ring +
   180   assumes mult_scaleR_left [simp]: "scaleR a x * y = scaleR a (x * y)"
   195   assumes mult_scaleR_left [simp]: "scaleR a x * y = scaleR a (x * y)"
   181     and mult_scaleR_right [simp]: "x * scaleR a y = scaleR a (x * y)"
   196     and mult_scaleR_right [simp]: "x * scaleR a y = scaleR a (x * y)"
   182 
   197