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