declare simp rules immediately, instead of using 'declare' commands
authorhuffman
Tue, 27 Dec 2011 12:05:03 +0100
changeset 45996 e69d631fe9af
parent 45995 b16070689726
child 45997 13392893ea12
declare simp rules immediately, instead of using 'declare' commands
src/HOL/Word/Bool_List_Representation.thy
--- a/src/HOL/Word/Bool_List_Representation.thy	Tue Dec 27 11:38:55 2011 +0100
+++ b/src/HOL/Word/Bool_List_Representation.thy	Tue Dec 27 12:05:03 2011 +0100
@@ -132,14 +132,14 @@
   "bin_to_bl_aux n w bs = bin_to_bl n w @ bs" 
   unfolding bin_to_bl_def by (simp add : bin_to_bl_aux_append)
 
-lemma bin_to_bl_0: "bin_to_bl 0 bs = []"
+lemma bin_to_bl_0 [simp]: "bin_to_bl 0 bs = []"
   unfolding bin_to_bl_def by auto
 
 lemma size_bin_to_bl_aux: 
   "size (bin_to_bl_aux n w bs) = n + length bs"
   by (induct n arbitrary: w bs) auto
 
-lemma size_bin_to_bl: "size (bin_to_bl n w) = n" 
+lemma size_bin_to_bl [simp]: "size (bin_to_bl n w) = n" 
   unfolding bin_to_bl_def by (simp add : size_bin_to_bl_aux)
 
 lemma bin_bl_bin': 
@@ -147,7 +147,7 @@
     bl_to_bin_aux bs (bintrunc n w)"
   by (induct n arbitrary: w bs) (auto simp add : bl_to_bin_def)
 
-lemma bin_bl_bin: "bl_to_bin (bin_to_bl n w) = bintrunc n w"
+lemma bin_bl_bin [simp]: "bl_to_bin (bin_to_bl n w) = bintrunc n w"
   unfolding bin_to_bl_def bin_bl_bin' by auto
 
 lemma bl_bin_bl':
@@ -159,7 +159,7 @@
     apply (auto simp add : bin_to_bl_def)
   done
 
-lemma bl_bin_bl: "bin_to_bl (length bs) (bl_to_bin bs) = bs"
+lemma bl_bin_bl [simp]: "bin_to_bl (length bs) (bl_to_bin bs) = bs"
   unfolding bl_to_bin_def
   apply (rule box_equals)
     apply (rule bl_bin_bl')
@@ -168,12 +168,6 @@
   apply simp
   done
   
-declare 
-  bin_to_bl_0 [simp] 
-  size_bin_to_bl [simp] 
-  bin_bl_bin [simp] 
-  bl_bin_bl [simp]
-
 lemma bl_to_bin_inj:
   "bl_to_bin bs = bl_to_bin cs ==> length bs = length cs ==> bs = cs"
   apply (rule_tac box_equals)
@@ -183,10 +177,10 @@
   apply simp
   done
 
-lemma bl_to_bin_False: "bl_to_bin (False # bl) = bl_to_bin bl"
+lemma bl_to_bin_False [simp]: "bl_to_bin (False # bl) = bl_to_bin bl"
   unfolding bl_to_bin_def by (auto simp: BIT_simps)
-  
-lemma bl_to_bin_Nil: "bl_to_bin [] = Int.Pls"
+
+lemma bl_to_bin_Nil [simp]: "bl_to_bin [] = Int.Pls"
   unfolding bl_to_bin_def by auto
 
 lemma bin_to_bl_Pls_aux: 
@@ -209,15 +203,10 @@
   apply (simp add: bl_to_bin_def)
   done
 
-lemma bin_to_bl_trunc:
+lemma bin_to_bl_trunc [simp]:
   "n <= m ==> bin_to_bl n (bintrunc m w) = bin_to_bl n w"
   by (auto intro: bl_to_bin_inj)
 
-declare 
-  bin_to_bl_trunc [simp] 
-  bl_to_bin_False [simp] 
-  bl_to_bin_Nil [simp]
-
 lemma bin_to_bl_aux_bintr [rule_format] :
   "ALL m bin bl. bin_to_bl_aux n (bintrunc m bin) bl = 
     replicate (n - m) False @ bin_to_bl_aux (min n m) bin bl"
@@ -1036,8 +1025,6 @@
    in (w1, w2 BIT bin_last w))" 
   by (simp only: nobm1 bin_split_minus_simp)
 
-declare bin_split_pred_simp [simp]
-
 lemma bin_rsplit_aux_simp_alt:
   "bin_rsplit_aux n m c bs =
    (if m = 0 \<or> n = 0