| 8 < # int2bits(j0), ~128 < j0, i0 * 256 + j0 < 0, ~128 ≤ j0, i0 * 256 + j0 ≤ ~256, i0 < 0, j0 < 0 ⊦ b2i(i2b(bits2int(lastn(8, int2bits(i0 - 1) + fillsgn(8, int2bits(j0)))))) = j0, 8 = # fillsgn(8, int2bits(j0)), ~256 ≠ i0 * 256 + j0 ∧ lastn(8, int2bits(i0 - 1) + fillsgn(8, int2bits(j0))).first |
⊦ i < ~1 → (m < # int2bits(i) ↔ ¬ 0 ≤ i + 2 ^ (n→i(m) - 1))
Used simplifier rules: add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%numleledel-01: i0 ≠ 0, i0 ≤ i ⊦ (* i) ≤ j → (* i0) ≤ j; from specification int-abs%numle-02: ⊦ (* j) ≤ i0 + (* j0) ↔ j - j0 ≤ i0; from specification int-abs%commutativity: ⊦ i * j = j * i; from specification int-mult%add-c: ⊦ i + j = j + i; from specification int-basic2%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%mone-08: ⊦ i < 0 → (~1 ≤ i ↔ i = ~1); from specification int-abs%int2bits-mone-02: ⊦ int2bits(~1) = true '; from specification int2bits%fill-rec-one: ⊦ 0 < n → fillsgn(n, boolvar ') = mklist(boolvar, n); from specification bitopsaux%mklist-num-01: n ≠ 0 ⊦ mklist(true, (* n)) = true ' + mklist(true, n -1); from specification bitlista%mk-zero: ⊦ mklist(boolvar, 0) = []; from specification list-last[bitlista]%app: ⊦ bits + [] = bits; from specification list[bitlista]%a: ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; from specification list[bitlista]%len: ⊦ #(bits + bits0) = # bits + # bits0; from specification list[bitlista]%len-02: ⊦ # boolvar ' = 0 +1; from specification list[bitlista]%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2 Used terms: j0, 8