| m < n, m < # lpt, n ≤ # lpt ⊦ cleanup-lpt(lpt, n)[m] = (lpt[m].ref-size = 0 ∧ lpt[m].flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lpt[m].gcheapidx);lpt[m]) |
lpt[m] = mklp(m0, m1, lpf, m2), m < # lpt, m < n, n ≤ # lpt ⊦ cleanup-lpt(lpt, n)[m] = (m0 = 0 ∧ lpf ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, m2);lpt[m])
Used simplifier rules: ⊦ ((m = lp.ref-size ∧ m0 = lp.size) ∧ lpf = lp.flags) ∧ m1 = lp.gcheapidx ↔ lp = mklp(m, m0, lpf, m1); (elim) Used terms: lpt[m], m0, m1, lpf