| subarray(lpt, 0, n0 + 1)[n] = mklp(m2, m3, lpf, m4), lpt[n0] = mklp(m, m0, LP_FREE, m1), n0 < # lpt, ∀ n1. n1 < n0 ∧ lpt[n1].flags = LP_FREE ↔ n1 ∈ freelist ⊦ ¬ n0 < n ∧ lpf = LP_FREE ↔ n ∈ freelist ∨ n = n0, dups(freelist) |
⊦ n0 < n → subarray(lpt, m, n)[n0] = lpt[m + n0]
lpt[n0] = mklp(m, m0, LP_FREE, m1), subarray(lpt, 0, n0 + 1)[n] = mklp(m2, m3, lpf, m4), n0 < # lpt, ∀ n1. n1 < n0 ∧ lpt[n1].flags = LP_FREE ↔ n1 ∈ freelist ⊦ ¬ n0 < n ∧ lpf = LP_FREE ↔ n ∈ freelist ∨ n = n0, n < n0 + 1, dups(freelist)
lpt[n0] = mklp(m, m0, LP_FREE, m1), lpt[0 + n] = mklp(m2, m3, lpf, m4), n0 < # lpt, n < n0 + 1, ∀ n1. n1 < n0 ∧ lpt[n1].flags = LP_FREE ↔ n1 ∈ freelist ⊦ ¬ n0 < n ∧ lpf = LP_FREE ↔ n ∈ freelist ∨ n = n0, dups(freelist)
Used terms: n, n0 + 1, 0, lpt