| P = P0, A0 = A, DAid(A, D), ADid(A, D), nodups(A), partitions(P0, # A), Fok(F, P0, # A), ∀ p. p ∈ P0 → p.count = 0 ∧ okp(p, # A) ⊦ ⟨P1 := P, D0 := D, A1 := A, F0 := F, X0 := X⟩ ⟨while X0 ≠ [] do {REFINEONE(X0.head, F0; A1, D0, P1); X0 := X0.tail}⟩ ( perm(A0, A1) ∧ DAid(A1, D0) ∧ ADid(A1, D0) ∧ split(P1, A1, X) ∧ partitions(P1, # A1) ∧ resetcnt(P1) = P0 ∧ nodups(A1) ∧ Fok(F, P1, # A1) ∧ samepartitions(P1, A1, resetcnt(P1), A0)) |
P = P0, A0 = A, DAid(A, D), ADid(A, D), nodups(A), partitions(P0, # A), Fok(F, P0, # A), ∀ p. p ∈ P0 → p.count = 0 ∧ okp(p, # A), P2 = P ∧ D1 = D ∧ A2 = A ∧ F1 = F ∧ X1 = X ⊦ ⟨while X1 ≠ [] do {REFINEONE(X1.head, F1; A2, D1, P2); X1 := X1.tail}⟩ ( perm(A0, A2) ∧ DAid(A2, D1) ∧ ADid(A2, D1) ∧ split(P2, A2, X) ∧ partitions(P2, # A2) ∧ resetcnt(P2) = P0 ∧ nodups(A2) ∧ Fok(F, P2, # A2) ∧ samepartitions(P2, A2, resetcnt(P2), A0))
[Concretesimprules(())]