src/HOL/Complex/CStar.thy
author nipkow
Sun, 25 Jan 2004 00:42:22 +0100
changeset 14360 e654599b114e
parent 13957 10dbf16be15f
child 14407 043bf0d9e9b5
permissions -rw-r--r--
Added an exception handler and error msg.

(*  Title       : CStar.thy
    Author      : Jacques D. Fleuriot
    Copyright   : 2001 University of Edinburgh
    Description : defining *-transforms in NSA which extends sets of complex numbers, 
                  and complex functions
*)

CStar = NSCA + 

constdefs

    (* nonstandard extension of sets *)
    starsetC :: complex set => hcomplex set          ("*sc* _" [80] 80)
    "*sc* A  == {x. ALL X: Rep_hcomplex(x). {n::nat. X n : A}: FreeUltrafilterNat}"

    (* internal sets *)
    starsetC_n :: (nat => complex set) => hcomplex set        ("*scn* _" [80] 80)
    "*scn* As  == {x. ALL X: Rep_hcomplex(x). {n::nat. X n : (As n)}: FreeUltrafilterNat}"   
    
    InternalCSets :: "hcomplex set set"
    "InternalCSets == {X. EX As. X = *scn* As}"

    (* star transform of functions f: Complex --> Complex *)

    starfunC :: (complex => complex) => hcomplex => hcomplex        ("*fc* _" [80] 80)
    "*fc* f  == (%x. Abs_hcomplex(UN X: Rep_hcomplex(x). hcomplexrel``{%n. f (X n)}))" 

    starfunC_n :: (nat => (complex => complex)) => hcomplex => hcomplex  ("*fcn* _" [80] 80)
    "*fcn* F  == (%x. Abs_hcomplex(UN X: Rep_hcomplex(x). hcomplexrel``{%n. (F n)(X n)}))" 

    InternalCFuns :: (hcomplex => hcomplex) set
    "InternalCFuns == {X. EX F. X = *fcn* F}"


    (* star transform of functions f: Real --> Complex *)

    starfunRC :: (real => complex) => hypreal => hcomplex        ("*fRc* _" [80] 80)
    "*fRc* f  == (%x. Abs_hcomplex(UN X: Rep_hypreal(x). hcomplexrel``{%n. f (X n)}))" 

    starfunRC_n :: (nat => (real => complex)) => hypreal => hcomplex  ("*fRcn* _" [80] 80)
    "*fRcn* F  == (%x. Abs_hcomplex(UN X: Rep_hypreal(x). hcomplexrel``{%n. (F n)(X n)}))" 

    InternalRCFuns :: (hypreal => hcomplex) set
    "InternalRCFuns == {X. EX F. X = *fRcn* F}"

    (* star transform of functions f: Complex --> Real; needed for Re and Im parts *)

    starfunCR :: (complex => real) => hcomplex => hypreal        ("*fcR* _" [80] 80)
    "*fcR* f  == (%x. Abs_hypreal(UN X: Rep_hcomplex(x). hyprel``{%n. f (X n)}))" 

    starfunCR_n :: (nat => (complex => real)) => hcomplex => hypreal  ("*fcRn* _" [80] 80)
    "*fcRn* F  == (%x. Abs_hypreal(UN X: Rep_hcomplex(x). hyprel``{%n. (F n)(X n)}))" 

    InternalCRFuns :: (hcomplex => hypreal) set
    "InternalCRFuns == {X. EX F. X = *fcRn* F}"

end