| bytes1 = by + bytes, 1 + # bytes1 < # int2bytes(bytes2int(i2b(~1) ' + bytes1)), b2i(by) < 0, ∀ bytes0. # bytes0 < #(i2b(~1) + bytes1) → # bytes0 < # int2bytes(bytes2int(bytes0)) → bytes0 = [] ⊦ bytes1 = [] |
b2i(by) < 0, 2 + # bytes < # int2bytes(bytes2int(i2b(~1) ' + by ' + bytes)), ∀ bytes0. # bytes0 < #(i2b(~1) + by + bytes) → # bytes0 < # int2bytes(bytes2int(bytes0)) → bytes0 = [] ⊦
Used simplifier rules: int2bytes-empty: ⊦ int2bytes(i) ≠ [];% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ m < n → n ≠ 0; (forward)% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ by ' + bytes ≠ [];% ⊦ by + bytes = by ' + bytes;