| #(int2bytes(i >> 8) + i2b(i) ') < n ∧ bytes2int(int2bytes(i >> 8) + i2b(i) ') < 0, # int2bytes(i >> 8) < n, # int2bytes(i >> 8) + 1 < n, i < ~128, i >> 8 < 0, i < 0 ⊦ mklist(i2b(~1), n - #(int2bytes(i >> 8) + i2b(i) ')) + int2bytes(i >> 8) + i2b(i) ' = (mklist(i2b(~1), n - 1 - # int2bytes(i >> 8)) + int2bytes(i >> 8)) + i2b(i) ', n = # int2bytes(i >> 8) + 1 |
# int2bytes(i >> 8) < n, i < ~128, i >> 8 < 0, i < 0, # int2bytes(i >> 8) + 1 < n, bytes2int(int2bytes(i >> 8) + i2b(i) ') < 0 ⊦ n = # int2bytes(i >> 8) + 1, n - # int2bytes(i >> 8) + 1 = n - 1 - # int2bytes(i >> 8)
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ mklist(by, m) = mklist(by, n) ↔ m = n;% ⊦ bytes + bytes0 = bytes1 + bytes0 ↔ bytes = bytes1;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;