src/HOL/Complex/CStar.ML
changeset 14377 f454b3004f8f
parent 14370 b0064703967b
child 14378 69c4d5997669
equal deleted inserted replaced
14376:9fe787a90a48 14377:f454b3004f8f
   192 by (Auto_tac);
   192 by (Auto_tac);
   193 qed "starfunCR_n_starfunCR";
   193 qed "starfunCR_n_starfunCR";
   194 
   194 
   195 Goalw [congruent_def] 
   195 Goalw [congruent_def] 
   196       "congruent hcomplexrel (%X. hcomplexrel``{%n. f (X n)})";
   196       "congruent hcomplexrel (%X. hcomplexrel``{%n. f (X n)})";
   197 by (safe_tac (claset()));
   197 by (auto_tac (clasimpset() addIffs [hcomplexrel_iff]));
   198 by (ALLGOALS(Ultra_tac));
   198 by (ALLGOALS(Ultra_tac));
   199 qed "starfunC_congruent";
   199 qed "starfunC_congruent";
   200 
   200 
   201 (* f::complex => complex *)
   201 (* f::complex => complex *)
   202 Goalw [starfunC_def]
   202 Goalw [starfunC_def]
   203       "( *fc* f) (Abs_hcomplex(hcomplexrel``{%n. X n})) = \
   203       "( *fc* f) (Abs_hcomplex(hcomplexrel``{%n. X n})) = \
   204 \      Abs_hcomplex(hcomplexrel `` {%n. f (X n)})";
   204 \      Abs_hcomplex(hcomplexrel `` {%n. f (X n)})";
   205 by (res_inst_tac [("f","Abs_hcomplex")] arg_cong 1);
   205 by (res_inst_tac [("f","Abs_hcomplex")] arg_cong 1);
   206 by Auto_tac;
   206 by (auto_tac (clasimpset() addIffs [hcomplexrel_iff]));
   207 by (Ultra_tac 1);
   207 by (Ultra_tac 1);
   208 qed "starfunC";
   208 qed "starfunC";
   209 
   209 
   210 Goalw [starfunRC_def]
   210 Goalw [starfunRC_def]
   211       "( *fRc* f) (Abs_hypreal(hyprel``{%n. X n})) = \
   211       "( *fRc* f) (Abs_hypreal(hyprel``{%n. X n})) = \
   217 
   217 
   218 Goalw [starfunCR_def]
   218 Goalw [starfunCR_def]
   219       "( *fcR* f) (Abs_hcomplex(hcomplexrel``{%n. X n})) = \
   219       "( *fcR* f) (Abs_hcomplex(hcomplexrel``{%n. X n})) = \
   220 \      Abs_hypreal(hyprel `` {%n. f (X n)})";
   220 \      Abs_hypreal(hyprel `` {%n. f (X n)})";
   221 by (res_inst_tac [("f","Abs_hypreal")] arg_cong 1);
   221 by (res_inst_tac [("f","Abs_hypreal")] arg_cong 1);
   222 by Auto_tac;
   222 by (auto_tac (clasimpset() addIffs [hcomplexrel_iff]));
   223 by (Ultra_tac 1);
   223 by (Ultra_tac 1);
   224 qed "starfunCR";
   224 qed "starfunCR";
   225 
   225 
   226 (**  multiplication: ( *f ) x ( *g ) = *(f x g) **)
   226 (**  multiplication: ( *f ) x ( *g ) = *(f x g) **)
   227 
   227 
   521 (* Internal functions - some redundancy with *fc* now                                *)
   521 (* Internal functions - some redundancy with *fc* now                                *)
   522 (*-----------------------------------------------------------------------------------*)
   522 (*-----------------------------------------------------------------------------------*)
   523 
   523 
   524 Goalw [congruent_def] 
   524 Goalw [congruent_def] 
   525       "congruent hcomplexrel (%X. hcomplexrel``{%n. f n (X n)})";
   525       "congruent hcomplexrel (%X. hcomplexrel``{%n. f n (X n)})";
   526 by (safe_tac (claset()));
   526 by (auto_tac (clasimpset() addIffs [hcomplexrel_iff]));
   527 by (ALLGOALS(Fuf_tac));
   527 by (ALLGOALS(Fuf_tac));
   528 qed "starfunC_n_congruent";
   528 qed "starfunC_n_congruent";
   529 
   529 
   530 Goalw [starfunC_n_def]
   530 Goalw [starfunC_n_def]
   531      "( *fcn* f) (Abs_hcomplex(hcomplexrel``{%n. X n})) = \
   531      "( *fcn* f) (Abs_hcomplex(hcomplexrel``{%n. X n})) = \
   532 \     Abs_hcomplex(hcomplexrel `` {%n. f n (X n)})";
   532 \     Abs_hcomplex(hcomplexrel `` {%n. f n (X n)})";
   533 by (res_inst_tac [("f","Abs_hcomplex")] arg_cong 1);
   533 by (res_inst_tac [("f","Abs_hcomplex")] arg_cong 1);
   534 by Auto_tac;
   534 by (auto_tac (clasimpset() addIffs [hcomplexrel_iff]));
   535 by (Ultra_tac 1);
   535 by (Ultra_tac 1);
   536 qed "starfunC_n";
   536 qed "starfunC_n";
   537 
   537 
   538 (**  multiplication: ( *fn ) x ( *gn ) = *(fn x gn) **)
   538 (**  multiplication: ( *fn ) x ( *gn ) = *(fn x gn) **)
   539 
   539