| # lax = # gndx, remove-refsize0(istore1) = istore1, remove-refsize0(gstore0) = gstore0, elems nx ∩ ginval2 = ∅, dom gstore0 ∪ elems nx = dom gstore1 ∪ ginval2, inv(gstore1[nx.last]), inv(istore1), inv(istore2), inv(gstore0), inv(gstore1 \ ginval2), inv-flashsize(gndx, lax), nx.last ∈ gstore1, istore1 ⊑ istore2 ⊦ nx = [], dups(lax), dups(gstore1[nx.last].ladrlist), dups(gstore1[nx.last].ladrlist + lax), dups(nx), inv((gstore1[nx.last].gndlist:= (gstore1[nx.last].gndlist + gndx)).ladrlist:= (gstore1[nx.last].ladrlist + lax)), nx.last ∈ ginval2 |
# lax = # gndx, gstore1[nx.last] = groupblock(gndx0, lax0, m), remove-refsize0(gstore0) = gstore0, remove-refsize0(istore1) = istore1, elems nx ∩ ginval2 = ∅, dom gstore0 ∪ elems nx = dom gstore1 ∪ ginval2, inv(gstore1 \ ginval2), inv(gstore0), inv(istore2), inv(istore1), inv(gstore1[nx.last]), inv-flashsize(gndx, lax), nx.last ∈ gstore1, istore1 ⊑ istore2 ⊦ nx = [], dups(nx), dups(lax0 + lax), dups(lax0), dups(lax), inv((gstore1[nx.last].gndlist:= (gndx0 + gndx)).ladrlist:= (lax0 + lax)), nx.last ∈ ginval2
Used simplifier rules: ⊦ (gndx = gblock.gndlist ∧ lax = gblock.ladrlist) ∧ m = gblock.ref-size ↔ gblock = groupblock(gndx, lax, m); (elim) Used terms: gstore1[nx.last], gndx0, lax0, m