| prime(m1), n | m0, n | m, m1 * m1 ≤ n, 2 ≤ m1, ∃ n0. n = n0 * m1 ⊦ m + m0 = 1, m1 = 0, n = 0, n = 1, ∃ n. prime(n) ∧ n ≠ 0 ∧ n ≠ 1 ∧ n | m ∧ n | m0 |
prime(m1), n0 * m1 | m0, n0 * m1 | m, 2 ≤ n0, m1 ≤ n0, 2 ≤ m1 ⊦ n0 * m1 = 1, m + m0 = 1, m1 = 0, n0 = 0, ∃ n. prime(n) ∧ n ≠ 0 ∧ n ≠ 1 ∧ n | m ∧ n | m0
Used simplifier rules: not-zero: 0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward) from specification nat%let: ⊦ n ≤ n0 ∧ n0 ≤ n1 → n ≤ n1; (forward) from specification nat% ⊦ m0 ≠ 0 → (m0 * m ≤ m0 * n ↔ m ≤ n); (s)%mult-c: ⊦ m * n = n * m; from specification nat-mult%mult-a: ⊦ m0 * m * n = (m0 * m) * n; from specification nat-mult% ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0; (ws)