| # gndx1 = # lax1, # gndx = # lax, gstore ↓[@(m, m1, m2).lnum].gndlist[pos(@(@(m, m1, m2).pos, @(m, m1, m2).size), gstore ↓[@(m, m1, m2).lnum].ladrlist)] = mkgnode(nd, m5, boolvar, boolvar0), gstore[n] = groupblock(gndx, lax, m0), gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)][m] = groupblock(gndx2, lax2, m4), gstore[m] ↓ = groupblock(gndx0, lax0, m3), m ∈ gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)], @(m1, m2) ∈ lax0, m ∈ gstore, n ∈ gstore, @(m, m1, m2) ∈ gstore ↓ ⊦ m ∈ ginval, nd = nodes(gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)], ginval)[@(m, m1, m2)] ∧ @(m1, m2) ∈ lax2 |
# gndx1 = # lax1, # gndx = # lax, gstore[n] = groupblock(gndx, lax, m0), gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)][m] = groupblock(gndx2, lax2, m4), gndx0[pos(@(m1, m2), lax0)] = mkgnode(nd, m5, boolvar, boolvar0), gstore[m] ↓ = groupblock(gndx0, lax0, m3), m ∈ gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)], @(m1, m2) ∈ lax0, m ∈ gstore, n ∈ gstore ⊦ m ∈ ginval, nd = nodes(gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)], ginval)[@(m, m1, m2)] ∧ @(m1, m2) ∈ lax2
Used simplifier rules: down-store-at: ⊦ n ∈ gstore → gstore ↓[n] = gstore[n] ↓;%down-store-adr-in-explicit-simp: ⊦ gstore[m0] ↓ = groupblock(gndx, lax, n0) ∧ @(m1, m2) ∈ lax → (@(m0, m1, m2) ∈ gstore ↓ ↔ m0 ∈ gstore ↓);%down-store-in: ⊦ n ∈ gstore ↓ ↔ n ∈ gstore;% ⊦ groupblock(gndx, lax, m).ladrlist = lax; (s)% ⊦ groupblock(gndx, lax, m).gndlist = gndx; (s)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).lnum = m; (s)