| ∀ n. ¬ reach(source, dest, n) ⊦ [let V = {source} , C = {source} , N = ∅, n = 0, done = false in { while C ≠ ∅ ∧ ¬ done do { choose v with v ∈ C in if v = dest then done := true else { C := C -- v ; ADD(succ(v); V, N) } ; if C = ∅ then C := N, N := ∅, n := n + 1 } ; norfail0 := (done ⊃ some(n); fail) }] norfail0 = fail |
∀ n. ¬ reach(source, dest, n), done0 ↔ false, n0 = 0, S = ∅, S0 = {source} , S1 = {source} ⊦ [while S0 ≠ ∅ ∧ ¬ done0 do { choose v with v ∈ S0 in if v = dest then done0 := true else { S0 := S0 -- v ; ADD(succ(v); S1, S) } ; if S0 = ∅ then S0 := S, S := ∅, n0 := n0 + 1 }] [norfail0 := (done0 ⊃ some(n0); fail)] norfail0 = fail
[[CONCRETESIMPRULES : ()]]