| m0 < lpt[n0].size, n < # lpt, n0 < # lpt, LEB_SIZE < lpt[n, mklp(m, m0, lpf, m1)][n0].size, m0 ≤ LEB_SIZE, ∀ n. n < # lpt → lpt[n].size ≤ LEB_SIZE ⊦ |
lpt[n, mklp(m, m0, lpf, m1)][n0] = mklp(m2, m3, lpf0, m4), LEB_SIZE < m3, n0 < # lpt, n < # lpt, m0 < lpt[n0].size, m0 ≤ LEB_SIZE, ∀ n. n < # lpt → lpt[n].size ≤ LEB_SIZE ⊦
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[n, mklp(m, m0, lpf, m1)][n0], m2, m3, lpf0, m4