| ⊦ 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.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp)), bin-heap(kar, m).size) ∧ 2exp-size(# bin-heap(kar, m).ar) ∧ heap-order(bin-heap(kar, m).ar, bin-heap(kar, m).size) ↔ m ≤ # kar ∧ no-dups-idx(kar, m) ∧ valid-idx(kar, lpt, m) ∧ 2exp-size(# kar) ∧ heap-order(kar, m) |
2exp-size(# kar), heap-order(kar, m), no-dups-idx(kar, m), m ≤ # kar ⊦ valid-idx(kar, lpt.map(λ lp. (lp.ref-size = 0 ∧ lp.flags ≠ LP_FREE ⊃ mklp(0, 0, LP_FREE, lp.gcheapidx);lp)), m) ↔ valid-idx(kar, lpt, m)
Used simplifier rules: ⊦ bin-heap(kar, m).ar = kar; (s)% ⊦ bin-heap(kar, m).size = m; (s)