| P2 = P0, A2 = A, F1 = F, X1 = X, DAid(A, D), ADid(A, D), nodups(A), partitions(P0, # A), Fok(F, P0, # A), ∀ p. p ∈ P0 → p.count = 0 ∧ okp(p, # A) ⊦ ⟨while X1 ≠ [] do {REFINEONE(X1.head, F1; A2, D, P2); X1 := X1.tail}⟩ ( perm(A, A2) ∧ DAid(A2, D) ∧ ADid(A2, D) ∧ split(P2, A2, X) ∧ partitions(P2, # A2) ∧ resetcnt(P2) = P0 ∧ Fok(F, P2, # A2) ∧ samepartitions(P2, A2, resetcnt(P2), A)) |
P2 = P0, A2 = A, F1 = F, X1 = X, DAid(A, D), ADid(A, D), nodups(A), partitions(P0, # A), Fok(F, P0, # A), ∀ p. p ∈ P0 → p.count = 0 ∧ okp(p, # A), ∀ X0. ¬ ( X = X0 + X1 ∧ perm(A, A2) ∧ DAid(A2, D) ∧ ADid(A2, D) ∧ split(P2, A2, X0) ∧ partitions(P2, # A2) ∧ resetcnt(P2) = P0 ∧ nodups(A2) ∧ Fok(F1, P2, # A2) ∧ F1 = F ∧ samepartitions(P2, A2, P0, A)) ⊦
[Concretesimprules((Csimpnamedseq(list,list_of_nat,app, ⊦ X + [] = X) Csimpnamedseq(list,list_of_nat,a, ⊦ (X + X0) + X1 = X + X0 + X1))), Extrafmas((∃ X0. X = X0 + X1 ∧ perm(A, A2) ∧ DAid(A2, D) ∧ ADid(A2, D) ∧ split(P2, A2, X0) ∧ partitions(P2, # A2) ∧ resetcnt(P2) = P0 ∧ nodups(A2) ∧ Fok(F1, P2, # A2) ∧ F1 = F ∧ samepartitions(P2, A2, P0, A) # X1 = # X1))]