| # x = 2 + n0, path(x), ∀ a, b. reach(a, b, n0) ↔ (∃ x. path(x) ∧ # x = n0 + 1 ∧ x .first = a ∧ x .last = b) ⊦ ∃ c. reach(x .first, c, n0) ∧ x .last ∈ succ(c) |
x = a0 + y ∧ x ≠ [], # x = 2 + n0, path(x), ∀ a, b. reach(a, b, n0) ↔ (∃ x. path(x) ∧ # x = n0 + 1 ∧ x .first = a ∧ x .last = b) ⊦ ∃ c. reach(a0, c, n0) ∧ x .last ∈ succ(c)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ # [] = 0], [CSIMPSEQ : ⊦ m + n = 0 ↔ m = 0 ∧ n = 0], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPELIM : x ≠ [] ⊦ a = x .first ∧ y = x .rest ↔ x = a + y])], [EXTRATERMS : (x, a0, y)]]