| 0 ≤ j, j < 2 ^ i, 2 ^ (i - 1) ≤ j, 0 < i, 0 ≤ i0, 0 ≤ i, 0 < j ⊦ cast(i, j * j0) = cast(i, (j - 2 ^ i) * j0) |
(j - 2 ^ i) * j0 = ~ j0 * 2 ^ i + j * j0, 0 ≤ j, j < 2 ^ i, 2 ^ (i - 1) ≤ j, 0 < i, 0 ≤ i0, 0 ≤ i, 0 < j ⊦ cast(i, j * j0) = cast(i, (j - 2 ^ i) * j0)
Used simplifier rules: ⊦ i * j = j * i;% ⊦ ~ i * j = ~(i * j);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i + ~ j = i - j;% ⊦ i * j - i * j0 = i * (j - j0);% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i; Used formulas: (j - 2 ^ i) * j0 = ~ j0 * 2 ^ i + j * j0