| 0 ≤ i0 + 2, # int2bits(j) = i→n(i0 + 2), j < ~1, j < 0, # int2bits(j) ≤ i→n(i0) + 1, 2 < # int2bits(j) ⊦ # int2bits(j) = 2, # int2bits(j) = 3, # int2bits(j) = 1, i→n(i0) = 1, i0 = 0 |
# int2bits(j) = i→n(i0 + 2), j < ~1, j < 0, i→n(i0 + 2) ≤ i→n(i0) + 1, 0 < i0 ⊦ i0 = 1, ~2 = i0, 0 = i0, ~1 = i0
Used simplifier rules: lst: ⊦ i < j ∧ ¬ i0 < j → ¬ i0 < i; from specification int-basic1%forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs%numlslsdel-01: i0 ≠ 0, i0 < i ⊦ (* i) < j → (* i0) < j; from specification int-basic1%numls-02: ⊦ (* j) < i0 + (* j0) ↔ j - j0 < i0; from specification int-abs%num-i2n-ls-02: 0 ≤ i ⊦ (* m) < i→n(i) ↔ n→i(m) < i; from specification intnat%ls-01: ⊦ i < j → ¬ j < i; from specification int-basic1%lels-01: ⊦ ¬ i ≤ j ↔ j < i; from specification int-abs%lels-02: ⊦ i ≠ j → (i ≤ j ↔ i < j); from specification int-abs%minus-one: ⊦ i < 0 → (~2 < i ↔ i = ~1); from specification int-basic1%num-i2n-eq: 0 ≤ i ⊦ i→n(i) = (* m) ↔ i = n→i(m); from specification intnat%numleledel-01: i0 ≠ 0, i0 ≤ i ⊦ (* i) ≤ j → (* i0) ≤ j; from specification int-abs%numadd-01: ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0; from specification int-abs%abs-zero: ⊦ i→n(i) = 0 ↔ i = 0; from specification intnat%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic1%add-c: ⊦ i + j = j + i; from specification int-basic2%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%numle-02: ⊦ (* j) ≤ i0 + (* j0) ↔ j - j0 ≤ i0; from specification int-abs