| ⊦ bits0 = [], bits2uint((false ' + bitsinvert(bits1))+1) * 2 ^ n→i(# bits0) = (bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bits0) + bits2uint(bitsinvert(bits0))) + 1, true ∈ bits0 |
⊦ bits ≠ [] → bits2uint(bits +1) = bits2uint(bits) + 1
false ' + bitsinvert(bits1) ≠ [] ⊦ bits0 = [], (bits2uint(false ' + bitsinvert(bits1)) + 1) * 2 ^ n→i(# bits0) = (bits2uint(bitsinvert(bits1)) * 2 ^ n→i(# bits0) + bits2uint(bitsinvert(bits0))) + 1, true ∈ bits0
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ boolvar ' ≠ [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: false ' + bitsinvert(bits1)