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] |