| 0 < abs(j) ∧ 0 ≤ n→i(i→n(i) - 1), 1 + i→n(i) - 2 = i→n(i) - 1, # int2bits(j) < i→n(i), 0 < i, i→n(n→i(i→n(i) - 1)) + 2 ≤ # int2bits(abs(j)) ∧ abs(j) ≠ 2 ^ n→i(i→n(i) - 1) ⊦ band(j, 2 ^ i - 1) = bits2uint(fillsgn(i→n(i), int2bits(j))), i = 0 |
1 + i→n(i) - 2 = i→n(i) - 1, # int2bits(j) < # int2bits(abs(j)), i→n(i) < # int2bits(abs(j)), 0 < i, # int2bits(j) < i→n(i), # int2bits(j) + 1 < # int2bits(abs(j)) ⊦ j = 0, abs(j) = 2 ^ n→i(i→n(i) - 1), i = 0, band(j, 2 ^ i - 1) = bits2uint(fillsgn(i→n(i), int2bits(j)))
Used simplifier rules: ⊦ m +1 = m + 1;% ⊦ int2bits(j) ≠ [];% ⊦ # bits = 0 ↔ bits = [];% ⊦ n < n0 ∧ n0 < n1 → n < n1; (forward)% ⊦ n < n0 ∧ n0 < n1 → n +1 < n1; (forward)% ⊦ m < n → n ≠ 0; (forward)% ⊦ m + n = n + m;% ⊦ (m + n0) + n1 = m + n0 + n1;% ⊦ m + 1 ≤ n ↔ m < n;%n0 < n ⊦ m + (* n) ≤ m0 + (* n0) ↔ m + (n - n0) ≤ m0;%n ≤ m ⊦ (m - n) + m0 ≤ n0 ↔ m + m0 ≤ n0 + n;% ⊦ i ≠ j → (i ≤ j ↔ i < j);%0 ≤ i ⊦ (* m) ≤ i→n(i) ↔ n→i(m) ≤ i;% ⊦ 1 ≤ i ↔ 0 < i;% ⊦ i→n(n→i(n)) = n;% ⊦ 0 ≤ n→i(n);% ⊦ 0 < abs(i) ↔ i ≠ 0;