| maxino0 = maxino3, maxino1 = LEB_SIZE, maxino2 = maxino4 ⊦ ⟪if maxino1 = LEB_SIZE then {fail_or_success#(; ; err); if err = ESUCCESS then pstate := unbuffered, syn := true, maxino := maxino0, ginval0 := ∅, nx := [], gstore0 := ∅, gstore := ∅, istore0 := ∅, istore := ∅, ginval := ∅, adr := ? else pstate := ?, syn := ?, maxino := ?, ginval0 := ?, nx := ?, gstore0 := ?, gstore := ?, istore0 := ?, istore := ?, ginval := ?, adr := ?} else abort⟫ ( err = ESUCCESS → syn ∧ inv(gstore0 \ ginval) ∧ inv(gstore) ∧ elems nx ∩ ginval = ∅ ∧ ¬ dups(nx) ∧ dom gstore ∪ elems nx = dom gstore0 ∪ ginval ∧ remove-refsize0(gstore) = gstore ∧ inv(istore0) ∧ inv(istore) ∧ istore ⊑ istore0 ∧ remove-refsize0(istore) = istore ∧ (pstate.journal? → nx ≠ [] ∧ pstate.lnum = nx.last ∧ pstate.lnum ∈ gstore0) ∧ (pstate.index? → pstate.lnum ∈ istore0)) |
maxino0 = maxino3, maxino1 = LEB_SIZE, maxino2 = maxino4 ⊦ ⟪fail_or_success#(; ; err); if err = ESUCCESS then pstate := unbuffered, syn := true, maxino := maxino0, ginval0 := ∅, nx := [], gstore0 := ∅, gstore := ∅, istore0 := ∅, istore := ∅, ginval := ∅, adr := ? else pstate := ?, syn := ?, maxino := ?, ginval0 := ?, nx := ?, gstore0 := ?, gstore := ?, istore0 := ?, istore := ?, ginval := ?, adr := ?⟫ ( err = ESUCCESS → syn ∧ inv(gstore0 \ ginval) ∧ inv(gstore) ∧ elems nx ∩ ginval = ∅ ∧ ¬ dups(nx) ∧ dom gstore ∪ elems nx = dom gstore0 ∪ ginval ∧ remove-refsize0(gstore) = gstore ∧ inv(istore0) ∧ inv(istore) ∧ istore ⊑ istore0 ∧ remove-refsize0(istore) = istore ∧ (pstate.journal? → nx ≠ [] ∧ pstate.lnum = nx.last ∧ pstate.lnum ∈ gstore0) ∧ (pstate.index? → pstate.lnum ∈ istore0))