| # gndx = # lax, # avol0 = # avol1, # lpt = # avol1, (lpf0 = LP_FREE ∨ n ∈ nx ⊃ mklp(m3, m4, lpf0, m5) ;(lpf0 = LP_INDEX_NODES ∧ m3 ≠ 0 ⊃ mklp(m3, LEB_SIZE, LP_INDEX_NODES, m5);(m3 = 0 ⊃ mklp(0, 0, LP_FREE, m5);mklp(m3, m4, lpf0, m5))) ) = mklp((n ∈ gstore0 ⊃ gstore0[n].ref-size;0), m1, LP_GROUP_NODES, m2), avol1[n] = mapped(buf), crash(gstore, gstore0, ginval, nx)[n] = groupblock(gndx0, lax0, m0), gstore[n] = groupblock(gndx, lax, m), lpt[n] = mklp(m3, m4, lpf0, m5), n < # avol1, abs-nodes(buf, gndx, lax, m1 = LEB_SIZE), n ∈ gstore, n ∈ nx ∨ m3 ≠ 0 ∨ lpf0 = LP_FREE → avol0[n] = mapped(buf), m1 ≠ LEB_SIZE → m1 = # buf ⊦ n ∈ ginval, avol0[n].mapped? ∧ abs-nodes(avol0[n].data, gndx0, lax0, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol0[n].data) |
⊦ n ∈ crash(gstore, gstore0, ginval, nx) → crash(gstore, gstore0, ginval, nx)[n] = (n ∈ nx ∨ ¬ n ∈ ginval ⊃ groupblock(gstore[n].gndlist, gstore[n].ladrlist, (n ∈ gstore0 ⊃ gstore0[n].ref-size;0));gstore0[n])
# lpt = # avol1, # avol0 = # avol1, # gndx = # lax, (n ∈ nx ∨ ¬ n ∈ ginval ⊃ groupblock(gstore[n].gndlist, gstore[n].ladrlist, (n ∈ gstore0 ⊃ gstore0[n].ref-size;0));gstore0[n]) = groupblock(gndx0, lax0, m0), (lpf0 = LP_FREE ∨ n ∈ nx ⊃ mklp(m3, m4, lpf0, m5) ;(lpf0 = LP_INDEX_NODES ∧ m3 ≠ 0 ⊃ mklp(m3, LEB_SIZE, LP_INDEX_NODES, m5);(m3 = 0 ⊃ mklp(0, 0, LP_FREE, m5);mklp(m3, m4, lpf0, m5))) ) = mklp((n ∈ gstore0 ⊃ gstore0[n].ref-size;0), m1, LP_GROUP_NODES, m2), lpt[n] = mklp(m3, m4, lpf0, m5), gstore[n] = groupblock(gndx, lax, m), avol1[n] = mapped(buf), n < # avol1, abs-nodes(buf, gndx, lax, m1 = LEB_SIZE), n ∈ gstore, n ∈ crash(gstore, gstore0, ginval, nx), m1 ≠ LEB_SIZE → m1 = # buf, n ∈ nx ∨ m3 ≠ 0 ∨ lpf0 = LP_FREE → avol0[n] = mapped(buf) ⊦ n ∈ ginval, avol0[n].mapped? ∧ abs-nodes(avol0[n].data, gndx0, lax0, m1 = LEB_SIZE) ∧ (m1 ≠ LEB_SIZE → m1 = # avol0[n].data)
Used simplifier rules: ⊦ ¬ n ∈ gstore → gstore[n] = (∅)[n]; (s)% ⊦ n ∈ crash(gstore, gstore0, ginval, nx) ↔ n ∈ gstore ∨ n ∈ ginval; (ws) Used terms: n, nx, ginval, gstore0, gstore