| # avol0 = # avol1, # lpt = # avol1, lpt[n] = mklp(m0, m1, lpf, m2), gstore[n0] = groupblock(gndx, lax, m), lpt[n0] = mklp(m, m4, LP_GROUP_NODES, m5), avol0[n0].mapped?, n < # avol1, n0 < # avol1, abs-nodes(avol0[n0].data, groupblock(gndx, lax, m).gndlist, groupblock(gndx, lax, m).ladrlist, mklp(m, m4, LP_GROUP_NODES, m5).size = LEB_SIZE), id○(avol0, avol1, n), n0 ∈ gstore, mklp(m, m4, LP_GROUP_NODES, m5).size ≠ LEB_SIZE → mklp(m, m4, LP_GROUP_NODES, m5).size = # avol0[n0].data ⊦ lpf = LP_GROUP_NODES, n0 ∈ ginval, avol1[n0].mapped? ∧ abs-nodes(avol1[n0].data, gndx, lax, m4 = LEB_SIZE) ∧ (m4 ≠ LEB_SIZE → m4 = # avol1[n0].data) |
# gndx = # lax, # avol0 = # avol1, # lpt = # avol1, avol0[n0] = mapped(buf), lpt[n] = mklp(m0, m1, lpf, m2), gstore[n0] = groupblock(gndx, lax, m), lpt[n0] = mklp(m, m4, LP_GROUP_NODES, m5), n < # avol1, n0 < # avol1, abs-nodes(buf, gndx, lax, m4 = LEB_SIZE), id○(avol0, avol1, n), n0 ∈ gstore, m4 ≠ LEB_SIZE → m4 = # buf ⊦ lpf = LP_GROUP_NODES, n0 ∈ ginval, avol1[n0].mapped? ∧ abs-nodes(avol1[n0].data, gndx, lax, m4 = LEB_SIZE) ∧ (m4 ≠ LEB_SIZE → m4 = # avol1[n0].data)
Used simplifier rules: ⊦ mapped(buf).data = buf; (s)%abs-nodes-elems-adr-length: ⊦ abs-nodes(buf, gndx, lax, weak) → # gndx = # lax; (forward) from specification abs-list[encoding-group-node]% ⊦ aleb.mapped? ↔ (∃ buf. aleb = mapped(buf)); (as)% ⊦ mklp(n2, n3, lpf, m).size = n3; (s)% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)% ⊦ groupblock(gndx, lax, m).gndlist = gndx; (s)