| ⊦ j ≠ 0 → gcd(i, j) = gcd(abs(j), abs(i) % abs(j)) |
gcd(i, j) ≠ gcd(abs(j), abs(i) % abs(j)), j ≠ 0 ⊦
| gcd(i, j) ≠ gcd(abs(j), abs(i) % abs(j)), j ≠ 0 ⊦ |
gcd(i, j) ≠ gcd(abs(j), abs(i) % abs(j)), j ≠ 0 ⊦
| gcd(i, j) ≠ gcd(abs(j), abs(i) % abs(j)), j ≠ 0 ⊦ |
⊦ gcd(i, j) = gcd(abs(i), abs(j))
gcd(abs(i), abs(j)) ≠ gcd(abs(j), abs(i) % abs(j)), j ≠ 0 ⊦
Used terms: j, i
| ⊦ gcd(i, j) = gcd(abs(i), abs(j)) |
| gcd(abs(i), abs(j)) ≠ gcd(abs(j), abs(i) % abs(j)), j ≠ 0 ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, j0 < abs(j), 0 < abs(j), 0 ≤ j0, 0 ≤ i0, 0 ≤ abs(i) ⊦
Used simplifier rules: ⊦ 0 < abs(i) ↔ i ≠ 0; (s) ⊦ 0 ≤ abs(i); (s) ⊦ 0 < j ∧ 0 ≤ i → (i0 = i / j ∧ j0 = i % j ↔ i = i0 * j + j0 ∧ 0 ≤ j0 ∧ j0 < j ∧ 0 ≤ i0); (elim) Used terms: abs(i), abs(j), i0, j0
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, j0 < abs(j), 0 < abs(j), 0 ≤ j0, 0 ≤ i0, 0 ≤ abs(i) ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, j0 < abs(j), 0 ≤ j0, 0 ≤ i0 ⊦
Used simplifier rules: ⊦ 0 < abs(i) ↔ i ≠ 0; (s) forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs forward-le-05: ⊦ i < j ∧ 0 ≤ i → 0 < j; (forward) from specification int-abs ⊦ 0 ≤ abs(i); (s)
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, j0 < abs(j), 0 ≤ j0, 0 ≤ i0 ⊦ |
⊦ ¬ i < j → (i = j ↔ ¬ j < i)
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦
abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) < gcd(abs(j), j0) ⊦
Used terms: gcd(abs(j), j0), gcd(abs(i), abs(j))
| ⊦ ¬ i < j → (i = j ↔ ¬ j < i) |
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0 ⊦
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0 ⊦ |
⊦ i1 | i ∧ i1 | j ∧ 0 ≠ i → i1 ≤ gcd(i, j)
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, gcd(abs(j), j0) | abs(i) ∧ gcd(abs(j), j0) | abs(j) ∧ 0 ≠ abs(i) → gcd(abs(j), j0) ≤ gcd(abs(i), abs(j)) ⊦
Used terms: gcd(abs(j), j0), abs(i), abs(j)
| ⊦ i1 | i ∧ i1 | j ∧ 0 ≠ i → i1 ≤ gcd(i, j) |
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, gcd(abs(j), j0) | abs(i) ∧ gcd(abs(j), j0) | abs(j) ∧ 0 ≠ abs(i) → gcd(abs(j), j0) ≤ gcd(abs(i), abs(j)) ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦ gcd(abs(j), j0) | abs(j) ∧ gcd(abs(j), j0) | abs(i)
Used simplifier rules: gcd-zero-04: ⊦ gcd(i, 0) = abs(i); gcd-com: ⊦ gcd(i, j) = gcd(j, i); gcd-nls-01: ⊦ i ≠ 0 → ¬ abs(i) < gcd(abs(i), j); ⊦ abs(abs(i)) = abs(i); (s) ⊦ i < j → ¬ j < i; (s) ⊦ i ≠ j → (i ≤ j ↔ i < j); (s) ⊦ abs(i) = 0 ↔ i = 0; (s)
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦ gcd(abs(j), j0) | abs(j) ∧ gcd(abs(j), j0) | abs(i) |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0 ⊦ gcd(abs(j), j0) | abs(j) ∧ gcd(abs(j), j0) | abs(i)
Used formulas: i = 0
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0 ⊦ gcd(abs(j), j0) | abs(j) ∧ gcd(abs(j), j0) | abs(i) |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦ gcd(abs(j), j0) | abs(j) ∧ gcd(abs(j), j0) | abs(i)
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦ gcd(abs(j), j0) | abs(j) ∧ gcd(abs(j), j0) | abs(i) |
⊦ gcd(i, j) | i
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0 ⊦ true ∧ gcd(abs(j), j0) | abs(i)
Used terms: j0, abs(j)
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0 ⊦ true ∧ gcd(abs(j), j0) | abs(i) |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | abs(i) ⊦
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | abs(i) ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦
| abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦ |
⊦ gcd(i, j) | i
abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), gcd(abs(j), j0) | abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦
Used terms: abs(j), j0
| abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), gcd(abs(j), j0) | abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), gcd(abs(j), j0) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | abs(i) ⊦
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), gcd(abs(j), j0) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | abs(i) ⊦ |
⊦ gcd(i, j) | j
abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), gcd(abs(j), j0) | abs(j), gcd(abs(j), j0) | j0, 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | abs(i) ⊦
Used terms: abs(j), j0
| abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), gcd(abs(j), j0) | abs(j), gcd(abs(j), j0) | j0, 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | abs(i) ⊦ |
abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), gcd(abs(j), j0) | j0, gcd(abs(j), j0) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦
| abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), gcd(abs(j), j0) | j0, gcd(abs(j), j0) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦ |
⊦ i | j ↔ (∃ i0. i * i0 = j)
abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), gcd(abs(j), j0) | abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0, ∃ i0. gcd(abs(j), j0) * i0 = j0 ⊦
Used terms: j0, gcd(abs(j), j0)
| ⊦ i | j ↔ (∃ i0. i * i0 = j) |
| abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), gcd(abs(j), j0) | abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0, ∃ i0. gcd(abs(j), j0) * i0 = j0 ⊦ |
gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), gcd(abs(j), j0) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | abs(i) ⊦
| gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), gcd(abs(j), j0) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | abs(i) ⊦ |
⊦ i | j ↔ (∃ i0. i * i0 = j)
gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | abs(i), ∃ i0. gcd(abs(j), j0) * i0 = abs(j) ⊦
Used terms: abs(j), gcd(abs(j), j0)
| ⊦ i | j ↔ (∃ i0. i * i0 = j) |
| gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(abs(i), abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | abs(i), ∃ i0. gcd(abs(j), j0) * i0 = abs(j) ⊦ |
gcd(abs(j), j0) * i2 = abs(j), gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | abs(i) ⊦
| gcd(abs(j), j0) * i2 = abs(j), gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(abs(i), abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(abs(i), abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(j), j0) | abs(i) ⊦ |
gcd(abs(j), j0) * i1 = j0, gcd(abs(j), j0) * i2 = abs(j), abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦
| gcd(abs(j), j0) * i1 = j0, gcd(abs(j), j0) * i2 = abs(j), abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(j), j0) | i0 * abs(j) + j0 ⊦ |
⊦ i | j ↔ (∃ i0. i * i0 = j)
gcd(abs(j), j0) * i2 = abs(j), gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0, ∀ i1. gcd(abs(j), j0) * i1 ≠ i0 * abs(j) + j0 ⊦
Used terms: i0 * abs(j) + j0, gcd(abs(j), j0)
| ⊦ i | j ↔ (∃ i0. i * i0 = j) |
| gcd(abs(j), j0) * i2 = abs(j), gcd(abs(j), j0) * i1 = j0, abs(i) = i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, j0 < abs(j), gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), 0 ≤ j0, 0 ≤ i0, ∀ i1. gcd(abs(j), j0) * i1 ≠ i0 * abs(j) + j0 ⊦ |
gcd(abs(j), j0) * i1 = j0, gcd(abs(j), j0) * i2 = abs(j), abs(i) = i0 * abs(j) + j0, gcd(abs(j), j0) * (i2 * i0 + i1) ≠ i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦
Used terms: i2 * i0 + i1
| gcd(abs(j), j0) * i1 = j0, gcd(abs(j), j0) * i2 = abs(j), abs(i) = i0 * abs(j) + j0, gcd(abs(j), j0) * (i2 * i0 + i1) ≠ i0 * abs(j) + j0, gcd(i0 * abs(j) + j0, abs(j)) ≠ gcd(abs(j), j0), i ≠ 0, j ≠ 0, gcd(i0 * abs(j) + j0, abs(j)) < gcd(abs(j), j0), j0 < abs(j), 0 ≤ i0, 0 ≤ j0 ⊦ |
Used simplifier rules: ⊦ (i + j) * i0 = j0 + j * i0 ↔ i * i0 = j0; (s) add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2 add-c: ⊦ i + j = j + i; from specification int-basic2 neq-not-zero: ⊦ i * j ≠ i * j0 → i ≠ 0; (forward) from specification int-mult ⊦ i ≠ 0 → (i * j = i * j0 ↔ j = j0); (s) associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult commutativity: ⊦ i * j = j * i; from specification int-mult
| abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) < gcd(abs(j), j0) ⊦ |
abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0 ⊦
Used simplifier rules: ⊦ i < j → ¬ j < i; (s)
| abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0 ⊦ |
⊦ i1 | i ∧ i1 | j ∧ 0 ≠ i → i1 ≤ gcd(i, j)
abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, gcd(abs(i), abs(j)) | abs(j) ∧ gcd(abs(i), abs(j)) | j0 ∧ 0 ≠ abs(j) → gcd(abs(i), abs(j)) ≤ gcd(abs(j), j0) ⊦
Used terms: gcd(abs(i), abs(j)), abs(j), j0
| ⊦ i1 | i ∧ i1 | j ∧ 0 ≠ i → i1 ≤ gcd(i, j) |
| abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, gcd(abs(i), abs(j)) | abs(j) ∧ gcd(abs(i), abs(j)) | j0 ∧ 0 ≠ abs(j) → gcd(abs(i), abs(j)) ≤ gcd(abs(j), j0) ⊦ |
abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0 ⊦ gcd(abs(i), abs(j)) | abs(j) ∧ gcd(abs(i), abs(j)) | j0
Used simplifier rules: ⊦ i < j → (j ≤ i ↔ false); (as) ⊦ abs(i) = 0 ↔ i = 0; (s)
| abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0 ⊦ gcd(abs(i), abs(j)) | abs(j) ∧ gcd(abs(i), abs(j)) | j0 |
⊦ gcd(i, j) | j
abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0 ⊦ true ∧ gcd(abs(i), abs(j)) | j0
Used terms: abs(j), abs(i)
| abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0 ⊦ true ∧ gcd(abs(i), abs(j)) | j0 |
abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦
| abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦ |
⊦ gcd(i, j) | i
abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), gcd(abs(i), abs(j)) | abs(i), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0 ⊦
Used terms: abs(i), abs(j)
| abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), gcd(abs(i), abs(j)) | abs(i), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0 ⊦ |
⊦ gcd(i, j) | j
abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), gcd(abs(i), abs(j)) | abs(i), gcd(abs(i), abs(j)) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦
Used terms: abs(i), abs(j)
| abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), gcd(abs(i), abs(j)) | abs(i), gcd(abs(i), abs(j)) | abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦ |
⊦ i | j ↔ (∃ i0. i * i0 = j)
abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), gcd(abs(i), abs(j)) | abs(i), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0, ∃ i0. gcd(abs(i), abs(j)) * i0 = abs(j) ⊦
Used terms: abs(j), gcd(abs(i), abs(j))
| ⊦ i | j ↔ (∃ i0. i * i0 = j) |
| abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), gcd(abs(i), abs(j)) | abs(i), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0, ∃ i0. gcd(abs(i), abs(j)) * i0 = abs(j) ⊦ |
gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), gcd(abs(i), abs(j)) | abs(i), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦
| gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), gcd(abs(i), abs(j)) | abs(i), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦ |
⊦ i | j ↔ (∃ i0. i * i0 = j)
gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0, ∃ i0. gcd(abs(i), abs(j)) * i0 = abs(i) ⊦
Used terms: abs(i), gcd(abs(i), abs(j))
| ⊦ i | j ↔ (∃ i0. i * i0 = j) |
| gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0, ∃ i0. gcd(abs(i), abs(j)) * i0 = abs(i) ⊦ |
gcd(abs(i), abs(j)) * i2 = abs(i), gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦
| gcd(abs(i), abs(j)) * i2 = abs(i), gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | j0 ⊦ |
gcd(abs(i), abs(j)) * i1 = abs(j), gcd(abs(i), abs(j)) * i2 = abs(i), abs(i) = i0 * abs(j) + j0, j0 = abs(i) - i0 * abs(j), j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0 ⊦
Used simplifier rules: ⊦ i - j = i0 ↔ i = i0 + j; (s) add-c: ⊦ i + j = j + i; from specification int-basic2 Used formulas: j0 = abs(i) - i0 * abs(j)
| gcd(abs(i), abs(j)) * i1 = abs(j), gcd(abs(i), abs(j)) * i2 = abs(i), abs(i) = i0 * abs(j) + j0, j0 = abs(i) - i0 * abs(j), j ≠ 0, j0 < abs(j), gcd(abs(j), j0) < gcd(abs(i), abs(j)), 0 ≤ i0, 0 ≤ j0, ¬ gcd(abs(i), abs(j)) | j0 ⊦ |
gcd(abs(i), abs(j)) * i2 = abs(i), gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | abs(i) - i0 * abs(j) ⊦
| gcd(abs(i), abs(j)) * i2 = abs(i), gcd(abs(i), abs(j)) * i1 = abs(j), abs(i) = i0 * abs(j) + j0, j ≠ 0, gcd(abs(j), j0) < gcd(abs(i), abs(j)), j0 < abs(j), 0 ≤ j0, 0 ≤ i0, ¬ gcd(abs(i), abs(j)) | abs(i) - i0 * abs(j) ⊦ |
Used simplifier rules: divides-mult-sub: ⊦ i | i * j - j0 ↔ i | j0; gcd-divides: ⊦ gcd(i, j) | i * i0; gcd-com: ⊦ gcd(i, j) = gcd(j, i); associativity: ⊦ i * j * j0 = (i * j) * j0; from specification int-mult commutativity: ⊦ i * j = j * i; from specification int-mult
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.