| reachable-1(H, r, r1), reachable-1(H, r1, r2), reachable-1(H, r2, r3), reachable-n(H, n0, r3, r0), (∃ r6. reachable-1(H, r1, r6) ∧ (∃ r1. reachable-1(H, r6, r1) ∧ reachable-n(H, n0, r1, r0))) ↔ (∃ x. path(x, H) ∧ hd x = r1 ∧ x.last = r0 ∧ # x = 3 + n0) ⊦ ∃ x. path(x, H) ∧ hd x = r ∧ x.last = r0 ∧ # x = 4 + n0 |
reachable-1(H, r, r1), reachable-1(H, r1, r2), reachable-1(H, r2, r3), reachable-n(H, n0, r3, r0) ⊦ ∃ r6. reachable-1(H, r1, r6) ∧ (∃ r1. reachable-1(H, r6, r1) ∧ reachable-n(H, n0, r1, r0)), ∃ x. path(x, H) ∧ hd x = r1 ∧ x.last = r0 ∧ # x = 3 + n0, ∃ x. path(x, H) ∧ hd x = r ∧ x.last = r0 ∧ # x = 4 + n0
∃ r6. reachable-1(H, r1, r6) ∧ (∃ r1. reachable-1(H, r6, r1) ∧ reachable-n(H, n0, r1, r0)), ∃ x. path(x, H) ∧ hd x = r1 ∧ x.last = r0 ∧ # x = 3 + n0, reachable-1(H, r, r1), reachable-1(H, r1, r2), reachable-1(H, r2, r3), reachable-n(H, n0, r3, r0) ⊦ ∃ x. path(x, H) ∧ hd x = r ∧ x.last = r0 ∧ # x = 4 + n0