| # int2bits(j) ≤ (# int2bits(j) - 2) + 1, 2 < # int2bits(j), 0 < j ⊦ # int2bits(j) = 2, # int2bits(j) = 3, j = 0, # int2bits(j) - 2 = 1 |
Used simplifier rules: ls-02: ⊦ m < n → ¬ n < m; from specification nat-basic1%lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat%lels-02: ⊦ m ≠ n → (m ≤ n ↔ m < n); from specification nat%fle: ⊦ m < n ∧ n ≤ n0 → m < n0; (forward) from specification nat%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic1%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%add-num-03: n < n0 ⊦ (* n) ≠ m0 + (* n0); from specification nat%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%add-num-04: n0 < n ⊦ (* n) = m0 + (* n0) ↔ n - n0 = m0; from specification nat%eq: ⊦ m = m + n ↔ n = 0; from specification nat-basic2%l-num-04: n0 < n ⊦ (* n) < m0 + (* n0) ↔ n - n0 < m0; from specification nat%one: ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); from specification nat-basic1%l-01: ⊦ m < m + n ↔ n ≠ 0; from specification nat-basic2%le-num-02: n0 < n ⊦ m + (* n) ≤ m0 + (* n0) ↔ m + (n - n0) ≤ m0; from specification nat%le-add: ⊦ m + m0 ≤ m ↔ m0 = 0; from specification nat%n ≤ m ⊦ n0 = m - n ↔ m = n0 + n; (elim) Used terms: # int2bits(j), 2, n