| ⊦ 0 < i → cast(i, j) = (0 ≤ j ∧ j % 2 ^ i ≤ 2 ^ (i - 1) - 1 ⊃ j % 2 ^ i ;(0 ≤ j ∧ 2 ^ (i - 1) - 1 < j % 2 ^ i ⊃ j % 2 ^ i - 2 ^ i ;(j < 0 ∧ j % 2 ^ i < ~(2 ^ (i - 1)) ⊃ j % 2 ^ i + 2 ^ i;(j < 0 ∧ ~(2 ^ (i - 1)) ≤ j % 2 ^ i ⊃ j % 2 ^ i;j)) ) ) |
0 < i ⊦ cast(i, j) = (¬ j < 0 ∧ ¬ 2 ^ (i - 1) ≤ j % 2 ^ i ⊃ j % 2 ^ i ;(¬ j < 0 ∧ ¬ j % 2 ^ i < 2 ^ (i - 1) ⊃ j % 2 ^ i - 2 ^ i ;(¬ 0 ≤ j ∧ ¬ 0 ≤ j % 2 ^ i + 2 ^ (i - 1) ⊃ j % 2 ^ i + 2 ^ i;(¬ 0 ≤ j ∧ ¬ 2 ^ (i - 1) + j % 2 ^ i < 0 ⊃ j % 2 ^ i;j)) ) )
Used simplifier rules: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward)% ⊦ ~ i ≤ j ↔ 0 ≤ i + j;% ⊦ i < ~ j ↔ i + j < 0;% ⊦ i < j + 1 ↔ i ≤ j;% ⊦ i - j < i0 ↔ i < j + i0;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i + 1 ≤ j ↔ i < j;% ⊦ i ≤ j - i0 ↔ i + i0 ≤ j;% ⊦ ¬ i ≤ j ↔ j < i;