| author | paulson | 
| Fri, 20 Aug 2004 12:20:09 +0200 | |
| changeset 15150 | c7af682b9ee5 | 
| parent 15140 | 322485b816ac | 
| child 16417 | 9bc16273c2d4 | 
| permissions | -rw-r--r-- | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 1 | (* Title: HOL/HyperArith.thy | 
| 14369 | 2 | ID: $Id$ | 
| 3 | Author: Lawrence C Paulson, Cambridge University Computer Laboratory | |
| 4 | Copyright 1999 University of Cambridge | |
| 5 | *) | |
| 6 | ||
| 7 | header{*Binary arithmetic and Simplification for the Hyperreals*}
 | |
| 8 | ||
| 15131 | 9 | theory HyperArith | 
| 15140 | 10 | imports HyperDef | 
| 15131 | 11 | files ("hypreal_arith.ML")
 | 
| 12 | begin | |
| 14387 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 13 | |
| 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 14 | subsection{*Numerals and Arithmetic*}
 | 
| 14369 | 15 | |
| 16 | instance hypreal :: number .. | |
| 17 | ||
| 15013 | 18 | defs (overloaded) | 
| 19 | hypreal_number_of_def: "(number_of w :: hypreal) == of_int (Rep_Bin w)" | |
| 20 |     --{*the type constraint is essential!*}
 | |
| 14369 | 21 | |
| 14387 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 22 | instance hypreal :: number_ring | 
| 15013 | 23 | by (intro_classes, simp add: hypreal_number_of_def) | 
| 14369 | 24 | |
| 25 | ||
| 14387 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 26 | text{*Collapse applications of @{term hypreal_of_real} to @{term number_of}*}
 | 
| 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 27 | lemma hypreal_number_of [simp]: "hypreal_of_real (number_of w) = number_of w" | 
| 15013 | 28 | by (simp add: hypreal_number_of_def real_number_of_def) | 
| 29 | ||
| 14369 | 30 | |
| 31 | ||
| 32 | use "hypreal_arith.ML" | |
| 10751 | 33 | |
| 34 | setup hypreal_arith_setup | |
| 35 | ||
| 14370 | 36 | lemma hypreal_le_add_order: "[| 0 \<le> x; 0 \<le> y |] ==> (0::hypreal) \<le> x + y" | 
| 37 | by arith | |
| 38 | ||
| 14329 | 39 | |
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 40 | subsection{*The Function @{term hypreal_of_real}*}
 | 
| 14369 | 41 | |
| 42 | lemma number_of_less_hypreal_of_real_iff [simp]: | |
| 43 | "(number_of w < hypreal_of_real z) = (number_of w < z)" | |
| 44 | apply (subst hypreal_of_real_less_iff [symmetric]) | |
| 45 | apply (simp (no_asm)) | |
| 46 | done | |
| 47 | ||
| 48 | lemma number_of_le_hypreal_of_real_iff [simp]: | |
| 14387 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 49 | "(number_of w \<le> hypreal_of_real z) = (number_of w \<le> z)" | 
| 14369 | 50 | apply (subst hypreal_of_real_le_iff [symmetric]) | 
| 51 | apply (simp (no_asm)) | |
| 52 | done | |
| 53 | ||
| 54 | lemma hypreal_of_real_eq_number_of_iff [simp]: | |
| 55 | "(hypreal_of_real z = number_of w) = (z = number_of w)" | |
| 56 | apply (subst hypreal_of_real_eq_iff [symmetric]) | |
| 57 | apply (simp (no_asm)) | |
| 58 | done | |
| 59 | ||
| 60 | lemma hypreal_of_real_less_number_of_iff [simp]: | |
| 61 | "(hypreal_of_real z < number_of w) = (z < number_of w)" | |
| 62 | apply (subst hypreal_of_real_less_iff [symmetric]) | |
| 63 | apply (simp (no_asm)) | |
| 64 | done | |
| 65 | ||
| 66 | lemma hypreal_of_real_le_number_of_iff [simp]: | |
| 14387 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 67 | "(hypreal_of_real z \<le> number_of w) = (z \<le> number_of w)" | 
| 14369 | 68 | apply (subst hypreal_of_real_le_iff [symmetric]) | 
| 69 | apply (simp (no_asm)) | |
| 70 | done | |
| 71 | ||
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 72 | subsection{*Absolute Value Function for the Hyperreals*}
 | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 73 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 74 | declare abs_mult [simp] | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 75 | |
