| lpt[m2] = mklp(m, m0, lpf, m1), keyset(gch0) = gc-heap(lpt1, nx), m2 < # lpt, bin-heap-inv(bin-heap(kar, m3), lpt), bin-heap-inv(gch0, lpt1), id-idx(lpt1, lpt), key-index(natkey, m2) ∈ keyset(bin-heap(kar, m3)), ∀ n. n = m2 ∨ n ∈ nx0 → n < # lpt ∧ lpt[n].flags = LP_GROUP_NODES, ∀ n. n ∈ nx → n < # lpt1 ∧ lpt1[n].flags = LP_GROUP_NODES, ∀ ki. ki ∈ keyset(bin-heap(kar, m3)) ↔ ki ∈ gc-heap(lpt1, m2 ' + nx0) ⊦ m3 = 0, dups(nx0), dups(nx), m2 ∈ nx0 |
key-index(natkey, m2) ∈ keyset(bin-heap(kar, m3)) ↔ key-index(natkey, m2) ∈ gc-heap(lpt1, m2 ' + nx0), lpt[m2] = mklp(m, m0, lpf, m1), keyset(gch0) = gc-heap(lpt1, nx), m2 < # lpt, bin-heap-inv(gch0, lpt1), bin-heap-inv(bin-heap(kar, m3), lpt), id-idx(lpt1, lpt), key-index(natkey, m2) ∈ keyset(bin-heap(kar, m3)), ∀ n. n ∈ nx → n < # lpt1 ∧ lpt1[n].flags = LP_GROUP_NODES, ∀ n. n = m2 ∨ n ∈ nx0 → n < # lpt ∧ lpt[n].flags = LP_GROUP_NODES ⊦ m3 = 0, dups(nx), dups(nx0), m2 ∈ nx0
Used terms: key-index(natkey, m2)