declare simp rules immediately, instead of using 'declare' commands
authorhuffman
Tue, 27 Dec 2011 12:05:03 +0100
changeset 46867e69d631fe9af
parent 46866 b16070689726
child 46868 13392893ea12
declare simp rules immediately, instead of using 'declare' commands
src/HOL/Word/Bool_List_Representation.thy
     1.1 --- a/src/HOL/Word/Bool_List_Representation.thy	Tue Dec 27 11:38:55 2011 +0100
     1.2 +++ b/src/HOL/Word/Bool_List_Representation.thy	Tue Dec 27 12:05:03 2011 +0100
     1.3 @@ -132,14 +132,14 @@
     1.4    "bin_to_bl_aux n w bs = bin_to_bl n w @ bs" 
     1.5    unfolding bin_to_bl_def by (simp add : bin_to_bl_aux_append)
     1.6  
     1.7 -lemma bin_to_bl_0: "bin_to_bl 0 bs = []"
     1.8 +lemma bin_to_bl_0 [simp]: "bin_to_bl 0 bs = []"
     1.9    unfolding bin_to_bl_def by auto
    1.10  
    1.11  lemma size_bin_to_bl_aux: 
    1.12    "size (bin_to_bl_aux n w bs) = n + length bs"
    1.13    by (induct n arbitrary: w bs) auto
    1.14  
    1.15 -lemma size_bin_to_bl: "size (bin_to_bl n w) = n" 
    1.16 +lemma size_bin_to_bl [simp]: "size (bin_to_bl n w) = n" 
    1.17    unfolding bin_to_bl_def by (simp add : size_bin_to_bl_aux)
    1.18  
    1.19  lemma bin_bl_bin': 
    1.20 @@ -147,7 +147,7 @@
    1.21      bl_to_bin_aux bs (bintrunc n w)"
    1.22    by (induct n arbitrary: w bs) (auto simp add : bl_to_bin_def)
    1.23  
    1.24 -lemma bin_bl_bin: "bl_to_bin (bin_to_bl n w) = bintrunc n w"
    1.25 +lemma bin_bl_bin [simp]: "bl_to_bin (bin_to_bl n w) = bintrunc n w"
    1.26    unfolding bin_to_bl_def bin_bl_bin' by auto
    1.27  
    1.28  lemma bl_bin_bl':
    1.29 @@ -159,7 +159,7 @@
    1.30      apply (auto simp add : bin_to_bl_def)
    1.31    done
    1.32  
    1.33 -lemma bl_bin_bl: "bin_to_bl (length bs) (bl_to_bin bs) = bs"
    1.34 +lemma bl_bin_bl [simp]: "bin_to_bl (length bs) (bl_to_bin bs) = bs"
    1.35    unfolding bl_to_bin_def
    1.36    apply (rule box_equals)
    1.37      apply (rule bl_bin_bl')
    1.38 @@ -168,12 +168,6 @@
    1.39    apply simp
    1.40    done
    1.41    
    1.42 -declare 
    1.43 -  bin_to_bl_0 [simp] 
    1.44 -  size_bin_to_bl [simp] 
    1.45 -  bin_bl_bin [simp] 
    1.46 -  bl_bin_bl [simp]
    1.47 -
    1.48  lemma bl_to_bin_inj:
    1.49    "bl_to_bin bs = bl_to_bin cs ==> length bs = length cs ==> bs = cs"
    1.50    apply (rule_tac box_equals)
    1.51 @@ -183,10 +177,10 @@
    1.52    apply simp
    1.53    done
    1.54  
    1.55 -lemma bl_to_bin_False: "bl_to_bin (False # bl) = bl_to_bin bl"
    1.56 +lemma bl_to_bin_False [simp]: "bl_to_bin (False # bl) = bl_to_bin bl"
    1.57    unfolding bl_to_bin_def by (auto simp: BIT_simps)
    1.58 -  
    1.59 -lemma bl_to_bin_Nil: "bl_to_bin [] = Int.Pls"
    1.60 +
    1.61 +lemma bl_to_bin_Nil [simp]: "bl_to_bin [] = Int.Pls"
    1.62    unfolding bl_to_bin_def by auto
    1.63  
    1.64  lemma bin_to_bl_Pls_aux: 
    1.65 @@ -209,15 +203,10 @@
    1.66    apply (simp add: bl_to_bin_def)
    1.67    done
    1.68  
    1.69 -lemma bin_to_bl_trunc:
    1.70 +lemma bin_to_bl_trunc [simp]:
    1.71    "n <= m ==> bin_to_bl n (bintrunc m w) = bin_to_bl n w"
    1.72    by (auto intro: bl_to_bin_inj)
    1.73  
    1.74 -declare 
    1.75 -  bin_to_bl_trunc [simp] 
    1.76 -  bl_to_bin_False [simp] 
    1.77 -  bl_to_bin_Nil [simp]
    1.78 -
    1.79  lemma bin_to_bl_aux_bintr [rule_format] :
    1.80    "ALL m bin bl. bin_to_bl_aux n (bintrunc m bin) bl = 
    1.81      replicate (n - m) False @ bin_to_bl_aux (min n m) bin bl"
    1.82 @@ -1036,8 +1025,6 @@
    1.83     in (w1, w2 BIT bin_last w))" 
    1.84    by (simp only: nobm1 bin_split_minus_simp)
    1.85  
    1.86 -declare bin_split_pred_simp [simp]
    1.87 -
    1.88  lemma bin_rsplit_aux_simp_alt:
    1.89    "bin_rsplit_aux n m c bs =
    1.90     (if m = 0 \<or> n = 0