| bytes2int(i2b(0) ' + by ' + bytes) < 2 ^ ((n→i(# bytes) + 1) * 8 - 1), b2i(by) < 0, ∀ by, bytes0. # bytes0 < # bytes → true → b2i(by) < 0 → 2 ^ ((n→i(# bytes0) + 1) * 8 - 1) ≤ bytes2int(i2b(0) ' + by ' + bytes0) ⊦ |
⊦ 1 < # bytes → bytes2int(bytes) = bytes2int(bytes.butlast) * 256 + band(b2i(bytes.last), 255)
1 < #(i2b(0) ' + by ' + bytes), bytes2int((i2b(0) ' + by ' + bytes).butlast) * 256 + band(b2i((i2b(0) ' + by ' + bytes).last), 255) < 2 ^ ((n→i(# bytes) + 1) * 8 - 1), b2i(by) < 0, ∀ by, bytes0. # bytes0 < # bytes → true → b2i(by) < 0 → 2 ^ ((n→i(# bytes0) + 1) * 8 - 1) ≤ bytes2int(i2b(0) ' + by ' + bytes0) ⊦
Used simplifier rules: ⊦ #(bytes + bytes0) = # bytes + # bytes0;% ⊦ # by ' = 0 +1;% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1;% ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1);% ⊦ m + n = 0 ↔ m = 0 ∧ n = 0;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + n = n + m;%n < n0 ⊦ (* n) ≠ m0 + (* n0); Used terms: i2b(0) ' + by ' + bytes