src/HOL/Complex.thy
changeset 65578 e4997c181cce
parent 65274 db2de50de28e
child 65579 52eafedaf196
equal deleted inserted replaced
65577:32d4117ad6e8 65578:e4997c181cce
   136 qed
   136 qed
   137 
   137 
   138 end
   138 end
   139 
   139 
   140 
   140 
   141 subsection \<open>Numerals, Arithmetic, and Embedding from Reals\<close>
   141 subsection \<open>Numerals, Arithmetic, and Embedding from \<real>\<close>
   142 
   142 
   143 abbreviation complex_of_real :: "real \<Rightarrow> complex"
   143 abbreviation complex_of_real :: "real \<Rightarrow> complex"
   144   where "complex_of_real \<equiv> of_real"
   144   where "complex_of_real \<equiv> of_real"
   145 
   145 
   146 declare [[coercion "of_real :: real \<Rightarrow> complex"]]
   146 declare [[coercion "of_real :: real \<Rightarrow> complex"]]
   647   by (simp add: Re_divide power2_eq_square)
   647   by (simp add: Re_divide power2_eq_square)
   648 
   648 
   649 lemma Im_divide_of_real [simp]: "Im (z / of_real r) = Im z / r"
   649 lemma Im_divide_of_real [simp]: "Im (z / of_real r) = Im z / r"
   650   by (simp add: Im_divide power2_eq_square)
   650   by (simp add: Im_divide power2_eq_square)
   651 
   651 
   652 lemma Re_divide_Reals: "r \<in> Reals \<Longrightarrow> Re (z / r) = Re z / Re r"
   652 lemma Re_divide_Reals [simp]: "r \<in> \<real> \<Longrightarrow> Re (z / r) = Re z / Re r"
   653   by (metis Re_divide_of_real of_real_Re)
   653   by (metis Re_divide_of_real of_real_Re)
   654 
   654 
   655 lemma Im_divide_Reals: "r \<in> Reals \<Longrightarrow> Im (z / r) = Im z / Re r"
   655 lemma Im_divide_Reals [simp]: "r \<in> \<real> \<Longrightarrow> Im (z / r) = Im z / Re r"
   656   by (metis Im_divide_of_real of_real_Re)
   656   by (metis Im_divide_of_real of_real_Re)
   657 
   657 
   658 lemma Re_sum[simp]: "Re (sum f s) = (\<Sum>x\<in>s. Re (f x))"
   658 lemma Re_sum[simp]: "Re (sum f s) = (\<Sum>x\<in>s. Re (f x))"
   659   by (induct s rule: infinite_finite_induct) auto
   659   by (induct s rule: infinite_finite_induct) auto
   660 
   660 
   688 lemma Reals_cnj_iff: "z \<in> \<real> \<longleftrightarrow> cnj z = z"
   688 lemma Reals_cnj_iff: "z \<in> \<real> \<longleftrightarrow> cnj z = z"
   689   by (auto simp: complex_is_Real_iff complex_eq_iff)
   689   by (auto simp: complex_is_Real_iff complex_eq_iff)
   690 
   690 
   691 lemma in_Reals_norm: "z \<in> \<real> \<Longrightarrow> norm z = \<bar>Re z\<bar>"
   691 lemma in_Reals_norm: "z \<in> \<real> \<Longrightarrow> norm z = \<bar>Re z\<bar>"
   692   by (simp add: complex_is_Real_iff norm_complex_def)
   692   by (simp add: complex_is_Real_iff norm_complex_def)
       
   693 
       
   694 lemma Re_Reals_divide: "r \<in> \<real> \<Longrightarrow> Re (r / z) = Re r * Re z / (norm z)\<^sup>2"
       
   695   by (simp add: Re_divide complex_is_Real_iff cmod_power2)
       
   696 
       
   697 lemma Im_Reals_divide: "r \<in> \<real> \<Longrightarrow> Im (r / z) = -Re r * Im z / (norm z)\<^sup>2"
       
   698   by (simp add: Im_divide complex_is_Real_iff cmod_power2)
   693 
   699 
   694 lemma series_comparison_complex:
   700 lemma series_comparison_complex:
   695   fixes f:: "nat \<Rightarrow> 'a::banach"
   701   fixes f:: "nat \<Rightarrow> 'a::banach"
   696   assumes sg: "summable g"
   702   assumes sg: "summable g"
   697     and "\<And>n. g n \<in> \<real>" "\<And>n. Re (g n) \<ge> 0"
   703     and "\<And>n. g n \<in> \<real>" "\<And>n. Re (g n) \<ge> 0"