src/HOL/Word/Bit_Representation.thy
changeset 61941 31f2105521ee
parent 61799 4cf66f21b764
child 61945 1135b8de26c3
equal deleted inserted replaced
61940:97c06cfd31e5 61941:31f2105521ee
   536 lemma sbintrunc_bintrunc' [simp]:
   536 lemma sbintrunc_bintrunc' [simp]:
   537   "0 < n \<Longrightarrow> sbintrunc (n - 1) (bintrunc n w) = sbintrunc (n - 1) w"
   537   "0 < n \<Longrightarrow> sbintrunc (n - 1) (bintrunc n w) = sbintrunc (n - 1) w"
   538   by (cases n) (auto simp del: bintrunc.Suc)
   538   by (cases n) (auto simp del: bintrunc.Suc)
   539 
   539 
   540 lemma bin_sbin_eq_iff: 
   540 lemma bin_sbin_eq_iff: 
   541   "bintrunc (Suc n) x = bintrunc (Suc n) y <-> 
   541   "bintrunc (Suc n) x = bintrunc (Suc n) y \<longleftrightarrow> 
   542    sbintrunc n x = sbintrunc n y"
   542    sbintrunc n x = sbintrunc n y"
   543   apply (rule iffI)
   543   apply (rule iffI)
   544    apply (rule box_equals [OF _ sbintrunc_bintrunc sbintrunc_bintrunc])
   544    apply (rule box_equals [OF _ sbintrunc_bintrunc sbintrunc_bintrunc])
   545    apply simp
   545    apply simp
   546   apply (rule box_equals [OF _ bintrunc_sbintrunc bintrunc_sbintrunc])
   546   apply (rule box_equals [OF _ bintrunc_sbintrunc bintrunc_sbintrunc])
   547   apply simp
   547   apply simp
   548   done
   548   done
   549 
   549 
   550 lemma bin_sbin_eq_iff':
   550 lemma bin_sbin_eq_iff':
   551   "0 < n \<Longrightarrow> bintrunc n x = bintrunc n y <-> 
   551   "0 < n \<Longrightarrow> bintrunc n x = bintrunc n y \<longleftrightarrow> 
   552             sbintrunc (n - 1) x = sbintrunc (n - 1) y"
   552             sbintrunc (n - 1) x = sbintrunc (n - 1) y"
   553   by (cases n) (simp_all add: bin_sbin_eq_iff del: bintrunc.Suc)
   553   by (cases n) (simp_all add: bin_sbin_eq_iff del: bintrunc.Suc)
   554 
   554 
   555 lemmas bintrunc_sbintruncS0 [simp] = bintrunc_sbintrunc' [unfolded One_nat_def]
   555 lemmas bintrunc_sbintruncS0 [simp] = bintrunc_sbintrunc' [unfolded One_nat_def]
   556 lemmas sbintrunc_bintruncS0 [simp] = sbintrunc_bintrunc' [unfolded One_nat_def]
   556 lemmas sbintrunc_bintruncS0 [simp] = sbintrunc_bintrunc' [unfolded One_nat_def]