| bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1)) = false ' + bits, 2 ^ i = bits2uint(bits) + 1 + bits2uint(bitsinvert(sgn(bitsinvert(uint2bits(~ j)) +1))) % 2 ^ i, j < i, 0 ≤ i, j < 0 ⊦ (j + 1) % 2 ^ i + 2 ^ i = 1 + bits2uint(bits) |
⊦ 0 < i → sgn(bitsinvert(uint2bits(i)) +1) = int2bits(~ i)
Used simplifier rules: ⊦ i < j → (¬ ¬ j ≤ i ↔ false);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ i + j = j + i;% ⊦ ~ ~ i = i;% ⊦ j < 0 → bits2uint(bitsinvert(int2bits(j))) = ~ j - 1;% ⊦ ~ i - j = ~(i + j);% ⊦ 0 ≤ j → 2 ^ j ≠ 0;%j ≠ 0 ⊦ ~ i % j = ~(i % j);% ⊦ i + ~ j = i - j;% ⊦ i + (j - i0) = i + j - i0;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i - j = i0 ↔ i = i0 + j;% ⊦ 0 < ~ i ↔ i < 0;% ⊦ boolvar ' + bits = bits0 → boolvar ∈ bits0; (forward)% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: ~ j