| # gndx = # lax, # gndx1 = # lax1, gstore[n] = groupblock(gndx, lax, m0), gstore[m] ↓ = groupblock(gndx0, lax0, m3), n ∈ gstore, m ∈ gstore, @(m1, m2) ∈ lax0 ⊦ m ∈ ginval, ( @(m, m1, m2).lnum ∈ gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)] ∧ @(@(m, m1, m2).pos, @(m, m1, m2).size) ∈ gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)][@(m, m1, m2).lnum].ladrlist) ∧ nodes(gstore ↓, ginval)[@(m, m1, m2)] = nodes(gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)], ginval)[@(m, m1, m2)] |
# gndx = # lax, # gndx1 = # lax1, gstore[n] = groupblock(gndx, lax, m0), gstore[m] ↓ = groupblock(gndx0, lax0, m3), n ∈ gstore, m ∈ gstore, @(m1, m2) ∈ lax0, m ∈ gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)] ⊦ m ∈ ginval, nodes(gstore ↓, ginval)[@(m, m1, m2)] = nodes(gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)], ginval)[@(m, m1, m2)] ∧ @(m1, m2) ∈ gstore ↓[n, groupblock(gndx + gndx1, lax + lax1, m0)][m].ladrlist
Used simplifier rules: down-store-in: ⊦ n ∈ gstore ↓ ↔ n ∈ gstore;% ⊦ n ∈ gstore[n0, gblock] ↔ n = n0 ∨ n ∈ gstore; (ws)% ⊦ @(m, m0, m1).size = m1; (s)% ⊦ @(m, m0, m1).pos = m0; (s)% ⊦ @(m, m0, m1).lnum = m; (s)