| n * m + m = 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, m1. n * m0 + m0 = 2 * n + m1 * n + m1 + 1 ∧ (∀ n, m. n * m + m = (n * m1 + m1) + n → n = 0) → n = 0 ⊦ n = 0
Used simplifier rules: mult-base: ⊦ m * 0 = 0;%mult-a: ⊦ m0 * m * n = (m0 * m) * n;%mult-c: ⊦ m * n = n * m;%nat freely generated by 0, +1;;%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ m + 1 ≠ 0; (s)