| # 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) |
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)
# 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) ⊦ reach(a0, y .butlast .last, n0), y = [], ∃ c. reach(a0, c, n0) ∧ y .last ∈ succ(c)
[[CONCRETESIMPRULES : ()], [EXTRAFMAS : (reach(a0, y .butlast .last, n0))]]