| n < m, ∀ m0, n. m0 < m → n ≤ m0 → (∃ m1, n0. m0 * m1 + gcd(m0, n) = n * n0 ∨ n * n0 + gcd(m0, n) = m0 * m1) ⊦ n = 0, m = n, ∃ m0, n0. m * m0 + gcd(n, m % n) = n * n0 ∨ n * n0 + gcd(n, m % n) = m * m0 |
∃ m1, n0. n * m1 + gcd(n, m % n) = m % n * n0 ∨ m % n * n0 + gcd(n, m % n) = n * m1, n < m, ∀ m0, n. m0 < m → n ≤ m0 → (∃ m1, n0. m0 * m1 + gcd(m0, n) = n * n0 ∨ n * n0 + gcd(m0, n) = m0 * m1) ⊦ n = 0, m = n, ∃ m0, n0. m * m0 + gcd(n, m % n) = n * n0 ∨ n * n0 + gcd(n, m % n) = m * m0
Used simplifier rules: mod-le-02: n ≠ 0 ⊦ m % n ≤ n; from specification nat-div Used terms: n, m % n