| (r ' + x1)[# x2] = x1[m0], x1[m0] = x2 .last, path(r ' + x1, H), path(r ' + x2, H), reachable-n(H, # x2, r, x1[m0]), # x2 < # x1, m0 < # x1, # x2 ≤ m0 ⊦ x1 = [], x2 = [], path(r ' + firstn(m0 + 1, x1), H) |
⊦ path(r ' + x + y, H) → (¬ path(r ' + x, H) ↔ false)
¬ path(r ' + firstn(m0 + 1, x1) + restn(m0 + 1, x1), H), (r ' + x1)[# x2] = x1[m0], x1[m0] = x2 .last, path(r ' + x1, H), path(r ' + x2, H), reachable-n(H, # x2, r, x1[m0]), # x2 < # x1, m0 < # x1, # x2 ≤ m0 ⊦ x1 = [], x2 = [], path(r ' + firstn(m0 + 1, x1), H)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (restn(m0 + 1, x1), H, firstn(m0 + 1, x1), r)]]