| S2 = N0, S3 = V0, s0 = S ⊦ ⟪while s0 ≠ ∅ do choose w with w ∈ s0 in { s0 := s0 -- w ; if ¬ w ∈ S3 then S3 := S3 ++ w, S2 := S2 ++ w }⟫ (S2 = N0 ∪ (S \ V0) ∧ S3 = V0 ∪ S) |
S2 = N0, S3 = V0, s0 = S, ¬ s0 ⊆ S ∨ S3 ≠ V0 ∪ (S \ s0) ∨ S2 ≠ N0 ∪ (S \ (s0 ∪ V0)) ⊦
s0 ≠ ∅, s0 ⊆ S, S3 = V0 ∪ (S \ s0), S2 = N0 ∪ (S \ (s0 ∪ V0)), s0 = s ⊦ ⟪choose w with w ∈ s0 in { s0 := s0 -- w ; if ¬ w ∈ S3 then S3 := S3 ++ w, S2 := S2 ++ w }⟫ (s0 ⊆ S ∧ S3 = V0 ∪ (S \ s0) ∧ S2 = N0 ∪ (S \ (s0 ∪ V0)) ∧ # s0 < # s)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ s ∪ s0 = s0 ∪ s], [CSIMPSEQ : ⊦ ∅ ⊆ s], [CSIMPSEQ : ⊦ s ∪ ∅ = s], [CSIMPSEQ : ⊦ (s ∪ s0) ∪ s1 = s ∪ s0 ∪ s1], [CSIMPSEQ : ⊦ s \ ∅ = s])], [EXTRAFMAS : (( s0 ⊆ S ∧ S3 = V0 ∪ (S \ s0) ∧ S2 = N0 ∪ (S \ (s0 ∪ V0))), # s0 = # s0)]]