| 0 < i ⊦ 2 ^ (n→i(# uint2bits(i)) - 1) = i + bits2uint((false ' + bitsinvert(uint2bits(i).rest.rest))+1) |
⊦ bits ≠ [] → bits2uint(bits +1) = bits2uint(bits) + 1
false ' + bitsinvert(uint2bits(i).rest.rest) ≠ [], 0 < i ⊦ 2 ^ (n→i(# uint2bits(i)) - 1) = i + bits2uint(false ' + bitsinvert(uint2bits(i).rest.rest)) + 1
Used simplifier rules: ⊦ ¬ bits + bits0 ≠ [] ↔ bits = [] ∧ bits0 = [];% ⊦ boolvar ' ≠ [];% ⊦ bitsinvert(bits) = [] ↔ bits = [];% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1; Used terms: false ' + bitsinvert(uint2bits(i).rest.rest)