| # int2bits(j) = 8 * i→n(i) + 8, # int2bits(j) % 8 = 0, j < 0, 0 < 2 ^ (i * 8) + j, 0 < j + 2 ^ (i * 8), j + 2 ^ (i * 8 - 1) < 0, 0 < i, 8 < # int2bits(j) ⊦ bits2bytes(firstn(8, int2bits(j))) + bits2bytes(restn(8, int2bits(j))) = i2b(~1) ' + (bits2bytes(firstn(8, int2bits(j))) + bits2bytes(restn(8, int2bits(j)))).rest, j = 0, i = 0 |
⊦ # bits ≤ 8 → bits2bytes(bits) = i2b(bits2int(bits)) '
# firstn(8, int2bits(j)) ≤ 8, # int2bits(j) = 8 * i→n(i) + 8, # int2bits(j) % 8 = 0, j < 0, 0 < 2 ^ (i * 8) + j, 0 < j + 2 ^ (i * 8), j + 2 ^ (i * 8 - 1) < 0, 0 < i, 8 < # int2bits(j) ⊦ i2b(bits2int(firstn(8, int2bits(j)))) ' + bits2bytes(restn(8, int2bits(j))) = i2b(~1) ' + (i2b(bits2int(firstn(8, int2bits(j)))) ' + bits2bytes(restn(8, int2bits(j)))).rest, j = 0, i = 0
Used simplifier rules: ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ i * j = j * i;% ⊦ # firstn(n, bits) = n; Used terms: firstn(8, int2bits(j))