# HG changeset patch # User huffman # Date 1166033145 -3600 # Node ID e38f0226e95655461f5d78537c03b27b5df27405 # Parent 016eff9c5699d75c224bd29ad7821772ff518f5f SComplex abbreviates Standard diff -r 016eff9c5699 -r e38f0226e956 src/HOL/Complex/CStar.thy --- a/src/HOL/Complex/CStar.thy Wed Dec 13 16:33:11 2006 +0100 +++ b/src/HOL/Complex/CStar.thy Wed Dec 13 19:05:45 2006 +0100 @@ -14,7 +14,7 @@ lemma STARC_hcomplex_of_complex_Int: "*s* X Int SComplex = hcomplex_of_complex ` X" -by (auto simp add: SComplex_def) +by (auto simp add: Standard_def) lemma lemma_not_hcomplexA: "x \ hcomplex_of_complex ` A ==> \y \ A. x \ hcomplex_of_complex y" diff -r 016eff9c5699 -r e38f0226e956 src/HOL/Complex/NSCA.thy --- a/src/HOL/Complex/NSCA.thy Wed Dec 13 16:33:11 2006 +0100 +++ b/src/HOL/Complex/NSCA.thy Wed Dec 13 19:05:45 2006 +0100 @@ -9,10 +9,10 @@ imports NSComplex begin -definition +abbreviation (* standard complex numbers reagarded as an embedded subset of NS complex *) SComplex :: "hcomplex set" where - "SComplex = {x. \r. x = hcomplex_of_complex r}" + "SComplex \ Standard" definition stc :: "hcomplex => hcomplex" where @@ -23,36 +23,27 @@ subsection{*Closure Laws for SComplex, the Standard Complex Numbers*} lemma SComplex_add: "[| x \ SComplex; y \ SComplex |] ==> x + y \ SComplex" -apply (simp add: SComplex_def, safe) -apply (rule_tac x = "r + ra" in exI, simp) -done +by (rule Standard_add) lemma SComplex_mult: "[| x \ SComplex; y \ SComplex |] ==> x * y \ SComplex" -apply (simp add: SComplex_def, safe) -apply (rule_tac x = "r * ra" in exI, simp) -done +by (rule Standard_mult) lemma SComplex_inverse: "x \ SComplex ==> inverse x \ SComplex" -apply (simp add: SComplex_def) -apply (blast intro: star_of_inverse [symmetric]) -done +by (rule Standard_inverse) lemma SComplex_divide: "[| x \ SComplex; y \ SComplex |] ==> x/y \ SComplex" -by (simp add: SComplex_mult SComplex_inverse divide_inverse) +by (rule Standard_divide) lemma SComplex_minus: "x \ SComplex ==> -x \ SComplex" -apply (simp add: SComplex_def) -apply (blast intro: star_of_minus [symmetric]) -done +by (rule Standard_minus) lemma SComplex_minus_iff [simp]: "(-x \ SComplex) = (x \ SComplex)" apply auto -apply (erule_tac [2] SComplex_minus) apply (drule SComplex_minus, auto) done lemma SComplex_diff: "[| x \ SComplex; y \ SComplex |] ==> x - y \ SComplex" -by (simp add: diff_minus SComplex_add) +by (rule Standard_diff) lemma SComplex_add_cancel: "[| x + y \ SComplex; y \ SComplex |] ==> x \ SComplex" @@ -60,7 +51,7 @@ lemma SReal_hcmod_hcomplex_of_complex [simp]: "hcmod (hcomplex_of_complex r) \ Reals" -by (auto simp add: hcmod SReal_def star_of_def) +by (simp add: Reals_eq_Standard) lemma SReal_hcmod_number_of [simp]: "hcmod (number_of w ::hcomplex) \ Reals" apply (subst star_of_number_of [symmetric]) @@ -68,41 +59,37 @@ done lemma SReal_hcmod_SComplex: "x \ SComplex ==> hcmod x \ Reals" -by (auto simp add: SComplex_def) - -lemma SComplex_hcomplex_of_complex [simp]: "hcomplex_of_complex x \ SComplex" -by (simp add: SComplex_def) +by (simp add: Reals_eq_Standard) -lemma SComplex_number_of [simp]: "(number_of w ::hcomplex) \ SComplex" -apply (subst star_of_number_of [symmetric]) -apply (rule SComplex_hcomplex_of_complex) -done +lemma SComplex_hcomplex_of_complex: "hcomplex_of_complex x \ SComplex" +by (rule Standard_star_of) + +lemma SComplex_number_of: "(number_of w ::hcomplex) \ SComplex" +by (rule Standard_number_of) lemma SComplex_divide_number_of: "r \ SComplex ==> r/(number_of w::hcomplex) \ SComplex" -apply (simp only: divide_inverse) -apply (blast intro!: SComplex_number_of SComplex_mult SComplex_inverse) -done +by simp lemma SComplex_UNIV_complex: "{x. hcomplex_of_complex x \ SComplex} = (UNIV::complex set)" -by (simp add: SComplex_def) +by simp lemma SComplex_iff: "(x \ SComplex) = (\y. x = hcomplex_of_complex y)" -by (simp add: SComplex_def) +by (simp add: Standard_def image_def) lemma hcomplex_of_complex_image: "hcomplex_of_complex `(UNIV::complex set) = SComplex" -by (auto simp add: SComplex_def) +by (simp add: Standard_def) lemma inv_hcomplex_of_complex_image: "inv hcomplex_of_complex `SComplex = UNIV" -apply (auto simp add: SComplex_def) +apply (auto simp add: Standard_def image_def) apply (rule inj_hcomplex_of_complex [THEN inv_f_f, THEN subst], blast) done lemma SComplex_hcomplex_of_complex_image: "[| \x. x: P; P \ SComplex |] ==> \Q. P = hcomplex_of_complex ` Q" -apply (simp add: SComplex_def, blast) +apply (simp add: Standard_def, blast) done lemma SComplex_SReal_dense: @@ -113,13 +100,13 @@ lemma SComplex_hcmod_SReal: "z \ SComplex ==> hcmod z \ Reals" -by (auto simp add: SComplex_def) +by (simp add: Reals_eq_Standard) -lemma SComplex_zero [simp]: "0 \ SComplex" -by (simp add: SComplex_def) +lemma SComplex_zero: "0 \ SComplex" +by (rule Standard_zero) -lemma SComplex_one [simp]: "1 \ SComplex" -by (simp add: SComplex_def) +lemma SComplex_one: "1 \ SComplex" +by (rule Standard_one) (* Goalw [SComplex_def,SReal_def] "hcmod z \ Reals ==> z \ SComplex" @@ -132,7 +119,7 @@ subsection{*The Finite Elements form a Subring*} lemma SComplex_subset_HFinite [simp]: "SComplex \ HFinite" -by (auto simp add: SComplex_def) +by (auto simp add: Standard_def) lemma HFinite_hcmod_hcomplex_of_complex [simp]: "hcmod (hcomplex_of_complex r) \ HFinite" @@ -274,7 +261,7 @@ by (auto intro: Infinitesimal_less_SReal SComplex_hcmod_SReal simp add: Infinitesimal_hcmod_iff) lemma SComplex_Int_Infinitesimal_zero: "SComplex Int Infinitesimal = {0}" -by (auto simp add: SComplex_def Infinitesimal_hcmod_iff) +by (auto simp add: Standard_def Infinitesimal_hcmod_iff) lemma SComplex_Infinitesimal_zero: "[| x \ SComplex; x \ Infinitesimal|] ==> x = 0" @@ -303,7 +290,7 @@ lemma SComplex_approx_iff: "[|x \ SComplex; y \ SComplex|] ==> (x @= y) = (x = y)" -by (auto simp add: SComplex_def) +by (auto simp add: Standard_def) lemma number_of_Infinitesimal_iff [simp]: "((number_of w :: hcomplex) \ Infinitesimal) = @@ -441,22 +428,22 @@ lemma SComplex_Re_SReal: "star_n X \ SComplex ==> star_n (%n. Re(X n)) \ Reals" -apply (auto simp add: SComplex_def SReal_def star_of_def star_n_eq_iff) -apply (rule_tac x = "Re r" in exI, ultra) +apply (auto simp add: Standard_def SReal_def star_of_def star_n_eq_iff) +apply (rule_tac x = "Re x" in exI, ultra) done lemma SComplex_Im_SReal: "star_n X \ SComplex ==> star_n (%n. Im(X n)) \ Reals" -apply (auto simp add: SComplex_def SReal_def star_of_def star_n_eq_iff) -apply (rule_tac x = "Im r" in exI, ultra) +apply (auto simp add: Standard_def SReal_def star_of_def star_n_eq_iff) +apply (rule_tac x = "Im x" in exI, ultra) done lemma Reals_Re_Im_SComplex: "[| star_n (%n. Re(X n)) \ Reals; star_n (%n. Im(X n)) \ Reals |] ==> star_n X \ SComplex" -apply (auto simp add: SComplex_def SReal_def star_of_def star_n_eq_iff) +apply (auto simp add: Standard_def image_def SReal_def star_of_def star_n_eq_iff) apply (rule_tac x = "Complex r ra" in exI, ultra) done