| reach(a, b, n), reach(b, c, m) ⊦ reach(a, c, m + n) |
⊦ reach(a, b, 0) ↔ a = b
∀ a, b, n, c. reach(a, b, n) ∧ reach(b, c, m0) → reach(a, c, m0 + n), reach(a, b, n), reach(b, c, m0 +1) ⊦ reach(a, c, m0 +1 + n)
[[CONCRETESIMPRULES : ([CSIMPGEN : nat generated by 0, +1;], [CSIMPSEQ : ⊦ 0 + m = m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m])]]