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