| gstore[m] ↓ = groupblock(gndx, lax, m2), m ∈ gstore, @(m0, m1) ∈ lax, @(m, m0, m1) ∈ gstore ↓ ⊦ gstore ↓[@(m, m0, m1).lnum].gndlist[pos(@(@(m, m0, m1).pos, @(m, m0, m1).size), gstore ↓[@(m, m0, m1).lnum].ladrlist)] = gstore[@(m, m0, m1)], m ∈ ginval |
gstore[m] ↓ = groupblock(gndx, lax, m2), m ∈ gstore, @(m0, m1) ∈ lax ⊦ gndx[pos(@(m0, m1), lax)] = gstore[@(m, m0, m1)], m ∈ ginval
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)