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