| 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((Csimpnamedseq(nodups-perm,,, ⊦ nodups(A0) ∧ perm(A0, A1) → (¬ nodups(A1) ↔ false))))]