| lpt[n, mklp(n0, n1, lpf, n2)][n] = mklp(m, m3, lpf0, m4), lpt[n] = mklp(m0, m1, lpf, m2), ∀ n. n < # lpt ∧ lpt[n].flags = LP_FREE ↔ n ∈ freelist ⊦ n < # lpt ∧ lpf0 = LP_FREE ↔ n ∈ freelist, n < # lpt, dups(freelist) |
lpt[n] = mklp(m0, m1, lpf, m2), lpt[n, mklp(n0, n1, lpf, n2)][n] = mklp(m, m3, lpf0, m4), n ∈ freelist, # lpt ≤ n, ∀ n. n < # lpt ∧ lpt[n].flags = LP_FREE ↔ n ∈ freelist ⊦ dups(freelist)
Used simplifier rules: ⊦ m < n ↔ ¬ n ≤ m; (ss)