| # bytes = 1, b2i(bytes.first) = 0, ∀ bytes0. # bytes0 < 1 → (∀ by. by ∈ bytes0 → b2i(by) = 0) → bytes2int(bytes0) = 0 ∨ bytes0 = [] ⊦ bytes = [], bytes2int(bytes) = 0 |
Used simplifier rules: bytes2int-one: ⊦ bytes2int(by ') = b2i(by);% ⊦ by + bytes = by ' + bytes;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ # by ' = 0 +1;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ 1 = m + 1 ↔ m = 0;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;% ⊦ by ' + bytes ≠ [];% ⊦ bytes + [] = bytes;%bytes ≠ [] ⊦ by = bytes.first ∧ bytes0 = bytes.rest ↔ bytes = by + bytes0; (elim) Used terms: bytes, by0, bytes1