| # lpt = # avol, kar[0] = key-index(natkey, m3), lpt[m3] = mklp(m0, m1, lpf, m2), bin-heap-inv(bin-heap(kar, m), lpt), buf-ro-rw-mode(isbuf, bleb, lpt, avol), bufs-log-only(bleb, log, lpt), freelist-cons(lpt, freelist), log-group-block(log, lpt), lpt-free-unref(lpt), lpt-leb-size(lpt), lpt-ram-flash(lpt, lpt0, log) ⊦ # kar = 0, m = 0, dups(log), key-index(natkey, m3) ∈ keyset(bin-heap(kar, m)), m3 < # avol ∧ ¬ m3 ∈ log ∧ m0 = natkey ∧ lpf = LP_GROUP_NODES, m3 < # avol ∧ lpf = LP_GROUP_NODES ∧ ¬ m3 ∈ log |
⊦ bin-heap-inv(bh, lpt) → (ki ∈ keyset(bh) ↔ (∃ m. m < bh.size ∧ ki = bh.ar[m]))
# lpt = # avol, lpt[m3] = mklp(m0, m1, lpf, m2), kar[0] = key-index(natkey, m3), bin-heap-inv(bin-heap(kar, m), lpt), buf-ro-rw-mode(isbuf, bleb, lpt, avol), bufs-log-only(bleb, log, lpt), freelist-cons(lpt, freelist), log-group-block(log, lpt), lpt-free-unref(lpt), lpt-leb-size(lpt), lpt-ram-flash(lpt, lpt0, log) ⊦ # kar = 0, m = 0, dups(log), ∃ m0. m0 < bin-heap(kar, m).size ∧ key-index(natkey, m3) = bin-heap(kar, m).ar[m0], m3 < # avol ∧ lpf = LP_GROUP_NODES ∧ ¬ m3 ∈ log, m3 < # avol ∧ ¬ m3 ∈ log ∧ m0 = natkey ∧ lpf = LP_GROUP_NODES
Used terms: lpt, bin-heap(kar, m), key-index(natkey, m3)