| band(i, 31) < 32, 0 < band(i, 31), b2i(by) < 0 ⊦ (2 ^ band(i, 31) * ~1 + b2i(by) + 1) / 2 ^ band(i, 31) = b2i(i2b((2 ^ band(i, 31) * ~1 + b2i(by) + 1) / 2 ^ band(i, 31))) |
⊦ i % j = 0 ∧ i < 0 ∧ i0 < 0 ∧ 0 < j → (i + i0) / j = i / j + i0 / j
(2 ^ band(i, 31) * ~1) % 2 ^ band(i, 31) = 0 ∧ 2 ^ band(i, 31) * ~1 < 0 ∧ b2i(by) + 1 < 0 ∧ 0 < 2 ^ band(i, 31), band(i, 31) < 32, 0 < band(i, 31), b2i(by) < 0 ⊦ (2 ^ band(i, 31) * ~1) / 2 ^ band(i, 31) + (b2i(by) + 1) / 2 ^ band(i, 31) = b2i(i2b((2 ^ band(i, 31) * ~1) / 2 ^ band(i, 31) + (b2i(by) + 1) / 2 ^ band(i, 31)))
Used simplifier rules: num-ibbi: ~128 ≤ i, i ≤ 127 ⊦ b2i(i2b((* i))) = i;% ⊦ band(i, j) = band(j, i);% ⊦ i * ~1 = ~ i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i;% ⊦ i + ~ j = i - j;% ⊦ i + (j - i0) = i + j - i0;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i;% ⊦ 0 < j → (i ^ j = 0 ↔ i = 0);%j ≠ 0 ⊦ ~ i % j = ~(i % j);%i ≠ 0 ⊦ i % i = 0;% ⊦ ~ i < 0 ↔ 0 < i;% ⊦ 0 < 2 ^ i ↔ 0 ≤ i;% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ 0 ≤ i → ¬ band(i, j) < 0;% ⊦ band(i, band(i0, j)) = band(band(i, i0), j);% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i < 0 → (~1 ≤ i ↔ i = ~1);% ⊦ j < i ∧ i ≤ 0 → j < 0; (forward)% ⊦ 0 - i = ~ i;%j ≠ 0 ⊦ ~ i / j = ~(i / j);%i ≠ 0 ⊦ i / i = 1; Used terms: 2 ^ band(i, 31), b2i(by) + 1, 2 ^ band(i, 31) * ~1