| # avol1 = # lpt, # lpt0 = # lpt, # avol0 = # lpt, 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), dom istore ∩ elems nx = ∅, n < # lpt, abs-leb(avol0[n], indexblock(indx0, lax0, m3), mklp(m3, m5, LP_INDEX_NODES, m6)), synced(avol0), avol1[n] ↓ avol0[n], n ∈ istore0, n ∈ istore, istore0 ⊑ istore, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0 ⊦ m0 = 0, abs-leb(avol1[n], indexblock(indx0, lax0, m0), mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2)), n ∈ gstore0 |
⊦ aleb1 ↓ aleb0 ↔ (aleb0.mapped? → aleb1 = mapped(aleb0.data.align↓)) ∧ (¬ aleb0.mapped? ∧ aleb1.mapped? → # aleb1.data ≤ LEB_SIZE ∧ is-aligned(# aleb1.data, EB_PAGE_SIZE))
# avol0 = # lpt, # lpt0 = # lpt, # avol1 = # lpt, 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), dom istore ∩ elems nx = ∅, n < # lpt, abs-leb(avol0[n], indexblock(indx0, lax0, m3), mklp(m3, m5, LP_INDEX_NODES, m6)), synced(avol0), n ∈ istore, n ∈ istore0, istore0 ⊑ istore, avol0[n].mapped? → avol1[n] = mapped(avol0[n].data.align↓), ¬ avol0[n].mapped? ∧ avol1[n].mapped? → # avol1[n].data ≤ LEB_SIZE ∧ is-aligned(# avol1[n].data, EB_PAGE_SIZE), ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0 ⊦ m0 = 0, abs-leb(avol1[n], indexblock(indx0, lax0, m0), mklp(m0, LEB_SIZE, LP_INDEX_NODES, m2)), n ∈ gstore0
Used terms: avol0[n], avol1[n]