| # int2bytes(i) < i→n(j) + # int2bytes(i) ∧ bytes2int(int2bytes(i)) < 0, i→n(j) < # int2bytes(i) ⊦ bytes2int(firstn(# int2bytes(i) - i→n(j), int2bytes(i))) = bytes2int(firstn(# int2bytes(i), mklist(i2b(~1), i→n(j) + # int2bytes(i) - # int2bytes(i)) + int2bytes(i))), j = 0 |
i→n(j) < # int2bytes(i), i < 0 ⊦ j = 0, bytes2int(firstn(# int2bytes(i) - i→n(j), int2bytes(i))) = bytes2int(firstn(# int2bytes(i), mklist(i2b(~1), i→n(j)) + int2bytes(i)))
Used simplifier rules: int2int: ⊦ bytes2int(int2bytes(i)) = i;% ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ i→n(i) = 0 ↔ i = 0;% ⊦ m < m + n ↔ n ≠ 0;% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n - m = n;