| # gndx0 = # lax1, # lax = # gndx2, gstore2[ri[nd.key].lnum] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + @(ri[nd.key].pos, ri[nd.key].size) ' + lax, m), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + @(ri[nd.key].pos, ri[nd.key].size) ' + lax, m)), inv(gstore2 \ ginval), ri-cons(ri, nodes(gstore2 ↓, ginval)), nd.key ∈ ri, ri[nd.key].lnum ∈ gstore2, ri[nd.key] = @(ri[nd.key].lnum, ri[nd.key].pos, ri[nd.key].size) ∨ ri[nd.key] ∈ lax.to-adr(ri[nd.key].lnum) ⊦ nd = nodes(gstore2 ↓, ginval)[ri[nd.key]], ri[nd.key].lnum ∈ ginval |
# lax = # gndx2, # gndx0 = # lax1, gstore2[m1] = groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + @(m2, m3) ' + lax, m), ri[nd.key] = @(m1, m2, m3), inv(gstore2 \ ginval), inv(groupblock(gndx0 + mkgnode(nd, m0, boolvar, boolvar0) ' + gndx2, lax1 + @(m2, m3) ' + lax, m)), ri-cons(ri, nodes(gstore2 ↓, ginval)), m1 ∈ gstore2, nd.key ∈ ri, ri[nd.key] = @(m1, m2, m3) ∨ ri[nd.key] ∈ lax.to-adr(m1) ⊦ nd = nodes(gstore2 ↓, ginval)[ri[nd.key]], m1 ∈ ginval
Used simplifier rules: ⊦ (m = adr.lnum ∧ m0 = adr.pos) ∧ m1 = adr.size ↔ adr = @(m, m0, m1); (elim) Used terms: ri[nd.key], m1, m2, m3