| j < i, 0 ≤ i, j < 0 ⊦ bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1)) = [], (j + 1) % 2 ^ i + 2 ^ i = 1 + bits2uint(bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1))), bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1)).first |
bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1)) = boolvar + bits, j < i, 0 ≤ i, j < 0 ⊦ bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1)) = [], (j + 1) % 2 ^ i + 2 ^ i = 1 + bits2uint(bitsand(false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1))), boolvar
Used simplifier rules: bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: bitsand (false ' + mklist(true, i→n(i)), sgn(bitsinvert(uint2bits(~ j)) +1)), boolvar, bits