| lpt1[n0] = mklp(m, m0, lpf, m1), gc-heap(lpt2, log, n0) = keyset(gch), n0 < # lpt1, n0 < # lpt2, bin-heap-inv(gch, lpt1), id-idx(lpt2, lpt1) ⊦ lpf = LP_GROUP_NODES, n0 ∈ log, (lpt2[n0].flags = LP_GROUP_NODES ⊃ ∅ ++ key-index(lpt2[n0].ref-size, n0);∅) ⊆ gc-heap(lpt2, log, n0) |
Used simplifier rules: id-idx-fwd-0: ⊦ lpt0[n] = mklp(n0, n1, lpf0, n2) ∧ lpt1[n] = mklp(m0, m1, lpf1, m2) ∧ n < # lpt0 ∧ id-idx(lpt0, lpt1) → n0 = m0 ∧ n1 = m1 ∧ lpf0 = lpf1; (forward) from specification gc-heap-rename% ⊦ ∅ ⊆ gchs; (s)%⊦ ((m = lp.ref-size ∧ m0 = lp.size) ∧ lpf = lp.flags) ∧ m1 = lp.gcheapidx ↔ lp = mklp(m, m0, lpf, m1); (elim) Used terms: lpt2[n0], m2, m3, lpf0, m4