| (r ' + x1)[m] = (r ' + x1)[n], n < m, path(r ' + x1, H), m ≤ # x1, n < # x1 ⊦ n = 0, m = n, x1 = [], reachable-n(H, n, r, (r ' + x1)[n]), path(r ' + firstn(n, x1), H) ∧ (r ' + firstn(n, x1)) .last = (r ' + x1)[n] |
⊦ x0 ≠ [] → (r ' + x0) .last = x0 .last
firstn(n, x1) ≠ [], (r ' + x1)[m] = (r ' + x1)[n], n < m, path(r ' + x1, H), m ≤ # x1, n < # x1 ⊦ n = 0, m = n, x1 = [], reachable-n(H, n, r, (r ' + x1)[n]), path(r ' + firstn(n, x1), H) ∧ firstn(n, x1) .last = (r ' + x1)[n]
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ firstn(n, x0) = [] ↔ n = 0])], [EXTRATERMS : (firstn(n, x1), r)]]