| ⊦ bits = [], bits2int(bitsor(bits, false ' + bits2) + bits1) = bits2uint(bits2 + bits1), true ∈ bits |
⊦ ¬ true ∈ bits ∧ ¬ bits0.first ∧ # bits ≤ # bits0 ∧ bits ≠ [] ∧ bits0 ≠ [] → bitsor(bits, bits0) = bits0
¬(¬ true ∈ bits ∧ ¬ (false ' + bits2).first ∧ # bits ≤ #(false ' + bits2) ∧ bits ≠ [] ∧ false ' + bits2 ≠ []) ⊦ bits = [], bits2int(bitsor(bits, false ' + bits2) + bits1) = bits2uint(bits2 + bits1), true ∈ bits
Used simplifier rules: ⊦ bits2int(false ' + bits) = bits2uint(bits);% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ boolvar ' + bits ≠ []; Used terms: false ' + bits2, bits