src/HOL/Hyperreal/Star.thy
changeset 10751 a81ea5d3dd41
child 10797 028d22926a41
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Hyperreal/Star.thy	Sat Dec 30 22:03:47 2000 +0100
@@ -0,0 +1,39 @@
+(*  Title       : Star.thy
+    Author      : Jacques D. Fleuriot
+    Copyright   : 1998  University of Cambridge
+    Description : defining *-transforms in NSA which extends sets of reals, 
+                  and real=>real functions
+*) 
+
+Star = NSA +
+
+constdefs
+    (* nonstandard extension of sets *)
+    starset :: real set => hypreal set          ("*s* _" [80] 80)
+    "*s* A  == {x. ALL X: Rep_hypreal(x). {n::nat. X n : A}: FreeUltrafilterNat}"
+
+    (* internal sets *)
+    starset_n :: (nat => real set) => hypreal set        ("*sn* _" [80] 80)
+    "*sn* As  == {x. ALL X: Rep_hypreal(x). {n::nat. X n : (As n)}: FreeUltrafilterNat}"   
+    
+    InternalSets :: "hypreal set set"
+    "InternalSets == {X. EX As. X = *sn* As}"
+
+    (* nonstandard extension of function *)
+    is_starext  ::  [hypreal => hypreal, real => real] => bool
+    "is_starext F f == (ALL x y. EX X: Rep_hypreal(x). EX Y: Rep_hypreal(y).
+                        ((y = (F x)) = ({n. Y n = f(X n)} : FreeUltrafilterNat)))"
+    
+    starfun :: (real => real) => hypreal => hypreal        ("*f* _" [80] 80)
+    "*f* f  == (%x. Abs_hypreal(UN X: Rep_hypreal(x). hyprel^^{%n. f (X n)}))" 
+
+    (* internal functions *)
+    starfun_n :: (nat => (real => real)) => hypreal => hypreal        ("*fn* _" [80] 80)
+    "*fn* F  == (%x. Abs_hypreal(UN X: Rep_hypreal(x). hyprel^^{%n. (F n)(X n)}))" 
+
+    InternalFuns :: (hypreal => hypreal) set
+    "InternalFuns == {X. EX F. X = *fn* F}"
+end
+
+
+