| # avol0 = # lpt, # lpt0 = # lpt, # avol1 = # lpt, (n ∈ nx ⊃ mklp(m13, LEB_SIZE, LP_GROUP_NODES, m15);mklp(m13, m14, lpf2, m15)) = mklp(m0, m1, LP_GROUP_NODES, m19), lpf1 = LP_GROUP_NODES ↔ n ∈ gstore, n ∈ gstore0 ↔ lpf2 = LP_GROUP_NODES, lpt0[n] = mklp(m13, m14, lpf2, m15), (∅)[n] = indexblock(indx, lax1, m10), gstore0[n] = groupblock(gndx1, lax2, m11), lpt[n] = mklp(m7, m8, lpf1, m9), gstore[n] = groupblock(gndx, lax, m6), lpt[bleb.leb] = mklp(m3, m4, lpf0, m5), dom istore ∩ elems nx = ∅, ginval < # lpt, n < # lpt, awbuf-inv(avol0, bleb), istore0 ⊑ istore, lpf2 = LP_GROUP_NODES → m13 = m11, n ∈ gstore ∧ ¬ n ∈ ginval → avol0[n].mapped? ∧ abs-nodes(avol0[n].data, gndx, lax, m8 = LEB_SIZE) ∧ (m8 ≠ LEB_SIZE → m8 = # avol0[n].data), n ∈ gstore → m7 = m6, 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), avol0[n].mapped? → is-aligned(# avol0[n].data, EB_PAGE_SIZE), ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_GROUP_NODES ∧ lpt[n].flags = LP_GROUP_NODES ∧ ¬ n ∈ nx → lpt[n].size = lpt0[n].size, lpf2 = LP_GROUP_NODES ∨ n ∈ nx, bleb = nobuffer ∨ bleb.leb < # lpt ∧ (nx ≠ [] ∧ bleb.leb = nx.last ∧ lpf0 = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES), n ∈ gstore ∨ n ∈ ginval, n ∈ nx ∨ ¬ n ∈ ginval ⊦ lpf1 = LP_INDEX_NODES, lpf2 = LP_FREE, lpf2 = LP_INDEX_NODES, m0 = 0, m13 = 0, n ∈ istore, n ∈ istore0, (n ∈ gstore ∧ ¬ n ∈ ginval → avol1[n].mapped? ∧ abs-nodes(avol1[n].data, gndx, lax, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol1[n].data)) ∧ m0 = (lpf2 = LP_GROUP_NODES ⊃ m11;0) |
# avol1 = # lpt, # lpt0 = # lpt, # avol0 = # lpt, (n ∈ nx ⊃ mklp(m13, LEB_SIZE, LP_GROUP_NODES, m15);mklp(m13, m14, lpf2, m15)) = mklp(m0, m1, LP_GROUP_NODES, m19), n ∈ gstore0 ↔ lpf2 = LP_GROUP_NODES, lpf1 = LP_GROUP_NODES ↔ n ∈ gstore, lpt[bleb.leb] = mklp(m3, m4, lpf0, m5), gstore[n] = groupblock(gndx, lax, m6), lpt[n] = mklp(m7, m8, lpf1, m9), gstore0[n] = groupblock(gndx1, lax2, m11), (∅)[n] = indexblock(indx, lax1, m10), lpt0[n] = mklp(m13, m14, lpf2, m15), dom istore ∩ elems nx = ∅, n < # lpt, ginval < # lpt, awbuf-inv(avol0, bleb), n ∈ gstore, istore0 ⊑ istore, avol0[n].mapped? → is-aligned(# avol0[n].data, EB_PAGE_SIZE), ¬ avol0[n].mapped? ∧ avol1[n].mapped? → # avol1[n].data ≤ LEB_SIZE ∧ is-aligned(# avol1[n].data, EB_PAGE_SIZE), avol0[n].mapped? → avol1[n] = mapped(avol0[n].data.align↓), n ∈ gstore → m7 = m6, n ∈ gstore ∧ ¬ n ∈ ginval → avol0[n].mapped? ∧ abs-nodes(avol0[n].data, gndx, lax, m8 = LEB_SIZE) ∧ (m8 ≠ LEB_SIZE → m8 = # avol0[n].data), lpf2 = LP_GROUP_NODES → m13 = m11, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_GROUP_NODES ∧ lpt[n].flags = LP_GROUP_NODES ∧ ¬ n ∈ nx → lpt[n].size = lpt0[n].size, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0, n ∈ nx ∨ ¬ n ∈ ginval, n ∈ gstore ∨ n ∈ ginval, bleb = nobuffer ∨ bleb.leb < # lpt ∧ (nx ≠ [] ∧ bleb.leb = nx.last ∧ lpf0 = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES), lpf2 = LP_GROUP_NODES ∨ n ∈ nx ⊦ lpf1 = LP_INDEX_NODES, lpf2 = LP_INDEX_NODES, lpf2 = LP_FREE, m0 = 0, m13 = 0, n ∈ istore0, n ∈ istore, n ∈ ginval, avol1[n].mapped? ∧ abs-nodes(avol1[n].data, gndx, lax, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol1[n].data)
# avol1 = # lpt, # lpt0 = # lpt, # avol0 = # lpt, (n ∈ nx ⊃ mklp(m13, LEB_SIZE, LP_GROUP_NODES, m15);mklp(m13, m14, lpf2, m15)) = mklp(m0, m1, LP_GROUP_NODES, m19), n ∈ gstore0 ↔ lpf2 = LP_GROUP_NODES, lpf1 = LP_GROUP_NODES ↔ n ∈ gstore, lpt[bleb.leb] = mklp(m3, m4, lpf0, m5), gstore[n] = groupblock(gndx, lax, m6), lpt[n] = mklp(m7, m8, lpf1, m9), gstore0[n] = groupblock(gndx1, lax2, m11), (∅)[n] = indexblock(indx, lax1, m10), lpt0[n] = mklp(m13, m14, lpf2, m15), dom istore ∩ elems nx = ∅, n < # lpt, ginval < # lpt, awbuf-inv(avol0, bleb), istore0 ⊑ istore, avol0[n].mapped? → is-aligned(# avol0[n].data, EB_PAGE_SIZE), ¬ avol0[n].mapped? ∧ avol1[n].mapped? → # avol1[n].data ≤ LEB_SIZE ∧ is-aligned(# avol1[n].data, EB_PAGE_SIZE), avol0[n].mapped? → avol1[n] = mapped(avol0[n].data.align↓), n ∈ gstore → m7 = m6, n ∈ gstore ∧ ¬ n ∈ ginval → avol0[n].mapped? ∧ abs-nodes(avol0[n].data, gndx, lax, m8 = LEB_SIZE) ∧ (m8 ≠ LEB_SIZE → m8 = # avol0[n].data), lpf2 = LP_GROUP_NODES → m13 = m11, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_GROUP_NODES ∧ lpt[n].flags = LP_GROUP_NODES ∧ ¬ n ∈ nx → lpt[n].size = lpt0[n].size, ∀ n. n < # lpt ∧ lpt0[n].flags = LP_FREE → lpt0[n].ref-size = 0, n ∈ nx ∨ ¬ n ∈ ginval, n ∈ gstore ∨ n ∈ ginval, bleb = nobuffer ∨ bleb.leb < # lpt ∧ (nx ≠ [] ∧ bleb.leb = nx.last ∧ lpf0 = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES), lpf2 = LP_GROUP_NODES ∨ n ∈ nx ⊦ lpf1 = LP_INDEX_NODES, lpf2 = LP_INDEX_NODES, lpf2 = LP_FREE, m0 = 0, m0 = (lpf2 = LP_GROUP_NODES ⊃ m11;0), m13 = 0, n ∈ istore0, n ∈ istore