| syn0 ↔ true, syn ↔ syn1, fi = fi1, fi0 = fi2, ginval = ginval2, ginval0 = ginval1, gstore = gstore1, gstore0 = gstore2, maxino = maxino0, remove-refsize0(gstore1) = gstore1, elems nx ∩ ginval1 = ∅, dom gstore1 ∪ elems nx = dom gstore2 ∪ ginval1, inv(gstore1), inv(gstore2 \ ginval1), ri-inj(fi1), ri-inj(fi2) ⊦ ⟨fail_or_success#(; ; err); if err = ESUCCESS then {syn := key ∈ fi0; if syn then adr := fi0[key] else adr := ?} else syn := ?, adr := ?⟩ true, dups(nx) |
remove-refsize0(gstore1) = gstore1, elems nx ∩ ginval1 = ∅, dom gstore1 ∪ elems nx = dom gstore2 ∪ ginval1, inv(gstore2 \ ginval1), inv(gstore1), ri-inj(fi2), ri-inj(fi1), ¬ dups(nx) ⊦ ⟨fail_or_success#(; ; err); if err = ESUCCESS then {syn := key ∈ fi2; if syn then adr := fi2[key] else adr := ?} else syn := ?, adr := ?⟩ true