| ¬ # int2bits(j) ≤ 17, 32767 < 65536 * i0 + j, j ≤ 32767, 0 < 65536 * i0 + j, 0 ≤ j, 0 ≤ i0, 0 < i0 ⊦ s2i(i2s(bits2int(lastn(16, int2bits(i0) + fillsgn(17, int2bits(j)).rest)))) = j, fillsgn(17, int2bits(j)) = [], 16 = # fillsgn(17, int2bits(j)) - 1 |
17 < # int2bits(j), 0 < i0, 0 ≤ i0, 0 ≤ j, 0 < 65536 * i0 + j, j ≤ 32767, 32767 < 65536 * i0 + j ⊦ 16 = # fillsgn(17, int2bits(j)) - 1, fillsgn(17, int2bits(j)) = [], s2i(i2s(bits2int(lastn(16, int2bits(i0) + fillsgn(17, int2bits(j)).rest)))) = j
Used simplifier rules: ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ i + j = j + i;% ⊦ i * j = j * i;% ⊦ m < n → n ≠ 0; (forward)% ⊦ ¬ m ≤ n ↔ n < m;