| 2 * m = m0 + 1, reachable-n(H, (m1 + 1) + m, r, r2), reachable-n(H, m1 + 1, r2, r2), reachable-n(H, m0 * m1 + m0, r1, r1), reachable-n(H, m, r, r2), reachable-n(H, m * m1 + m, r, r1), ∀ n. reachable-n(H, (n * m1 + n) + m, r, r2) ⊦ m = 0, reachable-n(H, m * m1, r2, r1), reachable-n(H, 2 * (m * m1 + m), r, r1), reachable-n(H, m * m1 + m, r1, r1) |
reachable-n(H, n, r, r0), m < n ⊦ ∃ r1. reachable-n(H, m, r, r1) ∧ reachable-n(H, n - m, r1, r0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + n - m = n], [CSIMPSEQ : ⊦ ¬ m < n ↔ n ≤ m], [CSIMPSEQ : ⊦ m + m0 ≤ m ↔ m0 = 0], [CSIMPSEQ : ⊦ m0 * m = 0 ↔ m0 = 0 ∨ m = 0], [CSIMPSEQ : ⊦ m0 * m * n = (m0 * m) * n], [CSIMPSEQ : ⊦ m * n = n * m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ m * 0 = 0], [CSIMPSEQ : ⊦ 0 + m = m], [CSIMPSEQ : ⊦ reachable-n(H, 1, r, r0) ↔ reachable-1(H, r, r0)], [CSIMPSEQ : ⊦ reachable-1(H, r, r0) ↔ r ≠ null ∧ r0 ≠ null ∧ r ∈ H ∧ r0 ∈ H ∧ H[r] .nxt = r0], [CSIMPSEQ : ⊦ reachable-n(H, 0, r, r0) ↔ r = r0], [CSIMPFORWARD : ⊦ reachable-n(H, n, r, r0) ∧ reachable-n(H, n, r, r1) → r0 = r1])], [EXTRATERMS : (H, m * m1 + m, r, r1, m)]]