author | wenzelm |
Fri, 09 Nov 2001 00:09:47 +0100 | |
changeset 12114 | a8e860c86252 |
parent 10919 | 144ede948e58 |
child 14370 | b0064703967b |
permissions | -rw-r--r-- |
10751 | 1 |
(* Title : NSA.thy |
2 |
Author : Jacques D. Fleuriot |
|
3 |
Copyright : 1998 University of Cambridge |
|
4 |
Description : Infinite numbers, Infinitesimals, |
|
5 |
infinitely close relation etc. |
|
6 |
*) |
|
7 |
||
8 |
NSA = HRealAbs + RComplete + |
|
9 |
||
10 |
constdefs |
|
11 |
||
12 |
Infinitesimal :: "hypreal set" |
|
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
13 |
"Infinitesimal == {x. ALL r: Reals. 0 < r --> abs x < r}" |
10751 | 14 |
|
15 |
HFinite :: "hypreal set" |
|
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
16 |
"HFinite == {x. EX r: Reals. abs x < r}" |
10751 | 17 |
|
18 |
HInfinite :: "hypreal set" |
|
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
19 |
"HInfinite == {x. ALL r: Reals. r < abs x}" |
10751 | 20 |
|
21 |
(* standard part map *) |
|
22 |
st :: hypreal => hypreal |
|
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
23 |
"st == (%x. @r. x : HFinite & r:Reals & r @= x)" |
10751 | 24 |
|
25 |
monad :: hypreal => hypreal set |
|
26 |
"monad x == {y. x @= y}" |
|
27 |
||
28 |
galaxy :: hypreal => hypreal set |
|
29 |
"galaxy x == {y. (x + -y) : HFinite}" |
|
30 |
||
31 |
(* infinitely close *) |
|
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
32 |
approx :: "[hypreal, hypreal] => bool" (infixl "@=" 50) |
10751 | 33 |
"x @= y == (x + -y) : Infinitesimal" |
34 |
||
35 |
||
36 |
defs |
|
37 |
||
38 |
(*standard real numbers as a subset of the hyperreals*) |
|
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
39 |
SReal_def "Reals == {x. EX r. x = hypreal_of_real r}" |
10751 | 40 |
|
12114
a8e860c86252
eliminated old "symbols" syntax, use "xsymbols" instead;
wenzelm
parents:
10919
diff
changeset
|
41 |
syntax (xsymbols) |
10919
144ede948e58
renamings: real_of_nat, real_of_int -> (overloaded) real
paulson
parents:
10751
diff
changeset
|
42 |
approx :: "[hypreal, hypreal] => bool" (infixl "\\<approx>" 50) |
10751 | 43 |
|
44 |
end |
|
45 |
||
46 |
||
47 |
||
48 |