| afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪vfs_mkdir#(p, md, user; err, dirs, files, asynced)⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files)) |
⊦
afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪if p = ε then err := EEXISTS else let ino = ROOT_INO, dent = negdentry(p.last), p = parent(p), inode = ?, c_inode = ? in {vfs_walk#(p, user, dirs, files, asynced; ino, err); if err = ESUCCESS then vfs_may_create#(ino, dent, user, dirs, files, asynced; inode, err); if err = ESUCCESS then afs_check_commit#(dirs, files; err; asynced); if err = ESUCCESS then afs_mkdir#(md; inode, c_inode, dent, err, dirs, files; asynced)}⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files))
Used simplifier rules: mkdir: ⊦ ;