| ⊦ bits0 = [], bits2uint((false ' + bitsinvert(bits1))+1) + bits2int(bits0 + true ' + bits1) = 0, false ∈ bits0 |
⊦ bits.first ∧ bits ≠ [] → bits2int(bits) = ~ bits2uint(bitsinvert(true + bits.rest) +1)
¬((bits0 + true ' + bits1).first ∧ bits0 + true ' + bits1 ≠ []) ⊦ bits0 = [], bits2uint((false ' + bitsinvert(bits1))+1) + bits2int(bits0 + true ' + bits1) = 0, false ∈ bits0
(bits0 + true ' + bits1).first ∧ bits0 + true ' + bits1 ≠ [] ⊦ bits0 = [], bits2uint((false ' + bitsinvert(bits1))+1) + ~ bits2uint(bitsinvert(true + (bits0 + true ' + bits1).rest) +1) = 0, false ∈ bits0
Used terms: bits0 + true ' + bits1