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