| lpt[nx.last] = mklp(m3, m4, lpf, m5), lpt[n] = mklp(m, m0, LP_FREE, m1), lpt[m2] = mklp(m6, m7, lpf0, m8), m2 < # lpt, nx ≠ [] ∧ m2 = nx.last ∧ lpf = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES ⊦ lpt[n, lp][m2].flags = LP_INDEX_NODES, nx ≠ [] ∧ m2 = nx.last ∧ lpt[n, lp][nx.last].flags = LP_GROUP_NODES |
lpt[m2] = mklp(m6, m7, lpf0, m8), lpt[n] = mklp(m, m0, LP_FREE, m1), lpt[nx.last] = mklp(m3, m4, lpf, m5), lpt[n, lp][m2] = mklp(m9, m10, lpf1, m11), m2 < # lpt, nx ≠ [] ∧ m2 = nx.last ∧ lpf = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES ⊦ lpf1 = LP_INDEX_NODES, nx ≠ [] ∧ m2 = nx.last ∧ lpt[n, lp][nx.last].flags = LP_GROUP_NODES
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, lp][m2], m9, m10, lpf1, m11