| 0 ≤ band(b2i(by2), 255), band(b2i(by1), 255) < 256, 65536 * band(b2i(by2), 255) + 256 * band(b2i(by1), 255) < 16777216, 0 ≤ band(b2i(by1), 255) ⊦ bor(256 * band(b2i(by1), 255) + 65536 * band(b2i(by2), 255), bor(band(b2i(by0), 255), 16777216 * b2i(by3))) = bor(bytes2int(by3 ' + by2 ' + by1 ') * 256, band(b2i(by0), 255)), 16777216 * b2i(by3) + 256 * band(b2i(by1), 255) + 65536 * band(b2i(by2), 255) = bytes2int(by3 ' + by2 ' + by1 ') * 256, bor(256 * band(b2i(by1), 255) + 65536 * band(b2i(by2), 255), 16777216 * b2i(by3)) = bytes2int(by3 ' + by2 ' + by1 ') * 256 |
⊦ bytes ≠ [] → bytes2int(bytes + by ') = bytes2int(bytes) * 256 + band(b2i(by), 255)
by3 ' + by2 ' ≠ [], 0 ≤ band(b2i(by2), 255), band(b2i(by1), 255) < 256, 65536 * band(b2i(by2), 255) + 256 * band(b2i(by1), 255) < 16777216, 0 ≤ band(b2i(by1), 255) ⊦ bor(256 * band(b2i(by1), 255) + 65536 * band(b2i(by2), 255), bor(band(b2i(by0), 255), 16777216 * b2i(by3))) = bor((bytes2int(by3 ' + by2 ') * 256 + band(b2i(by1), 255)) * 256, band(b2i(by0), 255)), 16777216 * b2i(by3) + 256 * band(b2i(by1), 255) + 65536 * band(b2i(by2), 255) = (bytes2int(by3 ' + by2 ') * 256 + band(b2i(by1), 255)) * 256, bor(256 * band(b2i(by1), 255) + 65536 * band(b2i(by2), 255), 16777216 * b2i(by3)) = (bytes2int(by3 ' + by2 ') * 256 + band(b2i(by1), 255)) * 256
Used simplifier rules: ⊦ ¬ bytes + bytes0 ≠ [] ↔ bytes = [] ∧ bytes0 = [];% ⊦ by ' ≠ [];% ⊦ (bytes + bytes0) + bytes1 = bytes + bytes0 + bytes1; Used terms: by1, by3 ' + by2 '