| j ≠ 0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
j ≠ 0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
| j ≠ 0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
j ≠ 0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0
j ≠ 0, ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used terms: j, i
| j ≠ 0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 |
| j ≠ 0, ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used simplifier rules: forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs
| gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0 ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used simplifier rules: <; (wellfounded) Used terms: i→n(i0)
| gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
| gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)), gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used terms: i0, j0
| gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)), gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i1 + j * j1, gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 < i0, i1 < i0, 0 ≤ i1, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used simplifier rules: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; (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
| gcd(i, j) = i * i1 + j * j1, gcd(i, j) = i * i0 + j * j0, j ≠ 0, 0 < i0, i1 < i0, 0 ≤ i1, 0 ≤ i0, ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i0 + j * j0, gcd(i, j) = i * i1 + j * j1, j ≠ 0, i1 < i0, 0 < i0, 0 ≤ i0, 0 ≤ i1, ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i, j) = i * i2 + j * j1)), ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used simplifier rules: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; (s) ⊦ i→n(i) < i→n(j) ↔ abs(i) < abs(j); (s) ⊦ 0 ≤ i → abs(i) = i; (s) ⊦ 0 < j → abs(j) = j; (s) ⊦ i < j ↔ ¬ j ≤ i; (ss) ⊦ i < j → (j ≤ i ↔ false); (as) Used terms: i1, i, j, j1
| gcd(i, j) = i * i0 + j * j0, gcd(i, j) = i * i1 + j * j1, j ≠ 0, i1 < i0, 0 < i0, 0 ≤ i0, 0 ≤ i1, ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i, j) = i * i2 + j * j1)), ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
gcd(i, j) = i * i0 + j * j0, gcd(i, j) = i * i1 + j * j1, gcd(i, j) = i * i2 + j * j2, j ≠ 0, i1 < i0, 0 < i0, 0 ≤ i0, 0 ≤ i1, 0 ≤ i2, ∀ i1. 0 ≤ i1 ∧ i1 < i2 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1), ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1))
Used simplifier rules: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; (s) forward-le-01: ⊦ i ≤ j ∧ 0 ≤ i → 0 ≤ j; (forward) from specification int-abs
| gcd(i, j) = i * i0 + j * j0, gcd(i, j) = i * i1 + j * j1, gcd(i, j) = i * i2 + j * j2, j ≠ 0, i1 < i0, 0 < i0, 0 ≤ i0, 0 ≤ i1, 0 ≤ i2, ∀ i1. 0 ≤ i1 ∧ i1 < i2 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1), ∀ i, i1, j, j0. i→n(i) < i→n(i0) → gcd(i1, j) = i1 * i + j * j0 ∧ j ≠ 0 ∧ 0 ≤ i → (∃ i0, j0. gcd(i1, j) = i1 * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i2. 0 ≤ i2 ∧ i2 < i0 → ¬(∃ j1. gcd(i1, j) = i1 * i2 + j * j1))) ⊦ ∃ i0, j0. gcd(i, j) = i * i0 + j * j0 ∧ 0 ≤ i0 ∧ (∀ i1. 0 ≤ i1 ∧ i1 < i0 → ¬(∃ j1. gcd(i, j) = i * i1 + j * j1)) |
Used simplifier rules: ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; (s) Used terms: i2, j2
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.