| 15003 | 76 | lemma hrabs_add_less: | 
| 77 | "[| abs x < r; abs y < s |] ==> abs(x+y) < r + (s::hypreal)" | |
| 78 | by (simp add: abs_if split: split_if_asm) | |
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 79 | |
| 14387 
e96d5c42c4b0
Polymorphic treatment of binary arithmetic using axclasses
 paulson parents: 
14378diff
changeset | 80 | text{*used once in NSA*}
 | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 81 | lemma hrabs_less_gt_zero: "abs x < r ==> (0::hypreal) < r" | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 82 | by (blast intro!: order_le_less_trans abs_ge_zero) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 83 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 84 | lemma hrabs_disj: "abs x = (x::hypreal) | abs x = -x" | 
| 15003 | 85 | by (simp add: abs_if) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 86 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 87 | (* Needed in Geom.ML *) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 88 | lemma hrabs_add_lemma_disj: "(y::hypreal) + - x + (y + - z) = abs (x + - z) ==> y = z | x = y" | 
| 15003 | 89 | by (simp add: abs_if split add: split_if_asm) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 90 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 91 | lemma hypreal_of_real_hrabs: | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 92 | "abs (hypreal_of_real r) = hypreal_of_real (abs r)" | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 93 | apply (unfold hypreal_of_real_def) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 94 | apply (auto simp add: hypreal_hrabs) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 95 | done | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 96 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 97 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 98 | subsection{*Embedding the Naturals into the Hyperreals*}
 | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 99 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 100 | constdefs | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 101 | |
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 102 | hypreal_of_nat :: "nat => hypreal" | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 103 | "hypreal_of_nat m == of_nat m" | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 104 | |
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 105 | lemma SNat_eq: "Nats = {n. \<exists>N. n = hypreal_of_nat N}"
 | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 106 | by (force simp add: hypreal_of_nat_def Nats_def) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 107 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 108 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 109 | lemma hypreal_of_nat_add [simp]: | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 110 | "hypreal_of_nat (m + n) = hypreal_of_nat m + hypreal_of_nat n" | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 111 | by (simp add: hypreal_of_nat_def) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 112 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 113 | lemma hypreal_of_nat_mult: "hypreal_of_nat (m * n) = hypreal_of_nat m * hypreal_of_nat n" | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 114 | by (simp add: hypreal_of_nat_def) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 115 | declare hypreal_of_nat_mult [simp] | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 116 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 117 | lemma hypreal_of_nat_less_iff: | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 118 | "(n < m) = (hypreal_of_nat n < hypreal_of_nat m)" | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 119 | apply (simp add: hypreal_of_nat_def) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 120 | done | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 121 | declare hypreal_of_nat_less_iff [symmetric, simp] | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 122 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 123 | (*------------------------------------------------------------*) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 124 | (* naturals embedded in hyperreals *) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 125 | (* is a hyperreal c.f. NS extension *) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 126 | (*------------------------------------------------------------*) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 127 | |
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 128 | lemma hypreal_of_nat_eq: | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 129 | "hypreal_of_nat (n::nat) = hypreal_of_real (real n)" | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 130 | apply (induct n) | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 131 | apply (simp_all add: hypreal_of_nat_def real_of_nat_def) | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 132 | done | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 133 | |
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 134 | lemma hypreal_of_nat: | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 135 |      "hypreal_of_nat m = Abs_hypreal(hyprel``{%n. real m})"
 | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 136 | apply (induct m) | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 137 | apply (simp_all add: hypreal_of_nat_def real_of_nat_def hypreal_zero_def | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 138 | hypreal_one_def hypreal_add) | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 139 | done | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 140 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 141 | lemma hypreal_of_nat_Suc: | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 142 | "hypreal_of_nat (Suc n) = hypreal_of_nat n + (1::hypreal)" | 
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 143 | by (simp add: hypreal_of_nat_def) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 144 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 145 | (*"neg" is used in rewrite rules for binary comparisons*) | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 146 | lemma hypreal_of_nat_number_of [simp]: | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 147 | "hypreal_of_nat (number_of v :: nat) = | 
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 148 | (if neg (number_of v :: int) then 0 | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 149 | else (number_of v :: hypreal))" | 
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 150 | by (simp add: hypreal_of_nat_eq) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 151 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 152 | lemma hypreal_of_nat_zero [simp]: "hypreal_of_nat 0 = 0" | 
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 153 | by (simp add: hypreal_of_nat_def) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 154 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 155 | lemma hypreal_of_nat_one [simp]: "hypreal_of_nat 1 = 1" | 
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 156 | by (simp add: hypreal_of_nat_def) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 157 | |
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 158 | lemma hypreal_of_nat_le_iff [simp]: | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 159 | "(hypreal_of_nat n \<le> hypreal_of_nat m) = (n \<le> m)" | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 160 | by (simp add: hypreal_of_nat_def) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 161 | |
| 14378 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 162 | lemma hypreal_of_nat_ge_zero [simp]: "0 \<le> hypreal_of_nat n" | 
| 
69c4d5997669
generic of_nat and of_int functions, and generalization of iszero
 paulson parents: 
