| reach(a0, y .butlast .last, n0), # y = 1 + n0, path(a0 ' + y), reach(a0, y .butlast .last, n0) ↔ (∃ x. path(x) ∧ # x = n0 + 1 ∧ x .first = a0 ∧ x .last = y .butlast .last) ⊦ y = [], ∃ c. reach(a0, c, n0) ∧ y .last ∈ succ(c) |
x .last = y .butlast .last, # x = n0 + 1, # y = 1 + n0, path(x), path(x .first ' + y), reach(x .first, x .last, n0) ⊦ y = [], ∃ c. reach(x .first, c, n0) ∧ y .last ∈ succ(c)
[[CONCRETESIMPRULES : ()]]