generalize lemmas power_number_of_even and power_number_of_odd
authorhuffman
Wed, 22 Jun 2011 15:58:55 -0700
changeset 43526 2b92a6943915
parent 43525 8f28a91ea135
child 43527 1aacef7471c2
child 43528 35f74aafc878
generalize lemmas power_number_of_even and power_number_of_odd
src/HOL/Nat_Numeral.thy
--- a/src/HOL/Nat_Numeral.thy	Wed Jun 22 13:45:32 2011 -0700
+++ b/src/HOL/Nat_Numeral.thy	Wed Jun 22 15:58:55 2011 -0700
@@ -647,13 +647,13 @@
 text{*For arbitrary rings*}
 
 lemma power_number_of_even:
-  fixes z :: "'a::number_ring"
+  fixes z :: "'a::monoid_mult"
   shows "z ^ number_of (Int.Bit0 w) = (let w = z ^ (number_of w) in w * w)"
 by (cases "w \<ge> 0") (auto simp add: Let_def Bit0_def nat_number_of_def number_of_is_id
   nat_add_distrib power_add simp del: nat_number_of)
 
 lemma power_number_of_odd:
-  fixes z :: "'a::number_ring"
+  fixes z :: "'a::monoid_mult"
   shows "z ^ number_of (Int.Bit1 w) = (if (0::int) <= number_of w
      then (let w = z ^ (number_of w) in z * w * w) else 1)"
 unfolding Let_def Bit1_def nat_number_of_def number_of_is_id