| 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 |
⊦ 0 < i → (m < # int2bits(i) ↔ ¬ i < 2 ^ (n→i(m) - 1))
Used simplifier rules: sis-06: ⊦ s2i(i2s(0)) = 0;%j0 ≠ 0, j < j0 ⊦ i ≤ (* j) → i < (* j0);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i ≤ j → (j ≤ i ↔ i = j);% ⊦ i * j = j * i;% ⊦ i + j = j + i;% ⊦ int2bits(0) = false ';% ⊦ 0 < n → fillsgn(n, boolvar ') = mklist(boolvar, n);%n ≠ 0 ⊦ mklist(false, (* n)) = false ' + mklist(false, n -1);% ⊦ mklist(boolvar, 0) = [];% ⊦ bits + [] = bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ (boolvar ' + bits).rest = bits;%0 < n ⊦ lastn((* n), bits + boolvar ') = lastn(n -1, bits) + boolvar ';% ⊦ lastn(1, bits) = bits.last ';% ⊦ (bits + boolvar ').last ↔ boolvar;% ⊦ bits2int(false ' + bits) = bits2uint(bits);% ⊦ bits2uint(bits + false ') = bits2uint(bits) * 2;% ⊦ bits2uint(false ') = 0; Used terms: j, 17