| ((m + n) * (m + n + 1)) % 2 = 0 ∧ 2 ≠ 0, (m + n) * (m + n + 1) + 2 * n = (((m0 + n0) * (m0 + n0 + 1)) / 2 + n0) * 2 ⊦ ((m + n) * (m + n + 1)) / 2 + n = ((m0 + n0) * (m0 + n0 + 1)) / 2 + n0 ↔ m = m0 ∧ n = n0 |
⊦ m0 * (m + n) = m0 * m + m0 * n
((m + n) * (m + n + 1)) % 2 = 0 ∧ 2 ≠ 0, (m + n) * (m + n + 1) + 2 * n = 2 * ((m0 + n0) * (m0 + n0 + 1)) / 2 + 2 * n0 ⊦ ((m + n) * (m + n + 1)) / 2 + n = ((m0 + n0) * (m0 + n0 + 1)) / 2 + n0 ↔ m = m0 ∧ n = n0
Used simplifier rules: mult-c: ⊦ m * n = n * m; from specification nat-mult Used terms: 2, n0, ((m0 + n0) * (m0 + n0 + 1)) / 2