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