| int2bits(i) ≠ [] ∧ sgn(bitsinvert(int2bits(j))) ≠ [] ⊦ bitsand(sgn(bitsinvert(int2bits(i))), int2bits(j)) = [], bits2int(bitsxor(int2bits(i), int2bits(j))) = bits2int(bitsor(sgn(bitsand(sgn(bitsinvert(int2bits(j))), int2bits(i))), sgn(bitsand(bitsinvert(int2bits(i)), int2bits(j))))), bitsand(sgn(bitsinvert(int2bits(j))), int2bits(i)) = [] |
⊦ bitsand(sgn(bitsinvert(int2bits(i))), int2bits(j)) = [], bits2int(bitsxor(int2bits(i), int2bits(j))) = bits2int(bitsor(sgn(bitsand(sgn(bitsinvert(int2bits(j))), int2bits(i))), sgn(bitsand(bitsinvert(int2bits(i)), int2bits(j)))))
Used simplifier rules: and-notempty: ⊦ bits ≠ [] ∧ bits0 ≠ [] → bitsand(bits, bits0) ≠ [];% ⊦ int2bits(j) ≠ [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ sgn(bits) = [] ↔ bits = [];