| # 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)) |
⊦ abs-leb(aleb, iblock, lp) ↔ aleb.mapped? ∧ abs-nodes(aleb.data, iblock.indlist, iblock.ladrlist, lp.size = LEB_SIZE) ∧ (lp.size ≠ LEB_SIZE → lp.size = # aleb.data)
Used simplifier rules: ⊦ mapped(buf).mapped?; (s)% ⊦ mapped(buf).data = buf; (s)% ⊦ indexblock(indx, lax, m).indlist = indx; (s)% ⊦ indexblock(indx, lax, m).ladrlist = lax; (s)% ⊦ mklp(n2, n3, lpf, m).size = n3; (s)%⊦ abs-nodes(buf, indx, lax0, true) → (abs-nodes(buf, indx0, lax1, true) ↔ indx = indx0 ∧ lax0 = lax1); (s)% ⊦ abs-nodes(buf, indx, lax, false) → abs-nodes(buf, indx, lax, true); (ss) Used terms: mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2), indexblock(indx, lax, m0), mapped(buf)