| m * 8 = 0, # bits < 8 ⊦ bits = [], i2b(bits2int(bits)) = i2b(bits2int(mklist(bits.first, 8 - # bits) + bits)), bits2int(bits) = bits2int(mklist(bits.first, 8 - # bits) + bits) |
Used simplifier rules: ⊦ boolvar + bits = boolvar ' + bits;% ⊦ boolvar ' + bits ≠ [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ #(bits + bits0) = # bits + # bits0;% ⊦ # boolvar ' = 0 +1;% ⊦ mklist(boolvar, n) + boolvar ' = boolvar ' + mklist(boolvar, n);%⊦ bits2int(boolvar ' + mklist(boolvar, n) + bits) = bits2int(boolvar ' + bits);%bits ≠ [] ⊦ (boolvar ↔ bits.first) ∧ bits0 = bits.rest ↔ bits = boolvar + bits0; (elim) Used terms: bits, boolvar, bits0