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