| path(r ' + x, H) ⊦ ∃ x0. path(r ' + x0, H[(r ' + x0).last, ce]) ∧ (r ' + x0).last = (r ' + x).last |
path(r ' + [], H) ⊦ ∃ x0. path(r ' + x0, H[(r ' + x0).last, ce]) ∧ (r ' + x0).last = (r ' + []).last
path(r ' + (r0 + x0), H), ∀ r, H, ce. path(r ' + x0, H) → (∃ x1. path(r ' + x1, H[(r ' + x1).last, ce]) ∧ (r ' + x1).last = (r ' + x0).last) ⊦ ∃ x1. path(r ' + x1, H[(r ' + x1).last, ce]) ∧ (r ' + x1).last = (r ' + (r0 + x0)).last
Used simplifier rules: reflist freely generated by [], +;;