| abs(2 ^ n→i(# bits)) < abs(~ bits2int(bits)) → # int2bits(2 ^ n→i(# bits)) ≤ # int2bits(~ bits2int(bits)), 2 ^ n→i(# bits) + bits2int(bits) < 0 ⊦ bits = [] |
2 ^ n→i(# bits) + bits2int(bits) < 0, ¬ abs(bits2int(bits)) ≤ 2 ^ n→i(# bits) → 2 + # bits ≤ # int2bits(~ bits2int(bits)) ⊦ bits = []
Used simplifier rules: int2bits-2pot: 0 ≤ i ⊦ int2bits(2 ^ i) = false ' + true ' + mklist(false, i→n(i));% ⊦ ¬ i ≤ j ↔ j < i;% ⊦ (bits + bits0) + bits1 = bits + bits0 + bits1;% ⊦ # mklist(boolvar, n) = n;% ⊦ # boolvar ' = 0 +1;% ⊦ #(bits + bits0) = # bits + # bits0;% ⊦ i→n(n→i(n)) = n;% ⊦ 0 ≤ n→i(n);% ⊦ ¬ i < j ↔ j ≤ i;% ⊦ abs(~ i) = abs(i);% ⊦ abs(2 ^ i) = 2 ^ i;