| reachable-n(H, n0 + m0, H[r].nxt, r0), H[r].nxt ∈ H, r ∈ H, ∀ H, n0, r, r0. reachable-n(H, n0 + m0, r, r0) → n0 = 0 ∨ (∃ r1. reachable-n(H, m0, r, r1) ∧ reachable-n(H, n0, r1, r0)) ⊦ H[r].nxt = null, n0 = 0, r = null, ∃ r2. (∃ r1. reachable-1(H, r, r1) ∧ reachable-n(H, m0, r1, r2)) ∧ reachable-n(H, n0, r2, r0) |
reachable-n(H, n0 + m0, H[r].nxt, r0), r ∈ H, H[r].nxt ∈ H, reachable-n(H, n0 + m0, H[r].nxt, r0) → n0 = 0 ∨ (∃ r1. reachable-n(H, m0, H[r].nxt, r1) ∧ reachable-n(H, n0, r1, r0)) ⊦ H[r].nxt = null, n0 = 0, r = null, ∃ r2. (∃ r1. reachable-1(H, r, r1) ∧ reachable-n(H, m0, r1, r2)) ∧ reachable-n(H, n0, r2, r0)
Used terms: H, n0, H[r].nxt, r0