| 0 ≤ 2 ^ (8 * n→i(# bytes)) + band(255, b2i(bytes.last)) + 256 * bytes2int(by ' + bytes.butlast), b2i(by) < 0, ∀ by, bytes0. # bytes0 < # bytes → 0 ≤ bytes2int(by ' + bytes0) + 2 ^ (8 * n→i(# bytes0)) ∧ b2i(by) < 0 → b2i(by) = ~1 ⊦ bytes = [], b2i(by) = ~1 |
bytes = bytes1 + by0 ', 0 ≤ 2 ^ (8 * n→i(# bytes)) + band(255, b2i(by0)) + 256 * bytes2int(by ' + bytes1), b2i(by) < 0, ∀ by, bytes0. # bytes0 < # bytes → 0 ≤ bytes2int(by ' + bytes0) + 2 ^ (8 * n→i(# bytes0)) ∧ b2i(by) < 0 → b2i(by) = ~1 ⊦ bytes = [], b2i(by) = ~1
Used simplifier rules: bytes ≠ [] ⊦ by = bytes.last ∧ bytes0 = bytes.butlast ↔ bytes = bytes0 + by '; (elim) Used terms: bytes, by0, bytes1