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