| int2bits(j0) = false ' + bitsinvert(bits), 0 < j, j0 < 2 ^ i, 0 ≤ i, 0 ≤ j0, 0 < 2 ^ i, 0 ≤ j, # int2bits(j0) ≤ i→n(i), false ∈ int2bits(j0) ⊦ bitsinvert(uint2bits(j)) + mklist(true, i→n(i)) = [], bits2int(uint2bits(j) + bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i))))) = j * 2 ^ i + j0 |
⊦ # bits0 ≠ 0 ∧ # bits ≠ 0 ∧ ¬ bits.first → bits2int(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0)
¬(# bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i)))) ≠ 0 ∧ # uint2bits(j) ≠ 0 ∧ ¬ uint2bits(j).first), int2bits(j0) = false ' + bitsinvert(bits), 0 < j, j0 < 2 ^ i, 0 ≤ i, 0 ≤ j0, 0 < 2 ^ i, 0 ≤ j, # int2bits(j0) ≤ i→n(i), false ∈ int2bits(j0) ⊦ bitsinvert(uint2bits(j)) + mklist(true, i→n(i)) = [], bits2int(uint2bits(j) + bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i))))) = j * 2 ^ i + j0
# bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i)))) ≠ 0 ∧ # uint2bits(j) ≠ 0 ∧ ¬ uint2bits(j).first, int2bits(j0) = false ' + bitsinvert(bits), 0 < j, j0 < 2 ^ i, 0 ≤ i, 0 ≤ j0, 0 < 2 ^ i, 0 ≤ j, # int2bits(j0) ≤ i→n(i), false ∈ int2bits(j0) ⊦ bitsinvert(uint2bits(j)) + mklist(true, i→n(i)) = [], bits2uint(uint2bits(j)) * 2 ^ n→i(# bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i))))) + bits2uint(bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i))))) = j * 2 ^ i + j0
Used terms: bitsinvert(bitsand(bitsinvert(int2bits(j0)), mklist(true, i→n(i)))), uint2bits(j)