| ⊦ INVR(C, N, V, n, n0, source, dest) ∧ INV(C, N, V, n, source) ∧ v ∈ C ∧ v ≠ dest → (¬ INVR(C -- v, N ∪ (succ(v) \ V), V ∪ succ(v), n, n0, source, dest) ↔ false) |
⊦ INVR(C, N, V, n, n0, source, dest) ↔ ¬ ¬ ( reach(source, dest, n0) ∧ ¬ reach<(source, dest, n0) ∧ n ≤ n0 ∧ ((∃ a. a ∈ C ∧ reachS(a, {dest} , n0 - n)) ∨ n < n0 ∧ (∃ b. b ∈ N ∧ reachS(b, {dest} , n0 - n - 1))))
⊦ INV(C, N, V, n, source) ↔ ¬ ¬ ( (∀ b. b ∈ V ↔ reach<(source, b, n + 1) ∨ (∃ a. b ∈ succ(a) ∧ reachS(source, {a} , n) ∧ ¬ a ∈ C)) ∧ reachS(source, C, n) ∧ reachS(source, N, n + 1) ∧ (∀ b. reachS(source, {b} , n + 1) → b ∈ N ∨ (∃ a. a ∈ C ∧ b ∈ succ(a) ∧ ¬ b ∈ V)))
reachS(source, N, n + 1), reachS(source, C, n), n ≤ n0, reach(source, dest, n0), v ∈ C, ¬ n < n0 ∨ (∀ b. ¬ b ∈ N ∪ (succ(v) \ V) ∨ ¬ reach(b, dest, n0 - n - 1) ∨ reach<(b, dest, n0 - n - 1)), ∀ a0. a0 = v ∨ ¬ a0 ∈ C ∨ ¬ reach(a0, dest, n0 - n) ∨ reach<(a0, dest, n0 - n) ⊦ C = ∅, v = dest, # C = 0, reach<(source, dest, n0), ∃ b0. ¬ ((∃ c. reach(source, c, n) ∧ b0 ∈ succ(c)) ∧ ¬ reach<(source, b0, n + 1) → b0 ∈ N ∨ (∃ a. a ∈ C ∧ b0 ∈ succ(a) ∧ ¬ b0 ∈ V)), ∃ b0. ¬ (b0 ∈ V ↔ reach<(source, b0, n + 1) ∨ (∃ a0. b0 ∈ succ(a0) ∧ reach(source, a0, n) ∧ ¬ reach<(source, a0, n) ∧ ¬ a0 ∈ C)), (¬ a ∈ C ∨ ¬ reach(a, dest, n0 - n) ∨ reach<(a, dest, n0 - n)) ∧ (¬ n < n0 ∨ ¬ b ∈ N ∨ ¬ reach(b, dest, n0 - n - 1) ∨ reach<(b, dest, n0 - n - 1))
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ s ≠ ∅ → # s ≠ 0], [CSIMPFORWARD : ⊦ a ∈ s → s ≠ ∅], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ reach(a, b, n + 1) ↔ (∃ c. reach(a, c, n) ∧ b ∈ succ(c))], [CSIMPSEQ : ⊦ reachS(a, ∅ ++ b, n) ↔ ¬ ¬ ( reach(a, b, n) ∧ ¬ reach<(a, b, n))], [CSIMPSEQ : ⊦ {a} = ∅ ++ a], [CSIMPSEQ : ⊦ a ∈ s -- b ↔ ¬ ¬ (a ≠ b ∧ a ∈ s)])]]