--- a/src/HOL/Word/Bit_Int.thy Fri Dec 23 15:24:22 2011 +0100
+++ b/src/HOL/Word/Bit_Int.thy Fri Dec 23 15:34:18 2011 +0100
@@ -535,8 +535,11 @@
apply (case_tac m, auto)
done
+lemma bin_cat_zero [simp]: "bin_cat 0 n w = bintrunc n w"
+ by (induct n arbitrary: w) (auto simp: Int.Pls_def)
+
lemma bin_cat_Pls [simp]: "bin_cat Int.Pls n w = bintrunc n w"
- by (induct n arbitrary: w) auto
+ unfolding Pls_def by (rule bin_cat_zero)
lemma bintr_cat1:
"bintrunc (k + n) (bin_cat a n b) = bin_cat (bintrunc k a) n b"
@@ -566,9 +569,12 @@
"bin_split n (bin_cat v n w) = (v, bintrunc n w)"
by (induct n arbitrary: w) auto
+lemma bin_split_zero [simp]: "bin_split n 0 = (0, 0)"
+ by (induct n) (auto simp: Int.Pls_def)
+
lemma bin_split_Pls [simp]:
"bin_split n Int.Pls = (Int.Pls, Int.Pls)"
- by (induct n) (auto simp: Let_def BIT_simps split: ls_splits)
+ unfolding Pls_def by (rule bin_split_zero)
lemma bin_split_Min [simp]:
"bin_split n Int.Min = (Int.Min, bintrunc n Int.Min)"