| j0 * 256 >> (j - 1) = (j0 * 256 - 255) / 256 >> (j - 9), (i - 1) / 2 = j0 * 256, 8 < j, i < 0, 0 < j, j0 < 0, ∀ i, j0. i→n(j0) < i→n(j) → 8 ≤ j0 ∧ i < 0 ∧ 0 < j0 ∧ 0 ≤ j0 → i >> j0 = (i - 255) / 256 >> (j0 - 8) ⊦ j = 8, i % 256 = 0, i / 512 = (j0 * 256 - 255) / 256 + 1, j = 0, j0 * 256 >> (j - 1) = (i / 512 - 1) >> (j - 9) |
⊦ i % j = 0 ∧ j0 = j - 1 ∧ i < 0 ∧ 0 < j → (i - j0) / j = i / j
(j0 * 256) % 256 = 0 ∧ 255 = 256 - 1 ∧ j0 * 256 < 0 ∧ 0 < 256, j0 * 256 >> (j - 1) = (j0 * 256) / 256 >> (j - 9), (i - 1) / 2 = j0 * 256, 8 < j, i < 0, 0 < j, j0 < 0, ∀ i, j0. i→n(j0) < i→n(j) → 8 ≤ j0 ∧ i < 0 ∧ 0 < j0 ∧ 0 ≤ j0 → i >> j0 = (i - 255) / 256 >> (j0 - 8) ⊦ j = 8, i % 256 = 0, i / 512 = (j0 * 256) / 256 + 1, j = 0, j0 * 256 >> (j - 1) = (i / 512 - 1) >> (j - 9)
Used simplifier rules: i0 % j = 0, j ≠ 0 ⊦ (i * (* i0)) % (* j) = 0;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i;% ⊦ 0 < i → (i * j < 0 ↔ j < 0);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < j → (¬ ¬ j ≤ i ↔ false); Used terms: 256, 255, j0 * 256