| bitsor(false ' + bits0, false ' + bits4) = false ' + bits2, bits2int(bitsor(sgn(false ' + bits0), false ' + bits4)) = bits2uint(bits2), true ∈ bits0, bitsor(sgn(false ' + bits0), false ' + bits4).first, boolvar ∨ boolvar0, ∀ bits, bits1. # bits1 < #((false + bits4) + boolvar0 ') → true → bits ≠ [] ∧ bits1 ≠ [] → bits2int(bitsor(sgn(bits), bits1)) = bits2int(bitsor(bits, bits1)) ⊦ bits2int(bitsor(sgn(false ' + bits0), false ' + bits4) + true ') = 1 + 2 * bits2uint(bits2), ¬ boolvar ∧ ¬ boolvar0 |
⊦ bits ≠ [] ∧ bits0 ≠ [] → (bitsor(bits, bits0).first ↔ bits.first ∨ bits0.first)
Used simplifier rules: ⊦ boolvar ' ≠ [];% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ boolvar ' + bits ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ sgn(boolvar ' + bits) ≠ [];% ⊦ sgn(boolvar ' + bits).first ↔ boolvar;% ⊦ (boolvar ' + bits).first ↔ boolvar; Used terms: false ' + bits4, sgn(false ' + bits0)