equal
deleted
inserted
replaced
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 |