| i2b(64) = i2b(bits2int(true ' + false ' + false ' + false ' + false ' + false ' + false ')) ⊦ |
⊦ bits.first ∧ bits ≠ [] → bits2int(bits) = ~ bits2uint(bitsinvert(bits) +1)
Used simplifier rules: notequal: ~128 ≤ i, i ≤ 127, ~128 ≤ j, j ≤ 127, i ≠ j ⊦ i2b((* i)) ≠ i2b((* j));% ⊦ boolvar ' ≠ [];% ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ (boolvar ' + bits).first ↔ boolvar;% ⊦ bitsinvert(true ' + bits) = false + bitsinvert(bits);% ⊦ bitsinvert(false ' + bits) = true + bitsinvert(bits);% ⊦ bitsinvert(false ') = true ';% ⊦ boolvar + bits = boolvar ' + bits;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ (bits + true ')+1 = bits +1 + false;% ⊦ false ' +1 = true ';% ⊦ bits + boolvar = bits + boolvar ';% ⊦ bits2uint(bits + false ') = bits2uint(bits) * 2;% ⊦ bits2uint(true ') = 1; Used terms: true ' + false ' + false ' + false ' + false ' + false ' + false '