| # avol1 = # lpt, # lpt0 = # lpt, # avol0 = # lpt, # indx0 = # lax0, avol1[n] = mapped(buf.align↓), lpt0[n] = mklp(m0, m10, LP_INDEX_NODES, m2), (∅)[n] = groupblock(gndx, lax1, m7), lpt[n] = mklp(m3, m5, LP_INDEX_NODES, m6), istore[n] = indexblock(indx0, lax0, m3), istore0[n] = indexblock(indx1, lax2, m0), avol0[n] = mapped(buf), dom istore ∩ elems nx = ∅, n < # lpt, abs-nodes(buf, indx0, lax0, m5 = LEB_SIZE), synced(avol0), n ∈ istore0, n ∈ istore, istore0 ⊑ istore, m5 ≠ LEB_SIZE → m5 = # buf, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0 ⊦ m0 = 0, n ∈ gstore0, mapped(buf.align↓).mapped? ∧ abs-nodes (mapped(buf.align↓).data, indexblock(indx0, lax0, m0).indlist, indexblock(indx0, lax0, m0).ladrlist, mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2).size = LEB_SIZE) ∧ (mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2).size ≠ LEB_SIZE → mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2).size = # mapped(buf.align↓).data) |
# indx0 = # lax0, # avol0 = # lpt, # lpt0 = # lpt, # avol1 = # lpt, avol0[n] = mapped(buf), istore0[n] = indexblock(indx1, lax2, m0), istore[n] = indexblock(indx0, lax0, m3), lpt[n] = mklp(m3, m5, LP_INDEX_NODES, m6), (∅)[n] = groupblock(gndx, lax1, m7), lpt0[n] = mklp(m0, m10, LP_INDEX_NODES, m2), avol1[n] = mapped(buf.align↓), dom istore ∩ elems nx = ∅, n < # lpt, abs-nodes(buf, indx0, lax0, m5 = LEB_SIZE), synced(avol0), n ∈ istore, n ∈ istore0, istore0 ⊑ istore, m5 ≠ LEB_SIZE → m5 = # buf, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0 ⊦ m0 = 0, abs-nodes(buf.align↓, indx0, lax0, true), n ∈ gstore0
Used simplifier rules: ⊦ mklp(n2, n3, lpf, m).size = n3; (s)% ⊦ indexblock(indx, lax, m).ladrlist = lax; (s)% ⊦ indexblock(indx, lax, m).indlist = indx; (s)% ⊦ mapped(buf).data = buf; (s)% ⊦ mapped(buf).mapped?; (s)