| 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(0, 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] ⊦ cleanup-lpt(lpt, n0)[m] = lpt[m], lpf = LP_FREE
Used simplifier rules: ⊦ m < n → lpt[m, lp][n] = lpt[n]; (s)