| 0 ≤ 256 * bytes2int(by ' + bytes1) + band(255, b2i(by0)) + 2 ^ (8 * (n→i(# bytes1) + 1)), b2i(by) < 0, ∀ by, bytes0. # bytes0 < #(bytes1 + by0 ') → 0 ≤ bytes2int(by ' + bytes0) + 2 ^ (8 * n→i(# bytes0)) ∧ b2i(by) < 0 → b2i(by) = ~1 ⊦ 0 ≤ bytes2int(by ' + bytes1) + 2 ^ (8 * n→i(# bytes1)) ∧ b2i(by) < 0, b2i(by) = ~1 |
bytes2int(by ' + bytes1) + 2 ^ (8 * n→i(# bytes1)) < 0, b2i(by) < 0, 0 ≤ 256 * bytes2int(by ' + bytes1) + band(255, b2i(by0)) + 2 ^ (8 * (n→i(# bytes1) + 1)), 2 ^ (8 * n→i(# bytes1)) < 255 * bytes2int(by ' + bytes1) + band(255, b2i(by0)) + 2 ^ (8 * (n→i(# bytes1) + 1)), ∀ by, bytes0. # bytes0 < #(bytes1 + by0 ') → 0 ≤ bytes2int(by ' + bytes0) + 2 ^ (8 * n→i(# bytes0)) ∧ b2i(by) < 0 → b2i(by) = ~1 ⊦ b2i(by) = ~1
Used simplifier rules: ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i + j < (* i1) * i + j0 ↔ j < (i1 - 1) * i + j0;% ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ i < j → (¬ ¬ j ≤ i ↔ false);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ ¬ i ≤ j ↔ j < i;