14371diff
changeset | 163 | by (simp add: hypreal_of_nat_def) | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 164 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 165 | |
| 14309 | 166 | (* | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 167 | FIXME: we should declare this, as for type int, but many proofs would break. | 
| 14309 | 168 | It replaces x+-y by x-y. | 
| 169 | Addsimps [symmetric hypreal_diff_def] | |
| 170 | *) | |
| 171 | ||
| 14369 | 172 | ML | 
| 173 | {*
 | |
| 14370 | 174 | val hypreal_le_add_order = thm"hypreal_le_add_order"; | 
| 14371 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 175 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 176 | val hypreal_of_nat_def = thm"hypreal_of_nat_def"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 177 | |
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 178 | val hrabs_add_less = thm "hrabs_add_less"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 179 | val hrabs_disj = thm "hrabs_disj"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 180 | val hrabs_add_lemma_disj = thm "hrabs_add_lemma_disj"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 181 | val hypreal_of_real_hrabs = thm "hypreal_of_real_hrabs"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 182 | val hypreal_of_nat_add = thm "hypreal_of_nat_add"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 183 | val hypreal_of_nat_mult = thm "hypreal_of_nat_mult"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 184 | val hypreal_of_nat_less_iff = thm "hypreal_of_nat_less_iff"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 185 | val hypreal_of_nat_Suc = thm "hypreal_of_nat_Suc"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 186 | val hypreal_of_nat_number_of = thm "hypreal_of_nat_number_of"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 187 | val hypreal_of_nat_zero = thm "hypreal_of_nat_zero"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 188 | val hypreal_of_nat_one = thm "hypreal_of_nat_one"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 189 | val hypreal_of_nat_le_iff = thm"hypreal_of_nat_le_iff"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 190 | val hypreal_of_nat_ge_zero = thm"hypreal_of_nat_ge_zero"; | 
| 
c78c7da09519
Conversion of HyperNat to Isar format and its declaration as a semiring
 paulson parents: 
14370diff
changeset | 191 | val hypreal_of_nat = thm"hypreal_of_nat"; | 
| 14369 | 192 | *} | 
| 193 | ||
| 10751 | 194 | end |