| err0 = ESUCCESS, remove-refsize0(gstore1) = gstore1, elems nx ∩ ginval2 = ∅, dom gstore1 ∪ elems nx = dom gstore2 ∪ ginval2, inv(gstore2 \ ginval2), inv(gstore1), ri-inj(fi2), ri-inj(fi1), ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪syn := key ∈ fi2; if syn then adr := fi2[key] else adr := ?⟫ true, dups(nx) |
err0 = ESUCCESS, remove-refsize0(gstore1) = gstore1, elems nx ∩ ginval2 = ∅, dom gstore1 ∪ elems nx = dom gstore2 ∪ ginval2, inv(gstore1), inv(gstore2 \ ginval2), ri-inj(fi1), ri-inj(fi2), ⌊err0⌋ ∨ err0 = ESUCCESS ⊦ ⟪if key ∈ fi2 then adr := fi2[key] else adr := ?⟫ true, dups(nx)