| m0 + 1 = n - n0, m1 + 1 = # S0, S0 ≠ ∅, n0 ≠ n, INVR(S0, S, S1, n0, n, source, dest), (∀ b. b ∈ S1 ↔ reach<(source, b, n0 + 1) ∨ (∃ a. b ∈ succ(a) ∧ reachS(source, {a} , n0) ∧ ¬ a ∈ S0)) ∧ reachS(source, S0, n0) ∧ reachS(source, S, n0 + 1) ∧ (∀ b. reachS(source, {b} , n0 + 1) → b ∈ S ∨ (∃ a. a ∈ S0 ∧ b ∈ succ(a) ∧ ¬ b ∈ S1)), dest ∈ S0 ⊦ |
m0 + 1 = n - n0, m1 + 1 = # S0, INVR(S0, S, S1, n0, n, source, dest), reachS(source, S0, 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 : ([CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ reachS(a, ∅ ++ b, n) ↔ ¬ ¬ ( reach(a, b, n) ∧ ¬ reach<(a, b, n))], [CSIMPSEQ : ⊦ {a} = ∅ ++ a])]]