| 2 ≤ i * i0, 0 ≤ i * i0, 0 < i * i0, 1 < i0 ∧ i0 < i * i0 → ¬ i0 | i * i0, ∀ i1. 1 < i1 ∧ i1 < i * i0 → ¬ i1 | i * i0 ⊦ abs(i) = i * i0, abs(i) = 1 |
0 < i * i0, 0 ≤ i * i0, 2 ≤ i * i0, i0 < i * i0, i0 ≤ 1, ∀ i1. 1 < i1 ∧ i1 < i * i0 → ¬ i1 | i * i0 ⊦ abs(i) = 1, abs(i) = i * i0
Used simplifier rules: div-mult: ⊦ i | i * j;%bet: ⊦ 0 < i → (i ≤ 1 ↔ i = 1); from specification int-abs%zero-ge: ⊦ 0 < i → (0 ≤ i * j ↔ 0 ≤ j); from specification int-mult%eq-same: ⊦ i * j = i ↔ i = 0 ∨ j = 1; from specification int-mult%abs-16: ⊦ 0 < j → abs(j) = j; from specification int-abs%zero-gr: ⊦ 0 < i → (0 < i * j ↔ 0 < j); from specification int-mult%le-same: ⊦ 0 < i → (i * j ≤ i ↔ j ≤ 1); from specification int-mult%forward-lele: ⊦ j ≤ j0 ∧ j0 ≤ j1 → j ≤ j1; (forward) from specification int-abs%forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs%forward-le: ⊦ i ≤ j ∧ 0 < i → 0 < j; (forward) from specification int-abs%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%commutativity: ⊦ i * j = j * i; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult