| int2bytes(i) = i2b(0) ' + by ' + bytes0, i2b(0) ∈ int2bytes(i), i * 256 + j < 0, j ≤ 0, 0 ≤ b2i(by), i * 256 + j < ~383, abs(j) < 256, i < ~127, i < 256 * (i + 1) + j, i < 0, ∀ bytes, by, i0. i→n(i0) < i→n((i * 256 + j) + 255) → int2bytes(i0) = i2b(0) ' + by ' + bytes ∧ 0 ≤ b2i(by) ∧ i2b(0) ∈ int2bytes(i0) → false ⊦ |
i < 256 * (i + 1), int2bytes(i) = i2b(0) ' + by ' + bytes0, i2b(0) ∈ int2bytes(i), i * 256 + j < 0, j ≤ 0, 0 ≤ b2i(by), i * 256 + j < ~383, abs(j) < 256, i < ~127, i < 256 * (i + 1) + j, i < 0, ∀ bytes, by, i0. i→n(i0) < i→n((i * 256 + j) + 255) → int2bytes(i0) = i2b(0) ' + by ' + bytes ∧ 0 ≤ b2i(by) ∧ i2b(0) ∈ int2bytes(i0) → false ⊦
Used simplifier rules: ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i ≤ j ∧ j < j0 → i < j0; (forward)% ⊦ 0 < i → (i * j < 0 ↔ j < 0);% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i;% ⊦ i * (j + i0) < i * (j0 + i0) + j1 ↔ i * j < i * j0 + j1;% ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false); Used formulas: i < 256 * (i + 1)