| lpt[n] = mklp(m0, m1, lpf0, m2), keyset(bin-heap(kar, m)) = gc-heap(lpt, nx, # lpt), 2exp-size(# kar), m3 < m, n < # lpt, m3 < # kar, heap-order(kar, m), no-dups-idx(kar, m), m ≤ # kar, ∀ m3. m3 < m → kar[m3].idx < # lpt ∧ lpt[n, mklp(n0, n1, lpf1, n2)][kar[m3].idx].gcheapidx = m3 ⊦ lpf0 = LP_GROUP_NODES, kar[m3].idx < # lpt ∧ lpt[kar[m3].idx].gcheapidx = m3 |
lpt[n] = mklp(m0, m1, lpf0, m2), lpt[kar[m3].idx] = mklp(m4, m5, lpf, m6), keyset(bin-heap(kar, m)) = gc-heap(lpt, nx, # lpt), 2exp-size(# kar), m3 < # kar, n < # lpt, m3 < m, heap-order(kar, m), no-dups-idx(kar, m), m ≤ # kar, ∀ m3. m3 < m → kar[m3].idx < # lpt ∧ lpt[n, mklp(n0, n1, lpf1, n2)][kar[m3].idx].gcheapidx = m3 ⊦ lpf0 = LP_GROUP_NODES, kar[m3].idx < # lpt ∧ m6 = m3
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[kar[m3].idx], m4, m5, lpf, m6