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