| j0 + 1 = j, i1 ≤ (i1 * j) / j, j0 < j, 0 < j, 0 < i1, 0 ≤ i0, i1 ≤ (i0 + i1 * j0) / j, i0 < i1, 0 ≤ j0, 0 ≤ i2, i0 < (i0 + i1 * j0) / j, 0 < (i0 + i1 * j0) / j ⊦ |
j0 ≤ i / j, i < i0, i0 % j = 0, 0 < j, 0 ≤ i ⊦ j0 < i0 / j
j0 + 1 = j, i1 ≤ (i1 * j) / j, j0 < j, 0 < j, 0 < i1, 0 ≤ i0, i1 ≤ (i0 + i1 * j0) / j, i0 < i1, 0 ≤ j0, 0 ≤ i2, i0 < (i0 + i1 * j0) / j, 0 < (i0 + i1 * j0) / j ⊦ i0 + i1 * j0 < i1 * j ∧ (i1 * j) % j = 0 ∧ 0 ≤ i0 + i1 * j0
Used simplifier rules: div-mult-03: j ≠ 0 ⊦ (i * j) / j = i;%numadd-01: ⊦ (* j) = i0 + (* j0) ↔ j - j0 = i0; 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%zero-left: ⊦ 0 * i = 0; from specification int-mult%associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%irref: ⊦ ¬ i < i; from specification int-basic1 Used terms: i1, i0 + i1 * j0, j, i1 * j