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