377 by (induct n) (auto simp add: Int.Pls_def) |
377 by (induct n) (auto simp add: Int.Pls_def) |
378 |
378 |
379 lemma sbintrunc_n_0 [simp]: "sbintrunc n 0 = 0" |
379 lemma sbintrunc_n_0 [simp]: "sbintrunc n 0 = 0" |
380 by (induct n) (auto simp add: Int.Pls_def) |
380 by (induct n) (auto simp add: Int.Pls_def) |
381 |
381 |
|
382 lemma sbintrunc_n_minus1 [simp]: "sbintrunc n -1 = -1" |
|
383 by (induct n) (auto, simp add: number_of_is_id) |
|
384 |
382 lemma bintrunc_Suc_numeral: |
385 lemma bintrunc_Suc_numeral: |
383 "bintrunc (Suc n) 1 = 1" |
386 "bintrunc (Suc n) 1 = 1" |
384 "bintrunc (Suc n) -1 = bintrunc n -1 BIT 1" |
387 "bintrunc (Suc n) -1 = bintrunc n -1 BIT 1" |
385 "bintrunc (Suc n) (number_of (Int.Bit0 w)) = bintrunc n (number_of w) BIT 0" |
388 "bintrunc (Suc n) (number_of (Int.Bit0 w)) = bintrunc n (number_of w) BIT 0" |
386 "bintrunc (Suc n) (number_of (Int.Bit1 w)) = bintrunc n (number_of w) BIT 1" |
389 "bintrunc (Suc n) (number_of (Int.Bit1 w)) = bintrunc n (number_of w) BIT 1" |
387 by simp_all |
390 by simp_all |
388 |
391 |
|
392 lemma sbintrunc_0_numeral [simp]: |
|
393 "sbintrunc 0 1 = -1" |
|
394 "sbintrunc 0 (number_of (Int.Bit0 w)) = 0" |
|
395 "sbintrunc 0 (number_of (Int.Bit1 w)) = -1" |
|
396 by (simp_all, unfold Pls_def number_of_is_id, simp_all) |
|
397 |
389 lemma sbintrunc_Suc_numeral: |
398 lemma sbintrunc_Suc_numeral: |
390 "sbintrunc (Suc n) 1 = 1" |
399 "sbintrunc (Suc n) 1 = 1" |
391 "sbintrunc (Suc n) -1 = sbintrunc n -1 BIT 1" |
|
392 "sbintrunc (Suc n) (number_of (Int.Bit0 w)) = sbintrunc n (number_of w) BIT 0" |
400 "sbintrunc (Suc n) (number_of (Int.Bit0 w)) = sbintrunc n (number_of w) BIT 0" |
393 "sbintrunc (Suc n) (number_of (Int.Bit1 w)) = sbintrunc n (number_of w) BIT 1" |
401 "sbintrunc (Suc n) (number_of (Int.Bit1 w)) = sbintrunc n (number_of w) BIT 1" |
394 by simp_all |
402 by simp_all |
395 |
403 |
396 lemma bit_bool: |
404 lemma bit_bool: |