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