| gstore[m] ↓ = groupblock(gndx, lax, m2), @(m0, m1) ∈ lax, m ∈ gstore ⊦ gstore ↓[@(m, m0, m1)] = gstore[@(m, m0, m1)], m ∈ ginval |
⊦ adr ∈ gstore → gstore[adr] = gstore[adr.lnum].gndlist[pos(@(adr.pos, adr.size), gstore[adr.lnum].ladrlist)]
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
Used simplifier rules: 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;% ⊦ ¬ n ∈ gstore → gstore[n] = (∅)[n]; (s) Used terms: @(m, m0, m1), gstore ↓