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