13957
|
1 |
(* Title : CStar.thy
|
|
2 |
Author : Jacques D. Fleuriot
|
|
3 |
Copyright : 2001 University of Edinburgh
|
|
4 |
Description : defining *-transforms in NSA which extends sets of complex numbers,
|
|
5 |
and complex functions
|
|
6 |
*)
|
|
7 |
|
|
8 |
CStar = NSCA +
|
|
9 |
|
|
10 |
constdefs
|
|
11 |
|
|
12 |
(* nonstandard extension of sets *)
|
|
13 |
starsetC :: complex set => hcomplex set ("*sc* _" [80] 80)
|
|
14 |
"*sc* A == {x. ALL X: Rep_hcomplex(x). {n::nat. X n : A}: FreeUltrafilterNat}"
|
|
15 |
|
|
16 |
(* internal sets *)
|
|
17 |
starsetC_n :: (nat => complex set) => hcomplex set ("*scn* _" [80] 80)
|
|
18 |
"*scn* As == {x. ALL X: Rep_hcomplex(x). {n::nat. X n : (As n)}: FreeUltrafilterNat}"
|
|
19 |
|
|
20 |
InternalCSets :: "hcomplex set set"
|
|
21 |
"InternalCSets == {X. EX As. X = *scn* As}"
|
|
22 |
|
|
23 |
(* star transform of functions f: Complex --> Complex *)
|
|
24 |
|
|
25 |
starfunC :: (complex => complex) => hcomplex => hcomplex ("*fc* _" [80] 80)
|
|
26 |
"*fc* f == (%x. Abs_hcomplex(UN X: Rep_hcomplex(x). hcomplexrel``{%n. f (X n)}))"
|
|
27 |
|
|
28 |
starfunC_n :: (nat => (complex => complex)) => hcomplex => hcomplex ("*fcn* _" [80] 80)
|
|
29 |
"*fcn* F == (%x. Abs_hcomplex(UN X: Rep_hcomplex(x). hcomplexrel``{%n. (F n)(X n)}))"
|
|
30 |
|
|
31 |
InternalCFuns :: (hcomplex => hcomplex) set
|
|
32 |
"InternalCFuns == {X. EX F. X = *fcn* F}"
|
|
33 |
|
|
34 |
|
|
35 |
(* star transform of functions f: Real --> Complex *)
|
|
36 |
|
|
37 |
starfunRC :: (real => complex) => hypreal => hcomplex ("*fRc* _" [80] 80)
|
|
38 |
"*fRc* f == (%x. Abs_hcomplex(UN X: Rep_hypreal(x). hcomplexrel``{%n. f (X n)}))"
|
|
39 |
|
|
40 |
starfunRC_n :: (nat => (real => complex)) => hypreal => hcomplex ("*fRcn* _" [80] 80)
|
|
41 |
"*fRcn* F == (%x. Abs_hcomplex(UN X: Rep_hypreal(x). hcomplexrel``{%n. (F n)(X n)}))"
|
|
42 |
|
|
43 |
InternalRCFuns :: (hypreal => hcomplex) set
|
|
44 |
"InternalRCFuns == {X. EX F. X = *fRcn* F}"
|
|
45 |
|
|
46 |
(* star transform of functions f: Complex --> Real; needed for Re and Im parts *)
|
|
47 |
|
|
48 |
starfunCR :: (complex => real) => hcomplex => hypreal ("*fcR* _" [80] 80)
|
|
49 |
"*fcR* f == (%x. Abs_hypreal(UN X: Rep_hcomplex(x). hyprel``{%n. f (X n)}))"
|
|
50 |
|
|
51 |
starfunCR_n :: (nat => (complex => real)) => hcomplex => hypreal ("*fcRn* _" [80] 80)
|
|
52 |
"*fcRn* F == (%x. Abs_hypreal(UN X: Rep_hcomplex(x). hyprel``{%n. (F n)(X n)}))"
|
|
53 |
|
|
54 |
InternalCRFuns :: (hcomplex => hypreal) set
|
|
55 |
"InternalCRFuns == {X. EX F. X = *fcRn* F}"
|
|
56 |
|
|
57 |
end |