| bytes1 = by0 + bytes, b2i(by) = 0, 0 ≤ b2i(by0), ∀ bytes0. # bytes0 < #(by + bytes1) → true → bytes0 = [] ∨ fix(# bytes0, int2bytes(bytes2int(bytes0))) = bytes0 ⊦ fix(1 + # bytes1, int2bytes(bytes2int(by ' + bytes1))) = by ' + bytes1, bytes1 = [] |
b2i(by) = 0, 0 ≤ b2i(by0), ∀ 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: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ by ' + bytes ≠ [];% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ by + bytes = by ' + bytes;