misc cleanup;
authorwenzelm
Fri Jun 02 23:22:29 2006 +0200 (2006-06-02)
changeset 19765dfe940911617
parent 19764 372065f34795
child 19766 031e0dde31f1
misc cleanup;
src/HOL/Complex/CLim.thy
src/HOL/Complex/CSeries.thy
src/HOL/Complex/CStar.thy
src/HOL/Complex/Complex.thy
src/HOL/Complex/NSCA.thy
src/HOL/Complex/NSComplex.thy
src/HOL/Hyperreal/EvenOdd.thy
src/HOL/Hyperreal/Fact.thy
src/HOL/Hyperreal/HLog.thy
src/HOL/Hyperreal/HSeries.thy
src/HOL/Hyperreal/HTranscendental.thy
src/HOL/Hyperreal/HyperArith.thy
src/HOL/Hyperreal/HyperDef.thy
src/HOL/Hyperreal/HyperNat.thy
src/HOL/Hyperreal/HyperPow.thy
src/HOL/Hyperreal/Integration.thy
src/HOL/Hyperreal/Lim.thy
src/HOL/Hyperreal/Ln.thy
src/HOL/Hyperreal/Log.thy
src/HOL/Hyperreal/MacLaurin.thy
src/HOL/Hyperreal/NSA.thy
src/HOL/Hyperreal/NatStar.thy
src/HOL/Hyperreal/NthRoot.thy
src/HOL/Hyperreal/Poly.thy
src/HOL/Hyperreal/SEQ.thy
src/HOL/Hyperreal/Series.thy
src/HOL/Hyperreal/Star.thy
src/HOL/Hyperreal/StarDef.thy
src/HOL/Hyperreal/Transcendental.thy
src/HOL/Real/ContNotDenum.thy
src/HOL/Real/Float.thy
src/HOL/Real/Lubs.thy
src/HOL/Real/PReal.thy
src/HOL/Real/RComplete.thy
src/HOL/Real/Rational.thy
src/HOL/Real/RealDef.thy
src/HOL/Real/RealPow.thy
     1.1 --- a/src/HOL/Complex/CLim.thy	Fri Jun 02 20:12:59 2006 +0200
     1.2 +++ b/src/HOL/Complex/CLim.thy	Fri Jun 02 23:22:29 2006 +0200
     1.3 @@ -33,79 +33,79 @@
     1.4  apply (drule sym [THEN diff_eq_eq [THEN iffD2]], auto)
     1.5  done
     1.6  
     1.7 -constdefs
     1.8 +definition
     1.9  
    1.10    CLIM :: "[complex=>complex,complex,complex] => bool"
    1.11  				("((_)/ -- (_)/ --C> (_))" [60, 0, 60] 60)
    1.12 -  "f -- a --C> L ==
    1.13 -     \<forall>r. 0 < r -->
    1.14 +  "f -- a --C> L =
    1.15 +     (\<forall>r. 0 < r -->
    1.16  	     (\<exists>s. 0 < s & (\<forall>x. (x \<noteq> a & (cmod(x - a) < s)
    1.17 -			  --> cmod(f x - L) < r)))"
    1.18 +			  --> cmod(f x - L) < r))))"
    1.19  
    1.20    NSCLIM :: "[complex=>complex,complex,complex] => bool"
    1.21  			      ("((_)/ -- (_)/ --NSC> (_))" [60, 0, 60] 60)
    1.22 -  "f -- a --NSC> L == (\<forall>x. (x \<noteq> hcomplex_of_complex a &
    1.23 +  "f -- a --NSC> L = (\<forall>x. (x \<noteq> hcomplex_of_complex a &
    1.24             		         x @c= hcomplex_of_complex a
    1.25                                     --> ( *f* f) x @c= hcomplex_of_complex L))"
    1.26  
    1.27    (* f: C --> R *)
    1.28    CRLIM :: "[complex=>real,complex,real] => bool"
    1.29  				("((_)/ -- (_)/ --CR> (_))" [60, 0, 60] 60)
    1.30 -  "f -- a --CR> L ==
    1.31 -     \<forall>r. 0 < r -->
    1.32 +  "f -- a --CR> L =
    1.33 +     (\<forall>r. 0 < r -->
    1.34  	     (\<exists>s. 0 < s & (\<forall>x. (x \<noteq> a & (cmod(x - a) < s)
    1.35 -			  --> abs(f x - L) < r)))"
    1.36 +			  --> abs(f x - L) < r))))"
    1.37  
    1.38    NSCRLIM :: "[complex=>real,complex,real] => bool"
    1.39  			      ("((_)/ -- (_)/ --NSCR> (_))" [60, 0, 60] 60)
    1.40 -  "f -- a --NSCR> L == (\<forall>x. (x \<noteq> hcomplex_of_complex a &
    1.41 +  "f -- a --NSCR> L = (\<forall>x. (x \<noteq> hcomplex_of_complex a &
    1.42             		         x @c= hcomplex_of_complex a
    1.43                                     --> ( *f* f) x @= hypreal_of_real L))"
    1.44  
    1.45  
    1.46    isContc :: "[complex=>complex,complex] => bool"
    1.47 -  "isContc f a == (f -- a --C> (f a))"
    1.48 +  "isContc f a = (f -- a --C> (f a))"
    1.49  
    1.50    (* NS definition dispenses with limit notions *)
    1.51    isNSContc :: "[complex=>complex,complex] => bool"
    1.52 -  "isNSContc f a == (\<forall>y. y @c= hcomplex_of_complex a -->
    1.53 +  "isNSContc f a = (\<forall>y. y @c= hcomplex_of_complex a -->
    1.54  			   ( *f* f) y @c= hcomplex_of_complex (f a))"
    1.55  
    1.56    isContCR :: "[complex=>real,complex] => bool"
    1.57 -  "isContCR f a == (f -- a --CR> (f a))"
    1.58 +  "isContCR f a = (f -- a --CR> (f a))"
    1.59  
    1.60    (* NS definition dispenses with limit notions *)
    1.61    isNSContCR :: "[complex=>real,complex] => bool"
    1.62 -  "isNSContCR f a == (\<forall>y. y @c= hcomplex_of_complex a -->
    1.63 +  "isNSContCR f a = (\<forall>y. y @c= hcomplex_of_complex a -->
    1.64  			   ( *f* f) y @= hypreal_of_real (f a))"
    1.65  
    1.66    (* differentiation: D is derivative of function f at x *)
    1.67    cderiv:: "[complex=>complex,complex,complex] => bool"
    1.68  			    ("(CDERIV (_)/ (_)/ :> (_))" [60, 0, 60] 60)
    1.69 -  "CDERIV f x :> D == ((%h. (f(x + h) - f(x))/h) -- 0 --C> D)"
    1.70 +  "CDERIV f x :> D = ((%h. (f(x + h) - f(x))/h) -- 0 --C> D)"
    1.71  
    1.72    nscderiv :: "[complex=>complex,complex,complex] => bool"
    1.73  			    ("(NSCDERIV (_)/ (_)/ :> (_))" [60, 0, 60] 60)
    1.74 -  "NSCDERIV f x :> D == (\<forall>h \<in> CInfinitesimal - {0}.
    1.75 +  "NSCDERIV f x :> D = (\<forall>h \<in> CInfinitesimal - {0}.
    1.76  			      (( *f* f)(hcomplex_of_complex x + h)
    1.77          			 - hcomplex_of_complex (f x))/h @c= hcomplex_of_complex D)"
    1.78  
    1.79    cdifferentiable :: "[complex=>complex,complex] => bool"
    1.80                       (infixl "cdifferentiable" 60)
    1.81 -  "f cdifferentiable x == (\<exists>D. CDERIV f x :> D)"
    1.82 +  "f cdifferentiable x = (\<exists>D. CDERIV f x :> D)"
    1.83  
    1.84    NSCdifferentiable :: "[complex=>complex,complex] => bool"
    1.85                          (infixl "NSCdifferentiable" 60)
    1.86 -  "f NSCdifferentiable x == (\<exists>D. NSCDERIV f x :> D)"
    1.87 +  "f NSCdifferentiable x = (\<exists>D. NSCDERIV f x :> D)"
    1.88  
    1.89  
    1.90    isUContc :: "(complex=>complex) => bool"
    1.91 -  "isUContc f ==  (\<forall>r. 0 < r -->
    1.92 +  "isUContc f =  (\<forall>r. 0 < r -->
    1.93  		      (\<exists>s. 0 < s & (\<forall>x y. cmod(x - y) < s
    1.94  			    --> cmod(f x - f y) < r)))"
    1.95  
    1.96    isNSUContc :: "(complex=>complex) => bool"
    1.97 -  "isNSUContc f == (\<forall>x y. x @c= y --> ( *f* f) x @c= ( *f* f) y)"
    1.98 +  "isNSUContc f = (\<forall>x y. x @c= y --> ( *f* f) x @c= ( *f* f) y)"
    1.99  
   1.100  
   1.101  
   1.102 @@ -1020,156 +1020,4 @@
   1.103        ==> NSCDERIV f x :> l"
   1.104  by (auto simp add: NSCDERIV_iff2 isNSContc_def cstarfun_if_eq); 
   1.105  
   1.106 -
   1.107 -ML
   1.108 -{*
   1.109 -val complex_add_minus_iff = thm "complex_add_minus_iff";
   1.110 -val complex_add_eq_0_iff = thm "complex_add_eq_0_iff";
   1.111 -val NSCLIM_NSCRLIM_Re = thm "NSCLIM_NSCRLIM_Re";
   1.112 -val NSCLIM_NSCRLIM_Im = thm "NSCLIM_NSCRLIM_Im";
   1.113 -val CLIM_NSCLIM = thm "CLIM_NSCLIM";
   1.114 -val eq_Abs_star_ALL = thm "eq_Abs_star_ALL";
   1.115 -val lemma_CLIM = thm "lemma_CLIM";
   1.116 -val lemma_skolemize_CLIM2 = thm "lemma_skolemize_CLIM2";
   1.117 -val lemma_csimp = thm "lemma_csimp";
   1.118 -val NSCLIM_CLIM = thm "NSCLIM_CLIM";
   1.119 -val CLIM_NSCLIM_iff = thm "CLIM_NSCLIM_iff";
   1.120 -val CRLIM_NSCRLIM = thm "CRLIM_NSCRLIM";
   1.121 -val lemma_CRLIM = thm "lemma_CRLIM";
   1.122 -val lemma_skolemize_CRLIM2 = thm "lemma_skolemize_CRLIM2";
   1.123 -val lemma_crsimp = thm "lemma_crsimp";
   1.124 -val NSCRLIM_CRLIM = thm "NSCRLIM_CRLIM";
   1.125 -val CRLIM_NSCRLIM_iff = thm "CRLIM_NSCRLIM_iff";
   1.126 -val CLIM_CRLIM_Re = thm "CLIM_CRLIM_Re";
   1.127 -val CLIM_CRLIM_Im = thm "CLIM_CRLIM_Im";
   1.128 -val CLIM_cnj = thm "CLIM_cnj";
   1.129 -val CLIM_cnj_iff = thm "CLIM_cnj_iff";
   1.130 -val NSCLIM_add = thm "NSCLIM_add";
   1.131 -val CLIM_add = thm "CLIM_add";
   1.132 -val NSCLIM_mult = thm "NSCLIM_mult";
   1.133 -val CLIM_mult = thm "CLIM_mult";
   1.134 -val NSCLIM_const = thm "NSCLIM_const";
   1.135 -val CLIM_const = thm "CLIM_const";
   1.136 -val NSCLIM_minus = thm "NSCLIM_minus";
   1.137 -val CLIM_minus = thm "CLIM_minus";
   1.138 -val NSCLIM_diff = thm "NSCLIM_diff";
   1.139 -val CLIM_diff = thm "CLIM_diff";
   1.140 -val NSCLIM_inverse = thm "NSCLIM_inverse";
   1.141 -val CLIM_inverse = thm "CLIM_inverse";
   1.142 -val NSCLIM_zero = thm "NSCLIM_zero";
   1.143 -val CLIM_zero = thm "CLIM_zero";
   1.144 -val NSCLIM_zero_cancel = thm "NSCLIM_zero_cancel";
   1.145 -val CLIM_zero_cancel = thm "CLIM_zero_cancel";
   1.146 -val NSCLIM_not_zero = thm "NSCLIM_not_zero";
   1.147 -val NSCLIM_not_zeroE = thms "NSCLIM_not_zeroE";
   1.148 -val CLIM_not_zero = thm "CLIM_not_zero";
   1.149 -val NSCLIM_const_eq = thm "NSCLIM_const_eq";
   1.150 -val CLIM_const_eq = thm "CLIM_const_eq";
   1.151 -val NSCLIM_unique = thm "NSCLIM_unique";
   1.152 -val CLIM_unique = thm "CLIM_unique";
   1.153 -val NSCLIM_mult_zero = thm "NSCLIM_mult_zero";
   1.154 -val CLIM_mult_zero = thm "CLIM_mult_zero";
   1.155 -val NSCLIM_self = thm "NSCLIM_self";
   1.156 -val CLIM_self = thm "CLIM_self";
   1.157 -val NSCLIM_NSCRLIM_iff = thm "NSCLIM_NSCRLIM_iff";
   1.158 -val CLIM_CRLIM_iff = thm "CLIM_CRLIM_iff";
   1.159 -val NSCLIM_NSCRLIM_iff2 = thm "NSCLIM_NSCRLIM_iff2";
   1.160 -val NSCLIM_NSCRLIM_Re_Im_iff = thm "NSCLIM_NSCRLIM_Re_Im_iff";
   1.161 -val CLIM_CRLIM_Re_Im_iff = thm "CLIM_CRLIM_Re_Im_iff";
   1.162 -val isNSContcD = thm "isNSContcD";
   1.163 -val isNSContc_NSCLIM = thm "isNSContc_NSCLIM";
   1.164 -val NSCLIM_isNSContc = thm "NSCLIM_isNSContc";
   1.165 -val isNSContc_NSCLIM_iff = thm "isNSContc_NSCLIM_iff";
   1.166 -val isNSContc_CLIM_iff = thm "isNSContc_CLIM_iff";
   1.167 -val isNSContc_isContc_iff = thm "isNSContc_isContc_iff";
   1.168 -val isContc_isNSContc = thm "isContc_isNSContc";
   1.169 -val isNSContc_isContc = thm "isNSContc_isContc";
   1.170 -val NSCLIM_h_iff = thm "NSCLIM_h_iff";
   1.171 -val NSCLIM_isContc_iff = thm "NSCLIM_isContc_iff";
   1.172 -val CLIM_isContc_iff = thm "CLIM_isContc_iff";
   1.173 -val isContc_iff = thm "isContc_iff";
   1.174 -val isContc_add = thm "isContc_add";
   1.175 -val isContc_mult = thm "isContc_mult";
   1.176 -val isContc_o = thm "isContc_o";
   1.177 -val isContc_o2 = thm "isContc_o2";
   1.178 -val isNSContc_minus = thm "isNSContc_minus";
   1.179 -val isContc_minus = thm "isContc_minus";
   1.180 -val isContc_inverse = thm "isContc_inverse";
   1.181 -val isNSContc_inverse = thm "isNSContc_inverse";
   1.182 -val isContc_diff = thm "isContc_diff";
   1.183 -val isContc_const = thm "isContc_const";
   1.184 -val isNSContc_const = thm "isNSContc_const";
   1.185 -val isNSContCRD = thm "isNSContCRD";
   1.186 -val isNSContCR_NSCRLIM = thm "isNSContCR_NSCRLIM";
   1.187 -val NSCRLIM_isNSContCR = thm "NSCRLIM_isNSContCR";
   1.188 -val isNSContCR_NSCRLIM_iff = thm "isNSContCR_NSCRLIM_iff";
   1.189 -val isNSContCR_CRLIM_iff = thm "isNSContCR_CRLIM_iff";
   1.190 -val isNSContCR_isContCR_iff = thm "isNSContCR_isContCR_iff";
   1.191 -val isContCR_isNSContCR = thm "isContCR_isNSContCR";
   1.192 -val isNSContCR_isContCR = thm "isNSContCR_isContCR";
   1.193 -val isNSContCR_cmod = thm "isNSContCR_cmod";
   1.194 -val isContCR_cmod = thm "isContCR_cmod";
   1.195 -val isContc_isContCR_Re = thm "isContc_isContCR_Re";
   1.196 -val isContc_isContCR_Im = thm "isContc_isContCR_Im";
   1.197 -val CDERIV_iff = thm "CDERIV_iff";
   1.198 -val CDERIV_NSC_iff = thm "CDERIV_NSC_iff";
   1.199 -val CDERIVD = thm "CDERIVD";
   1.200 -val NSC_DERIVD = thm "NSC_DERIVD";
   1.201 -val CDERIV_unique = thm "CDERIV_unique";
   1.202 -val NSCDeriv_unique = thm "NSCDeriv_unique";
   1.203 -val CDERIV_CLIM_iff = thm "CDERIV_CLIM_iff";
   1.204 -val CDERIV_iff2 = thm "CDERIV_iff2";
   1.205 -val NSCDERIV_NSCLIM_iff = thm "NSCDERIV_NSCLIM_iff";
   1.206 -val NSCDERIV_NSCLIM_iff2 = thm "NSCDERIV_NSCLIM_iff2";
   1.207 -val NSCDERIV_iff2 = thm "NSCDERIV_iff2";
   1.208 -val NSCDERIV_CDERIV_iff = thm "NSCDERIV_CDERIV_iff";
   1.209 -val NSCDERIV_isNSContc = thm "NSCDERIV_isNSContc";
   1.210 -val CDERIV_isContc = thm "CDERIV_isContc";
   1.211 -val NSCDERIV_const = thm "NSCDERIV_const";
   1.212 -val CDERIV_const = thm "CDERIV_const";
   1.213 -val NSCDERIV_add = thm "NSCDERIV_add";
   1.214 -val CDERIV_add = thm "CDERIV_add";
   1.215 -val lemma_nscderiv1 = thm "lemma_nscderiv1";
   1.216 -val lemma_nscderiv2 = thm "lemma_nscderiv2";
   1.217 -val NSCDERIV_mult = thm "NSCDERIV_mult";
   1.218 -val CDERIV_mult = thm "CDERIV_mult";
   1.219 -val NSCDERIV_cmult = thm "NSCDERIV_cmult";
   1.220 -val CDERIV_cmult = thm "CDERIV_cmult";
   1.221 -val NSCDERIV_minus = thm "NSCDERIV_minus";
   1.222 -val CDERIV_minus = thm "CDERIV_minus";
   1.223 -val NSCDERIV_add_minus = thm "NSCDERIV_add_minus";
   1.224 -val CDERIV_add_minus = thm "CDERIV_add_minus";
   1.225 -val NSCDERIV_diff = thm "NSCDERIV_diff";
   1.226 -val CDERIV_diff = thm "CDERIV_diff";
   1.227 -val NSCDERIV_zero = thm "NSCDERIV_zero";
   1.228 -val NSCDERIV_capprox = thm "NSCDERIV_capprox";
   1.229 -val NSCDERIVD1 = thm "NSCDERIVD1";
   1.230 -val NSCDERIVD2 = thm "NSCDERIVD2";
   1.231 -val lemma_complex_chain = thm "lemma_complex_chain";
   1.232 -val NSCDERIV_chain = thm "NSCDERIV_chain";
   1.233 -val CDERIV_chain = thm "CDERIV_chain";
   1.234 -val CDERIV_chain2 = thm "CDERIV_chain2";
   1.235 -val NSCDERIV_Id = thm "NSCDERIV_Id";
   1.236 -val CDERIV_Id = thm "CDERIV_Id";
   1.237 -val isContc_Id = thms "isContc_Id";
   1.238 -val CDERIV_cmult_Id = thm "CDERIV_cmult_Id";
   1.239 -val NSCDERIV_cmult_Id = thm "NSCDERIV_cmult_Id";
   1.240 -val CDERIV_pow = thm "CDERIV_pow";
   1.241 -val NSCDERIV_pow = thm "NSCDERIV_pow";
   1.242 -val lemma_CDERIV_subst = thm "lemma_CDERIV_subst";
   1.243 -val CInfinitesimal_add_not_zero = thm "CInfinitesimal_add_not_zero";
   1.244 -val NSCDERIV_inverse = thm "NSCDERIV_inverse";
   1.245 -val CDERIV_inverse = thm "CDERIV_inverse";
   1.246 -val CDERIV_inverse_fun = thm "CDERIV_inverse_fun";
   1.247 -val NSCDERIV_inverse_fun = thm "NSCDERIV_inverse_fun";
   1.248 -val lemma_complex_mult_inverse_squared = thm "lemma_complex_mult_inverse_squared";
   1.249 -val CDERIV_quotient = thm "CDERIV_quotient";
   1.250 -val NSCDERIV_quotient = thm "NSCDERIV_quotient";
   1.251 -val CLIM_equal = thm "CLIM_equal";
   1.252 -val CLIM_trans = thm "CLIM_trans";
   1.253 -val CARAT_CDERIV = thm "CARAT_CDERIV";
   1.254 -val CARAT_NSCDERIV = thm "CARAT_NSCDERIV";
   1.255 -val CARAT_CDERIVD = thm "CARAT_CDERIVD";
   1.256 -*}
   1.257 -
   1.258  end
     2.1 --- a/src/HOL/Complex/CSeries.thy	Fri Jun 02 20:12:59 2006 +0200
     2.2 +++ b/src/HOL/Complex/CSeries.thy	Fri Jun 02 23:22:29 2006 +0200
     2.3 @@ -15,18 +15,18 @@
     2.4     sumc_Suc: "sumc m (Suc n) f = (if n < m then 0 else sumc m n f + f(n))"
     2.5  
     2.6  (*  
     2.7 -constdefs
     2.8 +definition
     2.9  
    2.10     needs convergence of complex sequences  
    2.11  
    2.12    csums  :: [nat=>complex,complex] => bool     (infixr 80)
    2.13 -   "f sums s  == (%n. sumr 0 n f) ----C> s"
    2.14 +   "f sums s  = (%n. sumr 0 n f) ----C> s"
    2.15    
    2.16     csummable :: (nat=>complex) => bool
    2.17 -   "csummable f == (EX s. f csums s)"
    2.18 +   "csummable f = (EX s. f csums s)"
    2.19  
    2.20     csuminf   :: (nat=>complex) => complex
    2.21 -   "csuminf f == (@s. f csums s)"
    2.22 +   "csuminf f = (@s. f csums s)"
    2.23  *)
    2.24  
    2.25  lemma sumc_Suc_zero [simp]: "sumc (Suc n) n f = 0"
    2.26 @@ -173,34 +173,5 @@
    2.27  apply (auto simp add: sumc_split_add add_commute)
    2.28  done
    2.29  
    2.30 -ML
    2.31 -{*
    2.32 -val sumc_Suc_zero = thm "sumc_Suc_zero";
    2.33 -val sumc_eq_bounds = thm "sumc_eq_bounds";
    2.34 -val sumc_Suc_eq = thm "sumc_Suc_eq";
    2.35 -val sumc_add_lbound_zero = thm "sumc_add_lbound_zero";
    2.36 -val sumc_add = thm "sumc_add";
    2.37 -val sumc_mult = thm "sumc_mult";
    2.38 -val sumc_split_add = thm "sumc_split_add";
    2.39 -val sumc_split_add_minus = thm "sumc_split_add_minus";
    2.40 -val sumc_cmod = thm "sumc_cmod";
    2.41 -val sumc_fun_eq = thm "sumc_fun_eq";
    2.42 -val sumc_const = thm "sumc_const";
    2.43 -val sumc_add_mult_const = thm "sumc_add_mult_const";
    2.44 -val sumc_diff_mult_const = thm "sumc_diff_mult_const";
    2.45 -val sumc_less_bounds_zero = thm "sumc_less_bounds_zero";
    2.46 -val sumc_minus = thm "sumc_minus";
    2.47 -val sumc_shift_bounds = thm "sumc_shift_bounds";
    2.48 -val sumc_minus_one_complexpow_zero = thm "sumc_minus_one_complexpow_zero";
    2.49 -val sumc_interval_const = thm "sumc_interval_const";
    2.50 -val sumc_interval_const2 = thm "sumc_interval_const2";
    2.51 -val sumr_cmod_ge_zero = thm "sumr_cmod_ge_zero";
    2.52 -val rabs_sumc_cmod_cancel = thm "rabs_sumc_cmod_cancel";
    2.53 -val sumc_one_lb_complexpow_zero = thm "sumc_one_lb_complexpow_zero";
    2.54 -val sumc_diff = thm "sumc_diff";
    2.55 -val sumc_subst = thm "sumc_subst";
    2.56 -val sumc_group = thm "sumc_group";
    2.57 -*}
    2.58 -
    2.59  end
    2.60  
     3.1 --- a/src/HOL/Complex/CStar.thy	Fri Jun 02 20:12:59 2006 +0200
     3.2 +++ b/src/HOL/Complex/CStar.thy	Fri Jun 02 23:22:29 2006 +0200
     3.3 @@ -36,10 +36,6 @@
     3.4      "( *f* f) (hcomplex_of_complex a) @c= hcomplex_of_complex (f a)"
     3.5  by auto
     3.6  
     3.7 -(*
     3.8 -Goal "( *fNat* (%n. z ^ n)) N = (hcomplex_of_complex z) hcpow N"
     3.9 -*)
    3.10 -
    3.11  lemma starfunC_hcpow: "( *f* (%z. z ^ n)) Z = Z hcpow hypnat_of_nat n"
    3.12  apply (cases Z)
    3.13  apply (simp add: hcpow starfun hypnat_of_nat_eq)
    3.14 @@ -93,21 +89,4 @@
    3.15      "x @c= hcomplex_of_complex a ==> ( *f* (%x. x)) x @c= hcomplex_of_complex  a"
    3.16  by simp
    3.17  
    3.18 -ML
    3.19 -{*
    3.20 -val STARC_SComplex_subset = thm "STARC_SComplex_subset";
    3.21 -val STARC_hcomplex_of_complex_Int = thm "STARC_hcomplex_of_complex_Int";
    3.22 -val lemma_not_hcomplexA = thm "lemma_not_hcomplexA";
    3.23 -val starfun_capprox = thm "starfun_capprox";
    3.24 -val starfunC_hcpow = thm "starfunC_hcpow";
    3.25 -val starfun_mult_CFinite_capprox = thm "starfun_mult_CFinite_capprox";
    3.26 -val starfun_add_capprox = thm "starfun_add_capprox";
    3.27 -val starfunCR_cmod = thm "starfunCR_cmod";
    3.28 -val starfun_inverse_inverse = thm "starfun_inverse_inverse";
    3.29 -val starfun_n_diff = thm "starfun_n_diff";
    3.30 -val starfunC_eq_Re_Im_iff = thm "starfunC_eq_Re_Im_iff";
    3.31 -val starfunC_approx_Re_Im_iff = thm "starfunC_approx_Re_Im_iff";
    3.32 -val starfunC_Idfun_capprox = thm "starfunC_Idfun_capprox";
    3.33 -*}
    3.34 -
    3.35  end
     4.1 --- a/src/HOL/Complex/Complex.thy	Fri Jun 02 20:12:59 2006 +0200
     4.2 +++ b/src/HOL/Complex/Complex.thy	Fri Jun 02 23:22:29 2006 +0200
     4.3 @@ -27,30 +27,30 @@
     4.4  lemma complex_surj [simp]: "Complex (Re z) (Im z) = z"
     4.5    by (induct z) simp
     4.6  
     4.7 -constdefs
     4.8 +definition
     4.9  
    4.10    (*----------- modulus ------------*)
    4.11  
    4.12    cmod :: "complex => real"
    4.13 -  "cmod z == sqrt(Re(z) ^ 2 + Im(z) ^ 2)"
    4.14 +  "cmod z = sqrt(Re(z) ^ 2 + Im(z) ^ 2)"
    4.15  
    4.16    (*----- injection from reals -----*)
    4.17  
    4.18    complex_of_real :: "real => complex"
    4.19 -  "complex_of_real r == Complex r 0"
    4.20 +  "complex_of_real r = Complex r 0"
    4.21  
    4.22    (*------- complex conjugate ------*)
    4.23  
    4.24    cnj :: "complex => complex"
    4.25 -  "cnj z == Complex (Re z) (-Im z)"
    4.26 +  "cnj z = Complex (Re z) (-Im z)"
    4.27  
    4.28    (*------------ Argand -------------*)
    4.29  
    4.30    sgn :: "complex => complex"
    4.31 -  "sgn z == z / complex_of_real(cmod z)"
    4.32 +  "sgn z = z / complex_of_real(cmod z)"
    4.33  
    4.34    arg :: "complex => real"
    4.35 -  "arg z == @a. Re(sgn z) = cos a & Im(sgn z) = sin a & -pi < a & a \<le> pi"
    4.36 +  "arg z = (SOME a. Re(sgn z) = cos a & Im(sgn z) = sin a & -pi < a & a \<le> pi)"
    4.37  
    4.38  
    4.39  defs (overloaded)
    4.40 @@ -81,19 +81,19 @@
    4.41    complex_divide_def: "w / (z::complex) == w * inverse z"
    4.42  
    4.43  
    4.44 -constdefs
    4.45 +definition
    4.46  
    4.47    (* abbreviation for (cos a + i sin a) *)
    4.48    cis :: "real => complex"
    4.49 -  "cis a == Complex (cos a) (sin a)"
    4.50 +  "cis a = Complex (cos a) (sin a)"
    4.51  
    4.52    (* abbreviation for r*(cos a + i sin a) *)
    4.53    rcis :: "[real, real] => complex"
    4.54 -  "rcis r a == complex_of_real r * cis a"
    4.55 +  "rcis r a = complex_of_real r * cis a"
    4.56  
    4.57    (* e ^ (x + iy) *)
    4.58    expi :: "complex => complex"
    4.59 -  "expi z == complex_of_real(exp (Re z)) * cis (Im z)"
    4.60 +  "expi z = complex_of_real(exp (Re z)) * cis (Im z)"
    4.61  
    4.62  
    4.63  lemma complex_equality [intro?]: "Re z = Re w ==> Im z = Im w ==> z = w"
    4.64 @@ -838,16 +838,16 @@
    4.65  
    4.66  
    4.67  lemma complex_of_real_of_nat [simp]: "complex_of_real (of_nat n) = of_nat n"
    4.68 -by (induct n, simp_all) 
    4.69 +  by (induct n) simp_all
    4.70  
    4.71  lemma complex_of_real_of_int [simp]: "complex_of_real (of_int z) = of_int z"
    4.72  proof (cases z)
    4.73    case (1 n)
    4.74 -    thus ?thesis by simp
    4.75 +  thus ?thesis by simp
    4.76  next
    4.77    case (2 n)
    4.78 -    thus ?thesis 
    4.79 -      by (simp only: of_int_minus complex_of_real_minus, simp)
    4.80 +  thus ?thesis 
    4.81 +    by (simp only: of_int_minus complex_of_real_minus, simp)
    4.82  qed
    4.83  
    4.84  
    4.85 @@ -914,163 +914,6 @@
    4.86  test "a*(b*c)/(y*z) = d*(b::complex)*(x*a)/z";
    4.87  *)
    4.88  
    4.89 -
    4.90 -ML
    4.91 -{*
    4.92 -val complex_zero_def = thm"complex_zero_def";
    4.93 -val complex_one_def = thm"complex_one_def";
    4.94 -val complex_minus_def = thm"complex_minus_def";
    4.95 -val complex_divide_def = thm"complex_divide_def";
    4.96 -val complex_mult_def = thm"complex_mult_def";
    4.97 -val complex_add_def = thm"complex_add_def";
    4.98 -val complex_of_real_def = thm"complex_of_real_def";
    4.99 -val i_def = thm"i_def";
   4.100 -val expi_def = thm"expi_def";
   4.101 -val cis_def = thm"cis_def";
   4.102 -val rcis_def = thm"rcis_def";
   4.103 -val cmod_def = thm"cmod_def";
   4.104 -val cnj_def = thm"cnj_def";
   4.105 -val sgn_def = thm"sgn_def";
   4.106 -val arg_def = thm"arg_def";
   4.107 -val complexpow_0 = thm"complexpow_0";
   4.108 -val complexpow_Suc = thm"complexpow_Suc";
   4.109 -
   4.110 -val Re = thm"Re";
   4.111 -val Im = thm"Im";
   4.112 -val complex_Re_Im_cancel_iff = thm"complex_Re_Im_cancel_iff";
   4.113 -val complex_Re_zero = thm"complex_Re_zero";
   4.114 -val complex_Im_zero = thm"complex_Im_zero";
   4.115 -val complex_Re_one = thm"complex_Re_one";
   4.116 -val complex_Im_one = thm"complex_Im_one";
   4.117 -val complex_Re_i = thm"complex_Re_i";
   4.118 -val complex_Im_i = thm"complex_Im_i";
   4.119 -val Re_complex_of_real = thm"Re_complex_of_real";
   4.120 -val Im_complex_of_real = thm"Im_complex_of_real";
   4.121 -val complex_minus = thm"complex_minus";
   4.122 -val complex_Re_minus = thm"complex_Re_minus";
   4.123 -val complex_Im_minus = thm"complex_Im_minus";
   4.124 -val complex_add = thm"complex_add";
   4.125 -val complex_Re_add = thm"complex_Re_add";
   4.126 -val complex_Im_add = thm"complex_Im_add";
   4.127 -val complex_add_commute = thm"complex_add_commute";
   4.128 -val complex_add_assoc = thm"complex_add_assoc";
   4.129 -val complex_add_zero_left = thm"complex_add_zero_left";
   4.130 -val complex_add_zero_right = thm"complex_add_zero_right";
   4.131 -val complex_diff = thm"complex_diff";
   4.132 -val complex_mult = thm"complex_mult";
   4.133 -val complex_mult_one_left = thm"complex_mult_one_left";
   4.134 -val complex_mult_one_right = thm"complex_mult_one_right";
   4.135 -val complex_inverse = thm"complex_inverse";
   4.136 -val complex_of_real_one = thm"complex_of_real_one";
   4.137 -val complex_of_real_zero = thm"complex_of_real_zero";
   4.138 -val complex_of_real_eq_iff = thm"complex_of_real_eq_iff";
   4.139 -val complex_of_real_minus = thm"complex_of_real_minus";
   4.140 -val complex_of_real_inverse = thm"complex_of_real_inverse";
   4.141 -val complex_of_real_add = thm"complex_of_real_add";
   4.142 -val complex_of_real_diff = thm"complex_of_real_diff";
   4.143 -val complex_of_real_mult = thm"complex_of_real_mult";
   4.144 -val complex_of_real_divide = thm"complex_of_real_divide";
   4.145 -val complex_of_real_pow = thm"complex_of_real_pow";
   4.146 -val complex_mod = thm"complex_mod";
   4.147 -val complex_mod_zero = thm"complex_mod_zero";
   4.148 -val complex_mod_one = thm"complex_mod_one";
   4.149 -val complex_mod_complex_of_real = thm"complex_mod_complex_of_real";
   4.150 -val complex_of_real_abs = thm"complex_of_real_abs";
   4.151 -val complex_cnj = thm"complex_cnj";
   4.152 -val complex_cnj_cancel_iff = thm"complex_cnj_cancel_iff";
   4.153 -val complex_cnj_cnj = thm"complex_cnj_cnj";
   4.154 -val complex_cnj_complex_of_real = thm"complex_cnj_complex_of_real";
   4.155 -val complex_mod_cnj = thm"complex_mod_cnj";
   4.156 -val complex_cnj_minus = thm"complex_cnj_minus";
   4.157 -val complex_cnj_inverse = thm"complex_cnj_inverse";
   4.158 -val complex_cnj_add = thm"complex_cnj_add";
   4.159 -val complex_cnj_diff = thm"complex_cnj_diff";
   4.160 -val complex_cnj_mult = thm"complex_cnj_mult";
   4.161 -val complex_cnj_divide = thm"complex_cnj_divide";
   4.162 -val complex_cnj_one = thm"complex_cnj_one";
   4.163 -val complex_cnj_pow = thm"complex_cnj_pow";
   4.164 -val complex_add_cnj = thm"complex_add_cnj";
   4.165 -val complex_diff_cnj = thm"complex_diff_cnj";
   4.166 -val complex_cnj_zero = thm"complex_cnj_zero";
   4.167 -val complex_cnj_zero_iff = thm"complex_cnj_zero_iff";
   4.168 -val complex_mult_cnj = thm"complex_mult_cnj";
   4.169 -val complex_mod_eq_zero_cancel = thm"complex_mod_eq_zero_cancel";
   4.170 -val complex_mod_complex_of_real_of_nat = thm"complex_mod_complex_of_real_of_nat";
   4.171 -val complex_mod_minus = thm"complex_mod_minus";
   4.172 -val complex_mod_mult_cnj = thm"complex_mod_mult_cnj";
   4.173 -val complex_mod_squared = thm"complex_mod_squared";
   4.174 -val complex_mod_ge_zero = thm"complex_mod_ge_zero";
   4.175 -val abs_cmod_cancel = thm"abs_cmod_cancel";
   4.176 -val complex_mod_mult = thm"complex_mod_mult";
   4.177 -val complex_mod_add_squared_eq = thm"complex_mod_add_squared_eq";
   4.178 -val complex_Re_mult_cnj_le_cmod = thm"complex_Re_mult_cnj_le_cmod";
   4.179 -val complex_Re_mult_cnj_le_cmod2 = thm"complex_Re_mult_cnj_le_cmod2";
   4.180 -val real_sum_squared_expand = thm"real_sum_squared_expand";
   4.181 -val complex_mod_triangle_squared = thm"complex_mod_triangle_squared";
   4.182 -val complex_mod_minus_le_complex_mod = thm"complex_mod_minus_le_complex_mod";
   4.183 -val complex_mod_triangle_ineq = thm"complex_mod_triangle_ineq";
   4.184 -val complex_mod_triangle_ineq2 = thm"complex_mod_triangle_ineq2";
   4.185 -val complex_mod_diff_commute = thm"complex_mod_diff_commute";
   4.186 -val complex_mod_add_less = thm"complex_mod_add_less";
   4.187 -val complex_mod_mult_less = thm"complex_mod_mult_less";
   4.188 -val complex_mod_diff_ineq = thm"complex_mod_diff_ineq";
   4.189 -val complex_Re_le_cmod = thm"complex_Re_le_cmod";
   4.190 -val complex_mod_gt_zero = thm"complex_mod_gt_zero";
   4.191 -val complex_mod_complexpow = thm"complex_mod_complexpow";
   4.192 -val complex_mod_inverse = thm"complex_mod_inverse";
   4.193 -val complex_mod_divide = thm"complex_mod_divide";
   4.194 -val complexpow_i_squared = thm"complexpow_i_squared";
   4.195 -val complex_i_not_zero = thm"complex_i_not_zero";
   4.196 -val sgn_zero = thm"sgn_zero";
   4.197 -val sgn_one = thm"sgn_one";
   4.198 -val sgn_minus = thm"sgn_minus";
   4.199 -val sgn_eq = thm"sgn_eq";
   4.200 -val i_mult_eq = thm"i_mult_eq";
   4.201 -val i_mult_eq2 = thm"i_mult_eq2";
   4.202 -val Re_sgn = thm"Re_sgn";
   4.203 -val Im_sgn = thm"Im_sgn";
   4.204 -val complex_inverse_complex_split = thm"complex_inverse_complex_split";
   4.205 -val cos_arg_i_mult_zero = thm"cos_arg_i_mult_zero";
   4.206 -val complex_of_real_zero_iff = thm"complex_of_real_zero_iff";
   4.207 -val rcis_Ex = thm"rcis_Ex";
   4.208 -val Re_rcis = thm"Re_rcis";
   4.209 -val Im_rcis = thm"Im_rcis";
   4.210 -val complex_mod_rcis = thm"complex_mod_rcis";
   4.211 -val complex_mod_sqrt_Re_mult_cnj = thm"complex_mod_sqrt_Re_mult_cnj";
   4.212 -val complex_Re_cnj = thm"complex_Re_cnj";
   4.213 -val complex_Im_cnj = thm"complex_Im_cnj";
   4.214 -val complex_In_mult_cnj_zero = thm"complex_In_mult_cnj_zero";
   4.215 -val complex_Re_mult = thm"complex_Re_mult";
   4.216 -val complex_Re_mult_complex_of_real = thm"complex_Re_mult_complex_of_real";
   4.217 -val complex_Im_mult_complex_of_real = thm"complex_Im_mult_complex_of_real";
   4.218 -val complex_Re_mult_complex_of_real2 = thm"complex_Re_mult_complex_of_real2";
   4.219 -val complex_Im_mult_complex_of_real2 = thm"complex_Im_mult_complex_of_real2";
   4.220 -val cis_rcis_eq = thm"cis_rcis_eq";
   4.221 -val rcis_mult = thm"rcis_mult";
   4.222 -val cis_mult = thm"cis_mult";
   4.223 -val cis_zero = thm"cis_zero";
   4.224 -val rcis_zero_mod = thm"rcis_zero_mod";
   4.225 -val rcis_zero_arg = thm"rcis_zero_arg";
   4.226 -val complex_of_real_minus_one = thm"complex_of_real_minus_one";
   4.227 -val complex_i_mult_minus = thm"complex_i_mult_minus";
   4.228 -val cis_real_of_nat_Suc_mult = thm"cis_real_of_nat_Suc_mult";
   4.229 -val DeMoivre = thm"DeMoivre";
   4.230 -val DeMoivre2 = thm"DeMoivre2";
   4.231 -val cis_inverse = thm"cis_inverse";
   4.232 -val rcis_inverse = thm"rcis_inverse";
   4.233 -val cis_divide = thm"cis_divide";
   4.234 -val rcis_divide = thm"rcis_divide";
   4.235 -val Re_cis = thm"Re_cis";
   4.236 -val Im_cis = thm"Im_cis";
   4.237 -val cos_n_Re_cis_pow_n = thm"cos_n_Re_cis_pow_n";
   4.238 -val sin_n_Im_cis_pow_n = thm"sin_n_Im_cis_pow_n";
   4.239 -val expi_add = thm"expi_add";
   4.240 -val expi_zero = thm"expi_zero";
   4.241 -val complex_Re_mult_eq = thm"complex_Re_mult_eq";
   4.242 -val complex_Im_mult_eq = thm"complex_Im_mult_eq";
   4.243 -val complex_expi_Ex = thm"complex_expi_Ex";
   4.244 -*}
   4.245 -
   4.246  end
   4.247  
   4.248  
     5.1 --- a/src/HOL/Complex/NSCA.thy	Fri Jun 02 20:12:59 2006 +0200
     5.2 +++ b/src/HOL/Complex/NSCA.thy	Fri Jun 02 23:22:29 2006 +0200
     5.3 @@ -9,34 +9,34 @@
     5.4  imports NSComplex
     5.5  begin
     5.6  
     5.7 -constdefs
     5.8 +definition
     5.9  
    5.10     CInfinitesimal  :: "hcomplex set"
    5.11 -   "CInfinitesimal == {x. \<forall>r \<in> Reals. 0 < r --> hcmod x < r}"
    5.12 +   "CInfinitesimal = {x. \<forall>r \<in> Reals. 0 < r --> hcmod x < r}"
    5.13  
    5.14      capprox    :: "[hcomplex,hcomplex] => bool"  (infixl "@c=" 50)  
    5.15        --{*the ``infinitely close'' relation*}
    5.16 -      "x @c= y == (x - y) \<in> CInfinitesimal"     
    5.17 +      "x @c= y = ((x - y) \<in> CInfinitesimal)"     
    5.18    
    5.19     (* standard complex numbers reagarded as an embedded subset of NS complex *)
    5.20     SComplex  :: "hcomplex set"
    5.21 -   "SComplex == {x. \<exists>r. x = hcomplex_of_complex r}"
    5.22 +   "SComplex = {x. \<exists>r. x = hcomplex_of_complex r}"
    5.23  
    5.24     CFinite :: "hcomplex set"
    5.25 -   "CFinite == {x. \<exists>r \<in> Reals. hcmod x < r}"
    5.26 +   "CFinite = {x. \<exists>r \<in> Reals. hcmod x < r}"
    5.27  
    5.28     CInfinite :: "hcomplex set"
    5.29 -   "CInfinite == {x. \<forall>r \<in> Reals. r < hcmod x}"
    5.30 +   "CInfinite = {x. \<forall>r \<in> Reals. r < hcmod x}"
    5.31  
    5.32     stc :: "hcomplex => hcomplex"
    5.33      --{* standard part map*}
    5.34 -   "stc x == (@r. x \<in> CFinite & r:SComplex & r @c= x)"
    5.35 +   "stc x = (SOME r. x \<in> CFinite & r:SComplex & r @c= x)"
    5.36  
    5.37     cmonad    :: "hcomplex => hcomplex set"
    5.38 -   "cmonad x  == {y. x @c= y}"
    5.39 +   "cmonad x = {y. x @c= y}"
    5.40  
    5.41     cgalaxy   :: "hcomplex => hcomplex set"
    5.42 -   "cgalaxy x == {y. (x - y) \<in> CFinite}"
    5.43 +   "cgalaxy x = {y. (x - y) \<in> CFinite}"
    5.44  
    5.45  
    5.46  
    5.47 @@ -1217,222 +1217,4 @@
    5.48       "(0 @c= hcomplex_of_complex z) = (z = 0)"
    5.49  by (simp add: star_of_zero [symmetric] del: star_of_zero)
    5.50  
    5.51 -
    5.52 -ML
    5.53 -{*
    5.54 -val SComplex_add = thm "SComplex_add";
    5.55 -val SComplex_mult = thm "SComplex_mult";
    5.56 -val SComplex_inverse = thm "SComplex_inverse";
    5.57 -val SComplex_divide = thm "SComplex_divide";
    5.58 -val SComplex_minus = thm "SComplex_minus";
    5.59 -val SComplex_minus_iff = thm "SComplex_minus_iff";
    5.60 -val SComplex_diff = thm "SComplex_diff";
    5.61 -val SComplex_add_cancel = thm "SComplex_add_cancel";
    5.62 -val SReal_hcmod_hcomplex_of_complex = thm "SReal_hcmod_hcomplex_of_complex";
    5.63 -val SReal_hcmod_number_of = thm "SReal_hcmod_number_of";
    5.64 -val SReal_hcmod_SComplex = thm "SReal_hcmod_SComplex";
    5.65 -val SComplex_hcomplex_of_complex = thm "SComplex_hcomplex_of_complex";
    5.66 -val SComplex_number_of = thm "SComplex_number_of";
    5.67 -val SComplex_divide_number_of = thm "SComplex_divide_number_of";
    5.68 -val SComplex_UNIV_complex = thm "SComplex_UNIV_complex";
    5.69 -val SComplex_iff = thm "SComplex_iff";
    5.70 -val hcomplex_of_complex_image = thm "hcomplex_of_complex_image";
    5.71 -val inv_hcomplex_of_complex_image = thm "inv_hcomplex_of_complex_image";
    5.72 -val SComplex_hcomplex_of_complex_image = thm "SComplex_hcomplex_of_complex_image";
    5.73 -val SComplex_SReal_dense = thm "SComplex_SReal_dense";
    5.74 -val SComplex_hcmod_SReal = thm "SComplex_hcmod_SReal";
    5.75 -val SComplex_zero = thm "SComplex_zero";
    5.76 -val SComplex_one = thm "SComplex_one";
    5.77 -val CFinite_add = thm "CFinite_add";
    5.78 -val CFinite_mult = thm "CFinite_mult";
    5.79 -val CFinite_minus_iff = thm "CFinite_minus_iff";
    5.80 -val SComplex_subset_CFinite = thm "SComplex_subset_CFinite";
    5.81 -val HFinite_hcmod_hcomplex_of_complex = thm "HFinite_hcmod_hcomplex_of_complex";
    5.82 -val CFinite_hcomplex_of_complex = thm "CFinite_hcomplex_of_complex";
    5.83 -val CFiniteD = thm "CFiniteD";
    5.84 -val CFinite_hcmod_iff = thm "CFinite_hcmod_iff";
    5.85 -val CFinite_number_of = thm "CFinite_number_of";
    5.86 -val CFinite_bounded = thm "CFinite_bounded";
    5.87 -val CInfinitesimal_zero = thm "CInfinitesimal_zero";
    5.88 -val hcomplex_sum_of_halves = thm "hcomplex_sum_of_halves";
    5.89 -val CInfinitesimal_hcmod_iff = thm "CInfinitesimal_hcmod_iff";
    5.90 -val one_not_CInfinitesimal = thm "one_not_CInfinitesimal";
    5.91 -val CInfinitesimal_add = thm "CInfinitesimal_add";
    5.92 -val CInfinitesimal_minus_iff = thm "CInfinitesimal_minus_iff";
    5.93 -val CInfinitesimal_diff = thm "CInfinitesimal_diff";
    5.94 -val CInfinitesimal_mult = thm "CInfinitesimal_mult";
    5.95 -val CInfinitesimal_CFinite_mult = thm "CInfinitesimal_CFinite_mult";
    5.96 -val CInfinitesimal_CFinite_mult2 = thm "CInfinitesimal_CFinite_mult2";
    5.97 -val CInfinite_hcmod_iff = thm "CInfinite_hcmod_iff";
    5.98 -val CInfinite_inverse_CInfinitesimal = thm "CInfinite_inverse_CInfinitesimal";
    5.99 -val CInfinite_mult = thm "CInfinite_mult";
   5.100 -val CInfinite_minus_iff = thm "CInfinite_minus_iff";
   5.101 -val CFinite_sum_squares = thm "CFinite_sum_squares";
   5.102 -val not_CInfinitesimal_not_zero = thm "not_CInfinitesimal_not_zero";
   5.103 -val not_CInfinitesimal_not_zero2 = thm "not_CInfinitesimal_not_zero2";
   5.104 -val CFinite_diff_CInfinitesimal_hcmod = thm "CFinite_diff_CInfinitesimal_hcmod";
   5.105 -val hcmod_less_CInfinitesimal = thm "hcmod_less_CInfinitesimal";
   5.106 -val hcmod_le_CInfinitesimal = thm "hcmod_le_CInfinitesimal";
   5.107 -val CInfinitesimal_interval = thm "CInfinitesimal_interval";
   5.108 -val CInfinitesimal_interval2 = thm "CInfinitesimal_interval2";
   5.109 -val not_CInfinitesimal_mult = thm "not_CInfinitesimal_mult";
   5.110 -val CInfinitesimal_mult_disj = thm "CInfinitesimal_mult_disj";
   5.111 -val CFinite_CInfinitesimal_diff_mult = thm "CFinite_CInfinitesimal_diff_mult";
   5.112 -val CInfinitesimal_subset_CFinite = thm "CInfinitesimal_subset_CFinite";
   5.113 -val CInfinitesimal_hcomplex_of_complex_mult = thm "CInfinitesimal_hcomplex_of_complex_mult";
   5.114 -val CInfinitesimal_hcomplex_of_complex_mult2 = thm "CInfinitesimal_hcomplex_of_complex_mult2";
   5.115 -val mem_cinfmal_iff = thm "mem_cinfmal_iff";
   5.116 -val capprox_minus_iff = thm "capprox_minus_iff";
   5.117 -val capprox_minus_iff2 = thm "capprox_minus_iff2";
   5.118 -val capprox_refl = thm "capprox_refl";
   5.119 -val capprox_sym = thm "capprox_sym";
   5.120 -val capprox_trans = thm "capprox_trans";
   5.121 -val capprox_trans2 = thm "capprox_trans2";
   5.122 -val capprox_trans3 = thm "capprox_trans3";
   5.123 -val number_of_capprox_reorient = thm "number_of_capprox_reorient";
   5.124 -val CInfinitesimal_capprox_minus = thm "CInfinitesimal_capprox_minus";
   5.125 -val capprox_monad_iff = thm "capprox_monad_iff";
   5.126 -val Infinitesimal_capprox = thm "Infinitesimal_capprox";
   5.127 -val capprox_add = thm "capprox_add";
   5.128 -val capprox_minus = thm "capprox_minus";
   5.129 -val capprox_minus2 = thm "capprox_minus2";
   5.130 -val capprox_minus_cancel = thm "capprox_minus_cancel";
   5.131 -val capprox_add_minus = thm "capprox_add_minus";
   5.132 -val capprox_mult1 = thm "capprox_mult1";
   5.133 -val capprox_mult2 = thm "capprox_mult2";
   5.134 -val capprox_mult_subst = thm "capprox_mult_subst";
   5.135 -val capprox_mult_subst2 = thm "capprox_mult_subst2";
   5.136 -val capprox_mult_subst_SComplex = thm "capprox_mult_subst_SComplex";
   5.137 -val capprox_eq_imp = thm "capprox_eq_imp";
   5.138 -val CInfinitesimal_minus_capprox = thm "CInfinitesimal_minus_capprox";
   5.139 -val bex_CInfinitesimal_iff = thm "bex_CInfinitesimal_iff";
   5.140 -val bex_CInfinitesimal_iff2 = thm "bex_CInfinitesimal_iff2";
   5.141 -val CInfinitesimal_add_capprox = thm "CInfinitesimal_add_capprox";
   5.142 -val CInfinitesimal_add_capprox_self = thm "CInfinitesimal_add_capprox_self";
   5.143 -val CInfinitesimal_add_capprox_self2 = thm "CInfinitesimal_add_capprox_self2";
   5.144 -val CInfinitesimal_add_minus_capprox_self = thm "CInfinitesimal_add_minus_capprox_self";
   5.145 -val CInfinitesimal_add_cancel = thm "CInfinitesimal_add_cancel";
   5.146 -val CInfinitesimal_add_right_cancel = thm "CInfinitesimal_add_right_cancel";
   5.147 -val capprox_add_left_cancel = thm "capprox_add_left_cancel";
   5.148 -val capprox_add_right_cancel = thm "capprox_add_right_cancel";
   5.149 -val capprox_add_mono1 = thm "capprox_add_mono1";
   5.150 -val capprox_add_mono2 = thm "capprox_add_mono2";
   5.151 -val capprox_add_left_iff = thm "capprox_add_left_iff";
   5.152 -val capprox_add_right_iff = thm "capprox_add_right_iff";
   5.153 -val capprox_CFinite = thm "capprox_CFinite";
   5.154 -val capprox_hcomplex_of_complex_CFinite = thm "capprox_hcomplex_of_complex_CFinite";
   5.155 -val capprox_mult_CFinite = thm "capprox_mult_CFinite";
   5.156 -val capprox_mult_hcomplex_of_complex = thm "capprox_mult_hcomplex_of_complex";
   5.157 -val capprox_SComplex_mult_cancel_zero = thm "capprox_SComplex_mult_cancel_zero";
   5.158 -val capprox_mult_SComplex1 = thm "capprox_mult_SComplex1";
   5.159 -val capprox_mult_SComplex2 = thm "capprox_mult_SComplex2";
   5.160 -val capprox_mult_SComplex_zero_cancel_iff = thm "capprox_mult_SComplex_zero_cancel_iff";
   5.161 -val capprox_SComplex_mult_cancel = thm "capprox_SComplex_mult_cancel";
   5.162 -val capprox_SComplex_mult_cancel_iff1 = thm "capprox_SComplex_mult_cancel_iff1";
   5.163 -val capprox_hcmod_approx_zero = thm "capprox_hcmod_approx_zero";
   5.164 -val capprox_approx_zero_iff = thm "capprox_approx_zero_iff";
   5.165 -val capprox_minus_zero_cancel_iff = thm "capprox_minus_zero_cancel_iff";
   5.166 -val Infinitesimal_hcmod_add_diff = thm "Infinitesimal_hcmod_add_diff";
   5.167 -val approx_hcmod_add_hcmod = thm "approx_hcmod_add_hcmod";
   5.168 -val capprox_hcmod_approx = thm "capprox_hcmod_approx";
   5.169 -val CInfinitesimal_less_SComplex = thm "CInfinitesimal_less_SComplex";
   5.170 -val SComplex_Int_CInfinitesimal_zero = thm "SComplex_Int_CInfinitesimal_zero";
   5.171 -val SComplex_CInfinitesimal_zero = thm "SComplex_CInfinitesimal_zero";
   5.172 -val SComplex_CFinite_diff_CInfinitesimal = thm "SComplex_CFinite_diff_CInfinitesimal";
   5.173 -val hcomplex_of_complex_CFinite_diff_CInfinitesimal = thm "hcomplex_of_complex_CFinite_diff_CInfinitesimal";
   5.174 -val hcomplex_of_complex_CInfinitesimal_iff_0 = thm "hcomplex_of_complex_CInfinitesimal_iff_0";
   5.175 -val number_of_not_CInfinitesimal = thm "number_of_not_CInfinitesimal";
   5.176 -val capprox_SComplex_not_zero = thm "capprox_SComplex_not_zero";
   5.177 -val CFinite_diff_CInfinitesimal_capprox = thm "CFinite_diff_CInfinitesimal_capprox";
   5.178 -val CInfinitesimal_ratio = thm "CInfinitesimal_ratio";
   5.179 -val SComplex_capprox_iff = thm "SComplex_capprox_iff";
   5.180 -val number_of_capprox_iff = thm "number_of_capprox_iff";
   5.181 -val number_of_CInfinitesimal_iff = thm "number_of_CInfinitesimal_iff";
   5.182 -val hcomplex_of_complex_approx_iff = thm "hcomplex_of_complex_approx_iff";
   5.183 -val hcomplex_of_complex_capprox_number_of_iff = thm "hcomplex_of_complex_capprox_number_of_iff";
   5.184 -val capprox_unique_complex = thm "capprox_unique_complex";
   5.185 -val hcomplex_capproxD1 = thm "hcomplex_capproxD1";
   5.186 -val hcomplex_capproxD2 = thm "hcomplex_capproxD2";
   5.187 -val hcomplex_capproxI = thm "hcomplex_capproxI";
   5.188 -val capprox_approx_iff = thm "capprox_approx_iff";
   5.189 -val hcomplex_of_hypreal_capprox_iff = thm "hcomplex_of_hypreal_capprox_iff";
   5.190 -val CFinite_HFinite_Re = thm "CFinite_HFinite_Re";
   5.191 -val CFinite_HFinite_Im = thm "CFinite_HFinite_Im";
   5.192 -val HFinite_Re_Im_CFinite = thm "HFinite_Re_Im_CFinite";
   5.193 -val CFinite_HFinite_iff = thm "CFinite_HFinite_iff";
   5.194 -val SComplex_Re_SReal = thm "SComplex_Re_SReal";
   5.195 -val SComplex_Im_SReal = thm "SComplex_Im_SReal";
   5.196 -val Reals_Re_Im_SComplex = thm "Reals_Re_Im_SComplex";
   5.197 -val SComplex_SReal_iff = thm "SComplex_SReal_iff";
   5.198 -val CInfinitesimal_Infinitesimal_iff = thm "CInfinitesimal_Infinitesimal_iff";
   5.199 -val eq_Abs_star_Bex = thm "eq_Abs_star_Bex";
   5.200 -val stc_part_Ex = thm "stc_part_Ex";
   5.201 -val stc_part_Ex1 = thm "stc_part_Ex1";
   5.202 -val CFinite_Int_CInfinite_empty = thm "CFinite_Int_CInfinite_empty";
   5.203 -val CFinite_not_CInfinite = thm "CFinite_not_CInfinite";
   5.204 -val not_CFinite_CInfinite = thm "not_CFinite_CInfinite";
   5.205 -val CInfinite_CFinite_disj = thm "CInfinite_CFinite_disj";
   5.206 -val CInfinite_CFinite_iff = thm "CInfinite_CFinite_iff";
   5.207 -val CFinite_CInfinite_iff = thm "CFinite_CInfinite_iff";
   5.208 -val CInfinite_diff_CFinite_CInfinitesimal_disj = thm "CInfinite_diff_CFinite_CInfinitesimal_disj";
   5.209 -val CFinite_inverse = thm "CFinite_inverse";
   5.210 -val CFinite_inverse2 = thm "CFinite_inverse2";
   5.211 -val CInfinitesimal_inverse_CFinite = thm "CInfinitesimal_inverse_CFinite";
   5.212 -val CFinite_not_CInfinitesimal_inverse = thm "CFinite_not_CInfinitesimal_inverse";
   5.213 -val capprox_inverse = thm "capprox_inverse";
   5.214 -val hcomplex_of_complex_capprox_inverse = thms "hcomplex_of_complex_capprox_inverse";
   5.215 -val inverse_add_CInfinitesimal_capprox = thm "inverse_add_CInfinitesimal_capprox";
   5.216 -val inverse_add_CInfinitesimal_capprox2 = thm "inverse_add_CInfinitesimal_capprox2";
   5.217 -val inverse_add_CInfinitesimal_approx_CInfinitesimal = thm "inverse_add_CInfinitesimal_approx_CInfinitesimal";
   5.218 -val CInfinitesimal_square_iff = thm "CInfinitesimal_square_iff";
   5.219 -val capprox_CFinite_mult_cancel = thm "capprox_CFinite_mult_cancel";
   5.220 -val capprox_CFinite_mult_cancel_iff1 = thm "capprox_CFinite_mult_cancel_iff1";
   5.221 -val capprox_cmonad_iff = thm "capprox_cmonad_iff";
   5.222 -val CInfinitesimal_cmonad_eq = thm "CInfinitesimal_cmonad_eq";
   5.223 -val mem_cmonad_iff = thm "mem_cmonad_iff";
   5.224 -val CInfinitesimal_cmonad_zero_iff = thm "CInfinitesimal_cmonad_zero_iff";
   5.225 -val cmonad_zero_minus_iff = thm "cmonad_zero_minus_iff";
   5.226 -val cmonad_zero_hcmod_iff = thm "cmonad_zero_hcmod_iff";
   5.227 -val mem_cmonad_self = thm "mem_cmonad_self";
   5.228 -val stc_capprox_self = thm "stc_capprox_self";
   5.229 -val stc_SComplex = thm "stc_SComplex";
   5.230 -val stc_CFinite = thm "stc_CFinite";
   5.231 -val stc_SComplex_eq = thm "stc_SComplex_eq";
   5.232 -val stc_hcomplex_of_complex = thm "stc_hcomplex_of_complex";
   5.233 -val stc_eq_capprox = thm "stc_eq_capprox";
   5.234 -val capprox_stc_eq = thm "capprox_stc_eq";
   5.235 -val stc_eq_capprox_iff = thm "stc_eq_capprox_iff";
   5.236 -val stc_CInfinitesimal_add_SComplex = thm "stc_CInfinitesimal_add_SComplex";
   5.237 -val stc_CInfinitesimal_add_SComplex2 = thm "stc_CInfinitesimal_add_SComplex2";
   5.238 -val CFinite_stc_CInfinitesimal_add = thm "CFinite_stc_CInfinitesimal_add";
   5.239 -val stc_add = thm "stc_add";
   5.240 -val stc_number_of = thm "stc_number_of";
   5.241 -val stc_zero = thm "stc_zero";
   5.242 -val stc_one = thm "stc_one";
   5.243 -val stc_minus = thm "stc_minus";
   5.244 -val stc_diff = thm "stc_diff";
   5.245 -val lemma_stc_mult = thm "lemma_stc_mult";
   5.246 -val stc_mult = thm "stc_mult";
   5.247 -val stc_CInfinitesimal = thm "stc_CInfinitesimal";
   5.248 -val stc_not_CInfinitesimal = thm "stc_not_CInfinitesimal";
   5.249 -val stc_inverse = thm "stc_inverse";
   5.250 -val stc_divide = thm "stc_divide";
   5.251 -val stc_idempotent = thm "stc_idempotent";
   5.252 -val CFinite_HFinite_hcomplex_of_hypreal = thm "CFinite_HFinite_hcomplex_of_hypreal";
   5.253 -val SComplex_SReal_hcomplex_of_hypreal = thm "SComplex_SReal_hcomplex_of_hypreal";
   5.254 -val stc_hcomplex_of_hypreal = thm "stc_hcomplex_of_hypreal";
   5.255 -val CInfinitesimal_hcnj_iff = thm "CInfinitesimal_hcnj_iff";
   5.256 -val CInfinite_HInfinite_iff = thm "CInfinite_HInfinite_iff";
   5.257 -val hcomplex_split_CInfinitesimal_iff = thm "hcomplex_split_CInfinitesimal_iff";
   5.258 -val hcomplex_split_CFinite_iff = thm "hcomplex_split_CFinite_iff";
   5.259 -val hcomplex_split_SComplex_iff = thm "hcomplex_split_SComplex_iff";
   5.260 -val hcomplex_split_CInfinite_iff = thm "hcomplex_split_CInfinite_iff";
   5.261 -val hcomplex_split_capprox_iff = thm "hcomplex_split_capprox_iff";
   5.262 -val complex_seq_to_hcomplex_CInfinitesimal = thm "complex_seq_to_hcomplex_CInfinitesimal";
   5.263 -val CInfinitesimal_hcomplex_of_hypreal_epsilon = thm "CInfinitesimal_hcomplex_of_hypreal_epsilon";
   5.264 -val hcomplex_of_complex_approx_zero_iff = thm "hcomplex_of_complex_approx_zero_iff";
   5.265 -val hcomplex_of_complex_approx_zero_iff2 = thm "hcomplex_of_complex_approx_zero_iff2";
   5.266 -*}
   5.267 -
   5.268 - 
   5.269  end
     6.1 --- a/src/HOL/Complex/NSComplex.thy	Fri Jun 02 20:12:59 2006 +0200
     6.2 +++ b/src/HOL/Complex/NSComplex.thy	Fri Jun 02 23:22:29 2006 +0200
     6.3 @@ -13,66 +13,67 @@
     6.4  
     6.5  types hcomplex = "complex star"
     6.6  
     6.7 -syntax hcomplex_of_complex :: "real => real star"
     6.8 -translations "hcomplex_of_complex" => "star_of :: complex => complex star"
     6.9 +abbreviation
    6.10 +  hcomplex_of_complex :: "complex => complex star"
    6.11 +  "hcomplex_of_complex == star_of"
    6.12  
    6.13 -constdefs
    6.14 +definition
    6.15  
    6.16    (*--- real and Imaginary parts ---*)
    6.17  
    6.18    hRe :: "hcomplex => hypreal"
    6.19 -  "hRe == *f* Re"
    6.20 +  "hRe = *f* Re"
    6.21  
    6.22    hIm :: "hcomplex => hypreal"
    6.23 -  "hIm == *f* Im"
    6.24 +  "hIm = *f* Im"
    6.25  
    6.26  
    6.27    (*----------- modulus ------------*)
    6.28  
    6.29    hcmod :: "hcomplex => hypreal"
    6.30 -  "hcmod == *f* cmod"
    6.31 +  "hcmod = *f* cmod"
    6.32  
    6.33    (*------ imaginary unit ----------*)
    6.34  
    6.35    iii :: hcomplex
    6.36 -  "iii == star_of ii"
    6.37 +  "iii = star_of ii"
    6.38  
    6.39    (*------- complex conjugate ------*)
    6.40  
    6.41    hcnj :: "hcomplex => hcomplex"
    6.42 -  "hcnj == *f* cnj"
    6.43 +  "hcnj = *f* cnj"
    6.44  
    6.45    (*------------ Argand -------------*)
    6.46  
    6.47    hsgn :: "hcomplex => hcomplex"
    6.48 -  "hsgn == *f* sgn"
    6.49 +  "hsgn = *f* sgn"
    6.50  
    6.51    harg :: "hcomplex => hypreal"
    6.52 -  "harg == *f* arg"
    6.53 +  "harg = *f* arg"
    6.54  
    6.55    (* abbreviation for (cos a + i sin a) *)
    6.56    hcis :: "hypreal => hcomplex"
    6.57 -  "hcis == *f* cis"
    6.58 +  "hcis = *f* cis"
    6.59  
    6.60    (*----- injection from hyperreals -----*)
    6.61  
    6.62    hcomplex_of_hypreal :: "hypreal => hcomplex"
    6.63 -  "hcomplex_of_hypreal == *f* complex_of_real"
    6.64 +  "hcomplex_of_hypreal = *f* complex_of_real"
    6.65  
    6.66    (* abbreviation for r*(cos a + i sin a) *)
    6.67    hrcis :: "[hypreal, hypreal] => hcomplex"
    6.68 -  "hrcis == *f2* rcis"
    6.69 +  "hrcis = *f2* rcis"
    6.70  
    6.71    (*------------ e ^ (x + iy) ------------*)
    6.72  
    6.73    hexpi :: "hcomplex => hcomplex"
    6.74 -  "hexpi == *f* expi"
    6.75 +  "hexpi = *f* expi"
    6.76  
    6.77    HComplex :: "[hypreal,hypreal] => hcomplex"
    6.78 -  "HComplex == *f2* Complex"
    6.79 +  "HComplex = *f2* Complex"
    6.80  
    6.81    hcpow :: "[hcomplex,hypnat] => hcomplex"  (infixr "hcpow" 80)
    6.82 -  "(z::hcomplex) hcpow (n::hypnat) == ( *f2* op ^) z n"
    6.83 +  "(z::hcomplex) hcpow (n::hypnat) = ( *f2* op ^) z n"
    6.84  
    6.85  lemmas hcomplex_defs [transfer_unfold] =
    6.86    hRe_def hIm_def hcmod_def iii_def hcnj_def hsgn_def harg_def hcis_def
    6.87 @@ -921,158 +922,4 @@
    6.88        "hIm(number_of v :: hcomplex) = 0"
    6.89  by (transfer, simp)
    6.90  
    6.91 -
    6.92 -ML
    6.93 -{*
    6.94 -val iii_def = thm"iii_def";
    6.95 -
    6.96 -val hRe = thm"hRe";
    6.97 -val hIm = thm"hIm";
    6.98 -val hcomplex_hRe_hIm_cancel_iff = thm"hcomplex_hRe_hIm_cancel_iff";
    6.99 -val hcomplex_hRe_zero = thm"hcomplex_hRe_zero";
   6.100 -val hcomplex_hIm_zero = thm"hcomplex_hIm_zero";
   6.101 -val hcomplex_hRe_one = thm"hcomplex_hRe_one";
   6.102 -val hcomplex_hIm_one = thm"hcomplex_hIm_one";
   6.103 -val inj_hcomplex_of_complex = thm"inj_hcomplex_of_complex";
   6.104 -val hcomplex_of_complex_i = thm"hcomplex_of_complex_i";
   6.105 -val star_n_add = thm"star_n_add";
   6.106 -val hRe_add = thm"hRe_add";
   6.107 -val hIm_add = thm"hIm_add";
   6.108 -val hRe_minus = thm"hRe_minus";
   6.109 -val hIm_minus = thm"hIm_minus";
   6.110 -val hcomplex_add_minus_eq_minus = thm"hcomplex_add_minus_eq_minus";
   6.111 -val hcomplex_diff_eq_eq = thm"hcomplex_diff_eq_eq";
   6.112 -val hcomplex_mult_minus_one = thm"hcomplex_mult_minus_one";
   6.113 -val hcomplex_mult_minus_one_right = thm"hcomplex_mult_minus_one_right";
   6.114 -val hcomplex_mult_left_cancel = thm"hcomplex_mult_left_cancel";
   6.115 -val hcomplex_mult_right_cancel = thm"hcomplex_mult_right_cancel";
   6.116 -val hcomplex_add_divide_distrib = thm"hcomplex_add_divide_distrib";
   6.117 -val hcomplex_of_hypreal = thm"hcomplex_of_hypreal";
   6.118 -val hcomplex_of_hypreal_cancel_iff = thm"hcomplex_of_hypreal_cancel_iff";
   6.119 -val hcomplex_of_hypreal_minus = thm"hcomplex_of_hypreal_minus";
   6.120 -val hcomplex_of_hypreal_inverse = thm"hcomplex_of_hypreal_inverse";
   6.121 -val hcomplex_of_hypreal_add = thm"hcomplex_of_hypreal_add";
   6.122 -val hcomplex_of_hypreal_diff = thm"hcomplex_of_hypreal_diff";
   6.123 -val hcomplex_of_hypreal_mult = thm"hcomplex_of_hypreal_mult";
   6.124 -val hcomplex_of_hypreal_divide = thm"hcomplex_of_hypreal_divide";
   6.125 -val hcomplex_of_hypreal_one = thm"hcomplex_of_hypreal_one";
   6.126 -val hcomplex_of_hypreal_zero = thm"hcomplex_of_hypreal_zero";
   6.127 -val hcomplex_of_hypreal_pow = thm"hcomplex_of_hypreal_pow";
   6.128 -val hRe_hcomplex_of_hypreal = thm"hRe_hcomplex_of_hypreal";
   6.129 -val hIm_hcomplex_of_hypreal = thm"hIm_hcomplex_of_hypreal";
   6.130 -val hcomplex_of_hypreal_epsilon_not_zero = thm"hcomplex_of_hypreal_epsilon_not_zero";
   6.131 -val hcmod = thm"hcmod";
   6.132 -val hcmod_zero = thm"hcmod_zero";
   6.133 -val hcmod_one = thm"hcmod_one";
   6.134 -val hcmod_hcomplex_of_hypreal = thm"hcmod_hcomplex_of_hypreal";
   6.135 -val hcomplex_of_hypreal_abs = thm"hcomplex_of_hypreal_abs";
   6.136 -val hcnj = thm"hcnj";
   6.137 -val hcomplex_hcnj_cancel_iff = thm"hcomplex_hcnj_cancel_iff";
   6.138 -val hcomplex_hcnj_hcnj = thm"hcomplex_hcnj_hcnj";
   6.139 -val hcomplex_hcnj_hcomplex_of_hypreal = thm"hcomplex_hcnj_hcomplex_of_hypreal";
   6.140 -val hcomplex_hmod_hcnj = thm"hcomplex_hmod_hcnj";
   6.141 -val hcomplex_hcnj_minus = thm"hcomplex_hcnj_minus";
   6.142 -val hcomplex_hcnj_inverse = thm"hcomplex_hcnj_inverse";
   6.143 -val hcomplex_hcnj_add = thm"hcomplex_hcnj_add";
   6.144 -val hcomplex_hcnj_diff = thm"hcomplex_hcnj_diff";
   6.145 -val hcomplex_hcnj_mult = thm"hcomplex_hcnj_mult";
   6.146 -val hcomplex_hcnj_divide = thm"hcomplex_hcnj_divide";
   6.147 -val hcnj_one = thm"hcnj_one";
   6.148 -val hcomplex_hcnj_pow = thm"hcomplex_hcnj_pow";
   6.149 -val hcomplex_hcnj_zero = thm"hcomplex_hcnj_zero";
   6.150 -val hcomplex_hcnj_zero_iff = thm"hcomplex_hcnj_zero_iff";
   6.151 -val hcomplex_mult_hcnj = thm"hcomplex_mult_hcnj";
   6.152 -val hcomplex_hcmod_eq_zero_cancel = thm"hcomplex_hcmod_eq_zero_cancel";
   6.153 -
   6.154 -val hcmod_hcomplex_of_hypreal_of_nat = thm"hcmod_hcomplex_of_hypreal_of_nat";
   6.155 -val hcmod_hcomplex_of_hypreal_of_hypnat = thm"hcmod_hcomplex_of_hypreal_of_hypnat";
   6.156 -val hcmod_minus = thm"hcmod_minus";
   6.157 -val hcmod_mult_hcnj = thm"hcmod_mult_hcnj";
   6.158 -val hcmod_ge_zero = thm"hcmod_ge_zero";
   6.159 -val hrabs_hcmod_cancel = thm"hrabs_hcmod_cancel";
   6.160 -val hcmod_mult = thm"hcmod_mult";
   6.161 -val hcmod_add_squared_eq = thm"hcmod_add_squared_eq";
   6.162 -val hcomplex_hRe_mult_hcnj_le_hcmod = thm"hcomplex_hRe_mult_hcnj_le_hcmod";
   6.163 -val hcomplex_hRe_mult_hcnj_le_hcmod2 = thm"hcomplex_hRe_mult_hcnj_le_hcmod2";
   6.164 -val hcmod_triangle_squared = thm"hcmod_triangle_squared";
   6.165 -val hcmod_triangle_ineq = thm"hcmod_triangle_ineq";
   6.166 -val hcmod_triangle_ineq2 = thm"hcmod_triangle_ineq2";
   6.167 -val hcmod_diff_commute = thm"hcmod_diff_commute";
   6.168 -val hcmod_add_less = thm"hcmod_add_less";
   6.169 -val hcmod_mult_less = thm"hcmod_mult_less";
   6.170 -val hcmod_diff_ineq = thm"hcmod_diff_ineq";
   6.171 -val hcpow = thm"hcpow";
   6.172 -val hcomplex_of_hypreal_hyperpow = thm"hcomplex_of_hypreal_hyperpow";
   6.173 -val hcmod_hcomplexpow = thm"hcmod_hcomplexpow";
   6.174 -val hcmod_hcpow = thm"hcmod_hcpow";
   6.175 -val hcpow_minus = thm"hcpow_minus";
   6.176 -val hcmod_hcomplex_inverse = thm"hcmod_hcomplex_inverse";
   6.177 -val hcmod_divide = thm"hcmod_divide";
   6.178 -val hcpow_mult = thm"hcpow_mult";
   6.179 -val hcpow_zero = thm"hcpow_zero";
   6.180 -val hcpow_zero2 = thm"hcpow_zero2";
   6.181 -val hcpow_not_zero = thm"hcpow_not_zero";
   6.182 -val hcpow_zero_zero = thm"hcpow_zero_zero";
   6.183 -val hcomplex_i_mult_eq = thm"hcomplex_i_mult_eq";
   6.184 -val hcomplexpow_i_squared = thm"hcomplexpow_i_squared";
   6.185 -val hcomplex_i_not_zero = thm"hcomplex_i_not_zero";
   6.186 -val star_n_divide = thm"star_n_divide";
   6.187 -val hsgn = thm"hsgn";
   6.188 -val hsgn_zero = thm"hsgn_zero";
   6.189 -val hsgn_one = thm"hsgn_one";
   6.190 -val hsgn_minus = thm"hsgn_minus";
   6.191 -val hsgn_eq = thm"hsgn_eq";
   6.192 -val lemma_hypreal_P_EX2 = thm"lemma_hypreal_P_EX2";
   6.193 -val hcmod_i = thm"hcmod_i";
   6.194 -val hcomplex_eq_cancel_iff2 = thm"hcomplex_eq_cancel_iff2";
   6.195 -val hRe_hsgn = thm"hRe_hsgn";
   6.196 -val hIm_hsgn = thm"hIm_hsgn";
   6.197 -val real_two_squares_add_zero_iff = thm"real_two_squares_add_zero_iff";
   6.198 -val hRe_mult_i_eq = thm"hRe_mult_i_eq";
   6.199 -val hIm_mult_i_eq = thm"hIm_mult_i_eq";
   6.200 -val hcmod_mult_i = thm"hcmod_mult_i";
   6.201 -val hcmod_mult_i2 = thm"hcmod_mult_i2";
   6.202 -val harg = thm"harg";
   6.203 -val cos_harg_i_mult_zero = thm"cos_harg_i_mult_zero";
   6.204 -val hcomplex_of_hypreal_zero_iff = thm"hcomplex_of_hypreal_zero_iff";
   6.205 -val complex_split_polar2 = thm"complex_split_polar2";
   6.206 -val hcomplex_split_polar = thm"hcomplex_split_polar";
   6.207 -val hcis = thm"hcis";
   6.208 -val hcis_eq = thm"hcis_eq";
   6.209 -val hrcis = thm"hrcis";
   6.210 -val hrcis_Ex = thm"hrcis_Ex";
   6.211 -val hRe_hcomplex_polar = thm"hRe_hcomplex_polar";
   6.212 -val hRe_hrcis = thm"hRe_hrcis";
   6.213 -val hIm_hcomplex_polar = thm"hIm_hcomplex_polar";
   6.214 -val hIm_hrcis = thm"hIm_hrcis";
   6.215 -val hcmod_complex_polar = thm"hcmod_complex_polar";
   6.216 -val hcmod_hrcis = thm"hcmod_hrcis";
   6.217 -val hcis_hrcis_eq = thm"hcis_hrcis_eq";
   6.218 -val hrcis_mult = thm"hrcis_mult";
   6.219 -val hcis_mult = thm"hcis_mult";
   6.220 -val hcis_zero = thm"hcis_zero";
   6.221 -val hrcis_zero_mod = thm"hrcis_zero_mod";
   6.222 -val hrcis_zero_arg = thm"hrcis_zero_arg";
   6.223 -val hcomplex_i_mult_minus = thm"hcomplex_i_mult_minus";
   6.224 -val hcomplex_i_mult_minus2 = thm"hcomplex_i_mult_minus2";
   6.225 -val hcis_hypreal_of_nat_Suc_mult = thm"hcis_hypreal_of_nat_Suc_mult";
   6.226 -val NSDeMoivre = thm"NSDeMoivre";
   6.227 -val hcis_hypreal_of_hypnat_Suc_mult = thm"hcis_hypreal_of_hypnat_Suc_mult";
   6.228 -val NSDeMoivre_ext = thm"NSDeMoivre_ext";
   6.229 -val DeMoivre2 = thm"DeMoivre2";
   6.230 -val DeMoivre2_ext = thm"DeMoivre2_ext";
   6.231 -val hcis_inverse = thm"hcis_inverse";
   6.232 -val hrcis_inverse = thm"hrcis_inverse";
   6.233 -val hRe_hcis = thm"hRe_hcis";
   6.234 -val hIm_hcis = thm"hIm_hcis";
   6.235 -val cos_n_hRe_hcis_pow_n = thm"cos_n_hRe_hcis_pow_n";
   6.236 -val sin_n_hIm_hcis_pow_n = thm"sin_n_hIm_hcis_pow_n";
   6.237 -val cos_n_hRe_hcis_hcpow_n = thm"cos_n_hRe_hcis_hcpow_n";
   6.238 -val sin_n_hIm_hcis_hcpow_n = thm"sin_n_hIm_hcis_hcpow_n";
   6.239 -val hexpi_add = thm"hexpi_add";
   6.240 -val hRe_hcomplex_of_complex = thm"hRe_hcomplex_of_complex";
   6.241 -val hIm_hcomplex_of_complex = thm"hIm_hcomplex_of_complex";
   6.242 -val hcmod_hcomplex_of_complex = thm"hcmod_hcomplex_of_complex";
   6.243 -*}
   6.244 -
   6.245  end
     7.1 --- a/src/HOL/Hyperreal/EvenOdd.thy	Fri Jun 02 20:12:59 2006 +0200
     7.2 +++ b/src/HOL/Hyperreal/EvenOdd.thy	Fri Jun 02 23:22:29 2006 +0200
     7.3 @@ -86,24 +86,4 @@
     7.4  lemma lemma_even_mod_4_div_2: "n mod 4 = (1::nat) ==> even ((n - 1) div 2)"
     7.5  by (rule_tac t = n and n1 = 4 in mod_div_equality [THEN subst], simp)
     7.6  
     7.7 -ML
     7.8 -{*
     7.9 -val even_nat_Suc = thm"Parity.even_nat_Suc";
    7.10 -
    7.11 -val even_mult_two_ex = thm "even_mult_two_ex";
    7.12 -val odd_Suc_mult_two_ex = thm "odd_Suc_mult_two_ex";
    7.13 -val even_add = thm "even_add";
    7.14 -val odd_add = thm "odd_add";
    7.15 -val Suc_n_div_2_gt_zero = thm "Suc_n_div_2_gt_zero";
    7.16 -val div_2_gt_zero = thm "div_2_gt_zero";
    7.17 -val even_num_iff = thm "even_num_iff";
    7.18 -val nat_mod_div_trivial = thm "nat_mod_div_trivial";
    7.19 -val nat_mod_mod_trivial = thm "nat_mod_mod_trivial";
    7.20 -val mod_Suc_eq_Suc_mod = thm "mod_Suc_eq_Suc_mod";
    7.21 -val even_even_mod_4_iff = thm "even_even_mod_4_iff";
    7.22 -val lemma_odd_mod_4_div_2 = thm "lemma_odd_mod_4_div_2";
    7.23 -val lemma_even_mod_4_div_2 = thm "lemma_even_mod_4_div_2";
    7.24 -*}
    7.25 -
    7.26  end
    7.27 -
     8.1 --- a/src/HOL/Hyperreal/Fact.thy	Fri Jun 02 20:12:59 2006 +0200
     8.2 +++ b/src/HOL/Hyperreal/Fact.thy	Fri Jun 02 23:22:29 2006 +0200
     8.3 @@ -12,65 +12,65 @@
     8.4  
     8.5  consts fact :: "nat => nat"
     8.6  primrec
     8.7 -   fact_0:     "fact 0 = 1"
     8.8 -   fact_Suc:   "fact (Suc n) = (Suc n) * fact n"
     8.9 +  fact_0:     "fact 0 = 1"
    8.10 +  fact_Suc:   "fact (Suc n) = (Suc n) * fact n"
    8.11  
    8.12  
    8.13  lemma fact_gt_zero [simp]: "0 < fact n"
    8.14 -by (induct "n", auto)
    8.15 +  by (induct n) auto
    8.16  
    8.17  lemma fact_not_eq_zero [simp]: "fact n \<noteq> 0"
    8.18 -by simp
    8.19 +  by simp
    8.20  
    8.21  lemma real_of_nat_fact_not_zero [simp]: "real (fact n) \<noteq> 0"
    8.22 -by auto
    8.23 +  by auto
    8.24  
    8.25  lemma real_of_nat_fact_gt_zero [simp]: "0 < real(fact n)"
    8.26 -by auto
    8.27 +  by auto
    8.28  
    8.29  lemma real_of_nat_fact_ge_zero [simp]: "0 \<le> real(fact n)"
    8.30 -by simp
    8.31 +  by simp
    8.32  
    8.33  lemma fact_ge_one [simp]: "1 \<le> fact n"
    8.34 -by (induct "n", auto)
    8.35 +  by (induct n) auto
    8.36  
    8.37  lemma fact_mono: "m \<le> n ==> fact m \<le> fact n"
    8.38 -apply (drule le_imp_less_or_eq)
    8.39 -apply (auto dest!: less_imp_Suc_add)
    8.40 -apply (induct_tac "k", auto)
    8.41 -done
    8.42 +  apply (drule le_imp_less_or_eq)
    8.43 +  apply (auto dest!: less_imp_Suc_add)
    8.44 +  apply (induct_tac k, auto)
    8.45 +  done
    8.46  
    8.47  text{*Note that @{term "fact 0 = fact 1"}*}
    8.48  lemma fact_less_mono: "[| 0 < m; m < n |] ==> fact m < fact n"
    8.49 -apply (drule_tac m = m in less_imp_Suc_add, auto)
    8.50 -apply (induct_tac "k", auto)
    8.51 -done
    8.52 +  apply (drule_tac m = m in less_imp_Suc_add, auto)
    8.53 +  apply (induct_tac k, auto)
    8.54 +  done
    8.55  
    8.56  lemma inv_real_of_nat_fact_gt_zero [simp]: "0 < inverse (real (fact n))"
    8.57 -by (auto simp add: positive_imp_inverse_positive)
    8.58 +  by (auto simp add: positive_imp_inverse_positive)
    8.59  
    8.60  lemma inv_real_of_nat_fact_ge_zero [simp]: "0 \<le> inverse (real (fact n))"
    8.61 -by (auto intro: order_less_imp_le)
    8.62 +  by (auto intro: order_less_imp_le)
    8.63  
    8.64  lemma fact_diff_Suc [rule_format]:
    8.65 -     "\<forall>m. n < Suc m --> fact (Suc m - n) = (Suc m - n) * fact (m - n)"
    8.66 -apply (induct n, auto)
    8.67 -apply (drule_tac x = "m - 1" in spec, auto)
    8.68 -done
    8.69 +    "n < Suc m ==> fact (Suc m - n) = (Suc m - n) * fact (m - n)"
    8.70 +  apply (induct n fixing: m)
    8.71 +  apply auto
    8.72 +  apply (drule_tac x = "m - 1" in meta_spec, auto)
    8.73 +  done
    8.74  
    8.75  lemma fact_num0 [simp]: "fact 0 = 1"
    8.76 -by auto
    8.77 +  by auto
    8.78  
    8.79  lemma fact_num_eq_if: "fact m = (if m=0 then 1 else m * fact (m - 1))"
    8.80 -by (case_tac "m", auto)
    8.81 +  by (cases m) auto
    8.82  
    8.83  lemma fact_add_num_eq_if:
    8.84 -     "fact (m+n) = (if (m+n = 0) then 1 else (m+n) * (fact (m + n - 1)))"
    8.85 -by (case_tac "m+n", auto)
    8.86 +    "fact (m + n) = (if m + n = 0 then 1 else (m + n) * fact (m + n - 1))"
    8.87 +  by (cases "m + n") auto
    8.88  
    8.89  lemma fact_add_num_eq_if2:
    8.90 -     "fact (m+n) = (if m=0 then fact n else (m+n) * (fact ((m - 1) + n)))"
    8.91 -by (case_tac "m", auto)
    8.92 -
    8.93 +    "fact (m + n) = (if m = 0 then fact n else (m + n) * fact ((m - 1) + n))"
    8.94 +  by (cases m) auto
    8.95  
    8.96  end
     9.1 --- a/src/HOL/Hyperreal/HLog.thy	Fri Jun 02 20:12:59 2006 +0200
     9.2 +++ b/src/HOL/Hyperreal/HLog.thy	Fri Jun 02 23:22:29 2006 +0200
     9.3 @@ -18,13 +18,12 @@
     9.4  by auto
     9.5  
     9.6  
     9.7 -constdefs
     9.8 -
     9.9 -    powhr  :: "[hypreal,hypreal] => hypreal"     (infixr "powhr" 80)
    9.10 -    "x powhr a == starfun2 (op powr) x a"
    9.11 +definition
    9.12 +  powhr  :: "[hypreal,hypreal] => hypreal"     (infixr "powhr" 80)
    9.13 +  "x powhr a = starfun2 (op powr) x a"
    9.14    
    9.15 -    hlog :: "[hypreal,hypreal] => hypreal"
    9.16 -    "hlog a x == starfun2 log a x"
    9.17 +  hlog :: "[hypreal,hypreal] => hypreal"
    9.18 +  "hlog a x = starfun2 log a x"
    9.19  
    9.20  declare powhr_def [transfer_unfold]
    9.21  declare hlog_def [transfer_unfold]
    9.22 @@ -156,41 +155,4 @@
    9.23       "[| 1 < a; 0 < x; 0 < y |] ==> (hlog a x \<le> hlog a y) = (x \<le> y)"
    9.24  by (simp add: linorder_not_less [symmetric])
    9.25  
    9.26 -
    9.27 -ML
    9.28 -{*
    9.29 -val powhr = thm "powhr";
    9.30 -val powhr_one_eq_one = thm "powhr_one_eq_one";
    9.31 -val powhr_mult = thm "powhr_mult";
    9.32 -val powhr_gt_zero = thm "powhr_gt_zero";
    9.33 -val powhr_not_zero = thm "powhr_not_zero";
    9.34 -val powhr_divide = thm "powhr_divide";
    9.35 -val powhr_add = thm "powhr_add";
    9.36 -val powhr_powhr = thm "powhr_powhr";
    9.37 -val powhr_powhr_swap = thm "powhr_powhr_swap";
    9.38 -val powhr_minus = thm "powhr_minus";
    9.39 -val powhr_minus_divide = thm "powhr_minus_divide";
    9.40 -val powhr_less_mono = thm "powhr_less_mono";
    9.41 -val powhr_less_cancel = thm "powhr_less_cancel";
    9.42 -val powhr_less_cancel_iff = thm "powhr_less_cancel_iff";
    9.43 -val powhr_le_cancel_iff = thm "powhr_le_cancel_iff";
    9.44 -val hlog = thm "hlog";
    9.45 -val hlog_starfun_ln = thm "hlog_starfun_ln";
    9.46 -val powhr_hlog_cancel = thm "powhr_hlog_cancel";
    9.47 -val hlog_powhr_cancel = thm "hlog_powhr_cancel";
    9.48 -val hlog_mult = thm "hlog_mult";
    9.49 -val hlog_as_starfun = thm "hlog_as_starfun";
    9.50 -val hlog_eq_div_starfun_ln_mult_hlog = thm "hlog_eq_div_starfun_ln_mult_hlog";
    9.51 -val powhr_as_starfun = thm "powhr_as_starfun";
    9.52 -val HInfinite_powhr = thm "HInfinite_powhr";
    9.53 -val hlog_hrabs_HInfinite_Infinitesimal = thm "hlog_hrabs_HInfinite_Infinitesimal";
    9.54 -val hlog_HInfinite_as_starfun = thm "hlog_HInfinite_as_starfun";
    9.55 -val hlog_one = thm "hlog_one";
    9.56 -val hlog_eq_one = thm "hlog_eq_one";
    9.57 -val hlog_inverse = thm "hlog_inverse";
    9.58 -val hlog_divide = thm "hlog_divide";
    9.59 -val hlog_less_cancel_iff = thm "hlog_less_cancel_iff";
    9.60 -val hlog_le_cancel_iff = thm "hlog_le_cancel_iff";
    9.61 -*}
    9.62 -
    9.63  end
    10.1 --- a/src/HOL/Hyperreal/HSeries.thy	Fri Jun 02 20:12:59 2006 +0200
    10.2 +++ b/src/HOL/Hyperreal/HSeries.thy	Fri Jun 02 23:22:29 2006 +0200
    10.3 @@ -11,19 +11,19 @@
    10.4  imports Series
    10.5  begin
    10.6  
    10.7 -constdefs 
    10.8 +definition
    10.9    sumhr :: "(hypnat * hypnat * (nat=>real)) => hypreal"
   10.10 -   "sumhr == 
   10.11 -      %(M,N,f). starfun2 (%m n. setsum f {m..<n}) M N"
   10.12 +  "sumhr = 
   10.13 +      (%(M,N,f). starfun2 (%m n. setsum f {m..<n}) M N)"
   10.14  
   10.15    NSsums  :: "[nat=>real,real] => bool"     (infixr "NSsums" 80)
   10.16 -   "f NSsums s  == (%n. setsum f {0..<n}) ----NS> s"
   10.17 +  "f NSsums s = (%n. setsum f {0..<n}) ----NS> s"
   10.18  
   10.19    NSsummable :: "(nat=>real) => bool"
   10.20 -   "NSsummable f == (\<exists>s. f NSsums s)"
   10.21 +  "NSsummable f = (\<exists>s. f NSsums s)"
   10.22  
   10.23    NSsuminf   :: "(nat=>real) => real"
   10.24 -   "NSsuminf f == (@s. f NSsums s)"
   10.25 +  "NSsuminf f = (SOME s. f NSsums s)"
   10.26  
   10.27  
   10.28  lemma sumhr:
   10.29 @@ -230,42 +230,4 @@
   10.30  apply (auto)
   10.31  done
   10.32  
   10.33 -ML
   10.34 -{*
   10.35 -val sumhr = thm "sumhr";
   10.36 -val sumhr_zero = thm "sumhr_zero";
   10.37 -val sumhr_if = thm "sumhr_if";
   10.38 -val sumhr_Suc_zero = thm "sumhr_Suc_zero";
   10.39 -val sumhr_eq_bounds = thm "sumhr_eq_bounds";
   10.40 -val sumhr_Suc = thm "sumhr_Suc";
   10.41 -val sumhr_add_lbound_zero = thm "sumhr_add_lbound_zero";
   10.42 -val sumhr_add = thm "sumhr_add";
   10.43 -val sumhr_mult = thm "sumhr_mult";
   10.44 -val sumhr_split_add = thm "sumhr_split_add";
   10.45 -val sumhr_split_diff = thm "sumhr_split_diff";
   10.46 -val sumhr_hrabs = thm "sumhr_hrabs";
   10.47 -val sumhr_fun_hypnat_eq = thm "sumhr_fun_hypnat_eq";
   10.48 -val sumhr_less_bounds_zero = thm "sumhr_less_bounds_zero";
   10.49 -val sumhr_minus = thm "sumhr_minus";
   10.50 -val sumhr_shift_bounds = thm "sumhr_shift_bounds";
   10.51 -val sumhr_hypreal_of_hypnat_omega = thm "sumhr_hypreal_of_hypnat_omega";
   10.52 -val sumhr_hypreal_omega_minus_one = thm "sumhr_hypreal_omega_minus_one";
   10.53 -val sumhr_minus_one_realpow_zero = thm "sumhr_minus_one_realpow_zero";
   10.54 -val sumhr_interval_const = thm "sumhr_interval_const";
   10.55 -val starfunNat_sumr = thm "starfunNat_sumr";
   10.56 -val sumhr_hrabs_approx = thm "sumhr_hrabs_approx";
   10.57 -val sums_NSsums_iff = thm "sums_NSsums_iff";
   10.58 -val summable_NSsummable_iff = thm "summable_NSsummable_iff";
   10.59 -val suminf_NSsuminf_iff = thm "suminf_NSsuminf_iff";
   10.60 -val NSsums_NSsummable = thm "NSsums_NSsummable";
   10.61 -val NSsummable_NSsums = thm "NSsummable_NSsums";
   10.62 -val NSsums_unique = thm "NSsums_unique";
   10.63 -val NSseries_zero = thm "NSseries_zero";
   10.64 -val NSsummable_NSCauchy = thm "NSsummable_NSCauchy";
   10.65 -val NSsummable_NSLIMSEQ_zero = thm "NSsummable_NSLIMSEQ_zero";
   10.66 -val summable_LIMSEQ_zero = thm "summable_LIMSEQ_zero";
   10.67 -val NSsummable_comparison_test = thm "NSsummable_comparison_test";
   10.68 -val NSsummable_rabs_comparison_test = thm "NSsummable_rabs_comparison_test";
   10.69 -*}
   10.70 -
   10.71  end
    11.1 --- a/src/HOL/Hyperreal/HTranscendental.thy	Fri Jun 02 20:12:59 2006 +0200
    11.2 +++ b/src/HOL/Hyperreal/HTranscendental.thy	Fri Jun 02 23:22:29 2006 +0200
    11.3 @@ -30,18 +30,17 @@
    11.4  qed
    11.5  
    11.6  
    11.7 -constdefs
    11.8 -
    11.9 +definition
   11.10    exphr :: "real => hypreal"
   11.11      --{*define exponential function using standard part *}
   11.12 -    "exphr x ==  st(sumhr (0, whn, %n. inverse(real (fact n)) * (x ^ n)))" 
   11.13 +  "exphr x =  st(sumhr (0, whn, %n. inverse(real (fact n)) * (x ^ n)))"
   11.14  
   11.15    sinhr :: "real => hypreal"
   11.16 -    "sinhr x == st(sumhr (0, whn, %n. (if even(n) then 0 else
   11.17 +  "sinhr x = st(sumhr (0, whn, %n. (if even(n) then 0 else
   11.18               ((-1) ^ ((n - 1) div 2))/(real (fact n))) * (x ^ n)))"
   11.19    
   11.20    coshr :: "real => hypreal"
   11.21 -    "coshr x == st(sumhr (0, whn, %n. (if even(n) then
   11.22 +  "coshr x = st(sumhr (0, whn, %n. (if even(n) then
   11.23              ((-1) ^ (n div 2))/(real (fact n)) else 0) * x ^ n))"
   11.24  
   11.25  
   11.26 @@ -616,98 +615,4 @@
   11.27              simp add: Infinitesimal_approx_minus [symmetric] numeral_2_eq_2)
   11.28  done
   11.29  
   11.30 -ML
   11.31 -{*
   11.32 -val STAR_sqrt_zero = thm "STAR_sqrt_zero";
   11.33 -val STAR_sqrt_one = thm "STAR_sqrt_one";
   11.34 -val hypreal_sqrt_pow2_iff = thm "hypreal_sqrt_pow2_iff";
   11.35 -val hypreal_sqrt_gt_zero_pow2 = thm "hypreal_sqrt_gt_zero_pow2";
   11.36 -val hypreal_sqrt_pow2_gt_zero = thm "hypreal_sqrt_pow2_gt_zero";
   11.37 -val hypreal_sqrt_not_zero = thm "hypreal_sqrt_not_zero";
   11.38 -val hypreal_inverse_sqrt_pow2 = thm "hypreal_inverse_sqrt_pow2";
   11.39 -val hypreal_sqrt_mult_distrib = thm "hypreal_sqrt_mult_distrib";
   11.40 -val hypreal_sqrt_mult_distrib2 = thm "hypreal_sqrt_mult_distrib2";
   11.41 -val hypreal_sqrt_approx_zero = thm "hypreal_sqrt_approx_zero";
   11.42 -val hypreal_sqrt_approx_zero2 = thm "hypreal_sqrt_approx_zero2";
   11.43 -val hypreal_sqrt_sum_squares = thm "hypreal_sqrt_sum_squares";
   11.44 -val hypreal_sqrt_sum_squares2 = thm "hypreal_sqrt_sum_squares2";
   11.45 -val hypreal_sqrt_gt_zero = thm "hypreal_sqrt_gt_zero";
   11.46 -val hypreal_sqrt_ge_zero = thm "hypreal_sqrt_ge_zero";
   11.47 -val hypreal_sqrt_hrabs = thm "hypreal_sqrt_hrabs";
   11.48 -val hypreal_sqrt_hrabs2 = thm "hypreal_sqrt_hrabs2";
   11.49 -val hypreal_sqrt_hyperpow_hrabs = thm "hypreal_sqrt_hyperpow_hrabs";
   11.50 -val star_sqrt_HFinite = thm "star_sqrt_HFinite";
   11.51 -val st_hypreal_sqrt = thm "st_hypreal_sqrt";
   11.52 -val hypreal_sqrt_sum_squares_ge1 = thm "hypreal_sqrt_sum_squares_ge1";
   11.53 -val HFinite_hypreal_sqrt = thm "HFinite_hypreal_sqrt";
   11.54 -val HFinite_hypreal_sqrt_imp_HFinite = thm "HFinite_hypreal_sqrt_imp_HFinite";
   11.55 -val HFinite_hypreal_sqrt_iff = thm "HFinite_hypreal_sqrt_iff";
   11.56 -val HFinite_sqrt_sum_squares = thm "HFinite_sqrt_sum_squares";
   11.57 -val Infinitesimal_hypreal_sqrt = thm "Infinitesimal_hypreal_sqrt";
   11.58 -val Infinitesimal_hypreal_sqrt_imp_Infinitesimal = thm "Infinitesimal_hypreal_sqrt_imp_Infinitesimal";
   11.59 -val Infinitesimal_hypreal_sqrt_iff = thm "Infinitesimal_hypreal_sqrt_iff";
   11.60 -val Infinitesimal_sqrt_sum_squares = thm "Infinitesimal_sqrt_sum_squares";
   11.61 -val HInfinite_hypreal_sqrt = thm "HInfinite_hypreal_sqrt";
   11.62 -val HInfinite_hypreal_sqrt_imp_HInfinite = thm "HInfinite_hypreal_sqrt_imp_HInfinite";
   11.63 -val HInfinite_hypreal_sqrt_iff = thm "HInfinite_hypreal_sqrt_iff";
   11.64 -val HInfinite_sqrt_sum_squares = thm "HInfinite_sqrt_sum_squares";
   11.65 -val HFinite_exp = thm "HFinite_exp";
   11.66 -val exphr_zero = thm "exphr_zero";
   11.67 -val coshr_zero = thm "coshr_zero";
   11.68 -val STAR_exp_zero_approx_one = thm "STAR_exp_zero_approx_one";
   11.69 -val STAR_exp_Infinitesimal = thm "STAR_exp_Infinitesimal";
   11.70 -val STAR_exp_epsilon = thm "STAR_exp_epsilon";
   11.71 -val STAR_exp_add = thm "STAR_exp_add";
   11.72 -val exphr_hypreal_of_real_exp_eq = thm "exphr_hypreal_of_real_exp_eq";
   11.73 -val starfun_exp_ge_add_one_self = thm "starfun_exp_ge_add_one_self";
   11.74 -val starfun_exp_HInfinite = thm "starfun_exp_HInfinite";
   11.75 -val starfun_exp_minus = thm "starfun_exp_minus";
   11.76 -val starfun_exp_Infinitesimal = thm "starfun_exp_Infinitesimal";
   11.77 -val starfun_exp_gt_one = thm "starfun_exp_gt_one";
   11.78 -val starfun_ln_exp = thm "starfun_ln_exp";
   11.79 -val starfun_exp_ln_iff = thm "starfun_exp_ln_iff";
   11.80 -val starfun_exp_ln_eq = thm "starfun_exp_ln_eq";
   11.81 -val starfun_ln_less_self = thm "starfun_ln_less_self";
   11.82 -val starfun_ln_ge_zero = thm "starfun_ln_ge_zero";
   11.83 -val starfun_ln_gt_zero = thm "starfun_ln_gt_zero";
   11.84 -val starfun_ln_not_eq_zero = thm "starfun_ln_not_eq_zero";
   11.85 -val starfun_ln_HFinite = thm "starfun_ln_HFinite";
   11.86 -val starfun_ln_inverse = thm "starfun_ln_inverse";
   11.87 -val starfun_exp_HFinite = thm "starfun_exp_HFinite";
   11.88 -val starfun_exp_add_HFinite_Infinitesimal_approx = thm "starfun_exp_add_HFinite_Infinitesimal_approx";
   11.89 -val starfun_ln_HInfinite = thm "starfun_ln_HInfinite";
   11.90 -val starfun_exp_HInfinite_Infinitesimal_disj = thm "starfun_exp_HInfinite_Infinitesimal_disj";
   11.91 -val starfun_ln_HFinite_not_Infinitesimal = thm "starfun_ln_HFinite_not_Infinitesimal";
   11.92 -val starfun_ln_Infinitesimal_HInfinite = thm "starfun_ln_Infinitesimal_HInfinite";
   11.93 -val starfun_ln_less_zero = thm "starfun_ln_less_zero";
   11.94 -val starfun_ln_Infinitesimal_less_zero = thm "starfun_ln_Infinitesimal_less_zero";
   11.95 -val starfun_ln_HInfinite_gt_zero = thm "starfun_ln_HInfinite_gt_zero";
   11.96 -val HFinite_sin = thm "HFinite_sin";
   11.97 -val STAR_sin_zero = thm "STAR_sin_zero";
   11.98 -val STAR_sin_Infinitesimal = thm "STAR_sin_Infinitesimal";
   11.99 -val HFinite_cos = thm "HFinite_cos";
  11.100 -val STAR_cos_zero = thm "STAR_cos_zero";
  11.101 -val STAR_cos_Infinitesimal = thm "STAR_cos_Infinitesimal";
  11.102 -val STAR_tan_zero = thm "STAR_tan_zero";
  11.103 -val STAR_tan_Infinitesimal = thm "STAR_tan_Infinitesimal";
  11.104 -val STAR_sin_cos_Infinitesimal_mult = thm "STAR_sin_cos_Infinitesimal_mult";
  11.105 -val HFinite_pi = thm "HFinite_pi";
  11.106 -val lemma_split_hypreal_of_real = thm "lemma_split_hypreal_of_real";
  11.107 -val STAR_sin_Infinitesimal_divide = thm "STAR_sin_Infinitesimal_divide";
  11.108 -val lemma_sin_pi = thm "lemma_sin_pi";
  11.109 -val STAR_sin_inverse_HNatInfinite = thm "STAR_sin_inverse_HNatInfinite";
  11.110 -val Infinitesimal_pi_divide_HNatInfinite = thm "Infinitesimal_pi_divide_HNatInfinite";
  11.111 -val pi_divide_HNatInfinite_not_zero = thm "pi_divide_HNatInfinite_not_zero";
  11.112 -val STAR_sin_pi_divide_HNatInfinite_approx_pi = thm "STAR_sin_pi_divide_HNatInfinite_approx_pi";
  11.113 -val STAR_sin_pi_divide_HNatInfinite_approx_pi2 = thm "STAR_sin_pi_divide_HNatInfinite_approx_pi2";
  11.114 -val starfunNat_pi_divide_n_Infinitesimal = thm "starfunNat_pi_divide_n_Infinitesimal";
  11.115 -val STAR_sin_pi_divide_n_approx = thm "STAR_sin_pi_divide_n_approx";
  11.116 -val NSLIMSEQ_sin_pi = thm "NSLIMSEQ_sin_pi";
  11.117 -val NSLIMSEQ_cos_one = thm "NSLIMSEQ_cos_one";
  11.118 -val NSLIMSEQ_sin_cos_pi = thm "NSLIMSEQ_sin_cos_pi";
  11.119 -val STAR_cos_Infinitesimal_approx = thm "STAR_cos_Infinitesimal_approx";
  11.120 -val STAR_cos_Infinitesimal_approx2 = thm "STAR_cos_Infinitesimal_approx2";
  11.121 -*}
  11.122 -
  11.123 -
  11.124  end
    12.1 --- a/src/HOL/Hyperreal/HyperArith.thy	Fri Jun 02 20:12:59 2006 +0200
    12.2 +++ b/src/HOL/Hyperreal/HyperArith.thy	Fri Jun 02 23:22:29 2006 +0200
    12.3 @@ -23,14 +23,12 @@
    12.4       "[| abs x < r; abs y < s |] ==> abs(x+y) < r + (s::hypreal)"
    12.5  by (simp add: abs_if split: split_if_asm)
    12.6  
    12.7 -text{*used once in NSA*}
    12.8  lemma hrabs_less_gt_zero: "abs x < r ==> (0::hypreal) < r"
    12.9  by (blast intro!: order_le_less_trans abs_ge_zero)
   12.10  
   12.11  lemma hrabs_disj: "abs x = (x::hypreal) | abs x = -x"
   12.12  by (simp add: abs_if)
   12.13  
   12.14 -(* Needed in Geom.ML *)
   12.15  lemma hrabs_add_lemma_disj: "(y::hypreal) + - x + (y + - z) = abs (x + - z) ==> y = z | x = y"
   12.16  by (simp add: abs_if split add: split_if_asm)
   12.17  
   12.18 @@ -41,9 +39,9 @@
   12.19  
   12.20  subsection{*Embedding the Naturals into the Hyperreals*}
   12.21  
   12.22 -constdefs
   12.23 +definition
   12.24    hypreal_of_nat   :: "nat => hypreal"
   12.25 -   "hypreal_of_nat m == of_nat m"
   12.26 +  "hypreal_of_nat m = of_nat m"
   12.27  
   12.28  lemma SNat_eq: "Nats = {n. \<exists>N. n = hypreal_of_nat N}"
   12.29  by (force simp add: hypreal_of_nat_def Nats_def) 
   12.30 @@ -111,24 +109,4 @@
   12.31  Addsimps [symmetric hypreal_diff_def]
   12.32  *)
   12.33  
   12.34 -ML
   12.35 -{*
   12.36 -val hypreal_of_nat_def = thm"hypreal_of_nat_def";
   12.37 -
   12.38 -val hrabs_add_less = thm "hrabs_add_less";
   12.39 -val hrabs_disj = thm "hrabs_disj";
   12.40 -val hrabs_add_lemma_disj = thm "hrabs_add_lemma_disj";
   12.41 -val hypreal_of_real_hrabs = thm "hypreal_of_real_hrabs";
   12.42 -val hypreal_of_nat_add = thm "hypreal_of_nat_add";
   12.43 -val hypreal_of_nat_mult = thm "hypreal_of_nat_mult";
   12.44 -val hypreal_of_nat_less_iff = thm "hypreal_of_nat_less_iff";
   12.45 -val hypreal_of_nat_Suc = thm "hypreal_of_nat_Suc";
   12.46 -val hypreal_of_nat_number_of = thm "hypreal_of_nat_number_of";
   12.47 -val hypreal_of_nat_zero = thm "hypreal_of_nat_zero";
   12.48 -val hypreal_of_nat_one = thm "hypreal_of_nat_one";
   12.49 -val hypreal_of_nat_le_iff = thm"hypreal_of_nat_le_iff";
   12.50 -val hypreal_of_nat_ge_zero = thm"hypreal_of_nat_ge_zero";
   12.51 -val hypreal_of_nat = thm"hypreal_of_nat";
   12.52 -*}
   12.53 -
   12.54  end
    13.1 --- a/src/HOL/Hyperreal/HyperDef.thy	Fri Jun 02 20:12:59 2006 +0200
    13.2 +++ b/src/HOL/Hyperreal/HyperDef.thy	Fri Jun 02 23:22:29 2006 +0200
    13.3 @@ -18,21 +18,20 @@
    13.4    hypreal_of_real :: "real => real star"
    13.5    "hypreal_of_real == star_of"
    13.6  
    13.7 -constdefs
    13.8 -
    13.9 +definition
   13.10    omega   :: hypreal   -- {*an infinite number @{text "= [<1,2,3,...>]"} *}
   13.11 -  "omega == star_n (%n. real (Suc n))"
   13.12 +  "omega = star_n (%n. real (Suc n))"
   13.13  
   13.14    epsilon :: hypreal   -- {*an infinitesimal number @{text "= [<1,1/2,1/3,...>]"} *}
   13.15 -  "epsilon == star_n (%n. inverse (real (Suc n)))"
   13.16 +  "epsilon = star_n (%n. inverse (real (Suc n)))"
   13.17  
   13.18 -syntax (xsymbols)
   13.19 -  omega   :: hypreal   ("\<omega>")
   13.20 -  epsilon :: hypreal   ("\<epsilon>")
   13.21 +const_syntax (xsymbols)
   13.22 +  omega  ("\<omega>")
   13.23 +  epsilon  ("\<epsilon>")
   13.24  
   13.25 -syntax (HTML output)
   13.26 -  omega   :: hypreal   ("\<omega>")
   13.27 -  epsilon :: hypreal   ("\<epsilon>")
   13.28 +const_syntax (HTML output)
   13.29 +  omega  ("\<omega>")
   13.30 +  epsilon  ("\<epsilon>")
   13.31  
   13.32  
   13.33  subsection{*Existence of Free Ultrafilter over the Naturals*}
   13.34 @@ -302,60 +301,4 @@
   13.35  lemma hypreal_epsilon_inverse_omega: "epsilon = inverse(omega)"
   13.36  by (simp add: epsilon_def omega_def star_n_inverse)
   13.37  
   13.38 -
   13.39 -ML
   13.40 -{*
   13.41 -val omega_def = thm "omega_def";
   13.42 -val epsilon_def = thm "epsilon_def";
   13.43 -
   13.44 -val FreeUltrafilterNat_Ex = thm "FreeUltrafilterNat_Ex";
   13.45 -val FreeUltrafilterNat_mem = thm "FreeUltrafilterNat_mem";
   13.46 -val FreeUltrafilterNat_finite = thm "FreeUltrafilterNat_finite";
   13.47 -val FreeUltrafilterNat_not_finite = thm "FreeUltrafilterNat_not_finite";
   13.48 -val FreeUltrafilterNat_empty = thm "FreeUltrafilterNat_empty";
   13.49 -val FreeUltrafilterNat_Int = thm "FreeUltrafilterNat_Int";
   13.50 -val FreeUltrafilterNat_subset = thm "FreeUltrafilterNat_subset";
   13.51 -val FreeUltrafilterNat_Compl = thm "FreeUltrafilterNat_Compl";
   13.52 -val FreeUltrafilterNat_Compl_mem = thm "FreeUltrafilterNat_Compl_mem";
   13.53 -val FreeUltrafilterNat_Compl_iff1 = thm "FreeUltrafilterNat_Compl_iff1";
   13.54 -val FreeUltrafilterNat_Compl_iff2 = thm "FreeUltrafilterNat_Compl_iff2";
   13.55 -val FreeUltrafilterNat_UNIV = thm "FreeUltrafilterNat_UNIV";
   13.56 -val FreeUltrafilterNat_Nat_set_refl = thm "FreeUltrafilterNat_Nat_set_refl";
   13.57 -val FreeUltrafilterNat_P = thm "FreeUltrafilterNat_P";
   13.58 -val FreeUltrafilterNat_Ex_P = thm "FreeUltrafilterNat_Ex_P";
   13.59 -val FreeUltrafilterNat_all = thm "FreeUltrafilterNat_all";
   13.60 -val FreeUltrafilterNat_Un = thm "FreeUltrafilterNat_Un";
   13.61 -val starrel_iff = thm "starrel_iff";
   13.62 -val starrel_in_hypreal = thm "starrel_in_hypreal";
   13.63 -val Abs_star_inverse = thm "Abs_star_inverse";
   13.64 -val lemma_starrel_refl = thm "lemma_starrel_refl";
   13.65 -val hypreal_empty_not_mem = thm "hypreal_empty_not_mem";
   13.66 -val Rep_hypreal_nonempty = thm "Rep_hypreal_nonempty";
   13.67 -val inj_hypreal_of_real = thm "inj_hypreal_of_real";
   13.68 -(* val eq_Abs_star = thm "eq_Abs_star"; *)
   13.69 -val star_n_minus = thm "star_n_minus";
   13.70 -val star_n_add = thm "star_n_add";
   13.71 -val star_n_diff = thm "star_n_diff";
   13.72 -val star_n_mult = thm "star_n_mult";
   13.73 -val star_n_inverse = thm "star_n_inverse";
   13.74 -val hypreal_mult_left_cancel = thm "hypreal_mult_left_cancel";
   13.75 -val hypreal_mult_right_cancel = thm "hypreal_mult_right_cancel";
   13.76 -val hypreal_not_refl2 = thm "hypreal_not_refl2";
   13.77 -val star_n_less = thm "star_n_less";
   13.78 -val hypreal_eq_minus_iff = thm "hypreal_eq_minus_iff";
   13.79 -val star_n_le = thm "star_n_le";
   13.80 -val star_n_zero_num = thm "star_n_zero_num";
   13.81 -val star_n_one_num = thm "star_n_one_num";
   13.82 -val hypreal_omega_gt_zero = thm "hypreal_omega_gt_zero";
   13.83 -
   13.84 -val lemma_omega_empty_singleton_disj = thm"lemma_omega_empty_singleton_disj";
   13.85 -val lemma_finite_omega_set = thm"lemma_finite_omega_set";
   13.86 -val not_ex_hypreal_of_real_eq_omega = thm"not_ex_hypreal_of_real_eq_omega";
   13.87 -val hypreal_of_real_not_eq_omega = thm"hypreal_of_real_not_eq_omega";
   13.88 -val not_ex_hypreal_of_real_eq_epsilon = thm"not_ex_hypreal_of_real_eq_epsilon";
   13.89 -val hypreal_of_real_not_eq_epsilon = thm"hypreal_of_real_not_eq_epsilon";
   13.90 -val hypreal_epsilon_not_zero = thm"hypreal_epsilon_not_zero";
   13.91 -val hypreal_epsilon_inverse_omega = thm"hypreal_epsilon_inverse_omega";
   13.92 -*}
   13.93 -
   13.94  end
    14.1 --- a/src/HOL/Hyperreal/HyperNat.thy	Fri Jun 02 20:12:59 2006 +0200
    14.2 +++ b/src/HOL/Hyperreal/HyperNat.thy	Fri Jun 02 23:22:29 2006 +0200
    14.3 @@ -148,11 +148,10 @@
    14.4  
    14.5  subsection{*Existence of an infinite hypernatural number*}
    14.6  
    14.7 -consts whn :: hypnat
    14.8 -
    14.9 -defs
   14.10 +definition
   14.11    (* omega is in fact an infinite hypernatural number = [<1,2,3,...>] *)
   14.12 -  hypnat_omega_def:  "whn == star_n (%n::nat. n)"
   14.13 +  whn :: hypnat
   14.14 +  hypnat_omega_def: "whn = star_n (%n::nat. n)"
   14.15  
   14.16  text{*Existence of infinite number not corresponding to any natural number
   14.17  follows because member @{term FreeUltrafilterNat} is not finite.
   14.18 @@ -201,11 +200,10 @@
   14.19  
   14.20  subsection{*Infinite Hypernatural Numbers -- @{term HNatInfinite}*}
   14.21  
   14.22 -constdefs
   14.23 -
   14.24 +definition
   14.25    (* the set of infinite hypernatural numbers *)
   14.26    HNatInfinite :: "hypnat set"
   14.27 -  "HNatInfinite == {n. n \<notin> Nats}"
   14.28 +  "HNatInfinite = {n. n \<notin> Nats}"
   14.29  
   14.30  lemma HNatInfinite_whn [simp]: "whn \<in> HNatInfinite"
   14.31  by (simp add: HNatInfinite_def)
   14.32 @@ -327,9 +325,9 @@
   14.33  subsection{*Embedding of the Hypernaturals into the Hyperreals*}
   14.34  text{*Obtained using the nonstandard extension of the naturals*}
   14.35  
   14.36 -constdefs
   14.37 +definition
   14.38    hypreal_of_hypnat :: "hypnat => hypreal"
   14.39 -   "hypreal_of_hypnat == *f* real"
   14.40 +  "hypreal_of_hypnat = *f* real"
   14.41  
   14.42  declare hypreal_of_hypnat_def [transfer_unfold]
   14.43  
   14.44 @@ -384,73 +382,4 @@
   14.45  apply (simp add: hypreal_of_hypnat_zero [symmetric] linorder_not_less)
   14.46  done
   14.47  
   14.48 -
   14.49 -ML
   14.50 -{*
   14.51 -val hypnat_of_nat_def = thm"hypnat_of_nat_def";
   14.52 -val HNatInfinite_def = thm"HNatInfinite_def";
   14.53 -val hypreal_of_hypnat_def = thm"hypreal_of_hypnat_def";
   14.54 -val hypnat_omega_def = thm"hypnat_omega_def";
   14.55 -
   14.56 -val starrel_iff = thm "starrel_iff";
   14.57 -val lemma_starrel_refl = thm "lemma_starrel_refl";
   14.58 -val hypnat_minus_zero = thm "hypnat_minus_zero";
   14.59 -val hypnat_diff_0_eq_0 = thm "hypnat_diff_0_eq_0";
   14.60 -val hypnat_add_is_0 = thm "hypnat_add_is_0";
   14.61 -val hypnat_diff_diff_left = thm "hypnat_diff_diff_left";
   14.62 -val hypnat_diff_commute = thm "hypnat_diff_commute";
   14.63 -val hypnat_diff_add_inverse = thm "hypnat_diff_add_inverse";
   14.64 -val hypnat_diff_add_inverse2 = thm "hypnat_diff_add_inverse2";
   14.65 -val hypnat_diff_cancel = thm "hypnat_diff_cancel";
   14.66 -val hypnat_diff_cancel2 = thm "hypnat_diff_cancel2";
   14.67 -val hypnat_diff_add_0 = thm "hypnat_diff_add_0";
   14.68 -val hypnat_diff_mult_distrib = thm "hypnat_diff_mult_distrib";
   14.69 -val hypnat_diff_mult_distrib2 = thm "hypnat_diff_mult_distrib2";
   14.70 -val hypnat_mult_is_0 = thm "hypnat_mult_is_0";
   14.71 -val hypnat_not_less0 = thm "hypnat_not_less0";
   14.72 -val hypnat_less_one = thm "hypnat_less_one";
   14.73 -val hypnat_add_diff_inverse = thm "hypnat_add_diff_inverse";
   14.74 -val hypnat_le_add_diff_inverse = thm "hypnat_le_add_diff_inverse";
   14.75 -val hypnat_le_add_diff_inverse2 = thm "hypnat_le_add_diff_inverse2";
   14.76 -val hypnat_le0 = thm "hypnat_le0";
   14.77 -val hypnat_add_self_le = thm "hypnat_add_self_le";
   14.78 -val hypnat_add_one_self_less = thm "hypnat_add_one_self_less";
   14.79 -val hypnat_neq0_conv = thm "hypnat_neq0_conv";
   14.80 -val hypnat_gt_zero_iff = thm "hypnat_gt_zero_iff";
   14.81 -val hypnat_gt_zero_iff2 = thm "hypnat_gt_zero_iff2";
   14.82 -val SHNat_eq = thm"SHNat_eq"
   14.83 -val hypnat_of_nat_one = thm "hypnat_of_nat_one";
   14.84 -val hypnat_of_nat_Suc = thm "hypnat_of_nat_Suc";
   14.85 -val SHNAT_omega_not_mem = thm "SHNAT_omega_not_mem";
   14.86 -val cofinite_mem_FreeUltrafilterNat = thm "cofinite_mem_FreeUltrafilterNat";
   14.87 -val hypnat_omega_gt_SHNat = thm "hypnat_omega_gt_SHNat";
   14.88 -val hypnat_of_nat_less_whn = thm "hypnat_of_nat_less_whn";
   14.89 -val hypnat_of_nat_le_whn = thm "hypnat_of_nat_le_whn";
   14.90 -val hypnat_zero_less_hypnat_omega = thm "hypnat_zero_less_hypnat_omega";
   14.91 -val hypnat_one_less_hypnat_omega = thm "hypnat_one_less_hypnat_omega";
   14.92 -val HNatInfinite_whn = thm "HNatInfinite_whn";
   14.93 -val HNatInfinite_iff = thm "HNatInfinite_iff";
   14.94 -val HNatInfinite_FreeUltrafilterNat = thm "HNatInfinite_FreeUltrafilterNat";
   14.95 -val FreeUltrafilterNat_HNatInfinite = thm "FreeUltrafilterNat_HNatInfinite";
   14.96 -val HNatInfinite_FreeUltrafilterNat_iff = thm "HNatInfinite_FreeUltrafilterNat_iff";
   14.97 -val HNatInfinite_gt_one = thm "HNatInfinite_gt_one";
   14.98 -val zero_not_mem_HNatInfinite = thm "zero_not_mem_HNatInfinite";
   14.99 -val HNatInfinite_not_eq_zero = thm "HNatInfinite_not_eq_zero";
  14.100 -val HNatInfinite_ge_one = thm "HNatInfinite_ge_one";
  14.101 -val HNatInfinite_add = thm "HNatInfinite_add";
  14.102 -val HNatInfinite_SHNat_add = thm "HNatInfinite_SHNat_add";
  14.103 -val HNatInfinite_SHNat_diff = thm "HNatInfinite_SHNat_diff";
  14.104 -val HNatInfinite_add_one = thm "HNatInfinite_add_one";
  14.105 -val HNatInfinite_is_Suc = thm "HNatInfinite_is_Suc";
  14.106 -val HNat_hypreal_of_nat = thm "HNat_hypreal_of_nat";
  14.107 -val hypreal_of_hypnat = thm "hypreal_of_hypnat";
  14.108 -val hypreal_of_hypnat_zero = thm "hypreal_of_hypnat_zero";
  14.109 -val hypreal_of_hypnat_one = thm "hypreal_of_hypnat_one";
  14.110 -val hypreal_of_hypnat_add = thm "hypreal_of_hypnat_add";
  14.111 -val hypreal_of_hypnat_mult = thm "hypreal_of_hypnat_mult";
  14.112 -val hypreal_of_hypnat_less_iff = thm "hypreal_of_hypnat_less_iff";
  14.113 -val hypreal_of_hypnat_ge_zero = thm "hypreal_of_hypnat_ge_zero";
  14.114 -val HNatInfinite_inverse_Infinitesimal = thm "HNatInfinite_inverse_Infinitesimal";
  14.115 -*}
  14.116 -
  14.117  end
    15.1 --- a/src/HOL/Hyperreal/HyperPow.thy	Fri Jun 02 20:12:59 2006 +0200
    15.2 +++ b/src/HOL/Hyperreal/HyperPow.thy	Fri Jun 02 23:22:29 2006 +0200
    15.3 @@ -18,14 +18,11 @@
    15.4  lemma hpowr_Suc [simp]: "r ^ (Suc n) = (r::hypreal) * (r ^ n)"
    15.5  by (rule power_Suc)
    15.6  
    15.7 -consts
    15.8 -  "pow"  :: "[hypreal,hypnat] => hypreal"     (infixr "pow" 80)
    15.9 -
   15.10 -defs
   15.11 -
   15.12 +definition
   15.13    (* hypernatural powers of hyperreals *)
   15.14 +  pow :: "[hypreal,hypnat] => hypreal"     (infixr "pow" 80)
   15.15    hyperpow_def [transfer_unfold]:
   15.16 -  "(R::hypreal) pow (N::hypnat) == ( *f2* op ^) R N"
   15.17 +  "(R::hypreal) pow (N::hypnat) = ( *f2* op ^) R N"
   15.18  
   15.19  lemma hrealpow_two: "(r::hypreal) ^ Suc (Suc 0) = r * r"
   15.20  by simp
   15.21 @@ -235,54 +232,4 @@
   15.22       "[| x \<in> Infinitesimal; 0 < n |] ==> x ^ n \<in> Infinitesimal"
   15.23  by (simp add: hrealpow_hyperpow_Infinitesimal_iff Infinitesimal_hyperpow)
   15.24  
   15.25 -ML
   15.26 -{*
   15.27 -val hrealpow_two = thm "hrealpow_two";
   15.28 -val hrealpow_two_le = thm "hrealpow_two_le";
   15.29 -val hrealpow_two_le_add_order = thm "hrealpow_two_le_add_order";
   15.30 -val hrealpow_two_le_add_order2 = thm "hrealpow_two_le_add_order2";
   15.31 -val hypreal_add_nonneg_eq_0_iff = thm "hypreal_add_nonneg_eq_0_iff";
   15.32 -val hypreal_three_squares_add_zero_iff = thm "hypreal_three_squares_add_zero_iff";
   15.33 -val hrealpow_three_squares_add_zero_iff = thm "hrealpow_three_squares_add_zero_iff";
   15.34 -val hrabs_hrealpow_two = thm "hrabs_hrealpow_two";
   15.35 -val two_hrealpow_ge_one = thm "two_hrealpow_ge_one";
   15.36 -val two_hrealpow_gt = thm "two_hrealpow_gt";
   15.37 -val hrealpow = thm "hrealpow";
   15.38 -val hrealpow_sum_square_expand = thm "hrealpow_sum_square_expand";
   15.39 -val power_hypreal_of_real_number_of = thm "power_hypreal_of_real_number_of";
   15.40 -val hrealpow_HFinite = thm "hrealpow_HFinite";
   15.41 -val hyperpow = thm "hyperpow";
   15.42 -val hyperpow_zero = thm "hyperpow_zero";
   15.43 -val hyperpow_not_zero = thm "hyperpow_not_zero";
   15.44 -val hyperpow_inverse = thm "hyperpow_inverse";
   15.45 -val hyperpow_hrabs = thm "hyperpow_hrabs";
   15.46 -val hyperpow_add = thm "hyperpow_add";
   15.47 -val hyperpow_one = thm "hyperpow_one";
   15.48 -val hyperpow_two = thm "hyperpow_two";
   15.49 -val hyperpow_gt_zero = thm "hyperpow_gt_zero";
   15.50 -val hyperpow_ge_zero = thm "hyperpow_ge_zero";
   15.51 -val hyperpow_le = thm "hyperpow_le";
   15.52 -val hyperpow_eq_one = thm "hyperpow_eq_one";
   15.53 -val hrabs_hyperpow_minus_one = thm "hrabs_hyperpow_minus_one";
   15.54 -val hyperpow_mult = thm "hyperpow_mult";
   15.55 -val hyperpow_two_le = thm "hyperpow_two_le";
   15.56 -val hrabs_hyperpow_two = thm "hrabs_hyperpow_two";
   15.57 -val hyperpow_two_hrabs = thm "hyperpow_two_hrabs";
   15.58 -val hyperpow_two_gt_one = thm "hyperpow_two_gt_one";
   15.59 -val hyperpow_two_ge_one = thm "hyperpow_two_ge_one";
   15.60 -val two_hyperpow_ge_one = thm "two_hyperpow_ge_one";
   15.61 -val hyperpow_minus_one2 = thm "hyperpow_minus_one2";
   15.62 -val hyperpow_less_le = thm "hyperpow_less_le";
   15.63 -val hyperpow_SHNat_le = thm "hyperpow_SHNat_le";
   15.64 -val hyperpow_realpow = thm "hyperpow_realpow";
   15.65 -val hyperpow_SReal = thm "hyperpow_SReal";
   15.66 -val hyperpow_zero_HNatInfinite = thm "hyperpow_zero_HNatInfinite";
   15.67 -val hyperpow_le_le = thm "hyperpow_le_le";
   15.68 -val hyperpow_Suc_le_self2 = thm "hyperpow_Suc_le_self2";
   15.69 -val lemma_Infinitesimal_hyperpow = thm "lemma_Infinitesimal_hyperpow";
   15.70 -val Infinitesimal_hyperpow = thm "Infinitesimal_hyperpow";
   15.71 -val hrealpow_hyperpow_Infinitesimal_iff = thm "hrealpow_hyperpow_Infinitesimal_iff";
   15.72 -val Infinitesimal_hrealpow = thm "Infinitesimal_hrealpow";
   15.73 -*}
   15.74 -
   15.75  end
    16.1 --- a/src/HOL/Hyperreal/Integration.thy	Fri Jun 02 20:12:59 2006 +0200
    16.2 +++ b/src/HOL/Hyperreal/Integration.thy	Fri Jun 02 23:22:29 2006 +0200
    16.3 @@ -12,43 +12,43 @@
    16.4  
    16.5  text{*We follow John Harrison in formalizing the Gauge integral.*}
    16.6  
    16.7 -constdefs
    16.8 +definition
    16.9  
   16.10    --{*Partitions and tagged partitions etc.*}
   16.11  
   16.12    partition :: "[(real*real),nat => real] => bool"
   16.13 -  "partition == %(a,b) D. D 0 = a &
   16.14 +  "partition = (%(a,b) D. D 0 = a &
   16.15                           (\<exists>N. (\<forall>n < N. D(n) < D(Suc n)) &
   16.16 -                              (\<forall>n \<ge> N. D(n) = b))"
   16.17 +                              (\<forall>n \<ge> N. D(n) = b)))"
   16.18  
   16.19    psize :: "(nat => real) => nat"
   16.20 -  "psize D == SOME N. (\<forall>n < N. D(n) < D(Suc n)) &
   16.21 -                      (\<forall>n \<ge> N. D(n) = D(N))"
   16.22 +  "psize D = (SOME N. (\<forall>n < N. D(n) < D(Suc n)) &
   16.23 +                      (\<forall>n \<ge> N. D(n) = D(N)))"
   16.24  
   16.25    tpart :: "[(real*real),((nat => real)*(nat =>real))] => bool"
   16.26 -  "tpart == %(a,b) (D,p). partition(a,b) D &
   16.27 -                          (\<forall>n. D(n) \<le> p(n) & p(n) \<le> D(Suc n))"
   16.28 +  "tpart = (%(a,b) (D,p). partition(a,b) D &
   16.29 +                          (\<forall>n. D(n) \<le> p(n) & p(n) \<le> D(Suc n)))"
   16.30  
   16.31    --{*Gauges and gauge-fine divisions*}
   16.32  
   16.33    gauge :: "[real => bool, real => real] => bool"
   16.34 -  "gauge E g == \<forall>x. E x --> 0 < g(x)"
   16.35 +  "gauge E g = (\<forall>x. E x --> 0 < g(x))"
   16.36  
   16.37    fine :: "[real => real, ((nat => real)*(nat => real))] => bool"
   16.38 -  "fine == % g (D,p). \<forall>n. n < (psize D) --> D(Suc n) - D(n) < g(p n)"
   16.39 +  "fine = (%g (D,p). \<forall>n. n < (psize D) --> D(Suc n) - D(n) < g(p n))"
   16.40  
   16.41    --{*Riemann sum*}
   16.42  
   16.43    rsum :: "[((nat=>real)*(nat=>real)),real=>real] => real"
   16.44 -  "rsum == %(D,p) f. \<Sum>n=0..<psize(D). f(p n) * (D(Suc n) - D(n))"
   16.45 +  "rsum = (%(D,p) f. \<Sum>n=0..<psize(D). f(p n) * (D(Suc n) - D(n)))"
   16.46  
   16.47    --{*Gauge integrability (definite)*}
   16.48  
   16.49 -   Integral :: "[(real*real),real=>real,real] => bool"
   16.50 -   "Integral == %(a,b) f k. \<forall>e > 0.
   16.51 +  Integral :: "[(real*real),real=>real,real] => bool"
   16.52 +  "Integral = (%(a,b) f k. \<forall>e > 0.
   16.53                                 (\<exists>g. gauge(%x. a \<le> x & x \<le> b) g &
   16.54                                 (\<forall>D p. tpart(a,b) (D,p) & fine(g)(D,p) -->
   16.55 -                                         \<bar>rsum(D,p) f - k\<bar> < e))"
   16.56 +                                         \<bar>rsum(D,p) f - k\<bar> < e)))"
   16.57  
   16.58  
   16.59  lemma partition_zero [simp]: "a = b ==> psize (%n. if n = 0 then a else b) = 0"
    17.1 --- a/src/HOL/Hyperreal/Lim.thy	Fri Jun 02 20:12:59 2006 +0200
    17.2 +++ b/src/HOL/Hyperreal/Lim.thy	Fri Jun 02 23:22:29 2006 +0200
    17.3 @@ -14,61 +14,58 @@
    17.4  
    17.5  text{*Standard and Nonstandard Definitions*}
    17.6  
    17.7 -constdefs
    17.8 +definition
    17.9    LIM :: "[real=>real,real,real] => bool"
   17.10          ("((_)/ -- (_)/ --> (_))" [60, 0, 60] 60)
   17.11 -  "f -- a --> L ==
   17.12 -     \<forall>r > 0. \<exists>s > 0. \<forall>x. x \<noteq> a & \<bar>x + -a\<bar> < s
   17.13 -        --> \<bar>f x + -L\<bar> < r"
   17.14 +  "f -- a --> L =
   17.15 +     (\<forall>r > 0. \<exists>s > 0. \<forall>x. x \<noteq> a & \<bar>x + -a\<bar> < s
   17.16 +        --> \<bar>f x + -L\<bar> < r)"
   17.17  
   17.18    NSLIM :: "[real=>real,real,real] => bool"
   17.19              ("((_)/ -- (_)/ --NS> (_))" [60, 0, 60] 60)
   17.20 -  "f -- a --NS> L == (\<forall>x. (x \<noteq> hypreal_of_real a &
   17.21 +  "f -- a --NS> L = (\<forall>x. (x \<noteq> hypreal_of_real a &
   17.22            x @= hypreal_of_real a -->
   17.23            ( *f* f) x @= hypreal_of_real L))"
   17.24  
   17.25    isCont :: "[real=>real,real] => bool"
   17.26 -  "isCont f a == (f -- a --> (f a))"
   17.27 +  "isCont f a = (f -- a --> (f a))"
   17.28  
   17.29    isNSCont :: "[real=>real,real] => bool"
   17.30      --{*NS definition dispenses with limit notions*}
   17.31 -  "isNSCont f a == (\<forall>y. y @= hypreal_of_real a -->
   17.32 +  "isNSCont f a = (\<forall>y. y @= hypreal_of_real a -->
   17.33           ( *f* f) y @= hypreal_of_real (f a))"
   17.34  
   17.35    deriv:: "[real=>real,real,real] => bool"
   17.36      --{*Differentiation: D is derivative of function f at x*}
   17.37            ("(DERIV (_)/ (_)/ :> (_))" [1000, 1000, 60] 60)
   17.38 -  "DERIV f x :> D == ((%h. (f(x + h) + -f x)/h) -- 0 --> D)"
   17.39 +  "DERIV f x :> D = ((%h. (f(x + h) + -f x)/h) -- 0 --> D)"
   17.40  
   17.41    nsderiv :: "[real=>real,real,real] => bool"
   17.42            ("(NSDERIV (_)/ (_)/ :> (_))" [1000, 1000, 60] 60)
   17.43 -  "NSDERIV f x :> D == (\<forall>h \<in> Infinitesimal - {0}.
   17.44 +  "NSDERIV f x :> D = (\<forall>h \<in> Infinitesimal - {0}.
   17.45        (( *f* f)(hypreal_of_real x + h) +
   17.46         - hypreal_of_real (f x))/h @= hypreal_of_real D)"
   17.47  
   17.48    differentiable :: "[real=>real,real] => bool"   (infixl "differentiable" 60)
   17.49 -  "f differentiable x == (\<exists>D. DERIV f x :> D)"
   17.50 +  "f differentiable x = (\<exists>D. DERIV f x :> D)"
   17.51  
   17.52    NSdifferentiable :: "[real=>real,real] => bool"
   17.53                         (infixl "NSdifferentiable" 60)
   17.54 -  "f NSdifferentiable x == (\<exists>D. NSDERIV f x :> D)"
   17.55 +  "f NSdifferentiable x = (\<exists>D. NSDERIV f x :> D)"
   17.56  
   17.57    increment :: "[real=>real,real,hypreal] => hypreal"
   17.58 -  "increment f x h == (@inc. f NSdifferentiable x &
   17.59 +  "increment f x h = (@inc. f NSdifferentiable x &
   17.60             inc = ( *f* f)(hypreal_of_real x + h) + -hypreal_of_real (f x))"
   17.61  
   17.62    isUCont :: "(real=>real) => bool"
   17.63 -  "isUCont f ==  \<forall>r > 0. \<exists>s > 0. \<forall>x y. \<bar>x + -y\<bar> < s --> \<bar>f x + -f y\<bar> < r"
   17.64 +  "isUCont f =  (\<forall>r > 0. \<exists>s > 0. \<forall>x y. \<bar>x + -y\<bar> < s --> \<bar>f x + -f y\<bar> < r)"
   17.65  
   17.66    isNSUCont :: "(real=>real) => bool"
   17.67 -  "isNSUCont f == (\<forall>x y. x @= y --> ( *f* f) x @= ( *f* f) y)"
   17.68 +  "isNSUCont f = (\<forall>x y. x @= y --> ( *f* f) x @= ( *f* f) y)"
   17.69  
   17.70  
   17.71  consts
   17.72    Bolzano_bisect :: "[real*real=>bool, real, real, nat] => (real*real)"
   17.73 -    --{*Used in the proof of the Bolzano theorem*}
   17.74 -
   17.75 -
   17.76  primrec
   17.77    "Bolzano_bisect P a b 0 = (a,b)"
   17.78    "Bolzano_bisect P a b (Suc n) =
   17.79 @@ -2372,202 +2369,4 @@
   17.80    thus ?thesis by (fold LIM_def)
   17.81  qed
   17.82  
   17.83 -
   17.84 -
   17.85 -ML
   17.86 -{*
   17.87 -val LIM_def = thm"LIM_def";
   17.88 -val NSLIM_def = thm"NSLIM_def";
   17.89 -val isCont_def = thm"isCont_def";
   17.90 -val isNSCont_def = thm"isNSCont_def";
   17.91 -val deriv_def = thm"deriv_def";
   17.92 -val nsderiv_def = thm"nsderiv_def";
   17.93 -val differentiable_def = thm"differentiable_def";
   17.94 -val NSdifferentiable_def = thm"NSdifferentiable_def";
   17.95 -val increment_def = thm"increment_def";
   17.96 -val isUCont_def = thm"isUCont_def";
   17.97 -val isNSUCont_def = thm"isNSUCont_def";
   17.98 -
   17.99 -val half_gt_zero_iff = thm "half_gt_zero_iff";
  17.100 -val half_gt_zero = thms "half_gt_zero";
  17.101 -val abs_diff_triangle_ineq = thm "abs_diff_triangle_ineq";
  17.102 -val LIM_eq = thm "LIM_eq";
  17.103 -val LIM_D = thm "LIM_D";
  17.104 -val LIM_const = thm "LIM_const";
  17.105 -val LIM_add = thm "LIM_add";
  17.106 -val LIM_minus = thm "LIM_minus";
  17.107 -val LIM_add_minus = thm "LIM_add_minus";
  17.108 -val LIM_diff = thm "LIM_diff";
  17.109 -val LIM_const_not_eq = thm "LIM_const_not_eq";
  17.110 -val LIM_const_eq = thm "LIM_const_eq";
  17.111 -val LIM_unique = thm "LIM_unique";
  17.112 -val LIM_mult_zero = thm "LIM_mult_zero";
  17.113 -val LIM_self = thm "LIM_self";
  17.114 -val LIM_equal = thm "LIM_equal";
  17.115 -val LIM_trans = thm "LIM_trans";
  17.116 -val LIM_NSLIM = thm "LIM_NSLIM";
  17.117 -val NSLIM_LIM = thm "NSLIM_LIM";
  17.118 -val LIM_NSLIM_iff = thm "LIM_NSLIM_iff";
  17.119 -val NSLIM_mult = thm "NSLIM_mult";
  17.120 -val LIM_mult2 = thm "LIM_mult2";
  17.121 -val NSLIM_add = thm "NSLIM_add";
  17.122 -val LIM_add2 = thm "LIM_add2";
  17.123 -val NSLIM_const = thm "NSLIM_const";
  17.124 -val LIM_const2 = thm "LIM_const2";
  17.125 -val NSLIM_minus = thm "NSLIM_minus";
  17.126 -val LIM_minus2 = thm "LIM_minus2";
  17.127 -val NSLIM_add_minus = thm "NSLIM_add_minus";
  17.128 -val LIM_add_minus2 = thm "LIM_add_minus2";
  17.129 -val NSLIM_inverse = thm "NSLIM_inverse";
  17.130 -val LIM_inverse = thm "LIM_inverse";
  17.131 -val NSLIM_zero = thm "NSLIM_zero";
  17.132 -val LIM_zero2 = thm "LIM_zero2";
  17.133 -val NSLIM_zero_cancel = thm "NSLIM_zero_cancel";
  17.134 -val LIM_zero_cancel = thm "LIM_zero_cancel";
  17.135 -val NSLIM_not_zero = thm "NSLIM_not_zero";
  17.136 -val NSLIM_const_not_eq = thm "NSLIM_const_not_eq";
  17.137 -val NSLIM_const_eq = thm "NSLIM_const_eq";
  17.138 -val NSLIM_unique = thm "NSLIM_unique";
  17.139 -val LIM_unique2 = thm "LIM_unique2";
  17.140 -val NSLIM_mult_zero = thm "NSLIM_mult_zero";
  17.141 -val LIM_mult_zero2 = thm "LIM_mult_zero2";
  17.142 -val NSLIM_self = thm "NSLIM_self";
  17.143 -val isNSContD = thm "isNSContD";
  17.144 -val isNSCont_NSLIM = thm "isNSCont_NSLIM";
  17.145 -val NSLIM_isNSCont = thm "NSLIM_isNSCont";
  17.146 -val isNSCont_NSLIM_iff = thm "isNSCont_NSLIM_iff";
  17.147 -val isNSCont_LIM_iff = thm "isNSCont_LIM_iff";
  17.148 -val isNSCont_isCont_iff = thm "isNSCont_isCont_iff";
  17.149 -val isCont_isNSCont = thm "isCont_isNSCont";
  17.150 -val isNSCont_isCont = thm "isNSCont_isCont";
  17.151 -val NSLIM_h_iff = thm "NSLIM_h_iff";
  17.152 -val NSLIM_isCont_iff = thm "NSLIM_isCont_iff";
  17.153 -val LIM_isCont_iff = thm "LIM_isCont_iff";
  17.154 -val isCont_iff = thm "isCont_iff";
  17.155 -val isCont_add = thm "isCont_add";
  17.156 -val isCont_mult = thm "isCont_mult";
  17.157 -val isCont_o = thm "isCont_o";
  17.158 -val isCont_o2 = thm "isCont_o2";
  17.159 -val isNSCont_minus = thm "isNSCont_minus";
  17.160 -val isCont_minus = thm "isCont_minus";
  17.161 -val isCont_inverse = thm "isCont_inverse";
  17.162 -val isNSCont_inverse = thm "isNSCont_inverse";
  17.163 -val isCont_diff = thm "isCont_diff";
  17.164 -val isCont_const = thm "isCont_const";
  17.165 -val isNSCont_const = thm "isNSCont_const";
  17.166 -val isNSUContD = thm "isNSUContD";
  17.167 -val isUCont_isCont = thm "isUCont_isCont";
  17.168 -val isUCont_isNSUCont = thm "isUCont_isNSUCont";
  17.169 -val isNSUCont_isUCont = thm "isNSUCont_isUCont";
  17.170 -val DERIV_iff = thm "DERIV_iff";
  17.171 -val DERIV_NS_iff = thm "DERIV_NS_iff";
  17.172 -val DERIV_D = thm "DERIV_D";
  17.173 -val NS_DERIV_D = thm "NS_DERIV_D";
  17.174 -val DERIV_unique = thm "DERIV_unique";
  17.175 -val NSDeriv_unique = thm "NSDeriv_unique";
  17.176 -val differentiableD = thm "differentiableD";
  17.177 -val differentiableI = thm "differentiableI";
  17.178 -val NSdifferentiableD = thm "NSdifferentiableD";
  17.179 -val NSdifferentiableI = thm "NSdifferentiableI";
  17.180 -val LIM_I = thm "LIM_I";
  17.181 -val DERIV_LIM_iff = thm "DERIV_LIM_iff";
  17.182 -val DERIV_iff2 = thm "DERIV_iff2";
  17.183 -val NSDERIV_NSLIM_iff = thm "NSDERIV_NSLIM_iff";
  17.184 -val NSDERIV_NSLIM_iff2 = thm "NSDERIV_NSLIM_iff2";
  17.185 -val NSDERIV_iff2 = thm "NSDERIV_iff2";
  17.186 -val hypreal_not_eq_minus_iff = thm "hypreal_not_eq_minus_iff";
  17.187 -val NSDERIVD5 = thm "NSDERIVD5";
  17.188 -val NSDERIVD4 = thm "NSDERIVD4";
  17.189 -val NSDERIVD3 = thm "NSDERIVD3";
  17.190 -val NSDERIV_DERIV_iff = thm "NSDERIV_DERIV_iff";
  17.191 -val NSDERIV_isNSCont = thm "NSDERIV_isNSCont";
  17.192 -val DERIV_isCont = thm "DERIV_isCont";
  17.193 -val NSDERIV_const = thm "NSDERIV_const";
  17.194 -val DERIV_const = thm "DERIV_const";
  17.195 -val NSDERIV_add = thm "NSDERIV_add";
  17.196 -val DERIV_add = thm "DERIV_add";
  17.197 -val NSDERIV_mult = thm "NSDERIV_mult";
  17.198 -val DERIV_mult = thm "DERIV_mult";
  17.199 -val NSDERIV_cmult = thm "NSDERIV_cmult";
  17.200 -val DERIV_cmult = thm "DERIV_cmult";
  17.201 -val NSDERIV_minus = thm "NSDERIV_minus";
  17.202 -val DERIV_minus = thm "DERIV_minus";
  17.203 -val NSDERIV_add_minus = thm "NSDERIV_add_minus";
  17.204 -val DERIV_add_minus = thm "DERIV_add_minus";
  17.205 -val NSDERIV_diff = thm "NSDERIV_diff";
  17.206 -val DERIV_diff = thm "DERIV_diff";
  17.207 -val incrementI = thm "incrementI";
  17.208 -val incrementI2 = thm "incrementI2";
  17.209 -val increment_thm = thm "increment_thm";
  17.210 -val increment_thm2 = thm "increment_thm2";
  17.211 -val increment_approx_zero = thm "increment_approx_zero";
  17.212 -val NSDERIV_zero = thm "NSDERIV_zero";
  17.213 -val NSDERIV_approx = thm "NSDERIV_approx";
  17.214 -val NSDERIVD1 = thm "NSDERIVD1";
  17.215 -val NSDERIVD2 = thm "NSDERIVD2";
  17.216 -val NSDERIV_chain = thm "NSDERIV_chain";
  17.217 -val DERIV_chain = thm "DERIV_chain";
  17.218 -val DERIV_chain2 = thm "DERIV_chain2";
  17.219 -val NSDERIV_Id = thm "NSDERIV_Id";
  17.220 -val DERIV_Id = thm "DERIV_Id";
  17.221 -val isCont_Id = thms "isCont_Id";
  17.222 -val DERIV_cmult_Id = thm "DERIV_cmult_Id";
  17.223 -val NSDERIV_cmult_Id = thm "NSDERIV_cmult_Id";
  17.224 -val DERIV_pow = thm "DERIV_pow";
  17.225 -val NSDERIV_pow = thm "NSDERIV_pow";
  17.226 -val NSDERIV_inverse = thm "NSDERIV_inverse";
  17.227 -val DERIV_inverse = thm "DERIV_inverse";
  17.228 -val DERIV_inverse_fun = thm "DERIV_inverse_fun";
  17.229 -val NSDERIV_inverse_fun = thm "NSDERIV_inverse_fun";
  17.230 -val DERIV_quotient = thm "DERIV_quotient";
  17.231 -val NSDERIV_quotient = thm "NSDERIV_quotient";
  17.232 -val CARAT_DERIV = thm "CARAT_DERIV";
  17.233 -val CARAT_NSDERIV = thm "CARAT_NSDERIV";
  17.234 -val hypreal_eq_minus_iff3 = thm "hypreal_eq_minus_iff3";
  17.235 -val starfun_if_eq = thm "starfun_if_eq";
  17.236 -val CARAT_DERIVD = thm "CARAT_DERIVD";
  17.237 -val f_inc_g_dec_Beq_f = thm "f_inc_g_dec_Beq_f";
  17.238 -val f_inc_g_dec_Beq_g = thm "f_inc_g_dec_Beq_g";
  17.239 -val f_inc_imp_le_lim = thm "f_inc_imp_le_lim";
  17.240 -val lim_uminus = thm "lim_uminus";
  17.241 -val g_dec_imp_lim_le = thm "g_dec_imp_lim_le";
  17.242 -val Bolzano_bisect_le = thm "Bolzano_bisect_le";
  17.243 -val Bolzano_bisect_fst_le_Suc = thm "Bolzano_bisect_fst_le_Suc";
  17.244 -val Bolzano_bisect_Suc_le_snd = thm "Bolzano_bisect_Suc_le_snd";
  17.245 -val eq_divide_2_times_iff = thm "eq_divide_2_times_iff";
  17.246 -val Bolzano_bisect_diff = thm "Bolzano_bisect_diff";
  17.247 -val Bolzano_nest_unique = thms "Bolzano_nest_unique";
  17.248 -val not_P_Bolzano_bisect = thm "not_P_Bolzano_bisect";
  17.249 -val not_P_Bolzano_bisect = thm "not_P_Bolzano_bisect";
  17.250 -val lemma_BOLZANO2 = thm "lemma_BOLZANO2";
  17.251 -val IVT = thm "IVT";
  17.252 -val IVT2 = thm "IVT2";
  17.253 -val IVT_objl = thm "IVT_objl";
  17.254 -val IVT2_objl = thm "IVT2_objl";
  17.255 -val isCont_bounded = thm "isCont_bounded";
  17.256 -val isCont_has_Ub = thm "isCont_has_Ub";
  17.257 -val isCont_eq_Ub = thm "isCont_eq_Ub";
  17.258 -val isCont_eq_Lb = thm "isCont_eq_Lb";
  17.259 -val isCont_Lb_Ub = thm "isCont_Lb_Ub";
  17.260 -val DERIV_left_inc = thm "DERIV_left_inc";
  17.261 -val DERIV_left_dec = thm "DERIV_left_dec";
  17.262 -val DERIV_local_max = thm "DERIV_local_max";
  17.263 -val DERIV_local_min = thm "DERIV_local_min";
  17.264 -val DERIV_local_const = thm "DERIV_local_const";
  17.265 -val Rolle = thm "Rolle";
  17.266 -val MVT = thm "MVT";
  17.267 -val DERIV_isconst_end = thm "DERIV_isconst_end";
  17.268 -val DERIV_isconst1 = thm "DERIV_isconst1";
  17.269 -val DERIV_isconst2 = thm "DERIV_isconst2";
  17.270 -val DERIV_isconst_all = thm "DERIV_isconst_all";
  17.271 -val DERIV_const_ratio_const = thm "DERIV_const_ratio_const";
  17.272 -val DERIV_const_ratio_const2 = thm "DERIV_const_ratio_const2";
  17.273 -val real_average_minus_first = thm "real_average_minus_first";
  17.274 -val real_average_minus_second = thm "real_average_minus_second";
  17.275 -val DERIV_const_average = thm "DERIV_const_average";
  17.276 -val isCont_inj_range = thm "isCont_inj_range";
  17.277 -val isCont_inverse_function = thm "isCont_inverse_function";
  17.278 -*}
  17.279 -
  17.280 -
  17.281  end
    18.1 --- a/src/HOL/Hyperreal/Ln.thy	Fri Jun 02 20:12:59 2006 +0200
    18.2 +++ b/src/HOL/Hyperreal/Ln.thy	Fri Jun 02 23:22:29 2006 +0200
    18.3 @@ -6,7 +6,6 @@
    18.4  header {* Properties of ln *}
    18.5  
    18.6  theory Ln
    18.7 -
    18.8  imports Transcendental
    18.9  begin
   18.10  
   18.11 @@ -14,7 +13,7 @@
   18.12    inverse(real (fact (n+2))) * (x ^ (n+2)))"
   18.13  proof -
   18.14    have "exp x = suminf (%n. inverse(real (fact n)) * (x ^ n))"
   18.15 -    by (unfold exp_def, simp)
   18.16 +    by (simp add: exp_def)
   18.17    also from summable_exp have "... = (SUM n : {0..<2}. 
   18.18        inverse(real (fact n)) * (x ^ n)) + suminf (%n.
   18.19        inverse(real (fact (n+2))) * (x ^ (n+2)))" (is "_ = ?a + _")
   18.20 @@ -477,4 +476,3 @@
   18.21  qed
   18.22  
   18.23  end
   18.24 -
    19.1 --- a/src/HOL/Hyperreal/Log.thy	Fri Jun 02 20:12:59 2006 +0200
    19.2 +++ b/src/HOL/Hyperreal/Log.thy	Fri Jun 02 23:22:29 2006 +0200
    19.3 @@ -10,15 +10,14 @@
    19.4  imports Transcendental
    19.5  begin
    19.6  
    19.7 -constdefs
    19.8 -
    19.9 +definition
   19.10    powr  :: "[real,real] => real"     (infixr "powr" 80)
   19.11      --{*exponentation with real exponent*}
   19.12 -    "x powr a == exp(a * ln x)"
   19.13 +  "x powr a = exp(a * ln x)"
   19.14  
   19.15    log :: "[real,real] => real"
   19.16      --{*logarithm of @{term x} to base @{term a}*}
   19.17 -    "log a x == ln x / ln a"
   19.18 +  "log a x = ln x / ln a"
   19.19  
   19.20  
   19.21  
   19.22 @@ -273,39 +272,4 @@
   19.23      finally show "real n powr - s < r" .
   19.24    qed
   19.25  
   19.26 -
   19.27 -
   19.28 -ML
   19.29 -{*
   19.30 -val powr_one_eq_one = thm "powr_one_eq_one";
   19.31 -val powr_zero_eq_one = thm "powr_zero_eq_one";
   19.32 -val powr_one_gt_zero_iff = thm "powr_one_gt_zero_iff";
   19.33 -val powr_mult = thm "powr_mult";
   19.34 -val powr_gt_zero = thm "powr_gt_zero";
   19.35 -val powr_not_zero = thm "powr_not_zero";
   19.36 -val powr_divide = thm "powr_divide";
   19.37 -val powr_add = thm "powr_add";
   19.38 -val powr_powr = thm "powr_powr";
   19.39 -val powr_powr_swap = thm "powr_powr_swap";
   19.40 -val powr_minus = thm "powr_minus";
   19.41 -val powr_minus_divide = thm "powr_minus_divide";
   19.42 -val powr_less_mono = thm "powr_less_mono";
   19.43 -val powr_less_cancel = thm "powr_less_cancel";
   19.44 -val powr_less_cancel_iff = thm "powr_less_cancel_iff";
   19.45 -val powr_le_cancel_iff = thm "powr_le_cancel_iff";
   19.46 -val log_ln = thm "log_ln";
   19.47 -val powr_log_cancel = thm "powr_log_cancel";
   19.48 -val log_powr_cancel = thm "log_powr_cancel";
   19.49 -val log_mult = thm "log_mult";
   19.50 -val log_eq_div_ln_mult_log = thm "log_eq_div_ln_mult_log";
   19.51 -val log_base_10_eq1 = thm "log_base_10_eq1";
   19.52 -val log_base_10_eq2 = thm "log_base_10_eq2";
   19.53 -val log_one = thm "log_one";
   19.54 -val log_eq_one = thm "log_eq_one";
   19.55 -val log_inverse = thm "log_inverse";
   19.56 -val log_divide = thm "log_divide";
   19.57 -val log_less_cancel_iff = thm "log_less_cancel_iff";
   19.58 -val log_le_cancel_iff = thm "log_le_cancel_iff";
   19.59 -*}
   19.60 -
   19.61  end
    20.1 --- a/src/HOL/Hyperreal/MacLaurin.thy	Fri Jun 02 20:12:59 2006 +0200
    20.2 +++ b/src/HOL/Hyperreal/MacLaurin.thy	Fri Jun 02 23:22:29 2006 +0200
    20.3 @@ -31,18 +31,24 @@
    20.4  text{*A crude tactic to differentiate by proof.*}
    20.5  ML
    20.6  {*
    20.7 +local
    20.8 +val deriv_rulesI =
    20.9 +  [thm "DERIV_Id", thm "DERIV_const", thm "DERIV_cos", thm "DERIV_cmult",
   20.10 +  thm "DERIV_sin", thm "DERIV_exp", thm "DERIV_inverse", thm "DERIV_pow",
   20.11 +  thm "DERIV_add", thm "DERIV_diff", thm "DERIV_mult", thm "DERIV_minus",
   20.12 +  thm "DERIV_inverse_fun", thm "DERIV_quotient", thm "DERIV_fun_pow",
   20.13 +  thm "DERIV_fun_exp", thm "DERIV_fun_sin", thm "DERIV_fun_cos",
   20.14 +  thm "DERIV_Id", thm "DERIV_const", thm "DERIV_cos"];
   20.15 +
   20.16 +val DERIV_chain2 = thm "DERIV_chain2";
   20.17 +
   20.18 +in
   20.19 +
   20.20  exception DERIV_name;
   20.21  fun get_fun_name (_ $ (Const ("Lim.deriv",_) $ Abs(_,_, Const (f,_) $ _) $ _ $ _)) = f
   20.22  |   get_fun_name (_ $ (_ $ (Const ("Lim.deriv",_) $ Abs(_,_, Const (f,_) $ _) $ _ $ _))) = f
   20.23  |   get_fun_name _ = raise DERIV_name;
   20.24  
   20.25 -val deriv_rulesI = [DERIV_Id,DERIV_const,DERIV_cos,DERIV_cmult,
   20.26 -                    DERIV_sin, DERIV_exp, DERIV_inverse,DERIV_pow,
   20.27 -                    DERIV_add, DERIV_diff, DERIV_mult, DERIV_minus,
   20.28 -                    DERIV_inverse_fun,DERIV_quotient,DERIV_fun_pow,
   20.29 -                    DERIV_fun_exp,DERIV_fun_sin,DERIV_fun_cos,
   20.30 -                    DERIV_Id,DERIV_const,DERIV_cos];
   20.31 -
   20.32  val deriv_tac =
   20.33    SUBGOAL (fn (prem,i) =>
   20.34     (resolve_tac deriv_rulesI i) ORELSE
   20.35 @@ -50,6 +56,8 @@
   20.36                       DERIV_chain2) i) handle DERIV_name => no_tac));;
   20.37  
   20.38  val DERIV_tac = ALLGOALS(fn i => REPEAT(deriv_tac i));
   20.39 +
   20.40 +end
   20.41  *}
   20.42  
   20.43  lemma Maclaurin_lemma2:
    21.1 --- a/src/HOL/Hyperreal/NSA.thy	Fri Jun 02 20:12:59 2006 +0200
    21.2 +++ b/src/HOL/Hyperreal/NSA.thy	Fri Jun 02 23:22:29 2006 +0200
    21.3 @@ -11,42 +11,41 @@
    21.4  imports HyperArith "../Real/RComplete"
    21.5  begin
    21.6  
    21.7 -constdefs
    21.8 +definition
    21.9  
   21.10    Infinitesimal  :: "hypreal set"
   21.11 -   "Infinitesimal == {x. \<forall>r \<in> Reals. 0 < r --> abs x < r}"
   21.12 +  "Infinitesimal = {x. \<forall>r \<in> Reals. 0 < r --> abs x < r}"
   21.13  
   21.14    HFinite :: "hypreal set"
   21.15 -   "HFinite == {x. \<exists>r \<in> Reals. abs x < r}"
   21.16 +  "HFinite = {x. \<exists>r \<in> Reals. abs x < r}"
   21.17  
   21.18    HInfinite :: "hypreal set"
   21.19 -   "HInfinite == {x. \<forall>r \<in> Reals. r < abs x}"
   21.20 +  "HInfinite = {x. \<forall>r \<in> Reals. r < abs x}"
   21.21  
   21.22    approx :: "[hypreal, hypreal] => bool"    (infixl "@=" 50)
   21.23      --{*the `infinitely close' relation*}
   21.24 -   "x @= y       == (x + -y) \<in> Infinitesimal"
   21.25 +  "(x @= y) = ((x + -y) \<in> Infinitesimal)"
   21.26  
   21.27    st        :: "hypreal => hypreal"
   21.28      --{*the standard part of a hyperreal*}
   21.29 -   "st           == (%x. @r. x \<in> HFinite & r \<in> Reals & r @= x)"
   21.30 +  "st = (%x. @r. x \<in> HFinite & r \<in> Reals & r @= x)"
   21.31  
   21.32    monad     :: "hypreal => hypreal set"
   21.33 -   "monad x      == {y. x @= y}"
   21.34 +  "monad x = {y. x @= y}"
   21.35  
   21.36    galaxy    :: "hypreal => hypreal set"
   21.37 -   "galaxy x     == {y. (x + -y) \<in> HFinite}"
   21.38 +  "galaxy x = {y. (x + -y) \<in> HFinite}"
   21.39 +
   21.40 +const_syntax (xsymbols)
   21.41 +  approx  (infixl "\<approx>" 50)
   21.42 +
   21.43 +const_syntax (HTML output)
   21.44 +  approx  (infixl "\<approx>" 50)
   21.45  
   21.46  
   21.47  defs (overloaded)
   21.48 -
   21.49 -   SReal_def:      "Reals == {x. \<exists>r. x = hypreal_of_real r}"
   21.50 -     --{*the standard real numbers as a subset of the hyperreals*}
   21.51 -
   21.52 -syntax (xsymbols)
   21.53 -    approx :: "[hypreal, hypreal] => bool"    (infixl "\<approx>" 50)
   21.54 -
   21.55 -syntax (HTML output)
   21.56 -    approx :: "[hypreal, hypreal] => bool"    (infixl "\<approx>" 50)
   21.57 +  SReal_def:      "Reals == {x. \<exists>r. x = hypreal_of_real r}"
   21.58 +    --{*the standard real numbers as a subset of the hyperreals*}
   21.59  
   21.60  
   21.61  
   21.62 @@ -507,101 +506,16 @@
   21.63  by (blast intro: approx_sym)
   21.64  
   21.65  
   21.66 -ML
   21.67 -{*
   21.68 -val SReal_add = thm "SReal_add";
   21.69 -val SReal_mult = thm "SReal_mult";
   21.70 -val SReal_inverse = thm "SReal_inverse";
   21.71 -val SReal_divide = thm "SReal_divide";
   21.72 -val SReal_minus = thm "SReal_minus";
   21.73 -val SReal_minus_iff = thm "SReal_minus_iff";
   21.74 -val SReal_add_cancel = thm "SReal_add_cancel";
   21.75 -val SReal_hrabs = thm "SReal_hrabs";
   21.76 -val SReal_hypreal_of_real = thm "SReal_hypreal_of_real";
   21.77 -val SReal_number_of = thm "SReal_number_of";
   21.78 -val Reals_0 = thm "Reals_0";
   21.79 -val Reals_1 = thm "Reals_1";
   21.80 -val SReal_divide_number_of = thm "SReal_divide_number_of";
   21.81 -val SReal_epsilon_not_mem = thm "SReal_epsilon_not_mem";
   21.82 -val SReal_omega_not_mem = thm "SReal_omega_not_mem";
   21.83 -val SReal_UNIV_real = thm "SReal_UNIV_real";
   21.84 -val SReal_iff = thm "SReal_iff";
   21.85 -val hypreal_of_real_image = thm "hypreal_of_real_image";
   21.86 -val inv_hypreal_of_real_image = thm "inv_hypreal_of_real_image";
   21.87 -val SReal_hypreal_of_real_image = thm "SReal_hypreal_of_real_image";
   21.88 -val SReal_dense = thm "SReal_dense";
   21.89 -val hypreal_of_real_isUb_iff = thm "hypreal_of_real_isUb_iff";
   21.90 -val hypreal_of_real_isLub1 = thm "hypreal_of_real_isLub1";
   21.91 -val hypreal_of_real_isLub2 = thm "hypreal_of_real_isLub2";
   21.92 -val hypreal_of_real_isLub_iff = thm "hypreal_of_real_isLub_iff";
   21.93 -val lemma_isUb_hypreal_of_real = thm "lemma_isUb_hypreal_of_real";
   21.94 -val lemma_isLub_hypreal_of_real = thm "lemma_isLub_hypreal_of_real";
   21.95 -val lemma_isLub_hypreal_of_real2 = thm "lemma_isLub_hypreal_of_real2";
   21.96 -val SReal_complete = thm "SReal_complete";
   21.97 -val HFinite_add = thm "HFinite_add";
   21.98 -val HFinite_mult = thm "HFinite_mult";
   21.99 -val HFinite_minus_iff = thm "HFinite_minus_iff";
  21.100 -val SReal_subset_HFinite = thm "SReal_subset_HFinite";
  21.101 -val HFinite_hypreal_of_real = thm "HFinite_hypreal_of_real";
  21.102 -val HFiniteD = thm "HFiniteD";
  21.103 -val HFinite_hrabs_iff = thm "HFinite_hrabs_iff";
  21.104 -val HFinite_number_of = thm "HFinite_number_of";
  21.105 -val HFinite_0 = thm "HFinite_0";
  21.106 -val HFinite_1 = thm "HFinite_1";
  21.107 -val HFinite_bounded = thm "HFinite_bounded";
  21.108 -val InfinitesimalD = thm "InfinitesimalD";
  21.109 -val Infinitesimal_zero = thm "Infinitesimal_zero";
  21.110 -val hypreal_sum_of_halves = thm "hypreal_sum_of_halves";
  21.111 -val Infinitesimal_add = thm "Infinitesimal_add";
  21.112 -val Infinitesimal_minus_iff = thm "Infinitesimal_minus_iff";
  21.113 -val Infinitesimal_diff = thm "Infinitesimal_diff";
  21.114 -val Infinitesimal_mult = thm "Infinitesimal_mult";
  21.115 -val Infinitesimal_HFinite_mult = thm "Infinitesimal_HFinite_mult";
  21.116 -val Infinitesimal_HFinite_mult2 = thm "Infinitesimal_HFinite_mult2";
  21.117 -val HInfinite_inverse_Infinitesimal = thm "HInfinite_inverse_Infinitesimal";
  21.118 -val HInfinite_mult = thm "HInfinite_mult";
  21.119 -val HInfinite_add_ge_zero = thm "HInfinite_add_ge_zero";
  21.120 -val HInfinite_add_ge_zero2 = thm "HInfinite_add_ge_zero2";
  21.121 -val HInfinite_add_gt_zero = thm "HInfinite_add_gt_zero";
  21.122 -val HInfinite_minus_iff = thm "HInfinite_minus_iff";
  21.123 -val HInfinite_add_le_zero = thm "HInfinite_add_le_zero";
  21.124 -val HInfinite_add_lt_zero = thm "HInfinite_add_lt_zero";
  21.125 -val HFinite_sum_squares = thm "HFinite_sum_squares";
  21.126 -val not_Infinitesimal_not_zero = thm "not_Infinitesimal_not_zero";
  21.127 -val not_Infinitesimal_not_zero2 = thm "not_Infinitesimal_not_zero2";
  21.128 -val Infinitesimal_hrabs_iff = thm "Infinitesimal_hrabs_iff";
  21.129 -val HFinite_diff_Infinitesimal_hrabs = thm "HFinite_diff_Infinitesimal_hrabs";
  21.130 -val hrabs_less_Infinitesimal = thm "hrabs_less_Infinitesimal";
  21.131 -val hrabs_le_Infinitesimal = thm "hrabs_le_Infinitesimal";
  21.132 -val Infinitesimal_interval = thm "Infinitesimal_interval";
  21.133 -val Infinitesimal_interval2 = thm "Infinitesimal_interval2";
  21.134 -val not_Infinitesimal_mult = thm "not_Infinitesimal_mult";
  21.135 -val Infinitesimal_mult_disj = thm "Infinitesimal_mult_disj";
  21.136 -val HFinite_Infinitesimal_not_zero = thm "HFinite_Infinitesimal_not_zero";
  21.137 -val HFinite_Infinitesimal_diff_mult = thm "HFinite_Infinitesimal_diff_mult";
  21.138 -val Infinitesimal_subset_HFinite = thm "Infinitesimal_subset_HFinite";
  21.139 -val Infinitesimal_hypreal_of_real_mult = thm "Infinitesimal_hypreal_of_real_mult";
  21.140 -val Infinitesimal_hypreal_of_real_mult2 = thm "Infinitesimal_hypreal_of_real_mult2";
  21.141 -val mem_infmal_iff = thm "mem_infmal_iff";
  21.142 -val approx_minus_iff = thm "approx_minus_iff";
  21.143 -val approx_minus_iff2 = thm "approx_minus_iff2";
  21.144 -val approx_refl = thm "approx_refl";
  21.145 -val approx_sym = thm "approx_sym";
  21.146 -val approx_trans = thm "approx_trans";
  21.147 -val approx_trans2 = thm "approx_trans2";
  21.148 -val approx_trans3 = thm "approx_trans3";
  21.149 -val number_of_approx_reorient = thm "number_of_approx_reorient";
  21.150 -val zero_approx_reorient = thm "zero_approx_reorient";
  21.151 -val one_approx_reorient = thm "one_approx_reorient";
  21.152 -
  21.153 +ML {*
  21.154 +local
  21.155  (*** re-orientation, following HOL/Integ/Bin.ML
  21.156       We re-orient x @=y where x is 0, 1 or a numeral, unless y is as well!
  21.157   ***)
  21.158  
  21.159  (*reorientation simprules using ==, for the following simproc*)
  21.160 -val meta_zero_approx_reorient = zero_approx_reorient RS eq_reflection;
  21.161 -val meta_one_approx_reorient = one_approx_reorient RS eq_reflection;
  21.162 -val meta_number_of_approx_reorient = number_of_approx_reorient RS eq_reflection
  21.163 +val meta_zero_approx_reorient = thm "zero_approx_reorient" RS eq_reflection;
  21.164 +val meta_one_approx_reorient = thm "one_approx_reorient" RS eq_reflection;
  21.165 +val meta_number_of_approx_reorient = thm "number_of_approx_reorient" RS eq_reflection
  21.166  
  21.167  (*reorientation simplification procedure: reorients (polymorphic)
  21.168    0 = x, 1 = x, nnn = x provided x isn't 0, 1 or a numeral.*)
  21.169 @@ -616,9 +530,11 @@
  21.170                | Const("Numeral.number_of", _) $ _ =>
  21.171                                   meta_number_of_approx_reorient);
  21.172  
  21.173 +in
  21.174  val approx_reorient_simproc =
  21.175    Bin_Simprocs.prep_simproc
  21.176      ("reorient_simproc", ["0@=x", "1@=x", "number_of w @= x"], reorient_proc);
  21.177 +end;
  21.178  
  21.179  Addsimprocs [approx_reorient_simproc];
  21.180  *}
  21.181 @@ -2147,213 +2063,4 @@
  21.182  	 simp add: Infinitesimal_FreeUltrafilterNat_iff star_n_minus 
  21.183                     star_n_add star_n_inverse)
  21.184  
  21.185 -
  21.186 -ML
  21.187 -{*
  21.188 -val Infinitesimal_def = thm"Infinitesimal_def";
  21.189 -val HFinite_def = thm"HFinite_def";
  21.190 -val HInfinite_def = thm"HInfinite_def";
  21.191 -val st_def = thm"st_def";
  21.192 -val monad_def = thm"monad_def";
  21.193 -val galaxy_def = thm"galaxy_def";
  21.194 -val approx_def = thm"approx_def";
  21.195 -val SReal_def = thm"SReal_def";
  21.196 -
  21.197 -val Infinitesimal_approx_minus = thm "Infinitesimal_approx_minus";
  21.198 -val approx_monad_iff = thm "approx_monad_iff";
  21.199 -val Infinitesimal_approx = thm "Infinitesimal_approx";
  21.200 -val approx_add = thm "approx_add";
  21.201 -val approx_minus = thm "approx_minus";
  21.202 -val approx_minus2 = thm "approx_minus2";
  21.203 -val approx_minus_cancel = thm "approx_minus_cancel";
  21.204 -val approx_add_minus = thm "approx_add_minus";
  21.205 -val approx_mult1 = thm "approx_mult1";
  21.206 -val approx_mult2 = thm "approx_mult2";
  21.207 -val approx_mult_subst = thm "approx_mult_subst";
  21.208 -val approx_mult_subst2 = thm "approx_mult_subst2";
  21.209 -val approx_mult_subst_SReal = thm "approx_mult_subst_SReal";
  21.210 -val approx_eq_imp = thm "approx_eq_imp";
  21.211 -val Infinitesimal_minus_approx = thm "Infinitesimal_minus_approx";
  21.212 -val bex_Infinitesimal_iff = thm "bex_Infinitesimal_iff";
  21.213 -val bex_Infinitesimal_iff2 = thm "bex_Infinitesimal_iff2";
  21.214 -val Infinitesimal_add_approx = thm "Infinitesimal_add_approx";
  21.215 -val Infinitesimal_add_approx_self = thm "Infinitesimal_add_approx_self";
  21.216 -val Infinitesimal_add_approx_self2 = thm "Infinitesimal_add_approx_self2";
  21.217 -val Infinitesimal_add_minus_approx_self = thm "Infinitesimal_add_minus_approx_self";
  21.218 -val Infinitesimal_add_cancel = thm "Infinitesimal_add_cancel";
  21.219 -val Infinitesimal_add_right_cancel = thm "Infinitesimal_add_right_cancel";
  21.220 -val approx_add_left_cancel = thm "approx_add_left_cancel";
  21.221 -val approx_add_right_cancel = thm "approx_add_right_cancel";
  21.222 -val approx_add_mono1 = thm "approx_add_mono1";
  21.223 -val approx_add_mono2 = thm "approx_add_mono2";
  21.224 -val approx_add_left_iff = thm "approx_add_left_iff";
  21.225 -val approx_add_right_iff = thm "approx_add_right_iff";
  21.226 -val approx_HFinite = thm "approx_HFinite";
  21.227 -val approx_hypreal_of_real_HFinite = thm "approx_hypreal_of_real_HFinite";
  21.228 -val approx_mult_HFinite = thm "approx_mult_HFinite";
  21.229 -val approx_mult_hypreal_of_real = thm "approx_mult_hypreal_of_real";
  21.230 -val approx_SReal_mult_cancel_zero = thm "approx_SReal_mult_cancel_zero";
  21.231 -val approx_mult_SReal1 = thm "approx_mult_SReal1";
  21.232 -val approx_mult_SReal2 = thm "approx_mult_SReal2";
  21.233 -val approx_mult_SReal_zero_cancel_iff = thm "approx_mult_SReal_zero_cancel_iff";
  21.234 -val approx_SReal_mult_cancel = thm "approx_SReal_mult_cancel";
  21.235 -val approx_SReal_mult_cancel_iff1 = thm "approx_SReal_mult_cancel_iff1";
  21.236 -val approx_le_bound = thm "approx_le_bound";
  21.237 -val Infinitesimal_less_SReal = thm "Infinitesimal_less_SReal";
  21.238 -val Infinitesimal_less_SReal2 = thm "Infinitesimal_less_SReal2";
  21.239 -val SReal_not_Infinitesimal = thm "SReal_not_Infinitesimal";
  21.240 -val SReal_minus_not_Infinitesimal = thm "SReal_minus_not_Infinitesimal";
  21.241 -val SReal_Int_Infinitesimal_zero = thm "SReal_Int_Infinitesimal_zero";
  21.242 -val SReal_Infinitesimal_zero = thm "SReal_Infinitesimal_zero";
  21.243 -val SReal_HFinite_diff_Infinitesimal = thm "SReal_HFinite_diff_Infinitesimal";
  21.244 -val hypreal_of_real_HFinite_diff_Infinitesimal = thm "hypreal_of_real_HFinite_diff_Infinitesimal";
  21.245 -val hypreal_of_real_Infinitesimal_iff_0 = thm "hypreal_of_real_Infinitesimal_iff_0";
  21.246 -val number_of_not_Infinitesimal = thm "number_of_not_Infinitesimal";
  21.247 -val one_not_Infinitesimal = thm "one_not_Infinitesimal";
  21.248 -val approx_SReal_not_zero = thm "approx_SReal_not_zero";
  21.249 -val HFinite_diff_Infinitesimal_approx = thm "HFinite_diff_Infinitesimal_approx";
  21.250 -val Infinitesimal_ratio = thm "Infinitesimal_ratio";
  21.251 -val SReal_approx_iff = thm "SReal_approx_iff";
  21.252 -val number_of_approx_iff = thm "number_of_approx_iff";
  21.253 -val hypreal_of_real_approx_iff = thm "hypreal_of_real_approx_iff";
  21.254 -val hypreal_of_real_approx_number_of_iff = thm "hypreal_of_real_approx_number_of_iff";
  21.255 -val approx_unique_real = thm "approx_unique_real";
  21.256 -val hypreal_isLub_unique = thm "hypreal_isLub_unique";
  21.257 -val hypreal_setle_less_trans = thm "hypreal_setle_less_trans";
  21.258 -val hypreal_gt_isUb = thm "hypreal_gt_isUb";
  21.259 -val st_part_Ex = thm "st_part_Ex";
  21.260 -val st_part_Ex1 = thm "st_part_Ex1";
  21.261 -val HFinite_Int_HInfinite_empty = thm "HFinite_Int_HInfinite_empty";
  21.262 -val HFinite_not_HInfinite = thm "HFinite_not_HInfinite";
  21.263 -val not_HFinite_HInfinite = thm "not_HFinite_HInfinite";
  21.264 -val HInfinite_HFinite_disj = thm "HInfinite_HFinite_disj";
  21.265 -val HInfinite_HFinite_iff = thm "HInfinite_HFinite_iff";
  21.266 -val HFinite_HInfinite_iff = thm "HFinite_HInfinite_iff";
  21.267 -val HInfinite_diff_HFinite_Infinitesimal_disj = thm "HInfinite_diff_HFinite_Infinitesimal_disj";
  21.268 -val HFinite_inverse = thm "HFinite_inverse";
  21.269 -val HFinite_inverse2 = thm "HFinite_inverse2";
  21.270 -val Infinitesimal_inverse_HFinite = thm "Infinitesimal_inverse_HFinite";
  21.271 -val HFinite_not_Infinitesimal_inverse = thm "HFinite_not_Infinitesimal_inverse";
  21.272 -val approx_inverse = thm "approx_inverse";
  21.273 -val hypreal_of_real_approx_inverse = thm "hypreal_of_real_approx_inverse";
  21.274 -val inverse_add_Infinitesimal_approx = thm "inverse_add_Infinitesimal_approx";
  21.275 -val inverse_add_Infinitesimal_approx2 = thm "inverse_add_Infinitesimal_approx2";
  21.276 -val inverse_add_Infinitesimal_approx_Infinitesimal = thm "inverse_add_Infinitesimal_approx_Infinitesimal";
  21.277 -val Infinitesimal_square_iff = thm "Infinitesimal_square_iff";
  21.278 -val HFinite_square_iff = thm "HFinite_square_iff";
  21.279 -val HInfinite_square_iff = thm "HInfinite_square_iff";
  21.280 -val approx_HFinite_mult_cancel = thm "approx_HFinite_mult_cancel";
  21.281 -val approx_HFinite_mult_cancel_iff1 = thm "approx_HFinite_mult_cancel_iff1";
  21.282 -val approx_hrabs_disj = thm "approx_hrabs_disj";
  21.283 -val monad_hrabs_Un_subset = thm "monad_hrabs_Un_subset";
  21.284 -val Infinitesimal_monad_eq = thm "Infinitesimal_monad_eq";
  21.285 -val mem_monad_iff = thm "mem_monad_iff";
  21.286 -val Infinitesimal_monad_zero_iff = thm "Infinitesimal_monad_zero_iff";
  21.287 -val monad_zero_minus_iff = thm "monad_zero_minus_iff";
  21.288 -val monad_zero_hrabs_iff = thm "monad_zero_hrabs_iff";
  21.289 -val mem_monad_self = thm "mem_monad_self";
  21.290 -val approx_subset_monad = thm "approx_subset_monad";
  21.291 -val approx_subset_monad2 = thm "approx_subset_monad2";
  21.292 -val mem_monad_approx = thm "mem_monad_approx";
  21.293 -val approx_mem_monad = thm "approx_mem_monad";
  21.294 -val approx_mem_monad2 = thm "approx_mem_monad2";
  21.295 -val approx_mem_monad_zero = thm "approx_mem_monad_zero";
  21.296 -val Infinitesimal_approx_hrabs = thm "Infinitesimal_approx_hrabs";
  21.297 -val less_Infinitesimal_less = thm "less_Infinitesimal_less";
  21.298 -val Ball_mem_monad_gt_zero = thm "Ball_mem_monad_gt_zero";
  21.299 -val Ball_mem_monad_less_zero = thm "Ball_mem_monad_less_zero";
  21.300 -val approx_hrabs = thm "approx_hrabs";
  21.301 -val approx_hrabs_zero_cancel = thm "approx_hrabs_zero_cancel";
  21.302 -val approx_hrabs_add_Infinitesimal = thm "approx_hrabs_add_Infinitesimal";
  21.303 -val approx_hrabs_add_minus_Infinitesimal = thm "approx_hrabs_add_minus_Infinitesimal";
  21.304 -val hrabs_add_Infinitesimal_cancel = thm "hrabs_add_Infinitesimal_cancel";
  21.305 -val hrabs_add_minus_Infinitesimal_cancel = thm "hrabs_add_minus_Infinitesimal_cancel";
  21.306 -val Infinitesimal_add_hypreal_of_real_less = thm "Infinitesimal_add_hypreal_of_real_less";
  21.307 -val Infinitesimal_add_hrabs_hypreal_of_real_less = thm "Infinitesimal_add_hrabs_hypreal_of_real_less";
  21.308 -val Infinitesimal_add_hrabs_hypreal_of_real_less2 = thm "Infinitesimal_add_hrabs_hypreal_of_real_less2";
  21.309 -val hypreal_of_real_le_add_Infininitesimal_cancel2 = thm"hypreal_of_real_le_add_Infininitesimal_cancel2";
  21.310 -val hypreal_of_real_less_Infinitesimal_le_zero = thm "hypreal_of_real_less_Infinitesimal_le_zero";
  21.311 -val Infinitesimal_add_not_zero = thm "Infinitesimal_add_not_zero";
  21.312 -val Infinitesimal_square_cancel = thm "Infinitesimal_square_cancel";
  21.313 -val HFinite_square_cancel = thm "HFinite_square_cancel";
  21.314 -val Infinitesimal_square_cancel2 = thm "Infinitesimal_square_cancel2";
  21.315 -val HFinite_square_cancel2 = thm "HFinite_square_cancel2";
  21.316 -val Infinitesimal_sum_square_cancel = thm "Infinitesimal_sum_square_cancel";
  21.317 -val HFinite_sum_square_cancel = thm "HFinite_sum_square_cancel";
  21.318 -val Infinitesimal_sum_square_cancel2 = thm "Infinitesimal_sum_square_cancel2";
  21.319 -val HFinite_sum_square_cancel2 = thm "HFinite_sum_square_cancel2";
  21.320 -val Infinitesimal_sum_square_cancel3 = thm "Infinitesimal_sum_square_cancel3";
  21.321 -val HFinite_sum_square_cancel3 = thm "HFinite_sum_square_cancel3";
  21.322 -val monad_hrabs_less = thm "monad_hrabs_less";
  21.323 -val mem_monad_SReal_HFinite = thm "mem_monad_SReal_HFinite";
  21.324 -val st_approx_self = thm "st_approx_self";
  21.325 -val st_SReal = thm "st_SReal";
  21.326 -val st_HFinite = thm "st_HFinite";
  21.327 -val st_SReal_eq = thm "st_SReal_eq";
  21.328 -val st_hypreal_of_real = thm "st_hypreal_of_real";
  21.329 -val st_eq_approx = thm "st_eq_approx";
  21.330 -val approx_st_eq = thm "approx_st_eq";
  21.331 -val st_eq_approx_iff = thm "st_eq_approx_iff";
  21.332 -val st_Infinitesimal_add_SReal = thm "st_Infinitesimal_add_SReal";
  21.333 -val st_Infinitesimal_add_SReal2 = thm "st_Infinitesimal_add_SReal2";
  21.334 -val HFinite_st_Infinitesimal_add = thm "HFinite_st_Infinitesimal_add";
  21.335 -val st_add = thm "st_add";
  21.336 -val st_number_of = thm "st_number_of";
  21.337 -val st_minus = thm "st_minus";
  21.338 -val st_diff = thm "st_diff";
  21.339 -val st_mult = thm "st_mult";
  21.340 -val st_Infinitesimal = thm "st_Infinitesimal";
  21.341 -val st_not_Infinitesimal = thm "st_not_Infinitesimal";
  21.342 -val st_inverse = thm "st_inverse";
  21.343 -val st_divide = thm "st_divide";
  21.344 -val st_idempotent = thm "st_idempotent";
  21.345 -val Infinitesimal_add_st_less = thm "Infinitesimal_add_st_less";
  21.346 -val Infinitesimal_add_st_le_cancel = thm "Infinitesimal_add_st_le_cancel";
  21.347 -val st_le = thm "st_le";
  21.348 -val st_zero_le = thm "st_zero_le";
  21.349 -val st_zero_ge = thm "st_zero_ge";
  21.350 -val st_hrabs = thm "st_hrabs";
  21.351 -val FreeUltrafilterNat_HFinite = thm "FreeUltrafilterNat_HFinite";
  21.352 -val HFinite_FreeUltrafilterNat_iff = thm "HFinite_FreeUltrafilterNat_iff";
  21.353 -val FreeUltrafilterNat_const_Finite = thm "FreeUltrafilterNat_const_Finite";
  21.354 -val FreeUltrafilterNat_HInfinite = thm "FreeUltrafilterNat_HInfinite";
  21.355 -val HInfinite_FreeUltrafilterNat_iff = thm "HInfinite_FreeUltrafilterNat_iff";
  21.356 -val Infinitesimal_FreeUltrafilterNat = thm "Infinitesimal_FreeUltrafilterNat";
  21.357 -val FreeUltrafilterNat_Infinitesimal = thm "FreeUltrafilterNat_Infinitesimal";
  21.358 -val Infinitesimal_FreeUltrafilterNat_iff = thm "Infinitesimal_FreeUltrafilterNat_iff";
  21.359 -val Infinitesimal_hypreal_of_nat_iff = thm "Infinitesimal_hypreal_of_nat_iff";
  21.360 -val Suc_Un_eq = thm "Suc_Un_eq";
  21.361 -val finite_nat_segment = thm "finite_nat_segment";
  21.362 -val finite_real_of_nat_segment = thm "finite_real_of_nat_segment";
  21.363 -val finite_real_of_nat_less_real = thm "finite_real_of_nat_less_real";
  21.364 -val finite_real_of_nat_le_real = thm "finite_real_of_nat_le_real";
  21.365 -val finite_rabs_real_of_nat_le_real = thm "finite_rabs_real_of_nat_le_real";
  21.366 -val rabs_real_of_nat_le_real_FreeUltrafilterNat = thm "rabs_real_of_nat_le_real_FreeUltrafilterNat";
  21.367 -val FreeUltrafilterNat_nat_gt_real = thm "FreeUltrafilterNat_nat_gt_real";
  21.368 -val FreeUltrafilterNat_omega = thm "FreeUltrafilterNat_omega";
  21.369 -val HInfinite_omega = thm "HInfinite_omega";
  21.370 -val Infinitesimal_epsilon = thm "Infinitesimal_epsilon";
  21.371 -val HFinite_epsilon = thm "HFinite_epsilon";
  21.372 -val epsilon_approx_zero = thm "epsilon_approx_zero";
  21.373 -val real_of_nat_less_inverse_iff = thm "real_of_nat_less_inverse_iff";
  21.374 -val finite_inverse_real_of_posnat_gt_real = thm "finite_inverse_real_of_posnat_gt_real";
  21.375 -val real_of_nat_inverse_le_iff = thm "real_of_nat_inverse_le_iff";
  21.376 -val real_of_nat_inverse_eq_iff = thm "real_of_nat_inverse_eq_iff";
  21.377 -val finite_inverse_real_of_posnat_ge_real = thm "finite_inverse_real_of_posnat_ge_real";
  21.378 -val inverse_real_of_posnat_ge_real_FreeUltrafilterNat = thm "inverse_real_of_posnat_ge_real_FreeUltrafilterNat";
  21.379 -val FreeUltrafilterNat_inverse_real_of_posnat = thm "FreeUltrafilterNat_inverse_real_of_posnat";
  21.380 -val real_seq_to_hypreal_Infinitesimal = thm "real_seq_to_hypreal_Infinitesimal";
  21.381 -val real_seq_to_hypreal_approx = thm "real_seq_to_hypreal_approx";
  21.382 -val real_seq_to_hypreal_approx2 = thm "real_seq_to_hypreal_approx2";
  21.383 -val real_seq_to_hypreal_Infinitesimal2 = thm "real_seq_to_hypreal_Infinitesimal2";
  21.384 -val HInfinite_HFinite_add = thm "HInfinite_HFinite_add";
  21.385 -val HInfinite_ge_HInfinite = thm "HInfinite_ge_HInfinite";
  21.386 -val Infinitesimal_inverse_HInfinite = thm "Infinitesimal_inverse_HInfinite";
  21.387 -val HInfinite_HFinite_not_Infinitesimal_mult = thm "HInfinite_HFinite_not_Infinitesimal_mult";
  21.388 -val HInfinite_HFinite_not_Infinitesimal_mult2 = thm "HInfinite_HFinite_not_Infinitesimal_mult2";
  21.389 -val HInfinite_gt_SReal = thm "HInfinite_gt_SReal";
  21.390 -val HInfinite_gt_zero_gt_one = thm "HInfinite_gt_zero_gt_one";
  21.391 -val not_HInfinite_one = thm "not_HInfinite_one";
  21.392 -*}
  21.393 -
  21.394  end
    22.1 --- a/src/HOL/Hyperreal/NatStar.thy	Fri Jun 02 20:12:59 2006 +0200
    22.2 +++ b/src/HOL/Hyperreal/NatStar.thy	Fri Jun 02 23:22:29 2006 +0200
    22.3 @@ -182,51 +182,12 @@
    22.4  apply (simp_all add: HNatInfinite_not_eq_zero starfunNat_real_of_nat)
    22.5  done
    22.6  
    22.7 -ML
    22.8 -{*
    22.9 -val starset_n_Un = thm "starset_n_Un";
   22.10 -val InternalSets_Un = thm "InternalSets_Un";
   22.11 -val starset_n_Int = thm "starset_n_Int";
   22.12 -val InternalSets_Int = thm "InternalSets_Int";
   22.13 -val starset_n_Compl = thm "starset_n_Compl";
   22.14 -val InternalSets_Compl = thm "InternalSets_Compl";
   22.15 -val starset_n_diff = thm "starset_n_diff";
   22.16 -val InternalSets_diff = thm "InternalSets_diff";
   22.17 -val NatStar_SHNat_subset = thm "NatStar_SHNat_subset";
   22.18 -val NatStar_hypreal_of_real_Int = thm "NatStar_hypreal_of_real_Int";
   22.19 -val starset_starset_n_eq = thm "starset_starset_n_eq";
   22.20 -val InternalSets_starset_n = thm "InternalSets_starset_n";
   22.21 -val InternalSets_UNIV_diff = thm "InternalSets_UNIV_diff";
   22.22 -val starset_n_starset = thm "starset_n_starset";
   22.23 -val starfun_const_fun = thm "starfun_const_fun";
   22.24 -val starfun_le_mono = thm "starfun_le_mono";
   22.25 -val starfun_less_mono = thm "starfun_less_mono";
   22.26 -val starfun_shift_one = thm "starfun_shift_one";
   22.27 -val starfun_abs = thm "starfun_abs";
   22.28 -val starfun_pow = thm "starfun_pow";
   22.29 -val starfun_pow2 = thm "starfun_pow2";
   22.30 -val starfun_pow3 = thm "starfun_pow3";
   22.31 -val starfunNat_real_of_nat = thm "starfunNat_real_of_nat";
   22.32 -val starfun_inverse_real_of_nat_eq = thm "starfun_inverse_real_of_nat_eq";
   22.33 -val starfun_n = thm "starfun_n";
   22.34 -val starfun_n_mult = thm "starfun_n_mult";
   22.35 -val starfun_n_add = thm "starfun_n_add";
   22.36 -val starfun_n_add_minus = thm "starfun_n_add_minus";
   22.37 -val starfun_n_const_fun = thm "starfun_n_const_fun";
   22.38 -val starfun_n_minus = thm "starfun_n_minus";
   22.39 -val starfun_n_eq = thm "starfun_n_eq";
   22.40 -val starfun_eq_iff = thm "starfun_eq_iff";
   22.41 -val starfunNat_inverse_real_of_nat_Infinitesimal = thm "starfunNat_inverse_real_of_nat_Infinitesimal";
   22.42 -*}
   22.43 -
   22.44 -
   22.45  
   22.46  subsection{*Nonstandard Characterization of Induction*}
   22.47  
   22.48 -
   22.49 -constdefs
   22.50 +definition
   22.51    hSuc :: "hypnat => hypnat"
   22.52 -  "hSuc n == n + 1"
   22.53 +  "hSuc n = n + 1"
   22.54  
   22.55  lemma starP: "(( *p* P) (star_n X)) = ({n. P (X n)} \<in> FreeUltrafilterNat)"
   22.56  by (rule starP_star_n)
    23.1 --- a/src/HOL/Hyperreal/NthRoot.thy	Fri Jun 02 20:12:59 2006 +0200
    23.2 +++ b/src/HOL/Hyperreal/NthRoot.thy	Fri Jun 02 23:22:29 2006 +0200
    23.3 @@ -170,17 +170,4 @@
    23.4  apply (drule_tac [4] x = y in realpow_less, auto)
    23.5  done
    23.6  
    23.7 -ML
    23.8 -{*
    23.9 -val nth_realpow_isLub_ex = thm"nth_realpow_isLub_ex";
   23.10 -val realpow_nth_ge = thm"realpow_nth_ge";
   23.11 -val less_isLub_not_isUb = thm"less_isLub_not_isUb";
   23.12 -val not_isUb_less_ex = thm"not_isUb_less_ex";
   23.13 -val realpow_nth_le = thm"realpow_nth_le";
   23.14 -val realpow_nth = thm"realpow_nth";
   23.15 -val realpow_pos_nth = thm"realpow_pos_nth";
   23.16 -val realpow_pos_nth2 = thm"realpow_pos_nth2";
   23.17 -val realpow_pos_nth_unique = thm"realpow_pos_nth_unique";
   23.18 -*}
   23.19 -
   23.20  end
    24.1 --- a/src/HOL/Hyperreal/Poly.thy	Fri Jun 02 20:12:59 2006 +0200
    24.2 +++ b/src/HOL/Hyperreal/Poly.thy	Fri Jun 02 23:22:29 2006 +0200
    24.3 @@ -81,29 +81,29 @@
    24.4  
    24.5  text{*Other definitions*}
    24.6  
    24.7 -constdefs
    24.8 -   poly_minus :: "real list => real list"      ("-- _" [80] 80)
    24.9 -   "-- p == (- 1) %* p"
   24.10 +definition
   24.11 +  poly_minus :: "real list => real list"      ("-- _" [80] 80)
   24.12 +  "-- p = (- 1) %* p"
   24.13  
   24.14 -   pderiv :: "real list => real list"
   24.15 -   "pderiv p == if p = [] then [] else pderiv_aux 1 (tl p)"
   24.16 +  pderiv :: "real list => real list"
   24.17 +  "pderiv p = (if p = [] then [] else pderiv_aux 1 (tl p))"
   24.18  
   24.19 -   divides :: "[real list,real list] => bool"  (infixl "divides" 70)
   24.20 -   "p1 divides p2 == \<exists>q. poly p2 = poly(p1 *** q)"
   24.21 +  divides :: "[real list,real list] => bool"  (infixl "divides" 70)
   24.22 +  "p1 divides p2 = (\<exists>q. poly p2 = poly(p1 *** q))"
   24.23  
   24.24 -   order :: "real => real list => nat"
   24.25 -     --{*order of a polynomial*}
   24.26 -   "order a p == (@n. ([-a, 1] %^ n) divides p &
   24.27 +  order :: "real => real list => nat"
   24.28 +    --{*order of a polynomial*}
   24.29 +  "order a p = (SOME n. ([-a, 1] %^ n) divides p &
   24.30                        ~ (([-a, 1] %^ (Suc n)) divides p))"
   24.31  
   24.32 -   degree :: "real list => nat"
   24.33 +  degree :: "real list => nat"
   24.34       --{*degree of a polynomial*}
   24.35 -   "degree p == length (pnormalize p)"
   24.36 +  "degree p = length (pnormalize p)"
   24.37  
   24.38 -   rsquarefree :: "real list => bool"
   24.39 +  rsquarefree :: "real list => bool"
   24.40       --{*squarefree polynomials --- NB with respect to real roots only.*}
   24.41 -   "rsquarefree p == poly p \<noteq> poly [] &
   24.42 -                     (\<forall>a. (order a p = 0) | (order a p = 1))"
   24.43 +  "rsquarefree p = (poly p \<noteq> poly [] &
   24.44 +                     (\<forall>a. (order a p = 0) | (order a p = 1)))"
   24.45  
   24.46  
   24.47  
   24.48 @@ -1026,135 +1026,4 @@
   24.49  apply (auto intro!: mult_mono simp add: abs_mult, arith)
   24.50  done
   24.51  
   24.52 -ML
   24.53 -{*
   24.54 -val padd_Nil2 = thm "padd_Nil2";
   24.55 -val padd_Cons_Cons = thm "padd_Cons_Cons";
   24.56 -val pminus_Nil = thm "pminus_Nil";
   24.57 -val pmult_singleton = thm "pmult_singleton";
   24.58 -val poly_ident_mult = thm "poly_ident_mult";
   24.59 -val poly_simple_add_Cons = thm "poly_simple_add_Cons";
   24.60 -val padd_commut = thm "padd_commut";
   24.61 -val padd_assoc = thm "padd_assoc";
   24.62 -val poly_cmult_distr = thm "poly_cmult_distr";
   24.63 -val pmult_by_x = thm "pmult_by_x";
   24.64 -val poly_add = thm "poly_add";
   24.65 -val poly_cmult = thm "poly_cmult";
   24.66 -val poly_minus = thm "poly_minus";
   24.67 -val poly_mult = thm "poly_mult";
   24.68 -val poly_exp = thm "poly_exp";
   24.69 -val poly_add_rzero = thm "poly_add_rzero";
   24.70 -val poly_mult_assoc = thm "poly_mult_assoc";
   24.71 -val poly_mult_Nil2 = thm "poly_mult_Nil2";
   24.72 -val poly_exp_add = thm "poly_exp_add";
   24.73 -val pderiv_Nil = thm "pderiv_Nil";
   24.74 -val pderiv_singleton = thm "pderiv_singleton";
   24.75 -val pderiv_Cons = thm "pderiv_Cons";
   24.76 -val DERIV_cmult2 = thm "DERIV_cmult2";
   24.77 -val DERIV_pow2 = thm "DERIV_pow2";
   24.78 -val lemma_DERIV_poly1 = thm "lemma_DERIV_poly1";
   24.79 -val lemma_DERIV_poly = thm "lemma_DERIV_poly";
   24.80 -val DERIV_add_const = thm "DERIV_add_const";
   24.81 -val poly_DERIV = thm "poly_DERIV";
   24.82 -val poly_differentiable = thm "poly_differentiable";
   24.83 -val poly_isCont = thm "poly_isCont";
   24.84 -val poly_IVT_pos = thm "poly_IVT_pos";
   24.85 -val poly_IVT_neg = thm "poly_IVT_neg";
   24.86 -val poly_MVT = thm "poly_MVT";
   24.87 -val lemma_poly_pderiv_aux_add = thm "lemma_poly_pderiv_aux_add";
   24.88 -val poly_pderiv_aux_add = thm "poly_pderiv_aux_add";
   24.89 -val lemma_poly_pderiv_aux_cmult = thm "lemma_poly_pderiv_aux_cmult";
   24.90 -val poly_pderiv_aux_cmult = thm "poly_pderiv_aux_cmult";
   24.91 -val poly_pderiv_aux_minus = thm "poly_pderiv_aux_minus";
   24.92 -val lemma_poly_pderiv_aux_mult1 = thm "lemma_poly_pderiv_aux_mult1";
   24.93 -val lemma_poly_pderiv_aux_mult = thm "lemma_poly_pderiv_aux_mult";
   24.94 -val lemma_poly_pderiv_add = thm "lemma_poly_pderiv_add";
   24.95 -val poly_pderiv_add = thm "poly_pderiv_add";
   24.96 -val poly_pderiv_cmult = thm "poly_pderiv_cmult";
   24.97 -val poly_pderiv_minus = thm "poly_pderiv_minus";
   24.98 -val lemma_poly_mult_pderiv = thm "lemma_poly_mult_pderiv";
   24.99 -val poly_pderiv_mult = thm "poly_pderiv_mult";
  24.100 -val poly_pderiv_exp = thm "poly_pderiv_exp";
  24.101 -val poly_pderiv_exp_prime = thm "poly_pderiv_exp_prime";
  24.102 -val lemma_poly_linear_rem = thm "lemma_poly_linear_rem";
  24.103 -val poly_linear_rem = thm "poly_linear_rem";
  24.104 -val poly_linear_divides = thm "poly_linear_divides";
  24.105 -val lemma_poly_length_mult = thm "lemma_poly_length_mult";
  24.106 -val lemma_poly_length_mult2 = thm "lemma_poly_length_mult2";
  24.107 -val poly_length_mult = thm "poly_length_mult";
  24.108 -val poly_cmult_length = thm "poly_cmult_length";
  24.109 -val poly_add_length = thm "poly_add_length";
  24.110 -val poly_root_mult_length = thm "poly_root_mult_length";
  24.111 -val poly_mult_not_eq_poly_Nil = thm "poly_mult_not_eq_poly_Nil";
  24.112 -val poly_mult_eq_zero_disj = thm "poly_mult_eq_zero_disj";
  24.113 -val poly_normalized_nil = thm "poly_normalized_nil";
  24.114 -val poly_roots_index_lemma = thm "poly_roots_index_lemma";
  24.115 -val poly_roots_index_lemma2 = thms "poly_roots_index_lemma2";
  24.116 -val poly_roots_index_length = thm "poly_roots_index_length";
  24.117 -val poly_roots_finite_lemma = thm "poly_roots_finite_lemma";
  24.118 -val real_finite_lemma = thm "real_finite_lemma";
  24.119 -val poly_roots_finite = thm "poly_roots_finite";
  24.120 -val poly_entire_lemma = thm "poly_entire_lemma";
  24.121 -val poly_entire = thm "poly_entire";
  24.122 -val poly_entire_neg = thm "poly_entire_neg";
  24.123 -val fun_eq = thm "fun_eq";
  24.124 -val poly_add_minus_zero_iff = thm "poly_add_minus_zero_iff";
  24.125 -val poly_add_minus_mult_eq = thm "poly_add_minus_mult_eq";
  24.126 -val poly_mult_left_cancel = thm "poly_mult_left_cancel";
  24.127 -val real_mult_zero_disj_iff = thm "real_mult_zero_disj_iff";
  24.128 -val poly_exp_eq_zero = thm "poly_exp_eq_zero";
  24.129 -val poly_prime_eq_zero = thm "poly_prime_eq_zero";
  24.130 -val poly_exp_prime_eq_zero = thm "poly_exp_prime_eq_zero";
  24.131 -val poly_zero_lemma = thm "poly_zero_lemma";
  24.132 -val poly_zero = thm "poly_zero";
  24.133 -val pderiv_aux_iszero = thm "pderiv_aux_iszero";
  24.134 -val pderiv_aux_iszero_num = thm "pderiv_aux_iszero_num";
  24.135 -val pderiv_iszero = thm "pderiv_iszero";
  24.136 -val pderiv_zero_obj = thm "pderiv_zero_obj";
  24.137 -val pderiv_zero = thm "pderiv_zero";
  24.138 -val poly_pderiv_welldef = thm "poly_pderiv_welldef";
  24.139 -val poly_primes = thm "poly_primes";
  24.140 -val poly_divides_refl = thm "poly_divides_refl";
  24.141 -val poly_divides_trans = thm "poly_divides_trans";
  24.142 -val poly_divides_exp = thm "poly_divides_exp";
  24.143 -val poly_exp_divides = thm "poly_exp_divides";
  24.144 -val poly_divides_add = thm "poly_divides_add";
  24.145 -val poly_divides_diff = thm "poly_divides_diff";
  24.146 -val poly_divides_diff2 = thm "poly_divides_diff2";
  24.147 -val poly_divides_zero = thm "poly_divides_zero";
  24.148 -val poly_divides_zero2 = thm "poly_divides_zero2";
  24.149 -val poly_order_exists_lemma = thm "poly_order_exists_lemma";
  24.150 -val poly_order_exists = thm "poly_order_exists";
  24.151 -val poly_one_divides = thm "poly_one_divides";
  24.152 -val poly_order = thm "poly_order";
  24.153 -val some1_equalityD = thm "some1_equalityD";
  24.154 -val order = thm "order";
  24.155 -val order2 = thm "order2";
  24.156 -val order_unique = thm "order_unique";
  24.157 -val order_unique_lemma = thm "order_unique_lemma";
  24.158 -val order_poly = thm "order_poly";
  24.159 -val pexp_one = thm "pexp_one";
  24.160 -val lemma_order_root = thm "lemma_order_root";
  24.161 -val order_root = thm "order_root";
  24.162 -val order_divides = thm "order_divides";
  24.163 -val order_decomp = thm "order_decomp";
  24.164 -val order_mult = thm "order_mult";
  24.165 -val lemma_order_pderiv = thm "lemma_order_pderiv";
  24.166 -val order_pderiv = thm "order_pderiv";
  24.167 -val poly_squarefree_decomp_order = thm "poly_squarefree_decomp_order";
  24.168 -val poly_squarefree_decomp_order2 = thm "poly_squarefree_decomp_order2";
  24.169 -val order_root2 = thm "order_root2";
  24.170 -val order_pderiv2 = thm "order_pderiv2";
  24.171 -val rsquarefree_roots = thm "rsquarefree_roots";
  24.172 -val pmult_one = thm "pmult_one";
  24.173 -val poly_Nil_zero = thm "poly_Nil_zero";
  24.174 -val rsquarefree_decomp = thm "rsquarefree_decomp";
  24.175 -val poly_squarefree_decomp = thm "poly_squarefree_decomp";
  24.176 -val poly_normalize = thm "poly_normalize";
  24.177 -val lemma_degree_zero = thm "lemma_degree_zero";
  24.178 -val degree_zero = thm "degree_zero";
  24.179 -val poly_roots_finite_set = thm "poly_roots_finite_set";
  24.180 -val poly_mono = thm "poly_mono";
  24.181 -*}
  24.182 -
  24.183  end
    25.1 --- a/src/HOL/Hyperreal/SEQ.thy	Fri Jun 02 20:12:59 2006 +0200
    25.2 +++ b/src/HOL/Hyperreal/SEQ.thy	Fri Jun 02 23:22:29 2006 +0200
    25.3 @@ -12,56 +12,55 @@
    25.4  imports NatStar
    25.5  begin
    25.6  
    25.7 -constdefs
    25.8 +definition
    25.9  
   25.10    LIMSEQ :: "[nat=>real,real] => bool"    ("((_)/ ----> (_))" [60, 60] 60)
   25.11      --{*Standard definition of convergence of sequence*}
   25.12 -  "X ----> L == (\<forall>r. 0 < r --> (\<exists>no. \<forall>n. no \<le> n --> \<bar>X n + -L\<bar> < r))"
   25.13 +  "X ----> L = (\<forall>r. 0 < r --> (\<exists>no. \<forall>n. no \<le> n --> \<bar>X n + -L\<bar> < r))"
   25.14  
   25.15    NSLIMSEQ :: "[nat=>real,real] => bool"    ("((_)/ ----NS> (_))" [60, 60] 60)
   25.16      --{*Nonstandard definition of convergence of sequence*}
   25.17 -  "X ----NS> L == (\<forall>N \<in> HNatInfinite. ( *f* X) N \<approx> hypreal_of_real L)"
   25.18 +  "X ----NS> L = (\<forall>N \<in> HNatInfinite. ( *f* X) N \<approx> hypreal_of_real L)"
   25.19  
   25.20    lim :: "(nat => real) => real"
   25.21      --{*Standard definition of limit using choice operator*}
   25.22 -  "lim X == (@L. (X ----> L))"
   25.23 +  "lim X = (SOME L. (X ----> L))"
   25.24  
   25.25    nslim :: "(nat => real) => real"
   25.26      --{*Nonstandard definition of limit using choice operator*}
   25.27 -  "nslim X == (@L. (X ----NS> L))"
   25.28 +  "nslim X = (SOME L. (X ----NS> L))"
   25.29  
   25.30    convergent :: "(nat => real) => bool"
   25.31      --{*Standard definition of convergence*}
   25.32 -  "convergent X == (\<exists>L. (X ----> L))"
   25.33 +  "convergent X = (\<exists>L. (X ----> L))"
   25.34  
   25.35    NSconvergent :: "(nat => real) => bool"
   25.36      --{*Nonstandard definition of convergence*}
   25.37 -  "NSconvergent X == (\<exists>L. (X ----NS> L))"
   25.38 +  "NSconvergent X = (\<exists>L. (X ----NS> L))"
   25.39  
   25.40    Bseq :: "(nat => real) => bool"
   25.41      --{*Standard definition for bounded sequence*}
   25.42 -  "Bseq X == \<exists>K>0.\<forall>n. \<bar>X n\<bar> \<le> K"
   25.43 +  "Bseq X = (\<exists>K>0.\<forall>n. \<bar>X n\<bar> \<le> K)"
   25.44  
   25.45    NSBseq :: "(nat=>real) => bool"
   25.46      --{*Nonstandard definition for bounded sequence*}
   25.47 -  "NSBseq X == (\<forall>N \<in> HNatInfinite. ( *f* X) N : HFinite)"
   25.48 +  "NSBseq X = (\<forall>N \<in> HNatInfinite. ( *f* X) N : HFinite)"
   25.49  
   25.50    monoseq :: "(nat=>real)=>bool"
   25.51      --{*Definition for monotonicity*}
   25.52 -  "monoseq X == (\<forall>m. \<forall>n\<ge>m. X m \<le> X n) | (\<forall>m. \<forall>n\<ge>m. X n \<le> X m)"
   25.53 +  "monoseq X = ((\<forall>m. \<forall>n\<ge>m. X m \<le> X n) | (\<forall>m. \<forall>n\<ge>m. X n \<le> X m))"
   25.54  
   25.55    subseq :: "(nat => nat) => bool"
   25.56      --{*Definition of subsequence*}
   25.57 -  "subseq f == \<forall>m. \<forall>n>m. (f m) < (f n)"
   25.58 +  "subseq f = (\<forall>m. \<forall>n>m. (f m) < (f n))"
   25.59  
   25.60    Cauchy :: "(nat => real) => bool"
   25.61      --{*Standard definition of the Cauchy condition*}
   25.62 -  "Cauchy X == \<forall>e>0. \<exists>M. \<forall>m \<ge> M. \<forall>n \<ge> M. abs((X m) + -(X n)) < e"
   25.63 +  "Cauchy X = (\<forall>e>0. \<exists>M. \<forall>m \<ge> M. \<forall>n \<ge> M. abs((X m) + -(X n)) < e)"
   25.64  
   25.65    NSCauchy :: "(nat => real) => bool"
   25.66      --{*Nonstandard definition*}
   25.67 -  "NSCauchy X == (\<forall>M \<in> HNatInfinite. \<forall>N \<in> HNatInfinite.
   25.68 -                      ( *f* X) M \<approx> ( *f* X) N)"
   25.69 +  "NSCauchy X = (\<forall>M \<in> HNatInfinite. \<forall>N \<in> HNatInfinite. ( *f* X) M \<approx> ( *f* X) N)"
   25.70  
   25.71  
   25.72  
   25.73 @@ -1195,125 +1194,4 @@
   25.74  Goal "subseq f ==> \<exists>n. N1 \<le> n & N2 \<le> f(n)";
   25.75   ---------------------------------------------------------------***)
   25.76  
   25.77 -
   25.78 -ML
   25.79 -{*
   25.80 -val Cauchy_def = thm"Cauchy_def";
   25.81 -val SEQ_Infinitesimal = thm "SEQ_Infinitesimal";
   25.82 -val LIMSEQ_iff = thm "LIMSEQ_iff";
   25.83 -val NSLIMSEQ_iff = thm "NSLIMSEQ_iff";
   25.84 -val LIMSEQ_NSLIMSEQ = thm "LIMSEQ_NSLIMSEQ";
   25.85 -val NSLIMSEQ_finite_set = thm "NSLIMSEQ_finite_set";
   25.86 -val Compl_less_set = thm "Compl_less_set";
   25.87 -val FreeUltrafilterNat_NSLIMSEQ = thm "FreeUltrafilterNat_NSLIMSEQ";
   25.88 -val HNatInfinite_NSLIMSEQ = thm "HNatInfinite_NSLIMSEQ";
   25.89 -val NSLIMSEQ_LIMSEQ = thm "NSLIMSEQ_LIMSEQ";
   25.90 -val LIMSEQ_NSLIMSEQ_iff = thm "LIMSEQ_NSLIMSEQ_iff";
   25.91 -val NSLIMSEQ_const = thm "NSLIMSEQ_const";
   25.92 -val LIMSEQ_const = thm "LIMSEQ_const";
   25.93 -val NSLIMSEQ_add = thm "NSLIMSEQ_add";
   25.94 -val LIMSEQ_add = thm "LIMSEQ_add";
   25.95 -val NSLIMSEQ_mult = thm "NSLIMSEQ_mult";
   25.96 -val LIMSEQ_mult = thm "LIMSEQ_mult";
   25.97 -val NSLIMSEQ_minus = thm "NSLIMSEQ_minus";
   25.98 -val LIMSEQ_minus = thm "LIMSEQ_minus";
   25.99 -val LIMSEQ_minus_cancel = thm "LIMSEQ_minus_cancel";
  25.100 -val NSLIMSEQ_minus_cancel = thm "NSLIMSEQ_minus_cancel";
  25.101 -val NSLIMSEQ_add_minus = thm "NSLIMSEQ_add_minus";
  25.102 -val LIMSEQ_add_minus = thm "LIMSEQ_add_minus";
  25.103 -val LIMSEQ_diff = thm "LIMSEQ_diff";
  25.104 -val NSLIMSEQ_diff = thm "NSLIMSEQ_diff";
  25.105 -val NSLIMSEQ_inverse = thm "NSLIMSEQ_inverse";
  25.106 -val LIMSEQ_inverse = thm "LIMSEQ_inverse";
  25.107 -val NSLIMSEQ_mult_inverse = thm "NSLIMSEQ_mult_inverse";
  25.108 -val LIMSEQ_divide = thm "LIMSEQ_divide";
  25.109 -val NSLIMSEQ_unique = thm "NSLIMSEQ_unique";
  25.110 -val LIMSEQ_unique = thm "LIMSEQ_unique";
  25.111 -val limI = thm "limI";
  25.112 -val nslimI = thm "nslimI";
  25.113 -val lim_nslim_iff = thm "lim_nslim_iff";
  25.114 -val convergentD = thm "convergentD";
  25.115 -val convergentI = thm "convergentI";
  25.116 -val NSconvergentD = thm "NSconvergentD";
  25.117 -val NSconvergentI = thm "NSconvergentI";
  25.118 -val convergent_NSconvergent_iff = thm "convergent_NSconvergent_iff";
  25.119 -val NSconvergent_NSLIMSEQ_iff = thm "NSconvergent_NSLIMSEQ_iff";
  25.120 -val convergent_LIMSEQ_iff = thm "convergent_LIMSEQ_iff";
  25.121 -val subseq_Suc_iff = thm "subseq_Suc_iff";
  25.122 -val monoseq_Suc = thm "monoseq_Suc";
  25.123 -val monoI1 = thm "monoI1";
  25.124 -val monoI2 = thm "monoI2";
  25.125 -val mono_SucI1 = thm "mono_SucI1";
  25.126 -val mono_SucI2 = thm "mono_SucI2";
  25.127 -val BseqD = thm "BseqD";
  25.128 -val BseqI = thm "BseqI";
  25.129 -val Bseq_iff = thm "Bseq_iff";
  25.130 -val Bseq_iff1a = thm "Bseq_iff1a";
  25.131 -val NSBseqD = thm "NSBseqD";
  25.132 -val NSBseqI = thm "NSBseqI";
  25.133 -val Bseq_NSBseq = thm "Bseq_NSBseq";
  25.134 -val real_seq_to_hypreal_HInfinite = thm "real_seq_to_hypreal_HInfinite";
  25.135 -val HNatInfinite_skolem_f = thm "HNatInfinite_skolem_f";
  25.136 -val NSBseq_Bseq = thm "NSBseq_Bseq";
  25.137 -val Bseq_NSBseq_iff = thm "Bseq_NSBseq_iff";
  25.138 -val NSconvergent_NSBseq = thm "NSconvergent_NSBseq";
  25.139 -val convergent_Bseq = thm "convergent_Bseq";
  25.140 -val Bseq_isUb = thm "Bseq_isUb";
  25.141 -val Bseq_isLub = thm "Bseq_isLub";
  25.142 -val NSBseq_isUb = thm "NSBseq_isUb";
  25.143 -val NSBseq_isLub = thm "NSBseq_isLub";
  25.144 -val Bmonoseq_LIMSEQ = thm "Bmonoseq_LIMSEQ";
  25.145 -val Bmonoseq_NSLIMSEQ = thm "Bmonoseq_NSLIMSEQ";
  25.146 -val Bseq_mono_convergent = thm "Bseq_mono_convergent";
  25.147 -val NSBseq_mono_NSconvergent = thm "NSBseq_mono_NSconvergent";
  25.148 -val convergent_minus_iff = thm "convergent_minus_iff";
  25.149 -val Bseq_minus_iff = thm "Bseq_minus_iff";
  25.150 -val Bseq_monoseq_convergent = thm "Bseq_monoseq_convergent";
  25.151 -val Bseq_iff2 = thm "Bseq_iff2";
  25.152 -val Bseq_iff3 = thm "Bseq_iff3";
  25.153 -val BseqI2 = thm "BseqI2";
  25.154 -val Cauchy_NSCauchy = thm "Cauchy_NSCauchy";
  25.155 -val NSCauchy_Cauchy = thm "NSCauchy_Cauchy";
  25.156 -val NSCauchy_Cauchy_iff = thm "NSCauchy_Cauchy_iff";
  25.157 -val less_Suc_cancel_iff = thm "less_Suc_cancel_iff";
  25.158 -val SUP_rabs_subseq = thm "SUP_rabs_subseq";
  25.159 -val Cauchy_Bseq = thm "Cauchy_Bseq";
  25.160 -val NSCauchy_NSBseq = thm "NSCauchy_NSBseq";
  25.161 -val NSCauchy_NSconvergent_iff = thm "NSCauchy_NSconvergent_iff";
  25.162 -val Cauchy_convergent_iff = thm "Cauchy_convergent_iff";
  25.163 -val NSLIMSEQ_le = thm "NSLIMSEQ_le";
  25.164 -val LIMSEQ_le = thm "LIMSEQ_le";
  25.165 -val LIMSEQ_le_const = thm "LIMSEQ_le_const";
  25.166 -val NSLIMSEQ_le_const = thm "NSLIMSEQ_le_const";
  25.167 -val LIMSEQ_le_const2 = thm "LIMSEQ_le_const2";
  25.168 -val NSLIMSEQ_le_const2 = thm "NSLIMSEQ_le_const2";
  25.169 -val NSLIMSEQ_Suc = thm "NSLIMSEQ_Suc";
  25.170 -val LIMSEQ_Suc = thm "LIMSEQ_Suc";
  25.171 -val NSLIMSEQ_imp_Suc = thm "NSLIMSEQ_imp_Suc";
  25.172 -val LIMSEQ_imp_Suc = thm "LIMSEQ_imp_Suc";
  25.173 -val LIMSEQ_Suc_iff = thm "LIMSEQ_Suc_iff";
  25.174 -val NSLIMSEQ_Suc_iff = thm "NSLIMSEQ_Suc_iff";
  25.175 -val LIMSEQ_rabs_zero = thm "LIMSEQ_rabs_zero";
  25.176 -val NSLIMSEQ_rabs_zero = thm "NSLIMSEQ_rabs_zero";
  25.177 -val NSLIMSEQ_imp_rabs = thm "NSLIMSEQ_imp_rabs";
  25.178 -val LIMSEQ_imp_rabs = thm "LIMSEQ_imp_rabs";
  25.179 -val LIMSEQ_inverse_zero = thm "LIMSEQ_inverse_zero";
  25.180 -val NSLIMSEQ_inverse_zero = thm "NSLIMSEQ_inverse_zero";
  25.181 -val LIMSEQ_inverse_real_of_nat = thm "LIMSEQ_inverse_real_of_nat";
  25.182 -val NSLIMSEQ_inverse_real_of_nat = thm "NSLIMSEQ_inverse_real_of_nat";
  25.183 -val LIMSEQ_inverse_real_of_nat_add = thm "LIMSEQ_inverse_real_of_nat_add";
  25.184 -val NSLIMSEQ_inverse_real_of_nat_add = thm "NSLIMSEQ_inverse_real_of_nat_add";
  25.185 -val LIMSEQ_inverse_real_of_nat_add_minus = thm "LIMSEQ_inverse_real_of_nat_add_minus";
  25.186 -val NSLIMSEQ_inverse_real_of_nat_add_minus = thm "NSLIMSEQ_inverse_real_of_nat_add_minus";
  25.187 -val LIMSEQ_inverse_real_of_nat_add_minus_mult = thm "LIMSEQ_inverse_real_of_nat_add_minus_mult";
  25.188 -val NSLIMSEQ_inverse_real_of_nat_add_minus_mult = thm "NSLIMSEQ_inverse_real_of_nat_add_minus_mult";
  25.189 -val NSLIMSEQ_pow = thm "NSLIMSEQ_pow";
  25.190 -val LIMSEQ_pow = thm "LIMSEQ_pow";
  25.191 -val Bseq_realpow = thm "Bseq_realpow";
  25.192 -val monoseq_realpow = thm "monoseq_realpow";
  25.193 -val convergent_realpow = thm "convergent_realpow";
  25.194 -val NSLIMSEQ_realpow_zero = thm "NSLIMSEQ_realpow_zero";
  25.195 -*}
  25.196 -
  25.197 -
  25.198  end
    26.1 --- a/src/HOL/Hyperreal/Series.thy	Fri Jun 02 20:12:59 2006 +0200
    26.2 +++ b/src/HOL/Hyperreal/Series.thy	Fri Jun 02 23:22:29 2006 +0200
    26.3 @@ -16,15 +16,15 @@
    26.4  declare atLeastLessThan_iff[iff]
    26.5  declare setsum_op_ivl_Suc[simp]
    26.6  
    26.7 -constdefs
    26.8 +definition
    26.9     sums  :: "(nat => real) => real => bool"     (infixr "sums" 80)
   26.10 -   "f sums s  == (%n. setsum f {0..<n}) ----> s"
   26.11 +   "f sums s = (%n. setsum f {0..<n}) ----> s"
   26.12  
   26.13     summable :: "(nat=>real) => bool"
   26.14 -   "summable f == (\<exists>s. f sums s)"
   26.15 +   "summable f = (\<exists>s. f sums s)"
   26.16  
   26.17     suminf   :: "(nat=>real) => real"
   26.18 -   "suminf f == SOME s. f sums s"
   26.19 +   "suminf f = (SOME s. f sums s)"
   26.20  
   26.21  syntax
   26.22    "_suminf" :: "idt => real => real"    ("\<Sum>_. _" [0, 10] 10)
   26.23 @@ -500,48 +500,4 @@
   26.24  apply (auto intro: DERIV_add)
   26.25  done
   26.26  
   26.27 -ML
   26.28 -{*
   26.29 -val sums_def = thm"sums_def";
   26.30 -val summable_def = thm"summable_def";
   26.31 -val suminf_def = thm"suminf_def";
   26.32 -
   26.33 -val sumr_minus_one_realpow_zero = thm "sumr_minus_one_realpow_zero";
   26.34 -val sumr_one_lb_realpow_zero = thm "sumr_one_lb_realpow_zero";
   26.35 -val sumr_group = thm "sumr_group";
   26.36 -val sums_summable = thm "sums_summable";
   26.37 -val summable_sums = thm "summable_sums";
   26.38 -val summable_sumr_LIMSEQ_suminf = thm "summable_sumr_LIMSEQ_suminf";
   26.39 -val sums_unique = thm "sums_unique";
   26.40 -val series_zero = thm "series_zero";
   26.41 -val sums_mult = thm "sums_mult";
   26.42 -val sums_divide = thm "sums_divide";
   26.43 -val sums_diff = thm "sums_diff";
   26.44 -val suminf_mult = thm "suminf_mult";
   26.45 -val suminf_mult2 = thm "suminf_mult2";
   26.46 -val suminf_diff = thm "suminf_diff";
   26.47 -val sums_minus = thm "sums_minus";
   26.48 -val sums_group = thm "sums_group";
   26.49 -val sumr_pos_lt_pair_lemma = thm "sumr_pos_lt_pair_lemma";
   26.50 -val sumr_pos_lt_pair = thm "sumr_pos_lt_pair";
   26.51 -val series_pos_le = thm "series_pos_le";
   26.52 -val series_pos_less = thm "series_pos_less";
   26.53 -val sumr_geometric = thm "sumr_geometric";
   26.54 -val geometric_sums = thm "geometric_sums";
   26.55 -val summable_convergent_sumr_iff = thm "summable_convergent_sumr_iff";
   26.56 -val summable_Cauchy = thm "summable_Cauchy";
   26.57 -val summable_comparison_test = thm "summable_comparison_test";
   26.58 -val summable_rabs_comparison_test = thm "summable_rabs_comparison_test";
   26.59 -val summable_le = thm "summable_le";
   26.60 -val summable_le2 = thm "summable_le2";
   26.61 -val summable_rabs_cancel = thm "summable_rabs_cancel";
   26.62 -val summable_rabs = thm "summable_rabs";
   26.63 -val rabs_ratiotest_lemma = thm "rabs_ratiotest_lemma";
   26.64 -val le_Suc_ex = thm "le_Suc_ex";
   26.65 -val le_Suc_ex_iff = thm "le_Suc_ex_iff";
   26.66 -val ratio_test_lemma2 = thm "ratio_test_lemma2";
   26.67 -val ratio_test = thm "ratio_test";
   26.68 -val DERIV_sumr = thm "DERIV_sumr";
   26.69 -*}
   26.70 -
   26.71  end
    27.1 --- a/src/HOL/Hyperreal/Star.thy	Fri Jun 02 20:12:59 2006 +0200
    27.2 +++ b/src/HOL/Hyperreal/Star.thy	Fri Jun 02 23:22:29 2006 +0200
    27.3 @@ -10,26 +10,24 @@
    27.4  imports NSA
    27.5  begin
    27.6  
    27.7 -constdefs
    27.8 +definition
    27.9      (* internal sets *)
   27.10 -    starset_n :: "(nat => 'a set) => 'a star set"        ("*sn* _" [80] 80)
   27.11 -    "*sn* As == Iset (star_n As)"
   27.12 +  starset_n :: "(nat => 'a set) => 'a star set"        ("*sn* _" [80] 80)
   27.13 +  "*sn* As = Iset (star_n As)"
   27.14  
   27.15 -    InternalSets :: "'a star set set"
   27.16 -    "InternalSets == {X. \<exists>As. X = *sn* As}"
   27.17 +  InternalSets :: "'a star set set"
   27.18 +  "InternalSets = {X. \<exists>As. X = *sn* As}"
   27.19  
   27.20 -    (* nonstandard extension of function *)
   27.21 -    is_starext  :: "['a star => 'a star, 'a => 'a] => bool"
   27.22 -    "is_starext F f == (\<forall>x y. \<exists>X \<in> Rep_star(x). \<exists>Y \<in> Rep_star(y).
   27.23 +  (* nonstandard extension of function *)
   27.24 +  is_starext  :: "['a star => 'a star, 'a => 'a] => bool"
   27.25 +  "is_starext F f = (\<forall>x y. \<exists>X \<in> Rep_star(x). \<exists>Y \<in> Rep_star(y).
   27.26                          ((y = (F x)) = ({n. Y n = f(X n)} : FreeUltrafilterNat)))"
   27.27 -    (* internal functions *)
   27.28 -    starfun_n :: "(nat => ('a => 'b)) => 'a star => 'b star"
   27.29 -                 ("*fn* _" [80] 80)
   27.30 -    "*fn* F == Ifun (star_n F)"
   27.31 +  (* internal functions *)
   27.32 +  starfun_n :: "(nat => ('a => 'b)) => 'a star => 'b star"   ("*fn* _" [80] 80)
   27.33 +  "*fn* F = Ifun (star_n F)"
   27.34  
   27.35 -    InternalFuns :: "('a star => 'b star) set"
   27.36 -    "InternalFuns == {X. \<exists>F. X = *fn* F}"
   27.37 -
   27.38 +  InternalFuns :: "('a star => 'b star) set"
   27.39 +  "InternalFuns = {X. \<exists>F. X = *fn* F}"
   27.40  
   27.41  
   27.42  (*--------------------------------------------------------
   27.43 @@ -353,66 +351,4 @@
   27.44  apply (auto simp add: starfun star_n_eq_iff)
   27.45  done
   27.46  
   27.47 -ML
   27.48 -{*
   27.49 -val starset_n_def = thm"starset_n_def";
   27.50 -val InternalSets_def = thm"InternalSets_def";
   27.51 -val is_starext_def = thm"is_starext_def";
   27.52 -val starfun_n_def = thm"starfun_n_def";
   27.53 -val InternalFuns_def = thm"InternalFuns_def";
   27.54 -
   27.55 -val no_choice = thm "no_choice";
   27.56 -val STAR_UNIV_set = thm "STAR_UNIV_set";
   27.57 -val STAR_empty_set = thm "STAR_empty_set";
   27.58 -val STAR_Un = thm "STAR_Un";
   27.59 -val STAR_Int = thm "STAR_Int";
   27.60 -val STAR_Compl = thm "STAR_Compl";
   27.61 -val STAR_mem_Compl = thm "STAR_mem_Compl";
   27.62 -val STAR_diff = thm "STAR_diff";
   27.63 -val STAR_subset = thm "STAR_subset";
   27.64 -val STAR_mem = thm "STAR_mem";
   27.65 -val STAR_star_of_image_subset = thm "STAR_star_of_image_subset";
   27.66 -val STAR_hypreal_of_real_Int = thm "STAR_hypreal_of_real_Int";
   27.67 -val STAR_real_seq_to_hypreal = thm "STAR_real_seq_to_hypreal";
   27.68 -val STAR_singleton = thm "STAR_singleton";
   27.69 -val STAR_not_mem = thm "STAR_not_mem";
   27.70 -val STAR_subset_closed = thm "STAR_subset_closed";
   27.71 -val starset_n_starset = thm "starset_n_starset";
   27.72 -val starfun_n_starfun = thm "starfun_n_starfun";
   27.73 -val hrabs_is_starext_rabs = thm "hrabs_is_starext_rabs";
   27.74 -val Rep_star_FreeUltrafilterNat = thm "Rep_star_FreeUltrafilterNat";
   27.75 -val starfun = thm "starfun";
   27.76 -val starfun_mult = thm "starfun_mult";
   27.77 -val starfun_add = thm "starfun_add";
   27.78 -val starfun_minus = thm "starfun_minus";
   27.79 -val starfun_add_minus = thm "starfun_add_minus";
   27.80 -val starfun_diff = thm "starfun_diff";
   27.81 -val starfun_o2 = thm "starfun_o2";
   27.82 -val starfun_o = thm "starfun_o";
   27.83 -val starfun_const_fun = thm "starfun_const_fun";
   27.84 -val starfun_Idfun_approx = thm "starfun_Idfun_approx";
   27.85 -val starfun_Id = thm "starfun_Id";
   27.86 -val is_starext_starfun = thm "is_starext_starfun";
   27.87 -val is_starfun_starext = thm "is_starfun_starext";
   27.88 -val is_starext_starfun_iff = thm "is_starext_starfun_iff";
   27.89 -val starfun_eq = thm "starfun_eq";
   27.90 -val starfun_approx = thm "starfun_approx";
   27.91 -val starfun_lambda_cancel = thm "starfun_lambda_cancel";
   27.92 -val starfun_lambda_cancel2 = thm "starfun_lambda_cancel2";
   27.93 -val starfun_mult_HFinite_approx = thm "starfun_mult_HFinite_approx";
   27.94 -val starfun_add_approx = thm "starfun_add_approx";
   27.95 -val starfun_rabs_hrabs = thm "starfun_rabs_hrabs";
   27.96 -val starfun_inverse_inverse = thm "starfun_inverse_inverse";
   27.97 -val starfun_inverse = thm "starfun_inverse";
   27.98 -val starfun_divide = thm "starfun_divide";
   27.99 -val starfun_inverse2 = thm "starfun_inverse2";
  27.100 -val starfun_mem_starset = thm "starfun_mem_starset";
  27.101 -val hypreal_hrabs = thm "hypreal_hrabs";
  27.102 -val STAR_rabs_add_minus = thm "STAR_rabs_add_minus";
  27.103 -val STAR_starfun_rabs_add_minus = thm "STAR_starfun_rabs_add_minus";
  27.104 -val Infinitesimal_FreeUltrafilterNat_iff2 = thm "Infinitesimal_FreeUltrafilterNat_iff2";
  27.105 -val approx_FreeUltrafilterNat_iff = thm "approx_FreeUltrafilterNat_iff";
  27.106 -val inj_starfun = thm "inj_starfun";
  27.107 -*}
  27.108 -
  27.109  end
    28.1 --- a/src/HOL/Hyperreal/StarDef.thy	Fri Jun 02 20:12:59 2006 +0200
    28.2 +++ b/src/HOL/Hyperreal/StarDef.thy	Fri Jun 02 23:22:29 2006 +0200
    28.3 @@ -12,19 +12,19 @@
    28.4  
    28.5  subsection {* A Free Ultrafilter over the Naturals *}
    28.6  
    28.7 -constdefs
    28.8 +definition
    28.9    FreeUltrafilterNat :: "nat set set"  ("\<U>")
   28.10 -    "\<U> \<equiv> SOME U. freeultrafilter U"
   28.11 +  "\<U> = (SOME U. freeultrafilter U)"
   28.12  
   28.13  lemma freeultrafilter_FUFNat: "freeultrafilter \<U>"
   28.14   apply (unfold FreeUltrafilterNat_def)
   28.15   apply (rule someI_ex)
   28.16   apply (rule freeultrafilter_Ex)
   28.17   apply (rule nat_infinite)
   28.18 -done
   28.19 + done
   28.20  
   28.21  interpretation FUFNat: freeultrafilter [FreeUltrafilterNat]
   28.22 -by (cut_tac [!] freeultrafilter_FUFNat, simp_all add: freeultrafilter_def)
   28.23 +  using freeultrafilter_FUFNat by (simp_all add: freeultrafilter_def)
   28.24  
   28.25  text {* This rule takes the place of the old ultra tactic *}
   28.26  
   28.27 @@ -35,16 +35,16 @@
   28.28  
   28.29  subsection {* Definition of @{text star} type constructor *}
   28.30  
   28.31 -constdefs
   28.32 +definition
   28.33    starrel :: "((nat \<Rightarrow> 'a) \<times> (nat \<Rightarrow> 'a)) set"
   28.34 -    "starrel \<equiv> {(X,Y). {n. X n = Y n} \<in> \<U>}"
   28.35 +  "starrel = {(X,Y). {n. X n = Y n} \<in> \<U>}"
   28.36  
   28.37  typedef 'a star = "(UNIV :: (nat \<Rightarrow> 'a) set) // starrel"
   28.38  by (auto intro: quotientI)
   28.39  
   28.40 -constdefs
   28.41 +definition
   28.42    star_n :: "(nat \<Rightarrow> 'a) \<Rightarrow> 'a star"
   28.43 -  "star_n X \<equiv> Abs_star (starrel `` {X})"
   28.44 +  "star_n X = Abs_star (starrel `` {X})"
   28.45  
   28.46  theorem star_cases [case_names star_n, cases type: star]:
   28.47    "(\<And>X. x = star_n X \<Longrightarrow> P) \<Longrightarrow> P"
   28.48 @@ -156,9 +156,9 @@
   28.49  
   28.50  subsection {* Standard elements *}
   28.51  
   28.52 -constdefs
   28.53 +definition
   28.54    star_of :: "'a \<Rightarrow> 'a star"
   28.55 -  "star_of x \<equiv> star_n (\<lambda>n. x)"
   28.56 +  "star_of x == star_n (\<lambda>n. x)"
   28.57  
   28.58  text {* Transfer tactic should remove occurrences of @{term star_of} *}
   28.59  setup {* Transfer.add_const "StarDef.star_of" *}
   28.60 @@ -170,7 +170,7 @@
   28.61  
   28.62  subsection {* Internal functions *}
   28.63  
   28.64 -constdefs
   28.65 +definition
   28.66    Ifun :: "('a \<Rightarrow> 'b) star \<Rightarrow> 'a star \<Rightarrow> 'b star" ("_ \<star> _" [300,301] 300)
   28.67    "Ifun f \<equiv> \<lambda>x. Abs_star
   28.68         (\<Union>F\<in>Rep_star f. \<Union>X\<in>Rep_star x. starrel``{\<lambda>n. F n (X n)})"
   28.69 @@ -195,14 +195,14 @@
   28.70  
   28.71  text {* Nonstandard extensions of functions *}
   28.72  
   28.73 -constdefs
   28.74 +definition
   28.75    starfun :: "('a \<Rightarrow> 'b) \<Rightarrow> ('a star \<Rightarrow> 'b star)"
   28.76      ("*f* _" [80] 80)
   28.77 -  "starfun f \<equiv> \<lambda>x. star_of f \<star> x"
   28.78 +  "starfun f == \<lambda>x. star_of f \<star> x"
   28.79  
   28.80    starfun2 :: "('a \<Rightarrow> 'b \<Rightarrow> 'c) \<Rightarrow> ('a star \<Rightarrow> 'b star \<Rightarrow> 'c star)"
   28.81      ("*f2* _" [80] 80)
   28.82 -  "starfun2 f \<equiv> \<lambda>x y. star_of f \<star> x \<star> y"
   28.83 +  "starfun2 f == \<lambda>x y. star_of f \<star> x \<star> y"
   28.84  
   28.85  declare starfun_def [transfer_unfold]
   28.86  declare starfun2_def [transfer_unfold]
   28.87 @@ -223,9 +223,9 @@
   28.88  
   28.89  subsection {* Internal predicates *}
   28.90  
   28.91 -constdefs
   28.92 +definition
   28.93    unstar :: "bool star \<Rightarrow> bool"
   28.94 -  "unstar b \<equiv> b = star_of True"
   28.95 +  "unstar b = (b = star_of True)"
   28.96  
   28.97  lemma unstar_star_n: "unstar (star_n P) = ({n. P n} \<in> \<U>)"
   28.98  by (simp add: unstar_def star_of_def star_n_eq_iff)
   28.99 @@ -240,14 +240,14 @@
  28.100    "p \<equiv> star_n P \<Longrightarrow> unstar p \<equiv> {n. P n} \<in> \<U>"
  28.101  by (simp only: unstar_star_n)
  28.102  
  28.103 -constdefs
  28.104 +definition
  28.105    starP :: "('a \<Rightarrow> bool) \<Rightarrow> 'a star \<Rightarrow> bool"
  28.106      ("*p* _" [80] 80)
  28.107 -  "*p* P \<equiv> \<lambda>x. unstar (star_of P \<star> x)"
  28.108 +  "*p* P = (\<lambda>x. unstar (star_of P \<star> x))"
  28.109  
  28.110    starP2 :: "('a \<Rightarrow> 'b \<Rightarrow> bool) \<Rightarrow> 'a star \<Rightarrow> 'b star \<Rightarrow> bool"
  28.111      ("*p2* _" [80] 80)
  28.112 -  "*p2* P \<equiv> \<lambda>x y. unstar (star_of P \<star> x \<star> y)"
  28.113 +  "*p2* P = (\<lambda>x y. unstar (star_of P \<star> x \<star> y))"
  28.114  
  28.115  declare starP_def [transfer_unfold]
  28.116  declare starP2_def [transfer_unfold]
  28.117 @@ -268,9 +268,9 @@
  28.118  
  28.119  subsection {* Internal sets *}
  28.120  
  28.121 -constdefs
  28.122 +definition
  28.123    Iset :: "'a set star \<Rightarrow> 'a star set"
  28.124 -  "Iset A \<equiv> {x. ( *p2* op \<in>) x A}"
  28.125 +  "Iset A = {x. ( *p2* op \<in>) x A}"
  28.126  
  28.127  lemma Iset_star_n:
  28.128    "(star_n X \<in> Iset (star_n A)) = ({n. X n \<in> A n} \<in> \<U>)"
  28.129 @@ -309,9 +309,10 @@
  28.130  by simp
  28.131  
  28.132  text {* Nonstandard extensions of sets. *}
  28.133 -constdefs
  28.134 +
  28.135 +definition
  28.136    starset :: "'a set \<Rightarrow> 'a star set" ("*s* _" [80] 80)
  28.137 -  "starset A \<equiv> Iset (star_of A)"
  28.138 +  "starset A = Iset (star_of A)"
  28.139  
  28.140  declare starset_def [transfer_unfold]
  28.141  
    29.1 --- a/src/HOL/Hyperreal/Transcendental.thy	Fri Jun 02 20:12:59 2006 +0200
    29.2 +++ b/src/HOL/Hyperreal/Transcendental.thy	Fri Jun 02 23:22:29 2006 +0200
    29.3 @@ -11,44 +11,44 @@
    29.4  imports NthRoot Fact HSeries EvenOdd Lim
    29.5  begin
    29.6  
    29.7 -constdefs
    29.8 -    root :: "[nat,real] => real"
    29.9 -    "root n x == (@u. ((0::real) < x --> 0 < u) & (u ^ n = x))"
   29.10 -
   29.11 -    sqrt :: "real => real"
   29.12 -    "sqrt x == root 2 x"
   29.13 -
   29.14 -    exp :: "real => real"
   29.15 -    "exp x == \<Sum>n. inverse(real (fact n)) * (x ^ n)"
   29.16 -
   29.17 -    sin :: "real => real"
   29.18 -    "sin x == \<Sum>n. (if even(n) then 0 else
   29.19 -             ((- 1) ^ ((n - Suc 0) div 2))/(real (fact n))) * x ^ n"
   29.20 +definition
   29.21 +  root :: "[nat,real] => real"
   29.22 +  "root n x = (SOME u. ((0::real) < x --> 0 < u) & (u ^ n = x))"
   29.23 +
   29.24 +  sqrt :: "real => real"
   29.25 +  "sqrt x = root 2 x"
   29.26 +
   29.27 +  exp :: "real => real"
   29.28 +  "exp x = (\<Sum>n. inverse(real (fact n)) * (x ^ n))"
   29.29 +
   29.30 +  sin :: "real => real"
   29.31 +  "sin x = (\<Sum>n. (if even(n) then 0 else
   29.32 +             ((- 1) ^ ((n - Suc 0) div 2))/(real (fact n))) * x ^ n)"
   29.33   
   29.34 -    diffs :: "(nat => real) => nat => real"
   29.35 -    "diffs c == (%n. real (Suc n) * c(Suc n))"
   29.36 -
   29.37 -    cos :: "real => real"
   29.38 -    "cos x == \<Sum>n. (if even(n) then ((- 1) ^ (n div 2))/(real (fact n)) 
   29.39 -                          else 0) * x ^ n"
   29.40 +  diffs :: "(nat => real) => nat => real"
   29.41 +  "diffs c = (%n. real (Suc n) * c(Suc n))"
   29.42 +
   29.43 +  cos :: "real => real"
   29.44 +  "cos x = (\<Sum>n. (if even(n) then ((- 1) ^ (n div 2))/(real (fact n)) 
   29.45 +                            else 0) * x ^ n)"
   29.46    
   29.47 -    ln :: "real => real"
   29.48 -    "ln x == (@u. exp u = x)"
   29.49 -
   29.50 -    pi :: "real"
   29.51 -    "pi == 2 * (@x. 0 \<le> (x::real) & x \<le> 2 & cos x = 0)"
   29.52 -
   29.53 -    tan :: "real => real"
   29.54 -    "tan x == (sin x)/(cos x)"
   29.55 -
   29.56 -    arcsin :: "real => real"
   29.57 -    "arcsin y == (@x. -(pi/2) \<le> x & x \<le> pi/2 & sin x = y)"
   29.58 -
   29.59 -    arcos :: "real => real"
   29.60 -    "arcos y == (@x. 0 \<le> x & x \<le> pi & cos x = y)"
   29.61 +  ln :: "real => real"
   29.62 +  "ln x = (SOME u. exp u = x)"
   29.63 +
   29.64 +  pi :: "real"
   29.65 +  "pi = 2 * (@x. 0 \<le> (x::real) & x \<le> 2 & cos x = 0)"
   29.66 +
   29.67 +  tan :: "real => real"
   29.68 +  "tan x = (sin x)/(cos x)"
   29.69 +
   29.70 +  arcsin :: "real => real"
   29.71 +  "arcsin y = (SOME x. -(pi/2) \<le> x & x \<le> pi/2 & sin x = y)"
   29.72 +
   29.73 +  arcos :: "real => real"
   29.74 +  "arcos y = (SOME x. 0 \<le> x & x \<le> pi & cos x = y)"
   29.75       
   29.76 -    arctan :: "real => real"
   29.77 -    "arctan y == (@x. -(pi/2) < x & x < pi/2 & tan x = y)"
   29.78 +  arctan :: "real => real"
   29.79 +  "arctan y = (SOME x. -(pi/2) < x & x < pi/2 & tan x = y)"
   29.80  
   29.81  
   29.82  lemma real_root_zero [simp]: "root (Suc n) 0 = 0"
   29.83 @@ -2578,298 +2578,5 @@
   29.84  apply (drule_tac [3] LIM_fun_gt_zero)
   29.85  apply force+
   29.86  done
   29.87 -
   29.88 -ML
   29.89 -{*
   29.90 -val inverse_unique = thm "inverse_unique";
   29.91 -val real_root_zero = thm "real_root_zero";
   29.92 -val real_root_pow_pos = thm "real_root_pow_pos";
   29.93 -val real_root_pow_pos2 = thm "real_root_pow_pos2";
   29.94 -val real_root_pos = thm "real_root_pos";
   29.95 -val real_root_pos2 = thm "real_root_pos2";
   29.96 -val real_root_pos_pos = thm "real_root_pos_pos";
   29.97 -val real_root_pos_pos_le = thm "real_root_pos_pos_le";
   29.98 -val real_root_one = thm "real_root_one";
   29.99 -val root_2_eq = thm "root_2_eq";
  29.100 -val real_sqrt_zero = thm "real_sqrt_zero";
  29.101 -val real_sqrt_one = thm "real_sqrt_one";
  29.102 -val real_sqrt_pow2_iff = thm "real_sqrt_pow2_iff";
  29.103 -val real_sqrt_pow2 = thm "real_sqrt_pow2";
  29.104 -val real_sqrt_abs_abs = thm "real_sqrt_abs_abs";
  29.105 -val real_pow_sqrt_eq_sqrt_pow = thm "real_pow_sqrt_eq_sqrt_pow";
  29.106 -val real_pow_sqrt_eq_sqrt_abs_pow2 = thm "real_pow_sqrt_eq_sqrt_abs_pow2";
  29.107 -val real_sqrt_pow_abs = thm "real_sqrt_pow_abs";
  29.108 -val not_real_square_gt_zero = thm "not_real_square_gt_zero";
  29.109 -val real_sqrt_gt_zero = thm "real_sqrt_gt_zero";
  29.110 -val real_sqrt_ge_zero = thm "real_sqrt_ge_zero";
  29.111 -val sqrt_eqI = thm "sqrt_eqI";
  29.112 -val real_sqrt_mult_distrib = thm "real_sqrt_mult_distrib";
  29.113 -val real_sqrt_mult_distrib2 = thm "real_sqrt_mult_distrib2";
  29.114 -val real_sqrt_sum_squares_ge_zero = thm "real_sqrt_sum_squares_ge_zero";
  29.115 -val real_sqrt_sum_squares_mult_ge_zero = thm "real_sqrt_sum_squares_mult_ge_zero";
  29.116 -val real_sqrt_sum_squares_mult_squared_eq = thm "real_sqrt_sum_squares_mult_squared_eq";
  29.117 -val real_sqrt_abs = thm "real_sqrt_abs";
  29.118 -val real_sqrt_abs2 = thm "real_sqrt_abs2";
  29.119 -val real_sqrt_pow2_gt_zero = thm "real_sqrt_pow2_gt_zero";
  29.120 -val real_sqrt_not_eq_zero = thm "real_sqrt_not_eq_zero";
  29.121 -val real_inv_sqrt_pow2 = thm "real_inv_sqrt_pow2";
  29.122 -val real_sqrt_eq_zero_cancel = thm "real_sqrt_eq_zero_cancel";
  29.123 -val real_sqrt_eq_zero_cancel_iff = thm "real_sqrt_eq_zero_cancel_iff";
  29.124 -val real_sqrt_sum_squares_ge1 = thm "real_sqrt_sum_squares_ge1";
  29.125 -val real_sqrt_sum_squares_ge2 = thm "real_sqrt_sum_squares_ge2";
  29.126 -val real_sqrt_ge_one = thm "real_sqrt_ge_one";
  29.127 -val summable_exp = thm "summable_exp";
  29.128 -val summable_sin = thm "summable_sin";
  29.129 -val summable_cos = thm "summable_cos";
  29.130 -val exp_converges = thm "exp_converges";
  29.131 -val sin_converges = thm "sin_converges";
  29.132 -val cos_converges = thm "cos_converges";
  29.133 -val powser_insidea = thm "powser_insidea";
  29.134 -val powser_inside = thm "powser_inside";
  29.135 -val diffs_minus = thm "diffs_minus";
  29.136 -val diffs_equiv = thm "diffs_equiv";
  29.137 -val less_add_one = thm "less_add_one";
  29.138 -val termdiffs_aux = thm "termdiffs_aux";
  29.139 -val termdiffs = thm "termdiffs";
  29.140 -val exp_fdiffs = thm "exp_fdiffs";
  29.141 -val sin_fdiffs = thm "sin_fdiffs";
  29.142 -val sin_fdiffs2 = thm "sin_fdiffs2";
  29.143 -val cos_fdiffs = thm "cos_fdiffs";
  29.144 -val cos_fdiffs2 = thm "cos_fdiffs2";
  29.145 -val DERIV_exp = thm "DERIV_exp";
  29.146 -val DERIV_sin = thm "DERIV_sin";
  29.147 -val DERIV_cos = thm "DERIV_cos";
  29.148 -val exp_zero = thm "exp_zero";
  29.149 -(* val exp_ge_add_one_self = thm "exp_ge_add_one_self"; *)
  29.150 -val exp_gt_one = thm "exp_gt_one";
  29.151 -val DERIV_exp_add_const = thm "DERIV_exp_add_const";
  29.152 -val DERIV_exp_minus = thm "DERIV_exp_minus";
  29.153 -val DERIV_exp_exp_zero = thm "DERIV_exp_exp_zero";
  29.154 -val exp_add_mult_minus = thm "exp_add_mult_minus";
  29.155 -val exp_mult_minus = thm "exp_mult_minus";
  29.156 -val exp_mult_minus2 = thm "exp_mult_minus2";
  29.157 -val exp_minus = thm "exp_minus";
  29.158 -val exp_add = thm "exp_add";
  29.159 -val exp_ge_zero = thm "exp_ge_zero";
  29.160 -val exp_not_eq_zero = thm "exp_not_eq_zero";
  29.161 -val exp_gt_zero = thm "exp_gt_zero";
  29.162 -val inv_exp_gt_zero = thm "inv_exp_gt_zero";
  29.163 -val abs_exp_cancel = thm "abs_exp_cancel";
  29.164 -val exp_real_of_nat_mult = thm "exp_real_of_nat_mult";
  29.165 -val exp_diff = thm "exp_diff";
  29.166 -val exp_less_mono = thm "exp_less_mono";
  29.167 -val exp_less_cancel = thm "exp_less_cancel";
  29.168 -val exp_less_cancel_iff = thm "exp_less_cancel_iff";
  29.169 -val exp_le_cancel_iff = thm "exp_le_cancel_iff";
  29.170 -val exp_inj_iff = thm "exp_inj_iff";
  29.171 -val exp_total = thm "exp_total";
  29.172 -val ln_exp = thm "ln_exp";
  29.173 -val exp_ln_iff = thm "exp_ln_iff";
  29.174 -val ln_mult = thm "ln_mult";
  29.175 -val ln_inj_iff = thm "ln_inj_iff";
  29.176 -val ln_one = thm "ln_one";
  29.177 -val ln_inverse = thm "ln_inverse";
  29.178 -val ln_div = thm "ln_div";
  29.179 -val ln_less_cancel_iff = thm "ln_less_cancel_iff";
  29.180 -val ln_le_cancel_iff = thm "ln_le_cancel_iff";
  29.181 -val ln_realpow = thm "ln_realpow";
  29.182 -val ln_add_one_self_le_self = thm "ln_add_one_self_le_self";
  29.183 -val ln_less_self = thm "ln_less_self";
  29.184 -val ln_ge_zero = thm "ln_ge_zero";
  29.185 -val ln_gt_zero = thm "ln_gt_zero";
  29.186 -val ln_less_zero = thm "ln_less_zero";
  29.187 -val exp_ln_eq = thm "exp_ln_eq";
  29.188 -val sin_zero = thm "sin_zero";
  29.189 -val cos_zero = thm "cos_zero";
  29.190 -val DERIV_sin_sin_mult = thm "DERIV_sin_sin_mult";
  29.191 -val DERIV_sin_sin_mult2 = thm "DERIV_sin_sin_mult2";
  29.192 -val DERIV_sin_realpow2 = thm "DERIV_sin_realpow2";
  29.193 -val DERIV_sin_realpow2a = thm "DERIV_sin_realpow2a";
  29.194 -val DERIV_cos_cos_mult = thm "DERIV_cos_cos_mult";
  29.195 -val DERIV_cos_cos_mult2 = thm "DERIV_cos_cos_mult2";
  29.196 -val DERIV_cos_realpow2 = thm "DERIV_cos_realpow2";
  29.197 -val DERIV_cos_realpow2a = thm "DERIV_cos_realpow2a";
  29.198 -val DERIV_cos_realpow2b = thm "DERIV_cos_realpow2b";
  29.199 -val DERIV_cos_cos_mult3 = thm "DERIV_cos_cos_mult3";
  29.200 -val DERIV_sin_circle_all = thm "DERIV_sin_circle_all";
  29.201 -val DERIV_sin_circle_all_zero = thm "DERIV_sin_circle_all_zero";
  29.202 -val sin_cos_squared_add = thm "sin_cos_squared_add";
  29.203 -val sin_cos_squared_add2 = thm "sin_cos_squared_add2";
  29.204 -val sin_cos_squared_add3 = thm "sin_cos_squared_add3";
  29.205 -val sin_squared_eq = thm "sin_squared_eq";
  29.206 -val cos_squared_eq = thm "cos_squared_eq";
  29.207 -val real_gt_one_ge_zero_add_less = thm "real_gt_one_ge_zero_add_less";
  29.208 -val abs_sin_le_one = thm "abs_sin_le_one";
  29.209 -val sin_ge_minus_one = thm "sin_ge_minus_one";
  29.210 -val sin_le_one = thm "sin_le_one";
  29.211 -val abs_cos_le_one = thm "abs_cos_le_one";
  29.212 -val cos_ge_minus_one = thm "cos_ge_minus_one";
  29.213 -val cos_le_one = thm "cos_le_one";
  29.214 -val DERIV_fun_pow = thm "DERIV_fun_pow";
  29.215 -val DERIV_fun_exp = thm "DERIV_fun_exp";
  29.216 -val DERIV_fun_sin = thm "DERIV_fun_sin";
  29.217 -val DERIV_fun_cos = thm "DERIV_fun_cos";
  29.218 -val DERIV_intros = thms "DERIV_intros";
  29.219 -val sin_cos_add = thm "sin_cos_add";
  29.220 -val sin_add = thm "sin_add";
  29.221 -val cos_add = thm "cos_add";
  29.222 -val sin_cos_minus = thm "sin_cos_minus";
  29.223 -val sin_minus = thm "sin_minus";
  29.224 -val cos_minus = thm "cos_minus";
  29.225 -val sin_diff = thm "sin_diff";
  29.226 -val sin_diff2 = thm "sin_diff2";
  29.227 -val cos_diff = thm "cos_diff";
  29.228 -val cos_diff2 = thm "cos_diff2";
  29.229 -val sin_double = thm "sin_double";
  29.230 -val cos_double = thm "cos_double";
  29.231 -val sin_paired = thm "sin_paired";
  29.232 -val sin_gt_zero = thm "sin_gt_zero";
  29.233 -val sin_gt_zero1 = thm "sin_gt_zero1";
  29.234 -val cos_double_less_one = thm "cos_double_less_one";
  29.235 -val cos_paired = thm "cos_paired";
  29.236 -val cos_two_less_zero = thm "cos_two_less_zero";
  29.237 -val cos_is_zero = thm "cos_is_zero";
  29.238 -val pi_half = thm "pi_half";
  29.239 -val cos_pi_half = thm "cos_pi_half";
  29.240 -val pi_half_gt_zero = thm "pi_half_gt_zero";
  29.241 -val pi_half_less_two = thm "pi_half_less_two";
  29.242 -val pi_gt_zero = thm "pi_gt_zero";
  29.243 -val pi_neq_zero = thm "pi_neq_zero";
  29.244 -val pi_not_less_zero = thm "pi_not_less_zero";
  29.245 -val pi_ge_zero = thm "pi_ge_zero";
  29.246 -val minus_pi_half_less_zero = thm "minus_pi_half_less_zero";
  29.247 -val sin_pi_half = thm "sin_pi_half";
  29.248 -val cos_pi = thm "cos_pi";
  29.249 -val sin_pi = thm "sin_pi";
  29.250 -val sin_cos_eq = thm "sin_cos_eq";
  29.251 -val minus_sin_cos_eq = thm "minus_sin_cos_eq";
  29.252 -val cos_sin_eq = thm "cos_sin_eq";
  29.253 -val sin_periodic_pi = thm "sin_periodic_pi";
  29.254 -val sin_periodic_pi2 = thm "sin_periodic_pi2";
  29.255 -val cos_periodic_pi = thm "cos_periodic_pi";
  29.256 -val sin_periodic = thm "sin_periodic";
  29.257 -val cos_periodic = thm "cos_periodic";
  29.258 -val cos_npi = thm "cos_npi";
  29.259 -val sin_npi = thm "sin_npi";
  29.260 -val sin_npi2 = thm "sin_npi2";
  29.261 -val cos_two_pi = thm "cos_two_pi";
  29.262 -val sin_two_pi = thm "sin_two_pi";
  29.263 -val sin_gt_zero2 = thm "sin_gt_zero2";
  29.264 -val sin_less_zero = thm "sin_less_zero";
  29.265 -val pi_less_4 = thm "pi_less_4";
  29.266 -val cos_gt_zero = thm "cos_gt_zero";
  29.267 -val cos_gt_zero_pi = thm "cos_gt_zero_pi";
  29.268 -val cos_ge_zero = thm "cos_ge_zero";
  29.269 -val sin_gt_zero_pi = thm "sin_gt_zero_pi";
  29.270 -val sin_ge_zero = thm "sin_ge_zero";
  29.271 -val cos_total = thm "cos_total";
  29.272 -val sin_total = thm "sin_total";
  29.273 -val reals_Archimedean4 = thm "reals_Archimedean4";
  29.274 -val cos_zero_lemma = thm "cos_zero_lemma";
  29.275 -val sin_zero_lemma = thm "sin_zero_lemma";
  29.276 -val cos_zero_iff = thm "cos_zero_iff";
  29.277 -val sin_zero_iff = thm "sin_zero_iff";
  29.278 -val tan_zero = thm "tan_zero";
  29.279 -val tan_pi = thm "tan_pi";
  29.280 -val tan_npi = thm "tan_npi";
  29.281 -val tan_minus = thm "tan_minus";
  29.282 -val tan_periodic = thm "tan_periodic";
  29.283 -val add_tan_eq = thm "add_tan_eq";
  29.284 -val tan_add = thm "tan_add";
  29.285 -val tan_double = thm "tan_double";
  29.286 -val tan_gt_zero = thm "tan_gt_zero";
  29.287 -val tan_less_zero = thm "tan_less_zero";
  29.288 -val DERIV_tan = thm "DERIV_tan";
  29.289 -val LIM_cos_div_sin = thm "LIM_cos_div_sin";
  29.290 -val tan_total_pos = thm "tan_total_pos";
  29.291 -val tan_total = thm "tan_total";
  29.292 -val arcsin_pi = thm "arcsin_pi";
  29.293 -val arcsin = thm "arcsin";
  29.294 -val sin_arcsin = thm "sin_arcsin";
  29.295 -val arcsin_bounded = thm "arcsin_bounded";
  29.296 -val arcsin_lbound = thm "arcsin_lbound";
  29.297 -val arcsin_ubound = thm "arcsin_ubound";
  29.298 -val arcsin_lt_bounded = thm "arcsin_lt_bounded";
  29.299 -val arcsin_sin = thm "arcsin_sin";
  29.300 -val arcos = thm "arcos";
  29.301 -val cos_arcos = thm "cos_arcos";
  29.302 -val arcos_bounded = thm "arcos_bounded";
  29.303 -val arcos_lbound = thm "arcos_lbound";
  29.304 -val arcos_ubound = thm "arcos_ubound";
  29.305 -val arcos_lt_bounded = thm "arcos_lt_bounded";
  29.306 -val arcos_cos = thm "arcos_cos";
  29.307 -val arcos_cos2 = thm "arcos_cos2";
  29.308 -val arctan = thm "arctan";
  29.309 -val tan_arctan = thm "tan_arctan";
  29.310 -val arctan_bounded = thm "arctan_bounded";
  29.311 -val arctan_lbound = thm "arctan_lbound";
  29.312 -val arctan_ubound = thm "arctan_ubound";
  29.313 -val arctan_tan = thm "arctan_tan";
  29.314 -val arctan_zero_zero = thm "arctan_zero_zero";
  29.315 -val cos_arctan_not_zero = thm "cos_arctan_not_zero";
  29.316 -val tan_sec = thm "tan_sec";
  29.317 -val DERIV_sin_add = thm "DERIV_sin_add";
  29.318 -val cos_2npi = thm "cos_2npi";
  29.319 -val cos_3over2_pi = thm "cos_3over2_pi";
  29.320 -val sin_2npi = thm "sin_2npi";
  29.321 -val sin_3over2_pi = thm "sin_3over2_pi";
  29.322 -val cos_pi_eq_zero = thm "cos_pi_eq_zero";
  29.323 -val DERIV_cos_add = thm "DERIV_cos_add";
  29.324 -val isCont_cos = thm "isCont_cos";
  29.325 -val isCont_sin = thm "isCont_sin";
  29.326 -val isCont_exp = thm "isCont_exp";
  29.327 -val sin_zero_abs_cos_one = thm "sin_zero_abs_cos_one";
  29.328 -val exp_eq_one_iff = thm "exp_eq_one_iff";
  29.329 -val cos_one_sin_zero = thm "cos_one_sin_zero";
  29.330 -val real_root_less_mono = thm "real_root_less_mono";
  29.331 -val real_root_le_mono = thm "real_root_le_mono";
  29.332 -val real_root_less_iff = thm "real_root_less_iff";
  29.333 -val real_root_le_iff = thm "real_root_le_iff";
  29.334 -val real_root_eq_iff = thm "real_root_eq_iff";
  29.335 -val real_root_pos_unique = thm "real_root_pos_unique";
  29.336 -val real_root_mult = thm "real_root_mult";
  29.337 -val real_root_inverse = thm "real_root_inverse";
  29.338 -val real_root_divide = thm "real_root_divide";
  29.339 -val real_sqrt_less_mono = thm "real_sqrt_less_mono";
  29.340 -val real_sqrt_le_mono = thm "real_sqrt_le_mono";
  29.341 -val real_sqrt_less_iff = thm "real_sqrt_less_iff";
  29.342 -val real_sqrt_le_iff = thm "real_sqrt_le_iff";
  29.343 -val real_sqrt_eq_iff = thm "real_sqrt_eq_iff";
  29.344 -val real_sqrt_sos_less_one_iff = thm "real_sqrt_sos_less_one_iff";
  29.345 -val real_sqrt_sos_eq_one_iff = thm "real_sqrt_sos_eq_one_iff";
  29.346 -val real_divide_square_eq = thm "real_divide_square_eq";
  29.347 -val real_sqrt_sum_squares_gt_zero1 = thm "real_sqrt_sum_squares_gt_zero1";
  29.348 -val real_sqrt_sum_squares_gt_zero2 = thm "real_sqrt_sum_squares_gt_zero2";
  29.349 -val real_sqrt_sum_squares_gt_zero3 = thm "real_sqrt_sum_squares_gt_zero3";
  29.350 -val real_sqrt_sum_squares_gt_zero3a = thm "real_sqrt_sum_squares_gt_zero3a";
  29.351 -val cos_x_y_ge_minus_one = thm "cos_x_y_ge_minus_one";
  29.352 -val cos_x_y_ge_minus_one1a = thm "cos_x_y_ge_minus_one1a";
  29.353 -val cos_x_y_le_one = thm "cos_x_y_le_one";
  29.354 -val cos_x_y_le_one2 = thm "cos_x_y_le_one2";
  29.355 -val cos_abs_x_y_ge_minus_one = thm "cos_abs_x_y_ge_minus_one";
  29.356 -val cos_abs_x_y_le_one = thm "cos_abs_x_y_le_one";
  29.357 -val minus_pi_less_zero = thm "minus_pi_less_zero";
  29.358 -val arcos_ge_minus_pi = thm "arcos_ge_minus_pi";
  29.359 -val sin_x_y_disj = thm "sin_x_y_disj";
  29.360 -val cos_x_y_disj = thm "cos_x_y_disj";
  29.361 -val real_sqrt_divide_less_zero = thm "real_sqrt_divide_less_zero";
  29.362 -val polar_ex1 = thm "polar_ex1";
  29.363 -val polar_ex2 = thm "polar_ex2";
  29.364 -val polar_Ex = thm "polar_Ex";
  29.365 -val real_sqrt_ge_abs1 = thm "real_sqrt_ge_abs1";
  29.366 -val real_sqrt_ge_abs2 = thm "real_sqrt_ge_abs2";
  29.367 -val real_sqrt_two_gt_zero = thm "real_sqrt_two_gt_zero";
  29.368 -val real_sqrt_two_ge_zero = thm "real_sqrt_two_ge_zero";
  29.369 -val real_sqrt_two_gt_one = thm "real_sqrt_two_gt_one";
  29.370 -val STAR_exp_ln = thm "STAR_exp_ln";
  29.371 -val hypreal_add_Infinitesimal_gt_zero = thm "hypreal_add_Infinitesimal_gt_zero";
  29.372 -val NSDERIV_exp_ln_one = thm "NSDERIV_exp_ln_one";
  29.373 -val DERIV_exp_ln_one = thm "DERIV_exp_ln_one";
  29.374 -val isCont_inv_fun = thm "isCont_inv_fun";
  29.375 -val isCont_inv_fun_inv = thm "isCont_inv_fun_inv";
  29.376 -val LIM_fun_gt_zero = thm "LIM_fun_gt_zero";
  29.377 -val LIM_fun_less_zero = thm "LIM_fun_less_zero";
  29.378 -val LIM_fun_not_zero = thm "LIM_fun_not_zero";
  29.379 -*}
  29.380    
  29.381  end 
    30.1 --- a/src/HOL/Real/ContNotDenum.thy	Fri Jun 02 20:12:59 2006 +0200
    30.2 +++ b/src/HOL/Real/ContNotDenum.thy	Fri Jun 02 23:22:29 2006 +0200
    30.3 @@ -36,8 +36,9 @@
    30.4  
    30.5  subsection {* Definition *}
    30.6  
    30.7 -constdefs closed_int :: "real \<Rightarrow> real \<Rightarrow> real set"
    30.8 -  "closed_int x y \<equiv> {z. x \<le> z \<and> z \<le> y}"
    30.9 +definition
   30.10 +  closed_int :: "real \<Rightarrow> real \<Rightarrow> real set"
   30.11 +  "closed_int x y = {z. x \<le> z \<and> z \<le> y}"
   30.12  
   30.13  subsection {* Properties *}
   30.14  
   30.15 @@ -48,9 +49,9 @@
   30.16    {
   30.17      fix x::real
   30.18      assume "x \<in> closed_int x1 y1"
   30.19 -    hence "x \<ge> x1 \<and> x \<le> y1" by (unfold closed_int_def, simp)
   30.20 +    hence "x \<ge> x1 \<and> x \<le> y1" by (simp add: closed_int_def)
   30.21      with xy have "x \<ge> x0 \<and> x \<le> y0" by auto
   30.22 -    hence "x \<in> closed_int x0 y0" by (unfold closed_int_def, simp)
   30.23 +    hence "x \<in> closed_int x0 y0" by (simp add: closed_int_def)
   30.24    }
   30.25    thus ?thesis by auto
   30.26  qed
   30.27 @@ -575,4 +576,4 @@
   30.28    ultimately show False by blast
   30.29  qed
   30.30  
   30.31 -end
   30.32 \ No newline at end of file
   30.33 +end
    31.1 --- a/src/HOL/Real/Float.thy	Fri Jun 02 20:12:59 2006 +0200
    31.2 +++ b/src/HOL/Real/Float.thy	Fri Jun 02 23:22:29 2006 +0200
    31.3 @@ -5,11 +5,11 @@
    31.4  
    31.5  theory Float imports Real begin
    31.6  
    31.7 -constdefs  
    31.8 +definition
    31.9    pow2 :: "int \<Rightarrow> real"
   31.10 -  "pow2 a == if (0 <= a) then (2^(nat a)) else (inverse (2^(nat (-a))))" 
   31.11 +  "pow2 a = (if (0 <= a) then (2^(nat a)) else (inverse (2^(nat (-a)))))"
   31.12    float :: "int * int \<Rightarrow> real"
   31.13 -  "float x == (real (fst x)) * (pow2 (snd x))"
   31.14 +  "float x = real (fst x) * pow2 (snd x)"
   31.15  
   31.16  lemma pow2_0[simp]: "pow2 0 = 1"
   31.17  by (simp add: pow2_def)
   31.18 @@ -20,7 +20,7 @@
   31.19  lemma pow2_neg: "pow2 x = inverse (pow2 (-x))"
   31.20  by (simp add: pow2_def)
   31.21  
   31.22 -lemma pow2_add1: "pow2 (1 + a) = 2 * (pow2 a)" 
   31.23 +lemma pow2_add1: "pow2 (1 + a) = 2 * (pow2 a)"
   31.24  proof -
   31.25    have h: "! n. nat (2 + int n) - Suc 0 = nat (1 + int n)" by arith
   31.26    have g: "! a b. a - -1 = a + (1::int)" by arith
   31.27 @@ -30,7 +30,7 @@
   31.28      apply (rule_tac m1="2" and n1="nat (2 + int na)" in ssubst[OF realpow_num_eq_if])
   31.29      apply (auto simp add: h)
   31.30      apply arith
   31.31 -    done  
   31.32 +    done
   31.33    show ?thesis
   31.34    proof (induct a)
   31.35      case (1 n)
   31.36 @@ -43,12 +43,12 @@
   31.37        apply (subst pow2_neg[of "-1 - int n"])
   31.38        apply (auto simp add: g pos)
   31.39        done
   31.40 -  qed  
   31.41 +  qed
   31.42  qed
   31.43 -  
   31.44 +
   31.45  lemma pow2_add: "pow2 (a+b) = (pow2 a) * (pow2 b)"
   31.46  proof (induct b)
   31.47 -  case (1 n) 
   31.48 +  case (1 n)
   31.49    show ?case
   31.50    proof (induct n)
   31.51      case 0
   31.52 @@ -59,10 +59,10 @@
   31.53    qed
   31.54  next
   31.55    case (2 n)
   31.56 -  show ?case 
   31.57 +  show ?case
   31.58    proof (induct n)
   31.59      case 0
   31.60 -    show ?case 
   31.61 +    show ?case
   31.62        apply (auto)
   31.63        apply (subst pow2_neg[of "a + -1"])
   31.64        apply (subst pow2_neg[of "-1"])
   31.65 @@ -73,7 +73,7 @@
   31.66        apply (simp)
   31.67        done
   31.68      case (Suc m)
   31.69 -    have a: "int m - (a + -2) =  1 + (int m - a + 1)" by arith	
   31.70 +    have a: "int m - (a + -2) =  1 + (int m - a + 1)" by arith
   31.71      have b: "int m - -2 = 1 + (int m + 1)" by arith
   31.72      show ?case
   31.73        apply (auto)
   31.74 @@ -92,14 +92,14 @@
   31.75    qed
   31.76  qed
   31.77  
   31.78 -lemma "float (a, e) + float (b, e) = float (a + b, e)"  
   31.79 +lemma "float (a, e) + float (b, e) = float (a + b, e)"
   31.80  by (simp add: float_def ring_eq_simps)
   31.81  
   31.82 -constdefs 
   31.83 +definition
   31.84    int_of_real :: "real \<Rightarrow> int"
   31.85 -  "int_of_real x == SOME y. real y = x"  
   31.86 +  "int_of_real x = (SOME y. real y = x)"
   31.87    real_is_int :: "real \<Rightarrow> bool"
   31.88 -  "real_is_int x == ? (u::int). x = real u" 
   31.89 +  "real_is_int x = (EX (u::int). x = real u)"
   31.90  
   31.91  lemma real_is_int_def2: "real_is_int x = (x = real (int_of_real x))"
   31.92  by (auto simp add: real_is_int_def int_of_real_def)
   31.93 @@ -110,7 +110,7 @@
   31.94  lemma pow2_int: "pow2 (int c) = (2::real)^c"
   31.95  by (simp add: pow2_def)
   31.96  
   31.97 -lemma float_transfer_nat: "float (a, b) = float (a * 2^c, b - int c)" 
   31.98 +lemma float_transfer_nat: "float (a, b) = float (a * 2^c, b - int c)"
   31.99  by (simp add: float_def pow2_int[symmetric] pow2_add[symmetric])
  31.100  
  31.101  lemma real_is_int_real[simp]: "real_is_int (real (x::int))"
  31.102 @@ -141,7 +141,7 @@
  31.103  lemma real_is_int_rep: "real_is_int x \<Longrightarrow> ?! (a::int). real a = x"
  31.104  by (auto simp add: real_is_int_def)
  31.105  
  31.106 -lemma int_of_real_mult: 
  31.107 +lemma int_of_real_mult:
  31.108    assumes "real_is_int a" "real_is_int b"
  31.109    shows "(int_of_real (a*b)) = (int_of_real a) * (int_of_real b)"
  31.110  proof -
  31.111 @@ -187,8 +187,8 @@
  31.112      also have "\<dots> = True" by (simp only: real_is_int_real)
  31.113      ultimately show ?thesis by auto
  31.114    qed
  31.115 -  
  31.116 -  { 
  31.117 +
  31.118 +  {
  31.119      fix x::int
  31.120      have "!! y. real_is_int ((number_of::bin\<Rightarrow>real) (Abs_Bin x))"
  31.121        apply (simp add: number_of_eq)
  31.122 @@ -205,11 +205,11 @@
  31.123        assume rn: "(real_is_int (of_int (- (int (Suc n)))))"
  31.124        have s: "-(int (Suc (Suc n))) = -1 + - (int (Suc n))" by simp
  31.125        show "real_is_int (of_int (- (int (Suc (Suc n)))))"
  31.126 -	apply (simp only: s of_int_add)
  31.127 -	apply (rule real_is_int_add)
  31.128 -	apply (simp add: neg1)
  31.129 -	apply (simp only: rn)
  31.130 -	done
  31.131 +        apply (simp only: s of_int_add)
  31.132 +        apply (rule real_is_int_add)
  31.133 +        apply (simp add: neg1)
  31.134 +        apply (simp only: rn)
  31.135 +        done
  31.136      qed
  31.137    }
  31.138    note Abs_Bin = this
  31.139 @@ -228,7 +228,7 @@
  31.140  by (simp add: int_of_real_def)
  31.141  
  31.142  lemma int_of_real_1[simp]: "int_of_real (1::real) = (1::int)"
  31.143 -proof - 
  31.144 +proof -
  31.145    have 1: "(1::real) = real (1::int)" by auto
  31.146    show ?thesis by (simp only: 1 int_of_real_real)
  31.147  qed
  31.148 @@ -238,9 +238,9 @@
  31.149    have "real_is_int (number_of b)" by simp
  31.150    then have uu: "?! u::int. number_of b = real u" by (auto simp add: real_is_int_rep)
  31.151    then obtain u::int where u:"number_of b = real u" by auto
  31.152 -  have "number_of b = real ((number_of b)::int)" 
  31.153 +  have "number_of b = real ((number_of b)::int)"
  31.154      by (simp add: number_of_eq real_of_int_def)
  31.155 -  have ub: "number_of b = real ((number_of b)::int)" 
  31.156 +  have ub: "number_of b = real ((number_of b)::int)"
  31.157      by (simp add: number_of_eq real_of_int_def)
  31.158    from uu u ub have unb: "u = number_of b"
  31.159      by blast
  31.160 @@ -255,10 +255,10 @@
  31.161  proof -
  31.162    fix q::int
  31.163    have a:"b - (-1\<Colon>int) = (1\<Colon>int) + b" by arith
  31.164 -  show "(float (q, (b - (-1\<Colon>int)))) = (float (q, ((1\<Colon>int) + b)))" 
  31.165 +  show "(float (q, (b - (-1\<Colon>int)))) = (float (q, ((1\<Colon>int) + b)))"
  31.166      by (simp add: a)
  31.167  qed
  31.168 -    
  31.169 +
  31.170  consts
  31.171    norm_float :: "int*int \<Rightarrow> int*int"
  31.172  
  31.173 @@ -285,7 +285,7 @@
  31.174  apply (auto)
  31.175  done
  31.176  
  31.177 -ML {* simp_depth_limit := 2 *} 
  31.178 +ML {* simp_depth_limit := 2 *}
  31.179  recdef norm_float "measure (% (a,b). nat (abs a))"
  31.180    "norm_float (a,b) = (if (a \<noteq> 0) & (even a) then norm_float (a div 2, b+1) else (if a=0 then (0,0) else (a,b)))"
  31.181  (hints simp: terminating_norm_float)
  31.182 @@ -294,23 +294,23 @@
  31.183  lemma norm_float: "float x = float (norm_float x)"
  31.184  proof -
  31.185    {
  31.186 -    fix a b :: int 
  31.187 -    have norm_float_pair: "float (a,b) = float (norm_float (a,b))" 
  31.188 +    fix a b :: int
  31.189 +    have norm_float_pair: "float (a,b) = float (norm_float (a,b))"
  31.190      proof (induct a b rule: norm_float.induct)
  31.191        case (1 u v)
  31.192 -      show ?case 
  31.193 +      show ?case
  31.194        proof cases
  31.195 -	assume u: "u \<noteq> 0 \<and> even u"
  31.196 -	with prems have ind: "float (u div 2, v + 1) = float (norm_float (u div 2, v + 1))" by auto
  31.197 -	with u have "float (u,v) = float (u div 2, v+1)" by (simp add: float_transfer_even) 
  31.198 -	then show ?thesis
  31.199 -	  apply (subst norm_float.simps)
  31.200 -	  apply (simp add: ind)
  31.201 -	  done
  31.202 +        assume u: "u \<noteq> 0 \<and> even u"
  31.203 +        with prems have ind: "float (u div 2, v + 1) = float (norm_float (u div 2, v + 1))" by auto
  31.204 +        with u have "float (u,v) = float (u div 2, v+1)" by (simp add: float_transfer_even)
  31.205 +        then show ?thesis
  31.206 +          apply (subst norm_float.simps)
  31.207 +          apply (simp add: ind)
  31.208 +          done
  31.209        next
  31.210 -	assume "~(u \<noteq> 0 \<and> even u)"
  31.211 -	then show ?thesis
  31.212 -	  by (simp add: prems float_def)
  31.213 +        assume "~(u \<noteq> 0 \<and> even u)"
  31.214 +        then show ?thesis
  31.215 +          by (simp add: prems float_def)
  31.216        qed
  31.217      qed
  31.218    }
  31.219 @@ -323,16 +323,16 @@
  31.220  lemma pow2_int: "pow2 (int n) = 2^n"
  31.221    by (simp add: pow2_def)
  31.222  
  31.223 -lemma float_add: 
  31.224 -  "float (a1, e1) + float (a2, e2) = 
  31.225 -  (if e1<=e2 then float (a1+a2*2^(nat(e2-e1)), e1) 
  31.226 +lemma float_add:
  31.227 +  "float (a1, e1) + float (a2, e2) =
  31.228 +  (if e1<=e2 then float (a1+a2*2^(nat(e2-e1)), e1)
  31.229    else float (a1*2^(nat (e1-e2))+a2, e2))"
  31.230    apply (simp add: float_def ring_eq_simps)
  31.231    apply (auto simp add: pow2_int[symmetric] pow2_add[symmetric])
  31.232    done
  31.233  
  31.234  lemma float_mult:
  31.235 -  "float (a1, e1) * float (a2, e2) = 
  31.236 +  "float (a1, e1) * float (a2, e2) =
  31.237    (float (a1 * a2, e1 + e2))"
  31.238    by (simp add: float_def pow2_add)
  31.239  
  31.240 @@ -345,7 +345,7 @@
  31.241  proof -
  31.242    {
  31.243      fix y
  31.244 -    have "0 <= y \<Longrightarrow> 0 < pow2 y"    
  31.245 +    have "0 <= y \<Longrightarrow> 0 < pow2 y"
  31.246        by (induct y, induct_tac n, simp_all add: pow2_add)
  31.247    }
  31.248    note helper=this
  31.249 @@ -360,7 +360,7 @@
  31.250  lemma zero_le_float:
  31.251    "(0 <= float (a,b)) = (0 <= a)"
  31.252    apply (auto simp add: float_def)
  31.253 -  apply (auto simp add: zero_le_mult_iff zero_less_pow2) 
  31.254 +  apply (auto simp add: zero_le_mult_iff zero_less_pow2)
  31.255    apply (insert zero_less_pow2[of b])
  31.256    apply (simp_all)
  31.257    done
  31.258 @@ -393,7 +393,7 @@
  31.259  
  31.260  lemma norm_0_1: "(0::_::number_ring) = Numeral0 & (1::_::number_ring) = Numeral1"
  31.261    by auto
  31.262 -  
  31.263 +
  31.264  lemma add_left_zero: "0 + a = (a::'a::comm_monoid_add)"
  31.265    by simp
  31.266  
  31.267 @@ -451,19 +451,19 @@
  31.268  lemma not_true_eq_false: "(~ True) = False" by simp
  31.269  
  31.270  
  31.271 -lemmas binarith = 
  31.272 +lemmas binarith =
  31.273    Pls_0_eq Min_1_eq
  31.274 -  bin_pred_Pls bin_pred_Min bin_pred_1 bin_pred_0     
  31.275 +  bin_pred_Pls bin_pred_Min bin_pred_1 bin_pred_0
  31.276    bin_succ_Pls bin_succ_Min bin_succ_1 bin_succ_0
  31.277    bin_add_Pls bin_add_Min bin_add_BIT_0 bin_add_BIT_10
  31.278 -  bin_add_BIT_11 bin_minus_Pls bin_minus_Min bin_minus_1 
  31.279 -  bin_minus_0 bin_mult_Pls bin_mult_Min bin_mult_1 bin_mult_0 
  31.280 +  bin_add_BIT_11 bin_minus_Pls bin_minus_Min bin_minus_1
  31.281 +  bin_minus_0 bin_mult_Pls bin_mult_Min bin_mult_1 bin_mult_0
  31.282    bin_add_Pls_right bin_add_Min_right
  31.283  
  31.284  lemma int_eq_number_of_eq: "(((number_of v)::int)=(number_of w)) = iszero ((number_of (bin_add v (bin_minus w)))::int)"
  31.285    by simp
  31.286  
  31.287 -lemma int_iszero_number_of_Pls: "iszero (Numeral0::int)" 
  31.288 +lemma int_iszero_number_of_Pls: "iszero (Numeral0::int)"
  31.289    by (simp only: iszero_number_of_Pls)
  31.290  
  31.291  lemma int_nonzero_number_of_Min: "~(iszero ((-1)::int))"
  31.292 @@ -472,13 +472,13 @@
  31.293  lemma int_iszero_number_of_0: "iszero ((number_of (w BIT bit.B0))::int) = iszero ((number_of w)::int)"
  31.294    by simp
  31.295  
  31.296 -lemma int_iszero_number_of_1: "\<not> iszero ((number_of (w BIT bit.B1))::int)" 
  31.297 +lemma int_iszero_number_of_1: "\<not> iszero ((number_of (w BIT bit.B1))::int)"
  31.298    by simp
  31.299  
  31.300  lemma int_less_number_of_eq_neg: "(((number_of x)::int) < number_of y) = neg ((number_of (bin_add x (bin_minus y)))::int)"
  31.301    by simp
  31.302  
  31.303 -lemma int_not_neg_number_of_Pls: "\<not> (neg (Numeral0::int))" 
  31.304 +lemma int_not_neg_number_of_Pls: "\<not> (neg (Numeral0::int))"
  31.305    by simp
  31.306  
  31.307  lemma int_neg_number_of_Min: "neg (-1::int)"
  31.308 @@ -490,9 +490,9 @@
  31.309  lemma int_le_number_of_eq: "(((number_of x)::int) \<le> number_of y) = (\<not> neg ((number_of (bin_add y (bin_minus x)))::int))"
  31.310    by simp
  31.311  
  31.312 -lemmas intarithrel = 
  31.313 -  int_eq_number_of_eq 
  31.314 -  lift_bool[OF int_iszero_number_of_Pls] nlift_bool[OF int_nonzero_number_of_Min] int_iszero_number_of_0 
  31.315 +lemmas intarithrel =
  31.316 +  int_eq_number_of_eq
  31.317 +  lift_bool[OF int_iszero_number_of_Pls] nlift_bool[OF int_nonzero_number_of_Min] int_iszero_number_of_0
  31.318    lift_bool[OF int_iszero_number_of_1] int_less_number_of_eq_neg nlift_bool[OF int_not_neg_number_of_Pls] lift_bool[OF int_neg_number_of_Min]
  31.319    int_neg_number_of_BIT int_le_number_of_eq
  31.320  
  31.321 @@ -512,8 +512,8 @@
  31.322  
  31.323  lemmas natarith = add_nat_number_of diff_nat_number_of mult_nat_number_of eq_nat_number_of less_nat_number_of
  31.324  
  31.325 -lemmas powerarith = nat_number_of zpower_number_of_even 
  31.326 -  zpower_number_of_odd[simplified zero_eq_Numeral0_nring one_eq_Numeral1_nring]   
  31.327 +lemmas powerarith = nat_number_of zpower_number_of_even
  31.328 +  zpower_number_of_odd[simplified zero_eq_Numeral0_nring one_eq_Numeral1_nring]
  31.329    zpower_Pls zpower_Min
  31.330  
  31.331  lemmas floatarith[simplified norm_0_1] = float_add float_mult float_minus float_abs zero_le_float float_pprt float_nprt
  31.332 @@ -522,4 +522,3 @@
  31.333  lemmas arith = binarith intarith intarithrel natarith powerarith floatarith not_false_eq_true not_true_eq_false
  31.334  
  31.335  end
  31.336 - 
    32.1 --- a/src/HOL/Real/Lubs.thy	Fri Jun 02 20:12:59 2006 +0200
    32.2 +++ b/src/HOL/Real/Lubs.thy	Fri Jun 02 23:22:29 2006 +0200
    32.3 @@ -12,25 +12,25 @@
    32.4  
    32.5  text{*Thanks to suggestions by James Margetson*}
    32.6  
    32.7 -constdefs
    32.8 +definition
    32.9  
   32.10    setle :: "['a set, 'a::ord] => bool"     (infixl "*<=" 70)
   32.11 -    "S *<= x    == (ALL y: S. y <= x)"
   32.12 +  "S *<= x = (ALL y: S. y <= x)"
   32.13  
   32.14    setge :: "['a::ord, 'a set] => bool"     (infixl "<=*" 70)
   32.15 -    "x <=* S    == (ALL y: S. x <= y)"
   32.16 +  "x <=* S = (ALL y: S. x <= y)"
   32.17  
   32.18    leastP      :: "['a =>bool,'a::ord] => bool"
   32.19 -    "leastP P x == (P x & x <=* Collect P)"
   32.20 +  "leastP P x = (P x & x <=* Collect P)"
   32.21  
   32.22    isUb        :: "['a set, 'a set, 'a::ord] => bool"
   32.23 -    "isUb R S x   == S *<= x & x: R"
   32.24 +  "isUb R S x = (S *<= x & x: R)"
   32.25  
   32.26    isLub       :: "['a set, 'a set, 'a::ord] => bool"
   32.27 -    "isLub R S x  == leastP (isUb R S) x"
   32.28 +  "isLub R S x = leastP (isUb R S) x"
   32.29  
   32.30    ubs         :: "['a set, 'a::ord set] => 'a set"
   32.31 -    "ubs R S      == Collect (isUb R S)"
   32.32 +  "ubs R S = Collect (isUb R S)"
   32.33  
   32.34  
   32.35  
   32.36 @@ -106,35 +106,4 @@
   32.37  apply (erule leastPD2)
   32.38  done
   32.39  
   32.40 -ML
   32.41 -{*
   32.42 -val setle_def = thm "setle_def";
   32.43 -val setge_def = thm "setge_def";
   32.44 -val leastP_def = thm "leastP_def";
   32.45 -val isLub_def = thm "isLub_def";
   32.46 -val isUb_def = thm "isUb_def";
   32.47 -val ubs_def = thm "ubs_def";
   32.48 -
   32.49 -val setleI = thm "setleI";
   32.50 -val setleD = thm "setleD";
   32.51 -val setgeI = thm "setgeI";
   32.52 -val setgeD = thm "setgeD";
   32.53 -val leastPD1 = thm "leastPD1";
   32.54 -val leastPD2 = thm "leastPD2";
   32.55 -val leastPD3 = thm "leastPD3";
   32.56 -val isLubD1 = thm "isLubD1";
   32.57 -val isLubD1a = thm "isLubD1a";
   32.58 -val isLub_isUb = thm "isLub_isUb";
   32.59 -val isLubD2 = thm "isLubD2";
   32.60 -val isLubD3 = thm "isLubD3";
   32.61 -val isLubI1 = thm "isLubI1";
   32.62 -val isLubI2 = thm "isLubI2";
   32.63 -val isUbD = thm "isUbD";
   32.64 -val isUbD2 = thm "isUbD2";
   32.65 -val isUbD2a = thm "isUbD2a";
   32.66 -val isUbI = thm "isUbI";
   32.67 -val isLub_le_isUb = thm "isLub_le_isUb";
   32.68 -val isLub_ubs = thm "isLub_ubs";
   32.69 -*}
   32.70 -
   32.71  end
    33.1 --- a/src/HOL/Real/PReal.thy	Fri Jun 02 20:12:59 2006 +0200
    33.2 +++ b/src/HOL/Real/PReal.thy	Fri Jun 02 23:22:29 2006 +0200
    33.3 @@ -27,11 +27,11 @@
    33.4  by (auto dest: dense)
    33.5  
    33.6  
    33.7 -constdefs
    33.8 +definition
    33.9    cut :: "rat set => bool"
   33.10 -    "cut A == {} \<subset> A &
   33.11 -              A < {r. 0 < r} &
   33.12 -              (\<forall>y \<in> A. ((\<forall>z. 0<z & z < y --> z \<in> A) & (\<exists>u \<in> A. y < u)))"
   33.13 +  "cut A = ({} \<subset> A &
   33.14 +            A < {r. 0 < r} &
   33.15 +            (\<forall>y \<in> A. ((\<forall>z. 0<z & z < y --> z \<in> A) & (\<exists>u \<in> A. y < u))))"
   33.16  
   33.17  
   33.18  lemma cut_of_rat: 
   33.19 @@ -56,24 +56,24 @@
   33.20  
   33.21  instance preal :: "{ord, plus, minus, times, inverse}" ..
   33.22  
   33.23 -constdefs
   33.24 +definition
   33.25    preal_of_rat :: "rat => preal"
   33.26 -     "preal_of_rat q == Abs_preal({x::rat. 0 < x & x < q})"
   33.27 +  "preal_of_rat q = Abs_preal({x::rat. 0 < x & x < q})"
   33.28  
   33.29    psup       :: "preal set => preal"
   33.30 -    "psup(P)   == Abs_preal(\<Union>X \<in> P. Rep_preal(X))"
   33.31 +  "psup(P) = Abs_preal(\<Union>X \<in> P. Rep_preal(X))"
   33.32  
   33.33    add_set :: "[rat set,rat set] => rat set"
   33.34 -    "add_set A B == {w. \<exists>x \<in> A. \<exists>y \<in> B. w = x + y}"
   33.35 +  "add_set A B = {w. \<exists>x \<in> A. \<exists>y \<in> B. w = x + y}"
   33.36  
   33.37    diff_set :: "[rat set,rat set] => rat set"
   33.38 -    "diff_set A B == {w. \<exists>x. 0 < w & 0 < x & x \<notin> B & x + w \<in> A}"
   33.39 +  "diff_set A B = {w. \<exists>x. 0 < w & 0 < x & x \<notin> B & x + w \<in> A}"
   33.40  
   33.41    mult_set :: "[rat set,rat set] => rat set"
   33.42 -    "mult_set A B == {w. \<exists>x \<in> A. \<exists>y \<in> B. w = x * y}"
   33.43 +  "mult_set A B = {w. \<exists>x \<in> A. \<exists>y \<in> B. w = x * y}"
   33.44  
   33.45    inverse_set :: "rat set => rat set"
   33.46 -    "inverse_set A == {x. \<exists>y. 0 < x & x < y & inverse y \<notin> A}"
   33.47 +  "inverse_set A = {x. \<exists>y. 0 < x & x < y & inverse y \<notin> A}"
   33.48  
   33.49  
   33.50  defs (overloaded)
   33.51 @@ -163,11 +163,11 @@
   33.52   Gleason p. 122 - Remark (1)*}
   33.53  
   33.54  lemma not_in_preal_ub:
   33.55 -     assumes A: "A \<in> preal"
   33.56 -         and notx: "x \<notin> A"
   33.57 -         and y: "y \<in> A"
   33.58 -         and pos: "0 < x"
   33.59 -        shows "y < x"
   33.60 +  assumes A: "A \<in> preal"
   33.61 +    and notx: "x \<notin> A"
   33.62 +    and y: "y \<in> A"
   33.63 +    and pos: "0 < x"
   33.64 +  shows "y < x"
   33.65  proof (cases rule: linorder_cases)
   33.66    assume "x<y"
   33.67    with notx show ?thesis
   33.68 @@ -271,11 +271,11 @@
   33.69  proof (unfold add_set_def, clarify)
   33.70    fix x::rat and y::rat
   33.71    assume A: "A \<in> preal" 
   33.72 -     and B: "B \<in> preal"
   33.73 -     and [simp]: "0 < z"
   33.74 -     and zless: "z < x + y"
   33.75 -     and x:  "x \<in> A"
   33.76 -     and y:  "y \<in> B"
   33.77 +    and B: "B \<in> preal"
   33.78 +    and [simp]: "0 < z"
   33.79 +    and zless: "z < x + y"
   33.80 +    and x:  "x \<in> A"
   33.81 +    and y:  "y \<in> B"
   33.82    have xpos [simp]: "0<x" by (rule preal_imp_pos [OF A x])
   33.83    have ypos [simp]: "0<y" by (rule preal_imp_pos [OF B y])
   33.84    have xypos [simp]: "0 < x+y" by (simp add: pos_add_strict)
   33.85 @@ -394,16 +394,15 @@
   33.86  qed
   33.87  
   33.88  lemma mult_set_not_rat_set:
   33.89 -   assumes A: "A \<in> preal" 
   33.90 -       and B: "B \<in> preal"
   33.91 -     shows "mult_set A B < {r. 0 < r}"
   33.92 +  assumes A: "A \<in> preal" 
   33.93 +    and B: "B \<in> preal"
   33.94 +  shows "mult_set A B < {r. 0 < r}"
   33.95  proof
   33.96    show "mult_set A B \<subseteq> {r. 0 < r}"
   33.97      by (force simp add: mult_set_def
   33.98 -              intro: preal_imp_pos [OF A] preal_imp_pos [OF B] mult_pos_pos)
   33.99 -next
  33.100 +      intro: preal_imp_pos [OF A] preal_imp_pos [OF B] mult_pos_pos)
  33.101    show "mult_set A B \<noteq> {r. 0 < r}"
  33.102 -    by (insert preal_not_mem_mult_set_Ex [OF A B], blast)
  33.103 +    using preal_not_mem_mult_set_Ex [OF A B] by blast
  33.104  qed
  33.105  
  33.106  
  33.107 @@ -415,11 +414,11 @@
  33.108  proof (unfold mult_set_def, clarify)
  33.109    fix x::rat and y::rat
  33.110    assume A: "A \<in> preal" 
  33.111 -     and B: "B \<in> preal"
  33.112 -     and [simp]: "0 < z"
  33.113 -     and zless: "z < x * y"
  33.114 -     and x:  "x \<in> A"
  33.115 -     and y:  "y \<in> B"
  33.116 +    and B: "B \<in> preal"
  33.117 +    and [simp]: "0 < z"
  33.118 +    and zless: "z < x * y"
  33.119 +    and x:  "x \<in> A"
  33.120 +    and y:  "y \<in> B"
  33.121    have [simp]: "0<y" by (rule preal_imp_pos [OF B y])
  33.122    show "\<exists>x' \<in> A. \<exists>y' \<in> B. z = x' * y'"
  33.123    proof
  33.124 @@ -560,10 +559,10 @@
  33.125  
  33.126  lemma preal_add_mult_distrib_mean:
  33.127    assumes a: "a \<in> Rep_preal w"
  33.128 -      and b: "b \<in> Rep_preal w"
  33.129 -      and d: "d \<in> Rep_preal x"
  33.130 -      and e: "e \<in> Rep_preal y"
  33.131 -     shows "\<exists>c \<in> Rep_preal w. a * d + b * e = c * (d + e)"
  33.132 +    and b: "b \<in> Rep_preal w"
  33.133 +    and d: "d \<in> Rep_preal x"
  33.134 +    and e: "e \<in> Rep_preal y"
  33.135 +  shows "\<exists>c \<in> Rep_preal w. a * d + b * e = c * (d + e)"
  33.136  proof
  33.137    let ?c = "(a*d + b*e)/(d+e)"
  33.138    have [simp]: "0<a" "0<b" "0<d" "0<e" "0<d+e"
  33.139 @@ -690,9 +689,9 @@
  33.140  
  33.141  lemma Gleason9_34_exists:
  33.142    assumes A: "A \<in> preal"
  33.143 -      and "\<forall>x\<in>A. x + u \<in> A"
  33.144 -      and "0 \<le> z"
  33.145 -     shows "\<exists>b\<in>A. b + (of_int z) * u \<in> A"
  33.146 +    and "\<forall>x\<in>A. x + u \<in> A"
  33.147 +    and "0 \<le> z"
  33.148 +  shows "\<exists>b\<in>A. b + (of_int z) * u \<in> A"
  33.149  proof (cases z rule: int_cases)
  33.150    case (nonneg n)
  33.151    show ?thesis
  33.152 @@ -717,11 +716,11 @@
  33.153    fix a::int and b::int
  33.154    fix c::int and d::int
  33.155    assume bpos [simp]: "0 < b"
  33.156 -     and dpos [simp]: "0 < d"
  33.157 -     and closed: "\<forall>x\<in>A. x + (Fract c d) \<in> A"
  33.158 -     and upos: "0 < Fract c d"
  33.159 -     and ypos: "0 < Fract a b"
  33.160 -     and notin: "Fract a b \<notin> A"
  33.161 +    and dpos [simp]: "0 < d"
  33.162 +    and closed: "\<forall>x\<in>A. x + (Fract c d) \<in> A"
  33.163 +    and upos: "0 < Fract c d"
  33.164 +    and ypos: "0 < Fract a b"
  33.165 +    and notin: "Fract a b \<notin> A"
  33.166    have cpos [simp]: "0 < c" 
  33.167      by (simp add: zero_less_Fract_iff [OF dpos, symmetric] upos) 
  33.168    have apos [simp]: "0 < a" 
  33.169 @@ -752,8 +751,8 @@
  33.170  
  33.171  lemma Gleason9_34:
  33.172    assumes A: "A \<in> preal"
  33.173 -      and upos: "0 < u"
  33.174 -    shows "\<exists>r \<in> A. r + u \<notin> A"
  33.175 +    and upos: "0 < u"
  33.176 +  shows "\<exists>r \<in> A. r + u \<notin> A"
  33.177  proof (rule ccontr, simp)
  33.178    assume closed: "\<forall>r\<in>A. r + u \<in> A"
  33.179    from preal_exists_bound [OF A]
  33.180 @@ -768,8 +767,8 @@
  33.181  
  33.182  lemma lemma_gleason9_36:
  33.183    assumes A: "A \<in> preal"
  33.184 -      and x: "1 < x"
  33.185 -    shows "\<exists>r \<in> A. r*x \<notin> A"
  33.186 +    and x: "1 < x"
  33.187 +  shows "\<exists>r \<in> A. r*x \<notin> A"
  33.188  proof -
  33.189    from preal_nonempty [OF A]
  33.190    obtain y where y: "y \<in> A" and  ypos: "0<y" ..
  33.191 @@ -824,9 +823,9 @@
  33.192  by (simp add: preal_of_rat_def rat_mem_preal) 
  33.193  
  33.194  lemma subset_inverse_mult_lemma:
  33.195 -      assumes xpos: "0 < x" and xless: "x < 1"
  33.196 -         shows "\<exists>r u y. 0 < r & r < y & inverse y \<notin> Rep_preal R & 
  33.197 -                        u \<in> Rep_preal R & x = r * u"
  33.198 +  assumes xpos: "0 < x" and xless: "x < 1"
  33.199 +  shows "\<exists>r u y. 0 < r & r < y & inverse y \<notin> Rep_preal R & 
  33.200 +    u \<in> Rep_preal R & x = r * u"
  33.201  proof -
  33.202    from xpos and xless have "1 < inverse x" by (simp add: one_less_inverse_iff)
  33.203    from lemma_gleason9_36 [OF Rep_preal this]
  33.204 @@ -858,11 +857,11 @@
  33.205  done
  33.206  
  33.207  lemma inverse_mult_subset_lemma:
  33.208 -     assumes rpos: "0 < r" 
  33.209 -         and rless: "r < y"
  33.210 -         and notin: "inverse y \<notin> Rep_preal R"
  33.211 -         and q: "q \<in> Rep_preal R"
  33.212 -     shows "r*q < 1"
  33.213 +  assumes rpos: "0 < r" 
  33.214 +    and rless: "r < y"
  33.215 +    and notin: "inverse y \<notin> Rep_preal R"
  33.216 +    and q: "q \<in> Rep_preal R"
  33.217 +  shows "r*q < 1"
  33.218  proof -
  33.219    have "q < inverse y" using rpos rless
  33.220      by (simp add: not_in_preal_ub [OF Rep_preal notin] q)
  33.221 @@ -961,7 +960,7 @@
  33.222  done
  33.223  
  33.224  lemma diff_set_not_rat_set:
  33.225 -     "diff_set (Rep_preal S) (Rep_preal R) < {r. 0 < r}" (is "?lhs < ?rhs")
  33.226 +  "diff_set (Rep_preal S) (Rep_preal R) < {r. 0 < r}" (is "?lhs < ?rhs")
  33.227  proof
  33.228    show "?lhs \<subseteq> ?rhs" by (auto simp add: diff_set_def) 
  33.229    show "?lhs \<noteq> ?rhs" using diff_set_nonempty by blast
  33.230 @@ -1007,11 +1006,11 @@
  33.231  
  33.232  lemma less_add_left_lemma:
  33.233    assumes Rless: "R < S"
  33.234 -      and a: "a \<in> Rep_preal R"
  33.235 -      and cb: "c + b \<in> Rep_preal S"
  33.236 -      and "c \<notin> Rep_preal R"
  33.237 -      and "0 < b"
  33.238 -      and "0 < c"
  33.239 +    and a: "a \<in> Rep_preal R"
  33.240 +    and cb: "c + b \<in> Rep_preal S"
  33.241 +    and "c \<notin> Rep_preal R"
  33.242 +    and "0 < b"
  33.243 +    and "0 < c"
  33.244    shows "a + b \<in> Rep_preal S"
  33.245  proof -
  33.246    have "0<a" by (rule preal_imp_pos [OF Rep_preal a])
  33.247 @@ -1039,8 +1038,8 @@
  33.248  
  33.249  lemma less_add_left_lemma2:
  33.250    assumes Rless: "R < S"
  33.251 -      and x:     "x \<in> Rep_preal S"
  33.252 -      and xnot: "x \<notin>  Rep_preal R"
  33.253 +    and x:     "x \<in> Rep_preal S"
  33.254 +    and xnot: "x \<notin>  Rep_preal R"
  33.255    shows "\<exists>u v z. 0 < v & 0 < z & u \<in> Rep_preal R & z \<notin> Rep_preal R & 
  33.256                       z + v \<in> Rep_preal S & x = u + v"
  33.257  proof -
  33.258 @@ -1216,9 +1215,9 @@
  33.259  
  33.260  lemma preal_of_rat_add_lemma2:
  33.261    assumes "u < x + y"
  33.262 -      and "0 < x"
  33.263 -      and "0 < y"
  33.264 -      and "0 < u"
  33.265 +    and "0 < x"
  33.266 +    and "0 < y"
  33.267 +    and "0 < u"
  33.268    shows "\<exists>v w::rat. w < y & 0 < v & v < x & 0 < w & u = v + w"
  33.269  proof (intro exI conjI)
  33.270    show "u * x * inverse(x+y) < x" using prems 
  33.271 @@ -1253,8 +1252,8 @@
  33.272  
  33.273  lemma preal_of_rat_mult_lemma2: 
  33.274    assumes xless: "x < y * z"
  33.275 -      and xpos: "0 < x"
  33.276 -      and ypos: "0 < y"
  33.277 +    and xpos: "0 < x"
  33.278 +    and ypos: "0 < y"
  33.279    shows "x * z * inverse y * inverse z < (z::rat)"
  33.280  proof -
  33.281    have "0 < y * z" using prems by simp
  33.282 @@ -1270,9 +1269,9 @@
  33.283  
  33.284  lemma preal_of_rat_mult_lemma3:
  33.285    assumes uless: "u < x * y"
  33.286 -      and "0 < x"
  33.287 -      and "0 < y"
  33.288 -      and "0 < u"
  33.289 +    and "0 < x"
  33.290 +    and "0 < y"
  33.291 +    and "0 < u"
  33.292    shows "\<exists>v w::rat. v < x & w < y & 0 < v & 0 < w & u = v * w"
  33.293  proof -
  33.294    from dense [OF uless] 
  33.295 @@ -1317,37 +1316,4 @@
  33.296        "[| 0 < x; 0 < y|] ==> (preal_of_rat x = preal_of_rat y) = (x = y)"
  33.297  by (simp add: preal_of_rat_le_iff order_eq_iff) 
  33.298  
  33.299 -
  33.300 -ML
  33.301 -{*
  33.302 -val mem_Rep_preal_Ex = thm"mem_Rep_preal_Ex";
  33.303 -val preal_add_commute = thm"preal_add_commute";
  33.304 -val preal_add_assoc = thm"preal_add_assoc";
  33.305 -val preal_add_left_commute = thm"preal_add_left_commute";
  33.306 -val preal_mult_commute = thm"preal_mult_commute";
  33.307 -val preal_mult_assoc = thm"preal_mult_assoc";
  33.308 -val preal_mult_left_commute = thm"preal_mult_left_commute";
  33.309 -val preal_add_mult_distrib2 = thm"preal_add_mult_distrib2";
  33.310 -val preal_add_mult_distrib = thm"preal_add_mult_distrib";
  33.311 -val preal_self_less_add_left = thm"preal_self_less_add_left";
  33.312 -val preal_self_less_add_right = thm"preal_self_less_add_right";
  33.313 -val less_add_left = thm"less_add_left";
  33.314 -val preal_add_less2_mono1 = thm"preal_add_less2_mono1";
  33.315 -val preal_add_less2_mono2 = thm"preal_add_less2_mono2";
  33.316 -val preal_add_right_less_cancel = thm"preal_add_right_less_cancel";
  33.317 -val preal_add_left_less_cancel = thm"preal_add_left_less_cancel";
  33.318 -val preal_add_right_cancel = thm"preal_add_right_cancel";
  33.319 -val preal_add_left_cancel = thm"preal_add_left_cancel";
  33.320 -val preal_add_left_cancel_iff = thm"preal_add_left_cancel_iff";
  33.321 -val preal_add_right_cancel_iff = thm"preal_add_right_cancel_iff";
  33.322 -val preal_psup_le = thm"preal_psup_le";
  33.323 -val psup_le_ub = thm"psup_le_ub";
  33.324 -val preal_complete = thm"preal_complete";
  33.325 -val preal_of_rat_add = thm"preal_of_rat_add";
  33.326 -val preal_of_rat_mult = thm"preal_of_rat_mult";
  33.327 -
  33.328 -val preal_add_ac = thms"preal_add_ac";
  33.329 -val preal_mult_ac = thms"preal_mult_ac";
  33.330 -*}
  33.331 -
  33.332  end
    34.1 --- a/src/HOL/Real/RComplete.thy	Fri Jun 02 20:12:59 2006 +0200
    34.2 +++ b/src/HOL/Real/RComplete.thy	Fri Jun 02 23:22:29 2006 +0200
    34.3 @@ -429,36 +429,22 @@
    34.4  done
    34.5  
    34.6  
    34.7 -ML
    34.8 -{*
    34.9 -val real_sum_of_halves = thm "real_sum_of_halves";
   34.10 -val posreal_complete = thm "posreal_complete";
   34.11 -val real_isLub_unique = thm "real_isLub_unique";
   34.12 -val posreals_complete = thm "posreals_complete";
   34.13 -val reals_complete = thm "reals_complete";
   34.14 -val reals_Archimedean = thm "reals_Archimedean";
   34.15 -val reals_Archimedean2 = thm "reals_Archimedean2";
   34.16 -val reals_Archimedean3 = thm "reals_Archimedean3";
   34.17 -*}
   34.18 -
   34.19 -
   34.20  subsection{*Floor and Ceiling Functions from the Reals to the Integers*}
   34.21  
   34.22 -constdefs
   34.23 -
   34.24 +definition
   34.25    floor :: "real => int"
   34.26 -   "floor r == (LEAST n::int. r < real (n+1))"
   34.27 +  "floor r = (LEAST n::int. r < real (n+1))"
   34.28  
   34.29    ceiling :: "real => int"
   34.30 -    "ceiling r == - floor (- r)"
   34.31 +  "ceiling r = - floor (- r)"
   34.32  
   34.33 -syntax (xsymbols)
   34.34 -  floor :: "real => int"     ("\<lfloor>_\<rfloor>")
   34.35 -  ceiling :: "real => int"   ("\<lceil>_\<rceil>")
   34.36 +const_syntax (xsymbols)
   34.37 +  floor  ("\<lfloor>_\<rfloor>")
   34.38 +  ceiling  ("\<lceil>_\<rceil>")
   34.39  
   34.40 -syntax (HTML output)
   34.41 -  floor :: "real => int"     ("\<lfloor>_\<rfloor>")
   34.42 -  ceiling :: "real => int"   ("\<lceil>_\<rceil>")
   34.43 +const_syntax (HTML output)
   34.44 +  floor  ("\<lfloor>_\<rfloor>")
   34.45 +  ceiling  ("\<lceil>_\<rceil>")
   34.46  
   34.47  
   34.48  lemma number_of_less_real_of_int_iff [simp]:
   34.49 @@ -946,11 +932,11 @@
   34.50  
   34.51  subsection {* Versions for the natural numbers *}
   34.52  
   34.53 -constdefs
   34.54 +definition
   34.55    natfloor :: "real => nat"
   34.56 -  "natfloor x == nat(floor x)"
   34.57 +  "natfloor x = nat(floor x)"
   34.58    natceiling :: "real => nat"
   34.59 -  "natceiling x == nat(ceiling x)"
   34.60 +  "natceiling x = nat(ceiling x)"
   34.61  
   34.62  lemma natfloor_zero [simp]: "natfloor 0 = 0"
   34.63    by (unfold natfloor_def, simp)
   34.64 @@ -1300,55 +1286,4 @@
   34.65      by simp
   34.66  qed
   34.67  
   34.68 -ML
   34.69 -{*
   34.70 -val number_of_less_real_of_int_iff = thm "number_of_less_real_of_int_iff";
   34.71 -val number_of_less_real_of_int_iff2 = thm "number_of_less_real_of_int_iff2";
   34.72 -val number_of_le_real_of_int_iff = thm "number_of_le_real_of_int_iff";
   34.73 -val number_of_le_real_of_int_iff2 = thm "number_of_le_real_of_int_iff2";
   34.74 -val floor_zero = thm "floor_zero";
   34.75 -val floor_real_of_nat_zero = thm "floor_real_of_nat_zero";
   34.76 -val floor_real_of_nat = thm "floor_real_of_nat";
   34.77 -val floor_minus_real_of_nat = thm "floor_minus_real_of_nat";
   34.78 -val floor_real_of_int = thm "floor_real_of_int";
   34.79 -val floor_minus_real_of_int = thm "floor_minus_real_of_int";
   34.80 -val reals_Archimedean6 = thm "reals_Archimedean6";
   34.81 -val reals_Archimedean6a = thm "reals_Archimedean6a";
   34.82 -val reals_Archimedean_6b_int = thm "reals_Archimedean_6b_int";
   34.83 -val reals_Archimedean_6c_int = thm "reals_Archimedean_6c_int";
   34.84 -val real_lb_ub_int = thm "real_lb_ub_int";
   34.85 -val lemma_floor = thm "lemma_floor";
   34.86 -val real_of_int_floor_le = thm "real_of_int_floor_le";
   34.87 -(*val floor_le = thm "floor_le";
   34.88 -val floor_le2 = thm "floor_le2";
   34.89 -*)
   34.90 -val lemma_floor2 = thm "lemma_floor2";
   34.91 -val real_of_int_floor_cancel = thm "real_of_int_floor_cancel";
   34.92 -val floor_eq = thm "floor_eq";
   34.93 -val floor_eq2 = thm "floor_eq2";
   34.94 -val floor_eq3 = thm "floor_eq3";
   34.95 -val floor_eq4 = thm "floor_eq4";
   34.96 -val floor_number_of_eq = thm "floor_number_of_eq";
   34.97 -val real_of_int_floor_ge_diff_one = thm "real_of_int_floor_ge_diff_one";
   34.98 -val real_of_int_floor_add_one_ge = thm "real_of_int_floor_add_one_ge";
   34.99 -val ceiling_zero = thm "ceiling_zero";
  34.100 -val ceiling_real_of_nat = thm "ceiling_real_of_nat";
  34.101 -val ceiling_real_of_nat_zero = thm "ceiling_real_of_nat_zero";
  34.102 -val ceiling_floor = thm "ceiling_floor";
  34.103 -val floor_ceiling = thm "floor_ceiling";
  34.104 -val real_of_int_ceiling_ge = thm "real_of_int_ceiling_ge";
  34.105 -(*
  34.106 -val ceiling_le = thm "ceiling_le";
  34.107 -val ceiling_le2 = thm "ceiling_le2";
  34.108 -*)
  34.109 -val real_of_int_ceiling_cancel = thm "real_of_int_ceiling_cancel";
  34.110 -val ceiling_eq = thm "ceiling_eq";
  34.111 -val ceiling_eq2 = thm "ceiling_eq2";
  34.112 -val ceiling_eq3 = thm "ceiling_eq3";
  34.113 -val ceiling_real_of_int = thm "ceiling_real_of_int";
  34.114 -val ceiling_number_of_eq = thm "ceiling_number_of_eq";
  34.115 -val real_of_int_ceiling_diff_one_le = thm "real_of_int_ceiling_diff_one_le";
  34.116 -val real_of_int_ceiling_le_add_one = thm "real_of_int_ceiling_le_add_one";
  34.117 -*}
  34.118 -
  34.119  end
    35.1 --- a/src/HOL/Real/Rational.thy	Fri Jun 02 20:12:59 2006 +0200
    35.2 +++ b/src/HOL/Real/Rational.thy	Fri Jun 02 23:22:29 2006 +0200
    35.3 @@ -14,12 +14,12 @@
    35.4  
    35.5  subsubsection {* Equivalence of fractions *}
    35.6  
    35.7 -constdefs
    35.8 +definition
    35.9    fraction :: "(int \<times> int) set"
   35.10 -   "fraction \<equiv> {x. snd x \<noteq> 0}"
   35.11 +  "fraction = {x. snd x \<noteq> 0}"
   35.12  
   35.13    ratrel :: "((int \<times> int) \<times> (int \<times> int)) set"
   35.14 -   "ratrel \<equiv> {(x,y). snd x \<noteq> 0 \<and> snd y \<noteq> 0 \<and> fst x * snd y = fst y * snd x}"
   35.15 +  "ratrel = {(x,y). snd x \<noteq> 0 \<and> snd y \<noteq> 0 \<and> fst x * snd y = fst y * snd x}"
   35.16  
   35.17  lemma fraction_iff [simp]: "(x \<in> fraction) = (snd x \<noteq> 0)"
   35.18  by (simp add: fraction_def)
   35.19 @@ -78,9 +78,9 @@
   35.20  declare Abs_Rat_inject [simp]  Abs_Rat_inverse [simp]
   35.21  
   35.22  
   35.23 -constdefs
   35.24 +definition
   35.25    Fract :: "int \<Rightarrow> int \<Rightarrow> rat"
   35.26 -  "Fract a b \<equiv> Abs_Rat (ratrel``{(a,b)})"
   35.27 +  "Fract a b = Abs_Rat (ratrel``{(a,b)})"
   35.28  
   35.29  theorem Rat_cases [case_names Fract, cases type: rat]:
   35.30    "(!!a b. q = Fract a b ==> b \<noteq> 0 ==> C) ==> C"
   35.31 @@ -455,12 +455,9 @@
   35.32      --{*the type constraint is essential!*}
   35.33  
   35.34  instance rat :: number_ring
   35.35 -by (intro_classes, simp add: rat_number_of_def) 
   35.36 -
   35.37 -declare diff_rat_def [symmetric]
   35.38 +  by default (simp add: rat_number_of_def) 
   35.39  
   35.40  use "rat_arith.ML"
   35.41 -
   35.42  setup rat_arith_setup
   35.43  
   35.44  end
    36.1 --- a/src/HOL/Real/RealDef.thy	Fri Jun 02 20:12:59 2006 +0200
    36.2 +++ b/src/HOL/Real/RealDef.thy	Fri Jun 02 23:22:29 2006 +0200
    36.3 @@ -13,22 +13,21 @@
    36.4  uses ("real_arith.ML")
    36.5  begin
    36.6  
    36.7 -constdefs
    36.8 +definition
    36.9    realrel   ::  "((preal * preal) * (preal * preal)) set"
   36.10 -  "realrel == {p. \<exists>x1 y1 x2 y2. p = ((x1,y1),(x2,y2)) & x1+y2 = x2+y1}"
   36.11 +  "realrel = {p. \<exists>x1 y1 x2 y2. p = ((x1,y1),(x2,y2)) & x1+y2 = x2+y1}"
   36.12  
   36.13  typedef (Real)  real = "UNIV//realrel"
   36.14    by (auto simp add: quotient_def)
   36.15  
   36.16  instance real :: "{ord, zero, one, plus, times, minus, inverse}" ..
   36.17  
   36.18 -constdefs
   36.19 +definition
   36.20  
   36.21    (** these don't use the overloaded "real" function: users don't see them **)
   36.22  
   36.23    real_of_preal :: "preal => real"
   36.24 -  "real_of_preal m     ==
   36.25 -           Abs_Real(realrel``{(m + preal_of_rat 1, preal_of_rat 1)})"
   36.26 +  "real_of_preal m = Abs_Real(realrel``{(m + preal_of_rat 1, preal_of_rat 1)})"
   36.27  
   36.28  consts
   36.29     (*Overloaded constant denoting the Real subset of enclosing
   36.30 @@ -38,8 +37,8 @@
   36.31     (*overloaded constant for injecting other types into "real"*)
   36.32     real :: "'a => real"
   36.33  
   36.34 -syntax (xsymbols)
   36.35 -  Reals     :: "'a set"                   ("\<real>")
   36.36 +const_syntax (xsymbols)
   36.37 +  Reals  ("\<real>")
   36.38  
   36.39  
   36.40  defs (overloaded)
   36.41 @@ -1018,7 +1017,6 @@
   36.42  lemma abs_le_interval_iff: "(abs x \<le> r) = (-r\<le>x & x\<le>(r::real))"
   36.43  by (force simp add: OrderedGroup.abs_le_iff)
   36.44  
   36.45 -(*FIXME: used only once, in SEQ.ML*)
   36.46  lemma abs_add_one_gt_zero [simp]: "(0::real) < 1 + abs(x)"
   36.47  by (simp add: abs_if)
   36.48  
   36.49 @@ -1030,7 +1028,6 @@
   36.50  apply (auto intro: abs_ge_self [THEN order_trans])
   36.51  done
   36.52   
   36.53 -text{*Used only in Hyperreal/Lim.ML*}
   36.54  lemma abs_sum_triangle_ineq: "abs ((x::real) + y + (-l + -m)) \<le> abs(x + -l) + abs(y + -m)"
   36.55  apply (simp add: real_add_assoc)
   36.56  apply (rule_tac a1 = y in add_left_commute [THEN ssubst])
   36.57 @@ -1038,19 +1035,4 @@
   36.58  apply (rule abs_triangle_ineq)
   36.59  done
   36.60  
   36.61 -
   36.62 -ML
   36.63 -{*
   36.64 -val real_lbound_gt_zero = thm"real_lbound_gt_zero";
   36.65 -val real_less_half_sum = thm"real_less_half_sum";
   36.66 -val real_gt_half_sum = thm"real_gt_half_sum";
   36.67 -
   36.68 -val abs_interval_iff = thm"abs_interval_iff";
   36.69 -val abs_le_interval_iff = thm"abs_le_interval_iff";
   36.70 -val abs_add_one_gt_zero = thm"abs_add_one_gt_zero";
   36.71 -val abs_add_one_not_less_self = thm"abs_add_one_not_less_self";
   36.72 -val abs_sum_triangle_ineq = thm"abs_sum_triangle_ineq";
   36.73 -*}
   36.74 -
   36.75 -
   36.76  end
    37.1 --- a/src/HOL/Real/RealPow.thy	Fri Jun 02 20:12:59 2006 +0200
    37.2 +++ b/src/HOL/Real/RealPow.thy	Fri Jun 02 23:22:29 2006 +0200
    37.3 @@ -37,8 +37,7 @@
    37.4  lemma realpow_two: "(r::real)^ (Suc (Suc 0)) = r * r"
    37.5  by simp
    37.6  
    37.7 -text{*Legacy: weaker version of the theorem @{text power_strict_mono},
    37.8 -used 6 times in NthRoot and Transcendental*}
    37.9 +text{*Legacy: weaker version of the theorem @{text power_strict_mono}*}
   37.10  lemma realpow_less:
   37.11       "[|(0::real) < x; x < y; 0 < n|] ==> x ^ n < y ^ n"
   37.12  apply (rule power_strict_mono, auto) 
   37.13 @@ -67,11 +66,9 @@
   37.14  lemma realpow_Suc_le_self: "[| 0 \<le> r; r \<le> (1::real) |] ==> r ^ Suc n \<le> r"
   37.15  by (insert power_decreasing [of 1 "Suc n" r], simp)
   37.16  
   37.17 -text{*Used ONCE in Transcendental*}
   37.18  lemma realpow_Suc_less_one: "[| 0 < r; r < (1::real) |] ==> r ^ Suc n < 1"
   37.19  by (insert power_strict_decreasing [of 0 "Suc n" r], simp)
   37.20  
   37.21 -text{*Used ONCE in Lim.ML*}
   37.22  lemma realpow_minus_mult [rule_format]:
   37.23       "0 < n --> (x::real) ^ (n - 1) * x = x ^ n" 
   37.24  apply (simp split add: nat_diff_split)
   37.25 @@ -140,7 +137,6 @@
   37.26  
   37.27  subsection{*Various Other Theorems*}
   37.28  
   37.29 -text{*Used several times in Hyperreal/Transcendental.ML*}
   37.30  lemma real_sum_squares_cancel_a: "x * x = -(y * y) ==> x = (0::real) & y=0"
   37.31    apply (auto dest: real_sum_squares_cancel simp add: real_add_eq_0_iff [symmetric])
   37.32    apply (auto dest: real_sum_squares_cancel simp add: add_commute)
   37.33 @@ -171,7 +167,6 @@
   37.34  apply (auto simp add: mult_ac)
   37.35  done
   37.36  
   37.37 -text{*Used once: in Hyperreal/Transcendental.ML*}
   37.38  lemma real_mult_inverse_cancel2:
   37.39       "[|(0::real) < x;0 < x1; x1 * y < x * u |] ==> y * inverse x < u * inverse x1"
   37.40  apply (auto dest: real_mult_inverse_cancel simp add: mult_ac)
   37.41 @@ -272,59 +267,4 @@
   37.42  apply (auto simp add: realpow_num_eq_if)
   37.43  done
   37.44  
   37.45 -
   37.46 -ML
   37.47 -{*
   37.48 -val realpow_0 = thm "realpow_0";
   37.49 -val realpow_Suc = thm "realpow_Suc";
   37.50 -
   37.51 -val realpow_not_zero = thm "realpow_not_zero";
   37.52 -val realpow_zero_zero = thm "realpow_zero_zero";
   37.53 -val realpow_two = thm "realpow_two";
   37.54 -val realpow_less = thm "realpow_less";
   37.55 -val realpow_two_le = thm "realpow_two_le";
   37.56 -val abs_realpow_two = thm "abs_realpow_two";
   37.57 -val realpow_two_abs = thm "realpow_two_abs";
   37.58 -val two_realpow_ge_one = thm "two_realpow_ge_one";
   37.59 -val two_realpow_gt = thm "two_realpow_gt";
   37.60 -val realpow_Suc_le_self = thm "realpow_Suc_le_self";
   37.61 -val realpow_Suc_less_one = thm "realpow_Suc_less_one";
   37.62 -val realpow_minus_mult = thm "realpow_minus_mult";
   37.63 -val realpow_two_mult_inverse = thm "realpow_two_mult_inverse";
   37.64 -val realpow_two_minus = thm "realpow_two_minus";
   37.65 -val realpow_two_disj = thm "realpow_two_disj";
   37.66 -val realpow_real_of_nat = thm "realpow_real_of_nat";
   37.67 -val realpow_real_of_nat_two_pos = thm "realpow_real_of_nat_two_pos";
   37.68 -val realpow_increasing = thm "realpow_increasing";
   37.69 -val zero_less_realpow_abs_iff = thm "zero_less_realpow_abs_iff";
   37.70 -val zero_le_realpow_abs = thm "zero_le_realpow_abs";
   37.71 -val real_of_int_power = thm "real_of_int_power";
   37.72 -val power_real_number_of = thm "power_real_number_of";
   37.73 -val real_sum_squares_cancel_a = thm "real_sum_squares_cancel_a";
   37.74 -val real_mult_inverse_cancel2 = thm "real_mult_inverse_cancel2";
   37.75 -val real_squared_diff_one_factored = thm "real_squared_diff_one_factored";
   37.76 -val real_mult_is_one = thm "real_mult_is_one";
   37.77 -val real_le_add_half_cancel = thm "real_le_add_half_cancel";
   37.78 -val real_minus_half_eq = thm "real_minus_half_eq";
   37.79 -val real_mult_inverse_cancel = thm "real_mult_inverse_cancel";
   37.80 -val real_mult_inverse_cancel2 = thm "real_mult_inverse_cancel2";
   37.81 -val inverse_real_of_nat_gt_zero = thm "inverse_real_of_nat_gt_zero";
   37.82 -val inverse_real_of_nat_ge_zero = thm "inverse_real_of_nat_ge_zero";
   37.83 -val real_sum_squares_not_zero = thm "real_sum_squares_not_zero";
   37.84 -val real_sum_squares_not_zero2 = thm "real_sum_squares_not_zero2";
   37.85 -
   37.86 -val realpow_divide = thm "realpow_divide";
   37.87 -val realpow_two_sum_zero_iff = thm "realpow_two_sum_zero_iff";
   37.88 -val realpow_two_le_add_order = thm "realpow_two_le_add_order";
   37.89 -val realpow_two_le_add_order2 = thm "realpow_two_le_add_order2";
   37.90 -val real_sum_square_gt_zero = thm "real_sum_square_gt_zero";
   37.91 -val real_sum_square_gt_zero2 = thm "real_sum_square_gt_zero2";
   37.92 -val real_minus_mult_self_le = thm "real_minus_mult_self_le";
   37.93 -val realpow_square_minus_le = thm "realpow_square_minus_le";
   37.94 -val realpow_num_eq_if = thm "realpow_num_eq_if";
   37.95 -val real_num_zero_less_two_pow = thm "real_num_zero_less_two_pow";
   37.96 -val lemma_realpow_num_two_mono = thm "lemma_realpow_num_two_mono";
   37.97 -*}
   37.98 -
   37.99 -
  37.100  end