| 1 + # bytes1 < # int2bytes(bytes2int(i2b(~1) ' + bytes1)), b2i(bytes1.first) < 0, ∀ bytes0. # bytes0 < #(i2b(~1) + bytes1) → # bytes0 < # int2bytes(bytes2int(bytes0)) → bytes0 = [] ⊦ bytes1 = [] |
bytes1 = by + bytes, 1 + # bytes1 < # int2bytes(bytes2int(i2b(~1) ' + bytes1)), b2i(by) < 0, ∀ bytes0. # bytes0 < #(i2b(~1) + bytes1) → # bytes0 < # int2bytes(bytes2int(bytes0)) → bytes0 = [] ⊦ bytes1 = []
Used simplifier rules: ⊦ bytes ≠ [] → (by = bytes.first ∧ bytes0 = bytes.rest ↔ bytes = by + bytes0); (elim) Used terms: bytes1, by, bytes