src/HOL/Hyperreal/HyperPow.ML
changeset 12613 279facb4253a
parent 12330 c69bee072501
child 14268 5cf13e80be0e
     1.1 --- a/src/HOL/Hyperreal/HyperPow.ML	Mon Dec 31 14:13:07 2001 +0100
     1.2 +++ b/src/HOL/Hyperreal/HyperPow.ML	Wed Jan 02 16:06:31 2002 +0100
     1.3 @@ -207,6 +207,22 @@
     1.4                 hypreal_of_nat_zero, hypreal_of_nat_Suc]) 1);
     1.5  qed "hrealpow_sum_square_expand";
     1.6  
     1.7 +
     1.8 +(*** Literal arithmetic involving powers, type hypreal ***)
     1.9 +
    1.10 +Goal "hypreal_of_real (x ^ n) = hypreal_of_real x ^ n";
    1.11 +by (induct_tac "n" 1); 
    1.12 +by (ALLGOALS (asm_simp_tac (simpset() addsimps [nat_mult_distrib])));
    1.13 +qed "hypreal_of_real_power";
    1.14 +Addsimps [hypreal_of_real_power];
    1.15 +
    1.16 +Goal "(number_of v :: hypreal) ^ n = hypreal_of_real ((number_of v) ^ n)";
    1.17 +by (simp_tac (HOL_ss addsimps [hypreal_number_of_def, 
    1.18 +                               hypreal_of_real_power]) 1);
    1.19 +qed "power_hypreal_of_real_number_of";
    1.20 +
    1.21 +Addsimps [inst "n" "number_of ?w" power_hypreal_of_real_number_of];
    1.22 +
    1.23  (*---------------------------------------------------------------
    1.24     we'll prove the following theorem by going down to the
    1.25     level of the ultrafilter and relying on the analogous
    1.26 @@ -465,9 +481,9 @@
    1.27  by (auto_tac (claset(), simpset() addsimps [hyperpow]));
    1.28  qed "hyperpow_realpow";
    1.29  
    1.30 -Goalw [SReal_def]
    1.31 -     "(hypreal_of_real r) pow (hypnat_of_nat n) : Reals";
    1.32 -by (auto_tac (claset(), simpset() addsimps [hyperpow_realpow]));
    1.33 +Goalw [SReal_def] "(hypreal_of_real r) pow (hypnat_of_nat n) : Reals";
    1.34 +by (simp_tac (simpset() delsimps [hypreal_of_real_power]
    1.35 +			addsimps [hyperpow_realpow]) 1); 
    1.36  qed "hyperpow_SReal";
    1.37  Addsimps [hyperpow_SReal];
    1.38