| err = err0, fd = ino0, ofh = abs-of(of), root.dir?, dom of < ino, abs(root, ROOT_INO)(dirs), afs-cons(dirs, files), fids-cons(root, abs-files(files), abs-of(of)), of-cons(of, dirs, files), psynced → asynced ⊦ ⟪vfs_open#(path, mode, user, dirs, files, asynced; fd, err, of, ino)⟫ ⟨posix_open#(path, mode, user, root, abs-files(files); ino0, err0, ofh)⟩ (ofh = abs-of(of) ∧ (psynced → asynced) ∧ fd = ino0 ∧ err = err0) |
of-cons(of, dirs, files), dom of < ino, afs-cons(dirs, files) ⊦ ⟪vfs_open#(p, mode, user, dirs, files, asynced; fd, err, of, ino)⟫ (of-cons(of, dirs, files) ∧ dom of < ino)
asynced0 ↔ asynced, dirs0 = dirs, err = err0, fd = ino0, files0 = files, mode0 = mode, ofh = abs-of(of), p0 = path, user0 = user, root.dir?, dom of < ino, abs(root, ROOT_INO)(dirs), afs-cons(dirs, files), fids-cons(root, abs-files(files), abs-of(of)), of-cons(of, dirs, files), psynced → asynced ⊦ [vfs_open#(path, mode, user, dirs, files, asynced; fd, err, of, ino)] ( of-cons(of, dirs0, files0) ∧ dom of < ino → ⟨posix_open#(path, mode, user, root, abs-files(files); ino0, err0, ofh)⟩ (ofh = abs-of(of) ∧ (psynced → asynced) ∧ fd = ino0 ∧ err = err0))