| lpt[n0] = mklp(m0, m1, lpf, m2), n0 + 1 < # lpt, m < # lpt, n0 < m, n0 < # lpt, ∀ lpt, m. n0 < # lpt ∧ m < # lpt ∧ n0 ≤ m → cleanup-lpt(lpt, n0)[m] = lpt[m] ⊦ (m0 = 0 ∧ lpf ≠ LP_FREE ⊃ cleanup-lpt(lpt, n0)[n0, mklp(0, 0, LP_FREE, m2)];cleanup-lpt(lpt, n0))[m] = lpt[m] |
lpt[n0] = mklp(m0, m1, lpf, m2), m0 = 0, n0 < # lpt, n0 < m, m < # lpt, n0 + 1 < # lpt, ∀ lpt, m. n0 < # lpt ∧ m < # lpt ∧ n0 ≤ m → cleanup-lpt(lpt, n0)[m] = lpt[m] ⊦ cleanup-lpt(lpt, n0)[n0, mklp(0, 0, LP_FREE, m2)][m] = lpt[m], lpf = LP_FREE
lpt[n0] = mklp(m0, m1, lpf, m2), n0 < # lpt, n0 < m, m < # lpt, n0 + 1 < # lpt, ∀ lpt, m. n0 < # lpt ∧ m < # lpt ∧ n0 ≤ m → cleanup-lpt(lpt, n0)[m] = lpt[m], m0 ≠ 0 ∨ lpf = LP_FREE ⊦ cleanup-lpt(lpt, n0)[m] = lpt[m]