| m1 + 1 = # S0, reach(source, dest, (m0 + 1) + n0), reach(source, dest, n0), dest ∈ S0, reachS(source, S, n0 + 1), ∀ b. reach(source, b, n0 + 1) ∧ ¬ reach<(source, b, n0 + 1) → b ∈ S ∨ (∃ a. a ∈ S0 ∧ b ∈ succ(a) ∧ ¬ b ∈ S1), ∀ b. b ∈ S1 ↔ reach<(source, b, n0 + 1) ∨ (∃ a. b ∈ succ(a) ∧ reach(source, a, n0) ∧ ¬ reach<(source, a, n0) ∧ ¬ a ∈ S0), a ∈ S0 ∧ reach(a, dest, m0 + 1) ∧ ¬ reach<(a, dest, m0 + 1) ∨ b ∈ S ∧ reach(b, dest, m0) ∧ ¬ reach<(b, dest, m0) ⊦ S0 = ∅, reach<(source, dest, (m0 + 1) + n0), reach<(source, dest, n0) |
⊦ reach<(a, b, n) ↔ (∃ m. m < n ∧ reach(a, b, m))
m1 + 1 = # S0, reach(source, dest, (m0 + 1) + n0), reach(source, dest, n0), dest ∈ S0, reachS(source, S, n0 + 1), ∀ b. reach(source, b, n0 + 1) ∧ ¬ reach<(source, b, n0 + 1) → b ∈ S ∨ (∃ a. a ∈ S0 ∧ b ∈ succ(a) ∧ ¬ b ∈ S1), ∀ b. b ∈ S1 ↔ reach<(source, b, n0 + 1) ∨ (∃ a. b ∈ succ(a) ∧ reach(source, a, n0) ∧ ¬ reach<(source, a, n0) ∧ ¬ a ∈ S0), a ∈ S0 ∧ reach(a, dest, m0 + 1) ∧ ¬ reach<(a, dest, m0 + 1) ∨ b ∈ S ∧ reach(b, dest, m0) ∧ ¬ reach<(b, dest, m0) ⊦ S0 = ∅, ∃ m. m < (m0 + 1) + n0 ∧ reach(source, dest, m), reach<(source, dest, n0)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : ((m0 + 1) + n0, dest, source)]]