| m1 + 1 = # S0, m0 + 1 = n - n0, S0 ≠ ∅, n0 ≠ n, dest ∈ S0, INV(S0, S, S1, n0, source), reach(source, dest, n) ∧ ¬ reach<(source, dest, n) ∧ n0 ≤ n ∧ ((∃ a. a ∈ S0 ∧ reachS(a, {dest} , n - n0)) ∨ n0 < n ∧ (∃ b. b ∈ S ∧ reachS(b, {dest} , n - n0 - 1))) ⊦ |
m0 + 1 = n - n0, m1 + 1 = # S0, n0 < n, reach(source, dest, n), INV(S0, S, S1, n0, source), dest ∈ S0, a ∈ S0 ∧ reach(a, dest, n - n0) ∧ ¬ reach<(a, dest, n - n0) ∨ n0 < n ∧ b ∈ S ∧ reach(b, dest, n - n0 - 1) ∧ ¬ reach<(b, dest, n - n0 - 1) ⊦ S0 = ∅, n0 = n, reach<(source, dest, n)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m < n → n ≠ 0], [CSIMPFORWARD : ⊦ m < n → n ≠ 0], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ reachS(a, ∅ ++ b, n) ↔ ¬ ¬ ( reach(a, b, n) ∧ ¬ reach<(a, b, n))], [CSIMPSEQ : ⊦ {a} = ∅ ++ a], [CSIMPSEQ : ⊦ m ≠ n → (m ≤ n ↔ m < n)])]]