| err = ESUCCESS, err0 = err1, fid = ofh0[fd].fid, ofh = ofh0 -- fd, root.dir?, fids-cons(root, fs, ofh0), pre-close(fd, err, user, root, fs, ofh0), fd ∈ ofh0 ⊦ ⟪if ¬ fid ∈ ofh.fids ∧ ¬ fid ∈ root.fids then fs := fs -- fid⟫ fids-cons(root, fs, ofh) |
root.dir?, fids-cons(root, fs, ofh0), fd ∈ ofh0 ⊦ ⟪if ¬ ofh0[fd].fid ∈ (ofh0 -- fd).fids ∧ ¬ ofh0[fd].fid ∈ root.fids then fs := fs -- ofh0[fd].fid⟫ fids-cons(root, fs, ofh0 -- fd)
Used simplifier rules: ⊦ pre-close(fd, ESUCCESS, user, root, fs, ofh) ↔ fd ∈ ofh; (s)