| bits2int(bitsxor(bits0, bits2)) = bits2int(bitsor(bitsand(bitsinvert(bits0), bits2), bitsand(bitsinvert(bits2), bits0))), ∀ bits, bits1. # bits1 < #(bits2 + boolvar ') → true → bits = [] ∨ bits1 = [] ∨ bits2int(bitsxor(bits, bits1)) = bits2int(bitsor(bitsand(bitsinvert(bits), bits1), bitsand(bitsinvert(bits1), bits))) ⊦ bitsxor(bits0, bits2) = [], bitsand(bitsinvert(bits0), bits2) = [], bitsand(bitsinvert(bits2), bits0) = [], bits0 = [], bits2 = [], bits2int(bitsxor(bits0, bits2)) * 2 = bits2int(bitsor(bitsand(bitsinvert(bits0), bits2), bitsand(bitsinvert(bits2), bits0)) + false ') |
⊦ ¬ boolvar ∧ bits ≠ [] → bits2int(bits + boolvar ') = bits2int(bits) * 2
Used simplifier rules: bitsor-empty: ⊦ bits ≠ [] ∧ bits0 ≠ [] → bitsor(bits, bits0) ≠ [];%⊦ bits ≠ [] ∧ bits0 ≠ [] → (bits2int(bits) = bits2int(bits0) ↔ sgn(bits) = sgn(bits0));% ⊦ 0 < i → (i * j = i * j0 ↔ j = j0);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i; Used terms: false, bitsor (bitsand(bitsinvert(bits0), bits2), bitsand(bitsinvert(bits2), bits0))