| gstore[nx.last] = groupblock(gndx0, lax0, m), remove-refsize0(gstore0) = gstore0, elems nx ∩ ginval2 = ∅, dom gstore0 ∪ elems nx = dom gstore ∪ ginval2, inv(gstore[nx.last]), inv(gstore0), inv(gstore \ ginval2), ri-inj(fi1), ri-inj(fi2), nx.last ∈ gstore ⊦ nx = [], dups(nx), ∃ lax, err0. (⌊err0⌋ ∨ err0 = ESUCCESS) ∧ ¬ dups(lax0 + lax) ∧ # lax ≤ # gndx ∧ inv-flashsize(prefixn(# lax, gndx), lax) ∧ (err0 = ESUCCESS ↔ # lax = # gndx) |
gstore[nx.last] = groupblock(gndx0, lax0, m), remove-refsize0(gstore0) = gstore0, elems nx ∩ ginval2 = ∅, dom gstore0 ∪ elems nx = dom gstore ∪ ginval2, inv(gstore \ ginval2), inv(gstore0), inv(groupblock(gndx0, lax0, m)), ri-inj(fi2), ri-inj(fi1), nx.last ∈ gstore ⊦ nx = [], dups(nx), ∃ lax, err0. (⌊err0⌋ ∨ err0 = ESUCCESS) ∧ ¬ dups(lax0 + lax) ∧ # lax ≤ # gndx ∧ inv-flashsize(prefixn(# lax, gndx), lax) ∧ (err0 = ESUCCESS ↔ # lax = # gndx)