| # bytes1 = # int2bytes(band(b2i(by), 255) / 256 + bytes2int(bytes1)), band(b2i(by), 255) % 256 = 0, bytes2int(bytes1) < 0, 0 ≤ band(b2i(by), 255), bytes2int(bytes1) * 256 + band(b2i(by), 255) < 0, bytes2int(bytes1) * 256 + band(b2i(by), 255) < ~256, ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 + by ' = int2bytes(band(b2i(by), 255) / 256 + bytes2int(bytes1)) + i2b(0) ', bytes1 = [], bytes2int(bytes1) * 256 + band(b2i(by), 255) = ~256 |
abs(i) < abs(j) ⊦ i / j = 0
abs(band(b2i(by), 255)) < abs(256), # bytes1 = # int2bytes(0 + bytes2int(bytes1)), band(b2i(by), 255) % 256 = 0, bytes2int(bytes1) < 0, 0 ≤ band(b2i(by), 255), bytes2int(bytes1) * 256 + band(b2i(by), 255) < 0, bytes2int(bytes1) * 256 + band(b2i(by), 255) < ~256, ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 + by ' = int2bytes(0 + bytes2int(bytes1)) + i2b(0) ', bytes1 = [], bytes2int(bytes1) * 256 + band(b2i(by), 255) = ~256
Used simplifier rules: ⊦ i + j = j + i;% ⊦ band(i, j) = band(j, i);% ⊦ i * j = j * i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ 0 ≤ i → abs(i) = i;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ ¬ 256 ≤ band(i, 255);% ⊦ band(i, band(i0, j)) = band(band(i, i0), j); Used terms: 256, band(b2i(by), 255)