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