614stepUser applied rule invariant rightlength_of_P = # P0, Pnew = [], Pdone = [], P2 = P0, DAid(A, D), ADid(A, D), nodups(A), split(P0, A, X), partitions(P0, # A), Fok(F, P0, # A),
samepartitions(P0, A, P4, A4)
⊦ ⟨while P2 ≠ []
do let p = P2.head
in {P2 := P2.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 '}⟩
⟨P2 := Pdone + Pnew⟩ (partitions(P2, # A) ∧ divides(P2, P0, X, A) ∧ Fok(F, P2, # A) ∧ partitionRefinement(P2, A, P4, A4, X))5length_of_P = # P0, Pnew = [], Pdone = [], P2 = P0, DAid(A, D), ADid(A, D), nodups(A), split(P0, A, X), partitions(P0, # A), Fok(F, P0, # A),
samepartitions(P0, A, P4, A4),
∀ P1.
¬
( P0 = P1 + P2 ∧ partitions(Pdone + P2 + Pnew, # A) ∧ divides(Pdone + Pnew, P1, X, A) ∧ Fok(F, Pdone + P2 + Pnew, # A) ∧ split(P0, A, X)
∧ # Pdone = # P1 ∧ length_of_P = # P0 ∧ partitionRefinement(Pdone + Pnew, A, P4, A4, X) ∧ samepartitions(P0, A, P4, A4))
⊦
bound:# P2
inv:∃ P1.
P0 = P1 + P2 ∧ partitions(Pdone + P2 + Pnew, # A)
∧ divides(Pdone + Pnew, P1, X, A)
∧ Fok(F, Pdone + P2 + Pnew, # A) ∧ split(P0, A, X)
∧ # Pdone = # P1 ∧ length_of_P = # P0
∧ partitionRefinement(Pdone + Pnew, A, P4, A4, X)
∧ samepartitions(P0, A, P4, A4)
fmapos:right 1[Concretesimprules(()),
Extrafmas((∃ P1.
P0 = P1 + P2 ∧ partitions(Pdone + P2 + Pnew, # A)
∧ divides(Pdone + Pnew, P1, X, A)
∧ Fok(F, Pdone + P2 + Pnew, # A) ∧ split(P0, A, X)
∧ # Pdone = # P1 ∧ length_of_P = # P0
∧ partitionRefinement(Pdone + Pnew, A, P4, A4, X)
∧ samepartitions(P0, A, P4, A4)
# P2 = # P2))]