| j < 0, 2 ^ (n→i(# int2bits(j)) - 1) + j < 0 ⊦ # int2bits(j) = 1 |
⊦ i < ~1 ∧ 0 ≤ j → (2 ^ j + i < 0 ↔ ¬ # int2bits(i) ≤ i→n(j) + 1)
j < ~1 ∧ 0 ≤ n→i(# int2bits(j)) - 1, j < 0, ¬ # int2bits(j) ≤ i→n(n→i(# int2bits(j)) - 1) + 1 ⊦ # int2bits(j) = 1
Used simplifier rules: int2bits-not-empty: ⊦ int2bits(j) ≠ [];%int2bits-mone-02: ⊦ int2bits(~1) = true ';%sub-le-01: ⊦ i ≤ j - i0 ↔ i + i0 ≤ j; from specification int-abs%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2%leone: ⊦ 1 ≤ i ↔ 0 < i; from specification int-abs%num-n2i-ls-02: 0 ≤ i ⊦ (* i) < n→i(n) ↔ i→n(i) < n; from specification intnat%zero: ⊦ 0 < m ↔ m ≠ 0; from specification nat-basic1%l: ⊦ # bits = 0 ↔ bits = []; from specification list-data[bitlista]%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%mone-08: ⊦ i < 0 → (~1 ≤ i ↔ i = ~1); from specification int-abs%len-02: ⊦ # boolvar ' = 0 +1; from specification list[bitlista] Used terms: j, n→i(# int2bits(j)) - 1