| 2 ^ j ≠ 0, ∃ j0. i = j0 * 2 ^ j, 0 < j, i < 0, j < 32, ∀ i, j0. i→n(j0) < i→n(j) → true → i < 0 ∧ i % 2 ^ j0 = 0 ∧ 0 < j0 ∧ j0 < 32 → i i>> j0 = i / 2 ^ j0 ⊦ ((i - 1) / 2) % 2 ^ (j - 1) = 0 ∧ j ≠ 1, (i - 1) / 2 i>> (j - 1) = i / 2 ^ j |
0 < j, j < 32, j0 * 2 ^ j < 0, ∀ i, j0. i→n(j0) < i→n(j) → true → i < 0 ∧ i % 2 ^ j0 = 0 ∧ 0 < j0 ∧ j0 < 32 → i i>> j0 = i / 2 ^ j0 ⊦ (j0 * 2 ^ j - 1) / 2 i>> (j - 1) = j0, ((j0 * 2 ^ j - 1) / 2) % 2 ^ (j - 1) = 0, j = 1
Used simplifier rules: intshiftrsign-zero: ⊦ i i>> 0 = i;% ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ j < 0 → (j * 2 - 1) / 2 = j;% ⊦ 0 < i → (i * j < 0 ↔ j < 0);% ⊦ 0 < j → (i ^ j = 0 ↔ i = 0);% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;%j ≠ 0 ⊦ (i * j) / j = i;