| uint2bits(i) = uint2bits(i / 256) + fillsgn(9, uint2bits(i % 256)).rest, # uint2bits(i % 256) ≤ 9, 255 < i, 0 < i, 0 ≤ i, i % 256 ≤ 127 ⊦ fillsgn(9, uint2bits(i % 256)) = [], i2b(bits2int(fillsgn(9, uint2bits(i % 256)).rest)) = i2b(i % 256), bits2int(fillsgn(9, uint2bits(i % 256)).rest) = i % 256 |
⊦ bits ≠ [] ∧ # bits < n → fillsgn(n, bits) = bits.first ' + fillsgn(n -1, bits)
¬(uint2bits(i % 256) ≠ [] ∧ # uint2bits(i % 256) < 9), uint2bits(i) = uint2bits(i / 256) + fillsgn(9, uint2bits(i % 256)).rest, # uint2bits(i % 256) ≤ 9, 255 < i, 0 < i, 0 ≤ i, i % 256 ≤ 127 ⊦ fillsgn(9, uint2bits(i % 256)) = [], i2b(bits2int(fillsgn(9, uint2bits(i % 256)).rest)) = i2b(i % 256), bits2int(fillsgn(9, uint2bits(i % 256)).rest) = i % 256
uint2bits(i % 256) ≠ [] ∧ # uint2bits(i % 256) < 9, uint2bits(i) = uint2bits(i / 256) + (uint2bits(i % 256).first ' + fillsgn(9 -1, uint2bits(i % 256))).rest, # uint2bits(i % 256) ≤ 9, 255 < i, 0 < i, 0 ≤ i, i % 256 ≤ 127 ⊦ uint2bits(i % 256).first ' + fillsgn(9 -1, uint2bits(i % 256)) = [], i2b(bits2int((uint2bits(i % 256).first ' + fillsgn(9 -1, uint2bits(i % 256))).rest)) = i2b(i % 256), bits2int((uint2bits(i % 256).first ' + fillsgn(9 -1, uint2bits(i % 256))).rest) = i % 256
Used terms: uint2bits(i % 256), 9