| gcd(i, j) = i * i0 + j * (i1 + i0 * i), gcd(i, j) = i * i0 * (j + 1) + j * i1, j < 0, i0 < 0 ⊦ j = 0, ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 |
Used simplifier rules: associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult%commutativity: ⊦ i * j = j * i; from specification int-mult%zero-ge-01: ⊦ i < 0 → (0 ≤ i * j ↔ j ≤ 0); from specification int-mult%numle-03: ⊦ i + (* j) ≤ (* j0) ↔ i ≤ j0 - j; from specification int-abs%mone-05: ⊦ i ≤ ~1 ↔ i < 0; 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 Used terms: (j + 1) * i0, i1