| n = n1 + n0 ∧ n0 ≤ n, m0 + 1 = n1, m1 + 1 = # S0, n0 < n, reach(source, dest, n), INV(S0, S, S1, n0, source), dest ∈ S0, a ∈ S0 ∧ reach(a, dest, n1) ∧ ¬ reach<(a, dest, n1) ∨ n0 < n ∧ b ∈ S ∧ reach(b, dest, n1 - 1) ∧ ¬ reach<(b, dest, n1 - 1) ⊦ S0 = ∅, n0 = n, reach<(source, dest, n) |
m1 + 1 = # S0, reach(source, dest, (m0 + 1) + n0), INV(S0, S, S1, n0, source), dest ∈ 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)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ 0 + m = m], [CSIMPSEQ : ⊦ n ≤ m → m + n0 - n = (m - n) + n0], [CSIMPSEQ : ⊦ ¬ m + n < m], [CSIMPSEQ : ⊦ m < n + 1 ↔ ¬ n < m], [CSIMPSEQ : ⊦ m < n → m ≤ n], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + 1 ≠ 0], [CSIMPSEQ : ⊦ m = m + n ↔ n = 0])]]