| 0 ≤ i, 0 ≤ i0, 0 ≤ j1, j1 < 2 ^ i, 0 < i ⊦ cast(i, 2 ^ i * (i0 + j) + j1) = cast(i, j1) |
⊦ 0 ≤ j ∧ 0 ≤ j0 ∧ 0 < i → cast(i, j * 2 ^ i + j0) = cast(i, j0)
Used simplifier rules: cast-mult-pos: ⊦ 0 ≤ j ∧ 0 ≤ j0 ∧ 0 < i → cast(i, j * 2 ^ i + j0) = cast(i, j0);%cast-mult-add-h: ⊦ j < 0 ∧ 0 ≤ j0 ∧ j0 < 2 ^ i ∧ 0 < i → cast(i, j * 2 ^ i + j0) = cast(i, j0);% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ i ≤ j → (¬ ¬ j < i ↔ false);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i ≤ j → (j ≤ i ↔ i = j);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i * j = j * i;% ⊦ i + j = j + i; Used terms: j1, i0 + j, i