| # lpt0 = # lpt, # avol0 = # lpt, (n ∈ nx ⊃ groupblock(gndx0, lax0, (n ∈ gstore0 ⊃ m11;0));groupblock(gndx1, lax2, m11)) = groupblock(gndx, lax, m), lpt0[n] = mklp(m13, m14, lpf2, m15), (∅)[n] = indexblock(indx, lax1, m10), lpt[bleb.leb] = mklp(m3, m4, lpf0, m5), replay-lpt(lpt0.mapIndices(elems nx, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx)), nx, # lpt)[n] = mklp(m0, m1, lpf, m2), (∅)[n] = groupblock(gndx0, lax0, m6), lpt[n] = mklp(m7, m8, lpf1, m9), gstore0[n] = groupblock(gndx1, lax2, m11), istore0[n] = indexblock(indx0, lax3, m12), crash(gstore, gstore0, ginval, nx)[n] = groupblock(gndx2, lax4, m16), dom istore ∩ elems nx = ∅, ginval < # lpt, awbuf-inv(avol0, bleb), synced(avol0), avol1 ↓ avol0, n ∈ ginval, # lpt ≤ n, istore0 ⊑ istore, ∀ 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 ∈ gstore0 ∨ n ∈ nx, bleb = nobuffer ∨ bleb.leb < # lpt ∧ (nx ≠ [] ∧ bleb.leb = nx.last ∧ lpf0 = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES) ⊦ # ginval = 0, ginval = ∅, n ∈ gstore, n ∈ istore |
⊦ ns < n ↔ (∀ n0. n0 ∈ ns → n0 < n)
# avol0 = # lpt, # lpt0 = # lpt, (n ∈ nx ⊃ groupblock(gndx0, lax0, (n ∈ gstore0 ⊃ m11;0));groupblock(gndx1, lax2, m11)) = groupblock(gndx, lax, m), crash(gstore, gstore0, ginval, nx)[n] = groupblock(gndx2, lax4, m16), istore0[n] = indexblock(indx0, lax3, m12), gstore0[n] = groupblock(gndx1, lax2, m11), lpt[n] = mklp(m7, m8, lpf1, m9), (∅)[n] = groupblock(gndx0, lax0, m6), replay-lpt(lpt0.mapIndices(elems nx, λ lp. mklp(lp.ref-size, LEB_SIZE, LP_GROUP_NODES, lp.gcheapidx)), nx, # lpt)[n] = mklp(m0, m1, lpf, m2), lpt[bleb.leb] = mklp(m3, m4, lpf0, m5), (∅)[n] = indexblock(indx, lax1, m10), lpt0[n] = mklp(m13, m14, lpf2, m15), dom istore ∩ elems nx = ∅, awbuf-inv(avol0, bleb), synced(avol0), avol1 ↓ avol0, n ∈ ginval, # lpt ≤ n, istore0 ⊑ istore, ∀ 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, ∀ n0. n0 ∈ ginval → n0 < # lpt, bleb = nobuffer ∨ bleb.leb < # lpt ∧ (nx ≠ [] ∧ bleb.leb = nx.last ∧ lpf0 = LP_GROUP_NODES ∨ lpf0 = LP_INDEX_NODES), n ∈ gstore0 ∨ n ∈ nx ⊦ # ginval = 0, ginval = ∅, n ∈ istore, n ∈ gstore
Used terms: # lpt, ginval