| lpt[n] = mklp(m0, m1, lpf0, m2), n < # lpt ⊦ bin-heap-inv(gch, lpt[n, mklp(n0, n1, lpf1, m2)]) ↔ bin-heap-inv(gch, lpt) |
⊦ 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), n < # lpt ⊦ gch.size ≤ # gch.ar ∧ no-dups-idx(gch.ar, gch.size) ∧ valid-idx(gch.ar, lpt[n, mklp(n0, n1, lpf1, m2)], gch.size) ∧ 2exp-size(# gch.ar) ∧ heap-order(gch.ar, gch.size) ↔ bin-heap-inv(gch, lpt)
Used terms: lpt[n, mklp(n0, n1, lpf1, m2)], gch