| uint2bits(i) = uint2bits(i / 256) + fillsgn(9, uint2bits(i % 256)).rest, # uint2bits(i % 256) ≤ 9, 255 < i, 0 < i, 0 ≤ i ⊦ fillsgn(9, uint2bits(i % 256)) = [], bits2bytes(uint2bits(i / 256)) = bits2bytes(uint2bits(i / 256)) ∧ i2b(bits2int(lastn(8, uint2bits(i / 256) + fillsgn(9, uint2bits(i % 256)).rest))) = bits2bytes(int2bits(i % 256)).last |
⊦ n = # bits → lastn(n, bits0 + bits) = bits
8 = # fillsgn(9, uint2bits(i % 256)).rest, uint2bits(i) = uint2bits(i / 256) + fillsgn(9, uint2bits(i % 256)).rest, # uint2bits(i % 256) ≤ 9, 255 < i, 0 < i, 0 ≤ i ⊦ fillsgn(9, uint2bits(i % 256)) = [], bits2bytes(uint2bits(i / 256)) = bits2bytes(uint2bits(i / 256)) ∧ i2b(bits2int(fillsgn(9, uint2bits(i % 256)).rest)) = bits2bytes(int2bits(i % 256)).last
Used simplifier rules: ⊦ bits ≠ [] → # bits.rest = (# bits)-1;% ⊦ # bits ≤ n → # fillsgn(n, bits) = n; Used terms: fillsgn(9, uint2bits(i % 256)).rest, uint2bits(i / 256), 8