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