| err = ESUCCESS, err0 = err1, root.dir?, fids-cons(root, fs, ofh), pre-close(fd, err, user, root, fs, ofh) ⊦ ⟪let fid = ofh[fd].fid in {ofh := ofh -- fd; if ¬ fid ∈ ofh.fids ∧ ¬ fid ∈ root.fids then fs := fs -- fid}⟫ fids-cons(root, fs, ofh) |
err = ESUCCESS, err0 = err1, fid = ofh[fd].fid, root.dir?, fids-cons(root, fs, ofh), pre-close(fd, err, user, root, fs, ofh), fd ∈ ofh ⊦ ⟪ofh := ofh -- fd; if ¬ fid ∈ ofh.fids ∧ ¬ fid ∈ root.fids then fs := fs -- fid⟫ fids-cons(root, fs, ofh)
err = ESUCCESS, err0 = err1, root.dir?, fids-cons(root, fs, ofh), pre-close(fd, err, user, root, fs, ofh) ⊦ fd ∈ ofh