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