| bits2int(bitsor(sgn(boolvar1 ' + bits0), bits3)) = bits2int(bitsor(boolvar1 ' + bits0, bits3)), (¬ boolvar1) ∈ bits0, ∀ bits, bits1. # bits1 < #(bits3 + false ') → true → bits ≠ [] ∧ bits1 ≠ [] → bits2int(bitsor(sgn(bits), bits1)) = bits2int(bitsor(bits, bits1)) ⊦ bitsor(boolvar1 ' + bits0, bits3) = [], bits3 = [], bits2int(bitsor(sgn(boolvar1 ' + bits0), bits3) + false ') = bits2int(bitsor(boolvar1 ' + bits0, bits3)) * 2 |
⊦ ¬ boolvar ∧ bits ≠ [] → bits2int(bits + boolvar ') = bits2int(bits) * 2
¬(¬ false ∧ bitsor(sgn(boolvar1 ' + bits0), bits3) ≠ []), bits2int(bitsor(sgn(boolvar1 ' + bits0), bits3)) = bits2int(bitsor(boolvar1 ' + bits0, bits3)), (¬ boolvar1) ∈ bits0, ∀ bits, bits1. # bits1 < #(bits3 + false ') → true → bits ≠ [] ∧ bits1 ≠ [] → bits2int(bitsor(sgn(bits), bits1)) = bits2int(bitsor(bits, bits1)) ⊦ bitsor(boolvar1 ' + bits0, bits3) = [], bits3 = [], bits2int(bitsor(sgn(boolvar1 ' + bits0), bits3) + false ') = bits2int(bitsor(boolvar1 ' + bits0, bits3)) * 2
Used simplifier rules: ⊦ 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(sgn(boolvar1 ' + bits0), bits3)