NEWPARTSNEWPARTS(; P, F)
{let Pdone = [], Pnew = [], length_of_P = # P
in {while P ≠ []
do let p = P.head
in {P := P.tail;
if p.count ≠ 0 ∧ p.first + p.count ≤ p.last
then Pdone := Pdone + pe(p.first, p.first + p.count -1, 0), Pnew := Pnew + pe(p.first + p.count, p.last, 0),
F := F[p.first + p.count, p.last, length_of_P + # Pnew]
else Pdone := Pdone + p};
P := Pdone + Pnew}
}
00NEWPARTS-proofNEWPARTS-proof-info
The proof is valid.
NEWPARTS-theorem
../../../../specs/partition-refinement-test/export/unit.xmlpartition-refinement-test
spec is buggy. Second first slot must be p.first + p.count not p.count