189 lemma fps_cos_neg[simp]: "fps_cos (- c) = fps_cos c" |
189 lemma fps_cos_neg[simp]: "fps_cos (- c) = fps_cos c" |
190 by (simp add: fps_eq_iff fps_cos_def) |
190 by (simp add: fps_eq_iff fps_cos_def) |
191 lemma E_minus_ii_sin_cos: "E (- (ii * c)) = fps_cos c - fps_const ii * fps_sin c " |
191 lemma E_minus_ii_sin_cos: "E (- (ii * c)) = fps_cos c - fps_const ii * fps_sin c " |
192 unfolding minus_mult_right Eii_sin_cos by simp |
192 unfolding minus_mult_right Eii_sin_cos by simp |
193 |
193 |
|
194 lemma fps_const_minus: "fps_const (c::'a::group_add) - fps_const d = fps_const (c - d) "by (simp add: fps_eq_iff fps_const_def) |
|
195 |
|
196 lemma fps_number_of_fps_const: "number_of i = fps_const (number_of i :: 'a:: {comm_ring_1, number_ring})" |
|
197 apply (subst (2) number_of_eq) |
|
198 apply(rule int_induct[of _ 0]) |
|
199 apply (simp_all add: number_of_fps_def) |
|
200 by (simp_all add: fps_const_add[symmetric] fps_const_minus[symmetric]) |
|
201 |
194 lemma fps_cos_Eii: |
202 lemma fps_cos_Eii: |
195 "fps_cos c = (E (ii * c) + E (- ii * c)) / fps_const 2" |
203 "fps_cos c = (E (ii * c) + E (- ii * c)) / fps_const 2" |
196 proof- |
204 proof- |
197 have th: "fps_cos c + fps_cos c = fps_cos c * fps_const 2" |
205 have th: "fps_cos c + fps_cos c = fps_cos c * fps_const 2" |
198 by (simp add: fps_eq_iff) |
206 by (simp add: fps_eq_iff fps_number_of_fps_const complex_number_of_def[symmetric]) |
|
207 show ?thesis |
|
208 unfolding Eii_sin_cos minus_mult_commute |
|
209 by (simp add: fps_number_of_fps_const fps_divide_def fps_const_inverse th complex_number_of_def[symmetric]) |
|
210 qed |
|
211 |
|
212 lemma fps_sin_Eii: |
|
213 "fps_sin c = (E (ii * c) - E (- ii * c)) / fps_const (2*ii)" |
|
214 proof- |
|
215 have th: "fps_const \<i> * fps_sin c + fps_const \<i> * fps_sin c = fps_sin c * fps_const (2 * ii)" |
|
216 by (simp add: fps_eq_iff fps_number_of_fps_const complex_number_of_def[symmetric]) |
199 show ?thesis |
217 show ?thesis |
200 unfolding Eii_sin_cos minus_mult_commute |
218 unfolding Eii_sin_cos minus_mult_commute |
201 by (simp add: fps_divide_def fps_const_inverse th) |
219 by (simp add: fps_divide_def fps_const_inverse th) |
202 qed |
220 qed |
203 |
221 |
204 lemma fps_sin_Eii: |
|
205 "fps_sin c = (E (ii * c) - E (- ii * c)) / fps_const (2*ii)" |
|
206 proof- |
|
207 have th: "fps_const \<i> * fps_sin c + fps_const \<i> * fps_sin c = fps_sin c * fps_const (2 * ii)" |
|
208 by (simp add: fps_eq_iff) |
|
209 show ?thesis |
|
210 unfolding Eii_sin_cos minus_mult_commute |
|
211 by (simp add: fps_divide_def fps_const_inverse th) |
|
212 qed |
|
213 |
|
214 lemma fps_const_mult_2: "fps_const (2::'a::number_ring) * a = a +a" |
222 lemma fps_const_mult_2: "fps_const (2::'a::number_ring) * a = a +a" |
215 by (simp add: fps_eq_iff) |
223 by (simp add: fps_eq_iff fps_number_of_fps_const) |
216 |
224 |
217 lemma fps_const_mult_2_right: "a * fps_const (2::'a::number_ring) = a +a" |
225 lemma fps_const_mult_2_right: "a * fps_const (2::'a::number_ring) = a +a" |
218 by (simp add: fps_eq_iff) |
226 by (simp add: fps_eq_iff fps_number_of_fps_const) |
219 |
227 |
220 lemma fps_tan_Eii: |
228 lemma fps_tan_Eii: |
221 "fps_tan c = (E (ii * c) - E (- ii * c)) / (fps_const ii * (E (ii * c) + E (- ii * c)))" |
229 "fps_tan c = (E (ii * c) - E (- ii * c)) / (fps_const ii * (E (ii * c) + E (- ii * c)))" |
222 unfolding fps_tan_def fps_sin_Eii fps_cos_Eii mult_minus_left E_neg |
230 unfolding fps_tan_def fps_sin_Eii fps_cos_Eii mult_minus_left E_neg |
223 apply (simp add: fps_divide_def fps_inverse_mult fps_const_mult[symmetric] fps_const_inverse del: fps_const_mult) |
231 apply (simp add: fps_divide_def fps_inverse_mult fps_const_mult[symmetric] fps_const_inverse del: fps_const_mult) |