| n * m + m = 2 * n + m1 * n + m1 + 1, ∀ n, m. n * m + m = (n * m1 + m1) + n → n = 0 ⊦ n = 0 |
∀ n, m1. n * m0 + m0 = 2 * n + m1 * n + m1 + 1 ∧ (∀ n, m. n * m + m = (n * m1 + m1) + n → n = 0) → n = 0, n * m0 +1 + m0 +1 = 2 * n + m1 * n + m1 + 1, ∀ n, m. n * m + m = (n * m1 + m1) + n → n = 0 ⊦ n = 0
Used simplifier rules: zero: ⊦ 0 * n = 0;%mult-a: ⊦ m0 * m * n = (m0 * m) * n;%mult-c: ⊦ m * n = n * m;%zero-06: ⊦ m ≠ 0 → (m * n = 0 ↔ n = 0);%nat freely generated by 0, +1;;%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%c: ⊦ m + n = n + m; from specification nat-basic2%z-01: ⊦ m + n = 0 ↔ m = 0 ∧ n = 0; from specification nat-basic2