| # ax = # ndx, gstore[n] = groupblock(gndx, lax0, m3), ax[n0] = @(n, m1, m2), gstore[n, groupblock(gndx, lax0, m)][@(n, m1, m2)] = mkgnode(nd, m4, boolvar, boolvar0), gstore[@(n, m1, m2)] = mkgnode(ndx[n0], m5, boolvar1, boolvar2), n0 < # ndx, @(n, m1, m2) ∈ gstore ⊦ nd = ndx[n0], ndx = [], n ∈ ginval |
⊦ adr ∈ gstore → gstore[adr] = gstore[adr.lnum].gndlist[pos(@(adr.pos, adr.size), gstore[adr.lnum].ladrlist)]
# ax = # ndx, gstore[@(n, m1, m2)] = mkgnode(ndx[n0], m5, boolvar1, boolvar2), gstore[n, groupblock(gndx, lax0, m)][@(n, m1, m2).lnum].gndlist [pos(@(@(n, m1, m2).pos, @(n, m1, m2).size), gstore[n, groupblock(gndx, lax0, m)][@(n, m1, m2).lnum].ladrlist) ] = mkgnode(nd, m4, boolvar, boolvar0), ax[n0] = @(n, m1, m2), gstore[n] = groupblock(gndx, lax0, m3), n0 < # ndx, @(n, m1, m2) ∈ gstore, @(n, m1, m2) ∈ gstore[n, groupblock(gndx, lax0, m)] ⊦ nd = ndx[n0], ndx = [], n ∈ ginval
Used simplifier rules: ⊦ @(n, n0, n1) ∈ gstore[n, gblock] ↔ @(n0, n1) ∈ gblock.ladrlist; (s)% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)%⊦ gstore[n] = groupblock(gndx, lax, m0) ∧ @(n, n0, n1) ∈ gstore → @(n0, n1) ∈ lax; (ss) Used terms: @(n, m1, m2), gstore[n, groupblock(gndx, lax0, m)]