| 256 * (b2i(by0) - 1) + band(b2i(by), 255) = i, 256 * b2i(by0) + band(b2i(by), 255) = i + 256, 0 ≤ b2i(by0), ~129 < i, i < 0, ∀ bytes0. # bytes0 < #((by0 + []) + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ by = i2b(0), by0 ' + by ' = i2b(0) ' + i2b(i) ' |
256 * (b2i(by0) - 1) + band(b2i(by), 255) < 0, 256 * (b2i(by0) - 1) + band(b2i(by), 255) = i, 256 * b2i(by0) + band(b2i(by), 255) = i + 256, 0 ≤ b2i(by0), ~129 < i, i < 0, ∀ bytes0. # bytes0 < #((by0 + []) + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ by = i2b(0), by0 ' + by ' = i2b(0) ' + i2b(i) '
Used simplifier rules: ⊦ band(i, j) = band(j, i);% ⊦ i * j = j * i;% ⊦ i * j + i = i * (j + 1);% ⊦ i + (j - i) = j;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i + j = i + i0 ↔ j = i0;% ⊦ i2b(i * 256 + j) = i2b(j);% ⊦ i2b(band(255, b2i(by))) = by;% ⊦ band(i, band(i0, j)) = band(band(i, i0), j);% ⊦ bytes + bytes0 = bytes1 + bytes0 ↔ bytes = bytes1;% ⊦ by ' = by0 ' ↔ by = by0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false); Used formulas: 256 * (b2i(by0) - 1) + band(b2i(by), 255) < 0