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