| ⊦ bits0 = [], bits2int(bits0 + boolvar ' + bits1) = bits2int(boolvar ' + bits1), (¬ boolvar) ∈ bits0 |
⊦ ¬ bits.first ∧ bits ≠ [] → bits2int(bits) = bits2uint(bits.rest)
¬(¬ (boolvar ' + bits1).first ∧ boolvar ' + bits1 ≠ []) ⊦ bits0 = [], bits2int(bits0 + boolvar ' + bits1) = bits2int(boolvar ' + bits1), (¬ boolvar) ∈ bits0
¬ (boolvar ' + bits1).first ∧ boolvar ' + bits1 ≠ [] ⊦ bits0 = [], bits2int(bits0 + boolvar ' + bits1) = bits2uint((boolvar ' + bits1).rest), (¬ boolvar) ∈ bits0
Used terms: boolvar ' + bits1