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