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