replace lemmas eval_nat_numeral with a simpler reformulation
authorhuffman
Fri, 30 Mar 2012 12:32:35 +0200
changeset 47220 52426c62b5d0
parent 47219 172c031ad743
child 47221 7205eb4a0a05
replace lemmas eval_nat_numeral with a simpler reformulation
src/HOL/Nat_Numeral.thy
src/HOL/Num.thy
src/HOL/Power.thy
--- a/src/HOL/Nat_Numeral.thy	Fri Mar 30 12:02:23 2012 +0200
+++ b/src/HOL/Nat_Numeral.thy	Fri Mar 30 12:32:35 2012 +0200
@@ -61,17 +61,6 @@
 lemmas zpower_numeral_even = power_numeral_even [where 'a=int]
 lemmas zpower_numeral_odd = power_numeral_odd [where 'a=int]
 
-lemma nat_numeral_Bit0:
-  "numeral (Num.Bit0 w) = (let n::nat = numeral w in n + n)"
-  unfolding numeral_Bit0 Let_def ..
-
-lemma nat_numeral_Bit1:
-  "numeral (Num.Bit1 w) = (let n = numeral w in Suc (n + n))"
-  unfolding numeral_Bit1 Let_def by simp
-
-lemmas eval_nat_numeral =
-  nat_numeral_Bit0 nat_numeral_Bit1
-
 lemmas nat_arith =
   diff_nat_numeral
 
--- a/src/HOL/Num.thy	Fri Mar 30 12:02:23 2012 +0200
+++ b/src/HOL/Num.thy	Fri Mar 30 12:32:35 2012 +0200
@@ -869,8 +869,7 @@
 lemma numeral_eq_Suc: "numeral k = Suc (pred_numeral k)"
   unfolding pred_numeral_def by simp
 
-lemma nat_number:
-  "1 = Suc 0"
+lemma eval_nat_numeral:
   "numeral One = Suc 0"
   "numeral (Bit0 n) = Suc (numeral (BitM n))"
   "numeral (Bit1 n) = Suc (numeral (Bit0 n))"
@@ -880,14 +879,14 @@
   "pred_numeral Num.One = 0"
   "pred_numeral (Num.Bit0 k) = numeral (Num.BitM k)"
   "pred_numeral (Num.Bit1 k) = numeral (Num.Bit0 k)"
-  unfolding pred_numeral_def nat_number
+  unfolding pred_numeral_def eval_nat_numeral
   by (simp_all only: diff_Suc_Suc diff_0)
 
 lemma numeral_2_eq_2: "2 = Suc (Suc 0)"
-  by (simp add: nat_number(2-4))
+  by (simp add: eval_nat_numeral)
 
 lemma numeral_3_eq_3: "3 = Suc (Suc (Suc 0))"
-  by (simp add: nat_number(2-4))
+  by (simp add: eval_nat_numeral)
 
 lemma numeral_1_eq_Suc_0: "Numeral1 = Suc 0"
   by (simp only: numeral_One One_nat_def)
--- a/src/HOL/Power.thy	Fri Mar 30 12:02:23 2012 +0200
+++ b/src/HOL/Power.thy	Fri Mar 30 12:32:35 2012 +0200
@@ -185,7 +185,7 @@
 
 lemma power_minus_Bit1:
   "(- x) ^ numeral (Num.Bit1 k) = - (x ^ numeral (Num.Bit1 k))"
-  by (simp only: nat_number(4) power_Suc power_minus_Bit0 mult_minus_left)
+  by (simp only: eval_nat_numeral(3) power_Suc power_minus_Bit0 mult_minus_left)
 
 lemma power_neg_numeral_Bit0 [simp]:
   "neg_numeral k ^ numeral (Num.Bit0 l) = numeral (Num.pow k (Num.Bit0 l))"