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