| istore[n] = indexblock(indx, lax, m0), lpt[n] = mklp(m0, n1, LP_INDEX_NODES, m2), avol[n].mapped?, n < # lpt, n < # avol, abs-nodes(avol[n].data, indexblock(indx, lax, m0).indlist, indexblock(indx, lax, m0).ladrlist, mklp(m0, n1, LP_INDEX_NODES, m2).size = LEB_SIZE), n ∈ istore, mklp(m0, n1, LP_INDEX_NODES, m2).size ≠ LEB_SIZE → mklp(m0, n1, LP_INDEX_NODES, m2).size = # avol[n].data ⊦ abs-leb(avol[n], indexblock(indx, lax, m0), mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2)) |
# indx = # lax, avol[n] = mapped(buf), istore[n] = indexblock(indx, lax, m0), lpt[n] = mklp(m0, n1, LP_INDEX_NODES, m2), n < # lpt, n < # avol, abs-nodes(buf, indx, lax, n1 = LEB_SIZE), n ∈ istore, n1 ≠ LEB_SIZE → n1 = # buf ⊦ abs-leb(mapped(buf), indexblock(indx, lax, m0), mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2))
Used simplifier rules: ⊦ mapped(buf).data = buf; (s)%abs-nodes-elems-adr-length: ⊦ abs-nodes(buf, indx, lax, weak) → # indx = # lax; (forward) from specification abs-list[encoding-index-node]% ⊦ aleb.mapped? ↔ (∃ buf. aleb = mapped(buf)); (as)% ⊦ mklp(n2, n3, lpf, m).size = n3; (s)% ⊦ indexblock(indx, lax, m).ladrlist = lax; (s)% ⊦ indexblock(indx, lax, m).indlist = indx; (s)