src/HOL/Hyperreal/NSA.thy
author paulson
Fri, 16 Nov 2001 18:24:11 +0100
changeset 12224 02df7cbe7d25
parent 12114 a8e860c86252
child 14370 b0064703967b
permissions -rw-r--r--
even more theories from Jacques

(*  Title       : NSA.thy
    Author      : Jacques D. Fleuriot
    Copyright   : 1998  University of Cambridge
    Description : Infinite numbers, Infinitesimals,
                  infinitely close relation etc.
*) 

NSA = HRealAbs + RComplete +

constdefs

  Infinitesimal  :: "hypreal set"
   "Infinitesimal == {x. ALL r: Reals. 0 < r --> abs x < r}"

  HFinite :: "hypreal set"
   "HFinite == {x. EX r: Reals. abs x < r}"

  HInfinite :: "hypreal set"
   "HInfinite == {x. ALL r: Reals. r < abs x}"

  (* standard part map *)
  st        :: hypreal => hypreal
   "st           == (%x. @r. x : HFinite & r:Reals & r @= x)"

  monad     :: hypreal => hypreal set
   "monad x      == {y. x @= y}"

  galaxy    :: hypreal => hypreal set
   "galaxy x     == {y. (x + -y) : HFinite}"
 
  (* infinitely close *)
  approx :: "[hypreal, hypreal] => bool"    (infixl "@=" 50)
   "x @= y       == (x + -y) : Infinitesimal"     


defs  

   (*standard real numbers as a subset of the hyperreals*)
   SReal_def      "Reals == {x. EX r. x = hypreal_of_real r}"

syntax (xsymbols)
    approx :: "[hypreal, hypreal] => bool"    (infixl "\\<approx>" 50)
  
end