src/HOL/Hyperreal/HyperPow.thy
author paulson
Mon, 05 Mar 2001 15:25:11 +0100
changeset 11193 851c90b23a9e
parent 10834 a7897aebbffc
child 11713 883d559b0b8c
permissions -rw-r--r--
reorganization of HOL/UNITY, moving examples to subdirectories Simple and Comp
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10751
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     1
(*  Title       : HyperPow.thy
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     2
    Author      : Jacques D. Fleuriot  
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     3
    Copyright   : 1998  University of Cambridge
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     4
    Description : Powers theory for hyperreals
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     5
*)
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     6
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     7
HyperPow = HRealAbs + HyperNat + RealPow +  
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
     8
10778
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
     9
(** First: hypnat is linearly ordered **)
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    10
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    11
instance hypnat :: order (hypnat_le_refl,hypnat_le_trans,hypnat_le_anti_sym,
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    12
                          hypnat_less_le)
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    13
instance hypnat :: linorder (hypnat_le_linear)
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    14
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    15
instance hypnat :: plus_ac0(hypnat_add_commute,hypnat_add_assoc,
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    16
                            hypnat_add_zero_left)
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    17
2c6605049646 more tidying, especially to remove real_of_posnat
paulson
parents: 10751
diff changeset
    18
10751
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    19
instance hypreal :: {power}
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    20
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    21
consts hpowr :: "[hypreal,nat] => hypreal"  
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    22
primrec
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    23
     hpowr_0   "r ^ 0       = 1hr"
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    24
     hpowr_Suc "r ^ (Suc n) = (r::hypreal) * (r ^ n)"
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    25
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    26
consts
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    27
  "pow"  :: [hypreal,hypnat] => hypreal     (infixr 80)
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    28
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    29
defs
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    30
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    31
  (* hypernatural powers of hyperreals *)
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    32
  hyperpow_def
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    33
  "(R::hypreal) pow (N::hypnat) 
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    34
      == Abs_hypreal(UN X:Rep_hypreal(R). UN Y: Rep_hypnat(N).
10834
a7897aebbffc *** empty log message ***
nipkow
parents: 10797
diff changeset
    35
             hyprel``{%n::nat. (X n) ^ (Y n)})"
10751
a81ea5d3dd41 separation of HOL-Hyperreal from HOL-Real
paulson
parents:
diff changeset
    36
end