| (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))) |
0 ≤ band(i, 31), b2i(by) < ~1, b2i(by) < 0, 0 < band(i, 31), band(i, 31) < 32 ⊦ (b2i(by) + 1) / 2 ^ band(i, 31) = b2i(i2b((b2i(by) + 1) / 2 ^ band(i, 31) - 1)) + 1
Used simplifier rules: ⊦ i < 0 ∧ 0 ≤ j → i < j;% ⊦ i < j ∧ j ≤ j0 → i < j0; (forward)% ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward)% ⊦ i ≤ j ∧ j < j0 → i < j0; (forward)% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ i + (* j) < (* j0) ↔ i < j0 - j;% ⊦ 0 < 2 ^ i ↔ 0 ≤ i;% ⊦ ~ i < 0 ↔ 0 < i;% ⊦ i - j = i0 ↔ i = i0 + j;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;%i < 0 ⊦ (* i) + j = j - ~ i;%i ≠ 0 ⊦ i / i = 1;%j ≠ 0 ⊦ ~ i / j = ~(i / j);%i ≠ 0 ⊦ i % i = 0;%j ≠ 0 ⊦ ~ i % j = ~(i % j);% ⊦ 0 < j → (i ^ j = 0 ↔ i = 0);% ⊦ i * j = j * i;% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * ~1 = ~ i;% ⊦ band(i, j) = band(j, i);