src/HOL/NSA/NSComplex.thy
changeset 61945 1135b8de26c3
parent 61609 77b453bd616f
child 61975 b4b11391c676
equal deleted inserted replaced
61944:5d06ecfdb472 61945:1135b8de26c3
   226 
   226 
   227 
   227 
   228 subsection{*Modulus (Absolute Value) of Nonstandard Complex Number*}
   228 subsection{*Modulus (Absolute Value) of Nonstandard Complex Number*}
   229 
   229 
   230 lemma hcomplex_of_hypreal_abs:
   230 lemma hcomplex_of_hypreal_abs:
   231      "hcomplex_of_hypreal (abs x) =
   231      "hcomplex_of_hypreal \<bar>x\<bar> =
   232       hcomplex_of_hypreal(hcmod(hcomplex_of_hypreal x))"
   232       hcomplex_of_hypreal (hcmod (hcomplex_of_hypreal x))"
   233 by simp
   233 by simp
   234 
   234 
   235 lemma HComplex_inject [simp]:
   235 lemma HComplex_inject [simp]:
   236   "!!x y x' y'. HComplex x y = HComplex x' y' = (x=x' & y=y')"
   236   "!!x y x' y'. HComplex x y = HComplex x' y' = (x=x' & y=y')"
   237 by transfer (rule complex.inject)
   237 by transfer (rule complex.inject)
   445 
   445 
   446 lemma hIm_mult_i_eq [simp]:
   446 lemma hIm_mult_i_eq [simp]:
   447     "!!y. hIm (iii * hcomplex_of_hypreal y) = y"
   447     "!!y. hIm (iii * hcomplex_of_hypreal y) = y"
   448 by transfer simp
   448 by transfer simp
   449 
   449 
   450 lemma hcmod_mult_i [simp]: "!!y. hcmod (iii * hcomplex_of_hypreal y) = abs y"
   450 lemma hcmod_mult_i [simp]: "!!y. hcmod (iii * hcomplex_of_hypreal y) = \<bar>y\<bar>"
   451 by transfer (simp add: norm_complex_def)
   451 by transfer (simp add: norm_complex_def)
   452 
   452 
   453 lemma hcmod_mult_i2 [simp]: "!!y. hcmod (hcomplex_of_hypreal y * iii) = abs y"
   453 lemma hcmod_mult_i2 [simp]: "!!y. hcmod (hcomplex_of_hypreal y * iii) = \<bar>y\<bar>"
   454 by transfer (simp add: norm_complex_def)
   454 by transfer (simp add: norm_complex_def)
   455 
   455 
   456 (*---------------------------------------------------------------------------*)
   456 (*---------------------------------------------------------------------------*)
   457 (*  harg                                                                     *)
   457 (*  harg                                                                     *)
   458 (*---------------------------------------------------------------------------*)
   458 (*---------------------------------------------------------------------------*)
   504 lemma hcmod_unit_one [simp]:
   504 lemma hcmod_unit_one [simp]:
   505      "!!a. hcmod (HComplex (( *f* cos) a) (( *f* sin) a)) = 1"
   505      "!!a. hcmod (HComplex (( *f* cos) a) (( *f* sin) a)) = 1"
   506 by transfer (simp add: cmod_unit_one)
   506 by transfer (simp add: cmod_unit_one)
   507 
   507 
   508 lemma hcmod_complex_polar [simp]:
   508 lemma hcmod_complex_polar [simp]:
   509   "!!r a. hcmod (hcomplex_of_hypreal r * HComplex (( *f* cos) a) (( *f* sin) a)) =
   509   "!!r a. hcmod (hcomplex_of_hypreal r * HComplex (( *f* cos) a) (( *f* sin) a)) = \<bar>r\<bar>"
   510       abs r"
       
   511 by transfer (simp add: cmod_complex_polar)
   510 by transfer (simp add: cmod_complex_polar)
   512 
   511 
   513 lemma hcmod_hrcis [simp]: "!!r a. hcmod(hrcis r a) = abs r"
   512 lemma hcmod_hrcis [simp]: "!!r a. hcmod(hrcis r a) = \<bar>r\<bar>"
   514 by transfer (rule complex_mod_rcis)
   513 by transfer (rule complex_mod_rcis)
   515 
   514 
   516 (*---------------------------------------------------------------------------*)
   515 (*---------------------------------------------------------------------------*)
   517 (*  (r1 * hrcis a) * (r2 * hrcis b) = r1 * r2 * hrcis (a + b)                *)
   516 (*  (r1 * hrcis a) * (r2 * hrcis b) = r1 * r2 * hrcis (a + b)                *)
   518 (*---------------------------------------------------------------------------*)
   517 (*---------------------------------------------------------------------------*)