| afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪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_create#(md; inode, c_inode, dent, err, dirs, files; asynced)}⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files)), p = ε |
dent = negdentry(p0.last), ino = ROOT_INO, p = parent(p0), afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ ⟪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_create#(md; inode, c_inode, dent, err, dirs, files; asynced)⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files)), p0 = ε
afs-cons(dirs, files), of-cons(of, dirs, files) ⊦ p = ε, p ≠ ε ∧ p ≠ ε