| bytes = by + bytes1, # bytes = 1, 0 ≤ b2i(by), ∀ n, bytes0. # bytes0 < 1 → 0 ≤ b2i(bytes0.first) → bytes2int(mklist(i2b(0), n) + bytes0) = bytes2int(bytes0) ∨ bytes0 = [] ⊦ bytes = [], bytes2int(mklist(i2b(0), n) + bytes) = bytes2int(bytes) |
0 ≤ b2i(by), ∀ n, bytes0. # bytes0 < 1 → 0 ≤ b2i(bytes0.first) → bytes2int(mklist(i2b(0), n) + bytes0) = bytes2int(bytes0) ∨ bytes0 = [] ⊦ bytes2int(mklist(i2b(0), n) + by ') = b2i(by)
Used simplifier rules: bytes2int-one: ⊦ bytes2int(by ') = b2i(by);% ⊦ bytes + [] = bytes;% ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ by ' + bytes ≠ [];% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ # bytes = 0 ↔ bytes = [];% ⊦ 1 = m + 1 ↔ m = 0;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ # by ' = 0 +1;% ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ by + bytes = by ' + bytes;