| #(int2bytes(i >> 8) + i2b(i) ') < n ∧ 0 ≤ bytes2int(int2bytes(i >> 8) + i2b(i) '), # int2bytes(i >> 8) < n, 128 ≤ i, 0 ≤ i >> 8, 0 < i, 0 ≤ i, # int2bytes(i >> 8) + 1 < n ⊦ mklist(i2b(0), n - #(int2bytes(i >> 8) + i2b(i) ')) + int2bytes(i >> 8) + i2b(i) ' = (mklist(i2b(0), n - 1 - # int2bytes(i >> 8)) + int2bytes(i >> 8)) + i2b(i) ', n = # int2bytes(i >> 8) + 1 |
# int2bytes(i >> 8) < n, 128 ≤ i, 0 ≤ i >> 8, 0 < i, 0 ≤ i, # int2bytes(i >> 8) + 1 < n, 0 ≤ bytes2int(int2bytes(i >> 8) + i2b(i) ') ⊦ n = # int2bytes(i >> 8) + 1, n - # int2bytes(i >> 8) + 1 = n - 1 - # int2bytes(i >> 8)
Used simplifier rules: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (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;