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 |