| (r ' + x1)[m] = r, path(r ' + x1, H), m ≤ # x1, ∀ x. ¬ path(x, H) ∨ hd x ≠ x .last ∨ x .last ≠ r ∨ # x ≠ m + 1 ⊦ x1 = [], m = 0, reachable-n(H, m, r, r) |
(r ' + x1)[m] = r, path(r ' + x1, H), m ≤ # x1, ¬ path(firstn(m + 1, r ' + x1), H) ∨ hd firstn(m + 1, r ' + x1) ≠ firstn(m + 1, r ' + x1) .last ∨ firstn(m + 1, r ' + x1) .last ≠ r ∨ # firstn(m + 1, r ' + x1) ≠ m + 1 ⊦ x1 = [], m = 0, reachable-n(H, m, r, r)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (firstn(m + 1, r ' + x1))]]