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