| 2 ^ j ≠ 0, (i - 1) / 2 i>> (j - 1) = ((i - 1) / 2) / 2 ^ (j - 1), ∃ 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) = i / 2 ^ j |
(j0 * 2 ^ j - 1) / 2 i>> (j - 1) = ((j0 * 2 ^ j - 1) / 2) / 2 ^ (j - 1), 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) / 2 ^ (j - 1) = j0
Used simplifier rules: ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ 0 < j → (i ^ j = 0 ↔ i = 0);% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;%j ≠ 0 ⊦ (i * j) / j = i;