| # ax2 = # gndx2, ri[nd.key] ' + ax2 = lax0.to-adr(lnum), # lax1 + # lax0 = # gndx0 + # gndx2 + 1, gstore2[lnum] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + lax0, m), inv(gstore2 \ ginval), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + lax0, m)), ri-cons(ri, nodes(gstore2 ↓, ginval)), nd.key ∈ ri, lnum ∈ gstore2, ri[nd.key] ∈ lax0.to-adr(lnum) ⊦ nd = nodes(gstore2 ↓, ginval)[ri[nd.key]], lnum ∈ ginval |
⊦ lax.to-adr(n) = ax0 + ax1 ↔ (∃ lax0, lax1. lax = lax0 + lax1 ∧ ax0 = lax0.to-adr(n) ∧ ax1 = lax1.to-adr(n))
# ax2 = # gndx2, # lax1 + # lax0 = # gndx0 + # gndx2 + 1, gstore2[lnum] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + lax0, m), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + lax0, m)), inv(gstore2 \ ginval), ri-cons(ri, nodes(gstore2 ↓, ginval)), ri[nd.key] ∈ lax0.to-adr(lnum), lnum ∈ gstore2, nd.key ∈ ri, ∃ lax2, lax1. lax0 = lax2 + lax1 ∧ ri[nd.key] ' = lax2.to-adr(lnum) ∧ ax2 = lax1.to-adr(lnum) ⊦ nd = nodes(gstore2 ↓, ginval)[ri[nd.key]], lnum ∈ ginval
Used terms: lnum, lax0, ax2, ri[nd.key] '