| bytes2int(bytes1) * 256 + band(b2i(by), 255) = i + 256, 1 = # bytes1, 0 < bytes2int(bytes1) * 256 + band(b2i(by), 255), bytes2int(bytes1) * 256 + band(b2i(by), 255) ≤ 255, 127 < bytes2int(bytes1) * 256 + band(b2i(by), 255), ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 = [], bytes1 + by ' = i2b(0) ' + i2b(i) ' |
1 = # bytes1, bytes2int(bytes1) * 256 + band(b2i(by), 255) = i + 256, ~129 < i, i < 0, ∀ bytes0. # bytes0 < #(bytes1 + by ') → true → # bytes0 = # int2bytes(bytes2int(bytes0)) → bytes0 = int2bytes(bytes2int(bytes0)) ⊦ bytes1 + by ' = i2b(0) ' + i2b(i) ', bytes1 = []
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)%i0 ≠ 0, i0 < i ⊦ (* i) < j → (* i0) < j;% ⊦ i ≤ ~1 ↔ i < 0;% ⊦ i + (* j) ≤ (* j0) ↔ i ≤ j0 - j;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0;% ⊦ i < j ∧ 0 < i → 0 < j ∧ 1 < j; (forward)% ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward)% ⊦ i + j = j + i;% ⊦ band(i, j) = band(j, i);% ⊦ i * j = j * i;