src/HOL/Complex.thy
changeset 54489 03ff4d1e6784
parent 54230 b1d955791529
child 55734 3f5b2745d659
equal deleted inserted replaced
54488:b60f1fab408c 54489:03ff4d1e6784
   106     Complex (Re x / ((Re x)\<^sup>2 + (Im x)\<^sup>2)) (- Im x / ((Re x)\<^sup>2 + (Im x)\<^sup>2))"
   106     Complex (Re x / ((Re x)\<^sup>2 + (Im x)\<^sup>2)) (- Im x / ((Re x)\<^sup>2 + (Im x)\<^sup>2))"
   107 
   107 
   108 definition complex_divide_def:
   108 definition complex_divide_def:
   109   "x / (y\<Colon>complex) = x * inverse y"
   109   "x / (y\<Colon>complex) = x * inverse y"
   110 
   110 
   111 lemma Complex_eq_1 [simp]: "(Complex a b = 1) = (a = 1 \<and> b = 0)"
   111 lemma Complex_eq_1 [simp]:
       
   112   "Complex a b = 1 \<longleftrightarrow> a = 1 \<and> b = 0"
       
   113   by (simp add: complex_one_def)
       
   114 
       
   115 lemma Complex_eq_neg_1 [simp]:
       
   116   "Complex a b = - 1 \<longleftrightarrow> a = - 1 \<and> b = 0"
   112   by (simp add: complex_one_def)
   117   by (simp add: complex_one_def)
   113 
   118 
   114 lemma complex_Re_one [simp]: "Re 1 = 1"
   119 lemma complex_Re_one [simp]: "Re 1 = 1"
   115   by (simp add: complex_one_def)
   120   by (simp add: complex_one_def)
   116 
   121 
   164   by (cases z rule: int_diff_cases) simp
   169   by (cases z rule: int_diff_cases) simp
   165 
   170 
   166 lemma complex_Re_numeral [simp]: "Re (numeral v) = numeral v"
   171 lemma complex_Re_numeral [simp]: "Re (numeral v) = numeral v"
   167   using complex_Re_of_int [of "numeral v"] by simp
   172   using complex_Re_of_int [of "numeral v"] by simp
   168 
   173 
   169 lemma complex_Re_neg_numeral [simp]: "Re (neg_numeral v) = neg_numeral v"
   174 lemma complex_Re_neg_numeral [simp]: "Re (- numeral v) = - numeral v"
   170   using complex_Re_of_int [of "neg_numeral v"] by simp
   175   using complex_Re_of_int [of "- numeral v"] by simp
   171 
   176 
   172 lemma complex_Im_numeral [simp]: "Im (numeral v) = 0"
   177 lemma complex_Im_numeral [simp]: "Im (numeral v) = 0"
   173   using complex_Im_of_int [of "numeral v"] by simp
   178   using complex_Im_of_int [of "numeral v"] by simp
   174 
   179 
   175 lemma complex_Im_neg_numeral [simp]: "Im (neg_numeral v) = 0"
   180 lemma complex_Im_neg_numeral [simp]: "Im (- numeral v) = 0"
   176   using complex_Im_of_int [of "neg_numeral v"] by simp
   181   using complex_Im_of_int [of "- numeral v"] by simp
   177 
   182 
   178 lemma Complex_eq_numeral [simp]:
   183 lemma Complex_eq_numeral [simp]:
   179   "(Complex a b = numeral w) = (a = numeral w \<and> b = 0)"
   184   "Complex a b = numeral w \<longleftrightarrow> a = numeral w \<and> b = 0"
   180   by (simp add: complex_eq_iff)
   185   by (simp add: complex_eq_iff)
   181 
   186 
   182 lemma Complex_eq_neg_numeral [simp]:
   187 lemma Complex_eq_neg_numeral [simp]:
   183   "(Complex a b = neg_numeral w) = (a = neg_numeral w \<and> b = 0)"
   188   "Complex a b = - numeral w \<longleftrightarrow> a = - numeral w \<and> b = 0"
   184   by (simp add: complex_eq_iff)
   189   by (simp add: complex_eq_iff)
   185 
   190 
   186 
   191 
   187 subsection {* Scalar Multiplication *}
   192 subsection {* Scalar Multiplication *}
   188 
   193 
   419   by (simp add: complex_eq_iff)
   424   by (simp add: complex_eq_iff)
   420 
   425 
   421 lemma complex_i_not_numeral [simp]: "ii \<noteq> numeral w"
   426 lemma complex_i_not_numeral [simp]: "ii \<noteq> numeral w"
   422   by (simp add: complex_eq_iff)
   427   by (simp add: complex_eq_iff)
   423 
   428 
   424 lemma complex_i_not_neg_numeral [simp]: "ii \<noteq> neg_numeral w"
   429 lemma complex_i_not_neg_numeral [simp]: "ii \<noteq> - numeral w"
   425   by (simp add: complex_eq_iff)
   430   by (simp add: complex_eq_iff)
   426 
   431 
   427 lemma i_mult_Complex [simp]: "ii * Complex a b = Complex (- b) a"
   432 lemma i_mult_Complex [simp]: "ii * Complex a b = Complex (- b) a"
   428   by (simp add: complex_eq_iff)
   433   by (simp add: complex_eq_iff)
   429 
   434 
   506   by (simp add: complex_eq_iff)
   511   by (simp add: complex_eq_iff)
   507 
   512 
   508 lemma complex_cnj_numeral [simp]: "cnj (numeral w) = numeral w"
   513 lemma complex_cnj_numeral [simp]: "cnj (numeral w) = numeral w"
   509   by (simp add: complex_eq_iff)
   514   by (simp add: complex_eq_iff)
   510 
   515 
   511 lemma complex_cnj_neg_numeral [simp]: "cnj (neg_numeral w) = neg_numeral w"
   516 lemma complex_cnj_neg_numeral [simp]: "cnj (- numeral w) = - numeral w"
   512   by (simp add: complex_eq_iff)
   517   by (simp add: complex_eq_iff)
   513 
   518 
   514 lemma complex_cnj_scaleR: "cnj (scaleR r x) = scaleR r (cnj x)"
   519 lemma complex_cnj_scaleR: "cnj (scaleR r x) = scaleR r (cnj x)"
   515   by (simp add: complex_eq_iff)
   520   by (simp add: complex_eq_iff)
   516 
   521