| ⊦ bits.first ∧ bits ≠ [] → bits2int(bits) = ~ bits2uint(bitsinvert(true + bits.rest) +1) |
bits.first ⊦ bits = [], bits2uint((false ' + bitsinvert(bits.rest))+1) + bits2int(bits) = 0
Used simplifier rules: ⊦ ~ i = j ↔ i + j = 0;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ boolvar + bits = boolvar ' + bits;