src/HOL/Complex/ex/NSPrimes.thy
author paulson
Mon, 05 May 2003 18:22:31 +0200
changeset 13957 10dbf16be15f
child 14051 4b61bbb0dcab
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       : NSPrimes.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   : 2002 University of Edinburgh
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     4
    Description : The nonstandard primes as an extension of 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     5
                  the prime numbers
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
These can be used to derive an alternative proof of the infinitude of primes by
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
     8
considering a property of nonstandard sets.
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
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    11
NSPrimes = Factorization + HSeries +
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    12
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    13
consts
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    14
  hdvd  :: [hypnat, hypnat] => bool       (infixl 50) 
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
defs
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    17
  hdvd_def "(M::hypnat) hdvd N ==
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    18
	           EX X Y. X: Rep_hypnat(M) & Y: Rep_hypnat(N) & 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    19
                               {n::nat. X n dvd Y n} : FreeUltrafilterNat"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    20
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    21
constdefs
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    22
  starprime :: hypnat set
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    23
  "starprime == ( *sNat* prime)"
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
constdefs
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    26
  choicefun :: 'a set => 'a
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    27
  "choicefun E == (@x. EX X: Pow(E) -{{}}. x : X)" 
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    28
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    29
consts injf_max :: "nat => ('a::{order} set) => 'a"  
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    30
primrec
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    31
  injf_max_zero "injf_max 0 E = choicefun E"
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    32
  injf_max_Suc  "injf_max (Suc n) E = choicefun({e. e : E & injf_max n E < e})"
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
end
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    35
10dbf16be15f new session Complex for the complex numbers
paulson
parents:
diff changeset
    36