| # int2bits(j) % 8 = 0, # int2bits(j) = 8 * i→n(i) + 8, 0 < i, j + 2 ^ (i * 8 - 1) < 0, 0 < j + 2 ^ (i * 8), 0 < 2 ^ (i * 8) + j, j < 0 ⊦ j = 0, bits2bytes(int2bits(j)) = i2b(~1) ' + bits2bytes(int2bits(j)).rest, # int2bits(j) % 8 = 0 ∧ ¬ # int2bits(j) ≤ 8 |
# int2bits(j) % 8 = 0, # int2bits(j) = 8 * i→n(i) + 8, 0 < i, j + 2 ^ (i * 8 - 1) < 0, 0 < j + 2 ^ (i * 8), 0 < 2 ^ (i * 8) + j, j < 0, # int2bits(j) ≤ 8 ⊦ j = 0, i2b(j) = i2b(~1), j = ~1
Used simplifier rules: bits2bytes-base: ⊦ # bits ≤ 8 → bits2bytes(bits) = i2b(bits2int(bits)) ';% ⊦ i2b(i) ≠ i2b(j) → i ≠ j; (forward)% ⊦ by ' = by0 ' ↔ by = by0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes + [] = bytes;% ⊦ by '.rest = [];% ⊦ bits2int(int2bits(i)) = i;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i * j = j * i;