| (i0 + j0) * (i0 + j0 + 1) + j0 * 2 = (i + j) * (i + j + 1) + j * 2, 0 ≤ i, 0 ≤ j, 0 ≤ i0, 0 ≤ j0, 0 ≤ i1, j ≤ i1 + j0, 0 ≤ i1 + j0 ⊦ i = i0 ∧ j = j0 |
i * (i + 1) + 2 * i0 = j * (j + 1) + 2 * j0, i0 ≤ i, j0 ≤ j, 0 ≤ i0, 0 ≤ j, 0 ≤ j0 ⊦ i = j ∧ i0 = j0
Used simplifier rules: ⊦ i + j = i + i0 ↔ j = i0; (s)%add-a: ⊦ i + j + i0 = (i + j) + i0; from specification int-basic2%add-c: ⊦ i + j = j + i; from specification int-basic2% ⊦ i ≤ 0 ∧ 0 ≤ j → i ≤ j; (s)% ⊦ i ≤ i + j ↔ 0 ≤ j; (s)%commutativity: ⊦ i * j = j * i; from specification int-mult% ⊦ i ≤ j ↔ ¬ j < i; (ss)% ⊦ 0 ≤ i ∧ 0 ≤ j → ¬ i + j < 0; (s) Used terms: j + i, j, j0 + i0, j0