src/HOL/Power.thy
changeset 16775 c1b87ef4a1c3
parent 16733 236dfafbeb63
child 16796 140f1e0ea846
equal deleted inserted replaced
16774:515b6020cf5d 16775:c1b87ef4a1c3
    48 done
    48 done
    49 
    49 
    50 lemma zero_less_power:
    50 lemma zero_less_power:
    51      "0 < (a::'a::{ordered_semidom,recpower}) ==> 0 < a^n"
    51      "0 < (a::'a::{ordered_semidom,recpower}) ==> 0 < a^n"
    52 apply (induct "n")
    52 apply (induct "n")
    53 apply (simp_all add: power_Suc zero_less_one mult_pos)
    53 apply (simp_all add: power_Suc zero_less_one mult_pos_pos)
    54 done
    54 done
    55 
    55 
    56 lemma zero_le_power:
    56 lemma zero_le_power:
    57      "0 \<le> (a::'a::{ordered_semidom,recpower}) ==> 0 \<le> a^n"
    57      "0 \<le> (a::'a::{ordered_semidom,recpower}) ==> 0 \<le> a^n"
    58 apply (simp add: order_le_less)
    58 apply (simp add: order_le_less)
   161 text{*Perhaps these should be simprules.*}
   161 text{*Perhaps these should be simprules.*}
   162 lemma power_inverse:
   162 lemma power_inverse:
   163   "inverse ((a::'a::{field,division_by_zero,recpower}) ^ n) = (inverse a) ^ n"
   163   "inverse ((a::'a::{field,division_by_zero,recpower}) ^ n) = (inverse a) ^ n"
   164 apply (induct "n")
   164 apply (induct "n")
   165 apply (auto simp add: power_Suc inverse_mult_distrib)
   165 apply (auto simp add: power_Suc inverse_mult_distrib)
       
   166 done
       
   167 
       
   168 lemma power_one_over: "1 / (a::'a::{field,division_by_zero,recpower})^n = 
       
   169     (1 / a)^n"
       
   170 apply (simp add: divide_inverse)
       
   171 apply (rule power_inverse)
   166 done
   172 done
   167 
   173 
   168 lemma nonzero_power_divide:
   174 lemma nonzero_power_divide:
   169     "b \<noteq> 0 ==> (a/b) ^ n = ((a::'a::{field,recpower}) ^ n) / (b ^ n)"
   175     "b \<noteq> 0 ==> (a/b) ^ n = ((a::'a::{field,recpower}) ^ n) / (b ^ n)"
   170 by (simp add: divide_inverse power_mult_distrib nonzero_power_inverse)
   176 by (simp add: divide_inverse power_mult_distrib nonzero_power_inverse)