| ⊦ bits0 = [], 1 + 2 * bits2uint(bits1) = bits2int(bits0 + true ') ↔ bits2uint(bits1) = bits2int(bits0) |
⊦ boolvar ∧ ¬ bits.first ∧ bits ≠ [] → bits2int(bits + boolvar ') = bits2int(bits) * 2 + 1
¬(true ∧ ¬ bits0.first ∧ bits0 ≠ []) ⊦ bits0 = [], 1 + 2 * bits2uint(bits1) = bits2int(bits0 + true ') ↔ bits2uint(bits1) = bits2int(bits0)
Used simplifier rules: ⊦ i + j = i + i0 ↔ j = i0;% ⊦ 0 < i → (i * j = i * j0 ↔ j = j0);% ⊦ i * j * j0 = (i * j) * j0;% ⊦ i * j = j * i;% ⊦ i + j + i0 = (i + j) + i0;% ⊦ i + j = j + i; Used terms: true, bits0