| b2i(by) = ~1, b2i(bytes1.first) < 0, ∀ bytes0. # bytes0 < #(by + bytes1) → true → bytes0 = [] ∨ fix(# bytes0, int2bytes(bytes2int(bytes0))) = bytes0 ⊦ fix(1 + # bytes1, int2bytes(bytes2int(by ' + bytes1))) = by ' + bytes1, bytes1 = [] |
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 = []
Used simplifier rules: ⊦ bytes ≠ [] → (by = bytes.first ∧ bytes0 = bytes.rest ↔ bytes = by + bytes0); (elim) Used terms: bytes1, by0, bytes