| psynced, root.dir?, fids-cons(root, fs, ofh), posix-crash(root, fs, ofh, tree, fs0, ofh0) ⊦ ⟨posix_open#(path, mode, user, root, fs; fd, err, ofh)⟩ (psynced ∧ posix-crash(root, fs, ofh, tree, fs0, ofh0)) |
⊦
err0 = err, psynced, root.dir?, fids-cons(root, fs, ofh), posix-crash(root, fs, ofh, tree, fs0, ofh0) ⊦ ⟨choose err with pre-open(path, mode, err, user, root, fs, ofh) in err0 := err; if err0 = ESUCCESS then let fid = root[path].fid in choose n with ¬ n ∈ ofh in {ofh[n] := mkfh(fid, mode, 0); fd := n}⟩ (psynced ∧ posix-crash(root, fs, ofh, tree, fs0, ofh0))
Used simplifier rules: open: ⊦ ;