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