| ⟪ADD(succ(v); V, N)⟫ INV(C -- v, N, V, n, source), 〈ADD(succ(v); V, N)〉 (V = S ∧ N = S0), C ≠ ∅, v ≠ dest, # C ≠ 0, INV(C -- v, S0, S, n, source), INVR(C, N, V, n, n0, source, dest), v ∈ C, INV(C, N, V, n, source), ¬ INVR(C -- v, S0, S, n, n0, source, dest) ⊦ |
N = N0, V = V0 ⊦ ⟪ADD(S; V, N)⟫ (N = N0 ∪ (S \ V0) ∧ V = V0 ∪ S)
⟪V1 := V⟫ ⟪N1 := N⟫ ⟪ADD(succ(v); V, N)⟫ (N = N1 ∪ (succ(v) \ V1) ∧ V = V1 ∪ succ(v)), ⟪ADD(succ(v); V, N)⟫ INV(C -- v, N, V, n, source), 〈ADD(succ(v); V, N)〉 (V = S ∧ N = S0), C ≠ ∅, v ≠ dest, # C ≠ 0, INV(C -- v, S0, S, n, source), INVR(C, N, V, n, n0, source, dest), v ∈ C, INV(C, N, V, n, source), ¬ INVR(C -- v, S0, S, n, n0, source, dest) ⊦
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (N, N, V, V, succ(v))]]