| int2bytes(i / 256 - 1) + i2b(i % 256) ' = i2b(~1) ' + by ' + bytes, i < 0, i < ~256, b2i(by) < 0, ∀ bytes, by, i0. i→n(i0) < i→n(i) → true → b2i(by) < 0 → int2bytes(i0) ≠ i2b(~1) ' + by ' + bytes ⊦ bytes = [], i % 256 = 0, i2b(i % 256) ≠ i2b(~1) ∧ i2b(i % 256) ≠ by ∧ ¬ i2b(i % 256) ∈ bytes, ¬ i2b(~1) ∈ int2bytes(i / 256 - 1) ∧ i2b(~1) ≠ i2b(i % 256) |
int2bytes(i / 256 - 1) + i2b(i % 256) ' = i2b(~1) ' + by ' + bytes, i < 0, i < ~256, b2i(by) < 0, i2b(i % 256) ∈ bytes, ∀ bytes, by, i0. i→n(i0) < i→n(i) → true → b2i(by) < 0 → int2bytes(i0) ≠ i2b(~1) ' + by ' + bytes ⊦ bytes = [], i % 256 = 0, ¬ i2b(~1) ∈ int2bytes(i / 256 - 1) ∧ i2b(~1) ≠ i2b(i % 256)
Used simplifier rules: ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes + by ' = bytes0 + bytes1 ∧ ¬ by ∈ bytes1 → bytes1 = []; (forward)