add lemmas bin_cat_zero and bin_split_zero
authorhuffman
Fri, 23 Dec 2011 15:34:18 +0100
changeset 46827ae70b6830f15
parent 46826 fc303e8f5c20
child 46828 43eac86bf006
add lemmas bin_cat_zero and bin_split_zero
src/HOL/Word/Bit_Int.thy
     1.1 --- a/src/HOL/Word/Bit_Int.thy	Fri Dec 23 15:24:22 2011 +0100
     1.2 +++ b/src/HOL/Word/Bit_Int.thy	Fri Dec 23 15:34:18 2011 +0100
     1.3 @@ -535,8 +535,11 @@
     1.4    apply (case_tac m, auto)
     1.5    done
     1.6  
     1.7 +lemma bin_cat_zero [simp]: "bin_cat 0 n w = bintrunc n w"
     1.8 +  by (induct n arbitrary: w) (auto simp: Int.Pls_def)
     1.9 +
    1.10  lemma bin_cat_Pls [simp]: "bin_cat Int.Pls n w = bintrunc n w"
    1.11 -  by (induct n arbitrary: w) auto
    1.12 +  unfolding Pls_def by (rule bin_cat_zero)
    1.13  
    1.14  lemma bintr_cat1: 
    1.15    "bintrunc (k + n) (bin_cat a n b) = bin_cat (bintrunc k a) n b"
    1.16 @@ -566,9 +569,12 @@
    1.17    "bin_split n (bin_cat v n w) = (v, bintrunc n w)"
    1.18    by (induct n arbitrary: w) auto
    1.19  
    1.20 +lemma bin_split_zero [simp]: "bin_split n 0 = (0, 0)"
    1.21 +  by (induct n) (auto simp: Int.Pls_def)
    1.22 +
    1.23  lemma bin_split_Pls [simp]:
    1.24    "bin_split n Int.Pls = (Int.Pls, Int.Pls)"
    1.25 -  by (induct n) (auto simp: Let_def BIT_simps split: ls_splits)
    1.26 +  unfolding Pls_def by (rule bin_split_zero)
    1.27  
    1.28  lemma bin_split_Min [simp]:
    1.29    "bin_split n Int.Min = (Int.Min, bintrunc n Int.Min)"