| 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, int2bytes(i / 256 - 1) = i2b(~1) ' + by ' + bytes.butlast, ¬ i2b(~1) ∈ int2bytes(i / 256 - 1) ∧ i2b(~1) ≠ i2b(i % 256) |
bytes ≠ [] ⊦ bytes0 + by ' = bytes ↔ bytes0 = bytes.butlast ∧ by = bytes.last
Used simplifier rules: ⊦ by ' ≠ [];% ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = [];% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ bytes ≠ [] → (bytes0 + bytes).butlast = bytes0 + bytes.butlast;% ⊦ (by ' + by0 ' + bytes).last = (by0 ' + bytes).last;% ⊦ by ∈ bytes → (by0 ' + bytes).last = bytes.last;% ⊦ by ' + bytes ≠ [];% ⊦ bytes.last = by ∧ bytes ≠ [] → by ∈ bytes; Used terms: i2b(~1) ' + by ' + bytes, i2b(i % 256), int2bytes(i / 256 - 1)