| lpt[n] = mklp(m0, m1, lpf0, m2), keyset(bin-heap(kar, m)) = gc-heap(lpt, nx, # lpt), n < # lpt ⊦ m ≤ # kar ∧ no-dups-idx(kar, m) ∧ valid-idx(kar, lpt[n, mklp(n0, n1, lpf1, n2)], m) ∧ 2exp-size(# kar) ∧ heap-order(kar, m) ↔ bin-heap-inv(bin-heap(kar, m), lpt), lpf0 = LP_GROUP_NODES |
⊦ bin-heap-inv(bh, lpt) ↔ bh.size ≤ # bh.ar ∧ no-dups-idx(bh.ar, bh.size) ∧ valid-idx(bh.ar, lpt, bh.size) ∧ 2exp-size(# bh.ar) ∧ heap-order(bh.ar, bh.size)
lpt[n] = mklp(m0, m1, lpf0, m2), keyset(bin-heap(kar, m)) = gc-heap(lpt, nx, # lpt), n < # lpt ⊦ m ≤ # kar ∧ no-dups-idx(kar, m) ∧ valid-idx(kar, lpt[n, mklp(n0, n1, lpf1, n2)], m) ∧ 2exp-size(# kar) ∧ heap-order(kar, m) ↔ bin-heap(kar, m).size ≤ # bin-heap(kar, m).ar ∧ no-dups-idx(bin-heap(kar, m).ar, bin-heap(kar, m).size) ∧ valid-idx(bin-heap(kar, m).ar, lpt, bin-heap(kar, m).size) ∧ 2exp-size(# bin-heap(kar, m).ar) ∧ heap-order(bin-heap(kar, m).ar, bin-heap(kar, m).size), lpf0 = LP_GROUP_NODES
Used terms: lpt, bin-heap(kar, m)