| lpt[n, mklp(m, m0, lpf, m1)][n0] = mklp(m2, m3, lpf0, m4), m0 < m3, LEB_SIZE < m3, n0 < # lpt, n < # lpt, m0 < lpt[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), lpt[n0] = mklp(m5, m6, lpf1, m7), m0 < m6, n < # lpt, n0 < # lpt, LEB_SIZE < m3, m0 < m3, 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[n0], m5, m6, lpf1, m7