| bytes1 = by0 + bytes, b2i(by) = ~1, b2i(by0) < 0, ∀ bytes0. # bytes0 < #(by + bytes1) → true → bytes0 = [] ∨ fix(# bytes0, int2bytes(bytes2int(bytes0))) = bytes0 ⊦ fix(1 + # bytes1, int2bytes(bytes2int(by ' + bytes1))) = by ' + bytes1, bytes1 = [] |
b2i(by) = ~1, b2i(by0) < 0, ∀ bytes0. # bytes0 < #(by + by0 + bytes) → true → bytes0 = [] ∨ fix(# bytes0, int2bytes(bytes2int(bytes0))) = bytes0 ⊦ fix(2 + # bytes, int2bytes(bytes2int(by ' + by0 ' + bytes))) = by ' + by0 ' + bytes
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ by ' + bytes ≠ [];% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ by + bytes = by ' + bytes;