| bits2int(sgn(bitsinvert(uint2bits(~(j / 2 ^ i))))) = bits2int(sgn(bitsinvert(uint2bits(1 - j / 2 ^ i)) +1)), j % 2 ^ i < 0, true ∈ uint2bits(~(j / 2 ^ i)), false ∈ uint2bits(~(j / 2 ^ i)), true ∈ fillsgn(i→n(i) + 1, uint2bits(~(j % 2 ^ i))).rest, 0 ≤ i, j < 0, j + 2 ^ i < i, j + 2 ^ i ≤ 0, 0 < i, j / 2 ^ i ≤ 0, j / 2 ^ i < i ⊦ sgn(bitsinvert(uint2bits(~(j / 2 ^ i)))) + bitsinvert(fillsgn(i→n(i) + 1, uint2bits(~(j % 2 ^ i))).rest) +1 = sgn(bitsinvert(uint2bits(1 - j / 2 ^ i)) +1) + fillsgn(i→n(i) + 1, sgn(bitsinvert(uint2bits(~(j % 2 ^ i))) +1)).rest, j % 2 ^ i = 0 |
⊦ bits ≠ [] ∧ bits0 ≠ [] → (bits2int(bits) = bits2int(bits0) ↔ sgn(bits) = sgn(bits0))
sgn(bitsinvert(uint2bits(~(j / 2 ^ i)))) ≠ [] ∧ sgn(bitsinvert(uint2bits(1 - j / 2 ^ i)) +1) ≠ [], sgn(sgn(bitsinvert(uint2bits(~(j / 2 ^ i))))) = sgn(sgn(bitsinvert(uint2bits(1 - j / 2 ^ i)) +1)), j % 2 ^ i < 0, true ∈ uint2bits(~(j / 2 ^ i)), false ∈ uint2bits(~(j / 2 ^ i)), true ∈ fillsgn(i→n(i) + 1, uint2bits(~(j % 2 ^ i))).rest, 0 ≤ i, j < 0, j + 2 ^ i < i, j + 2 ^ i ≤ 0, 0 < i, j / 2 ^ i ≤ 0, j / 2 ^ i < i ⊦ sgn(bitsinvert(uint2bits(~(j / 2 ^ i)))) + bitsinvert(fillsgn(i→n(i) + 1, uint2bits(~(j % 2 ^ i))).rest) +1 = sgn(bitsinvert(uint2bits(1 - j / 2 ^ i)) +1) + fillsgn(i→n(i) + 1, sgn(bitsinvert(uint2bits(~(j % 2 ^ i))) +1)).rest, j % 2 ^ i = 0
Used simplifier rules: bits2int-sgn: ⊦ bits2int(sgn(bits)) = bits2int(bits);%uint2bits-empty: 0 ≤ i ⊦ uint2bits(i) ≠ [];% ⊦ sgn(bits) = [] ↔ bits = [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j;% ⊦ i + j = j + i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + 0 = i;% ⊦ i ≤ ~ j ↔ i + j ≤ 0;% ⊦ ¬ bits +1 ≠ [] ↔ false; Used terms: sgn(bitsinvert(uint2bits(1 - j / 2 ^ i)) +1), sgn(bitsinvert(uint2bits(~(j / 2 ^ i))))