| bin-heap-inv(gch, lpt) ⊦ bin-heap-inv(gch, lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE)) |
⊦ 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)
2exp-size(# gch.ar), heap-order(gch.ar, gch.size), no-dups-idx(gch.ar, gch.size), valid-idx(gch.ar, lpt, gch.size), gch.size ≤ # gch.ar ⊦ bin-heap-inv(gch, lpt.mapIndices(ns, λ lp. lp.size:= LEB_SIZE))
Used terms: lpt, gch