| afs-cons(dirs, files), ispath(p, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p, ROOT_INO, dirs, files), ino0 ∈ dirs ∨ ino0 ∈ files ⊦ ⟪choose err0 with ⌊err0⌋ in err := err0; if err = ESUCCESS then if pw(user, inode.meta) then {inode.meta := md; afs_check_commit#(dirs, files; err; asynced); if err = ESUCCESS then afs_write_inode#(inode; err, dirs, files; asynced)} else err := EACCESS⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files)) |
afs-cons(dirs, files), ispath(p, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p, ROOT_INO, dirs, files), ⌊err0⌋ , ino0 ∈ dirs ∨ ino0 ∈ files ⊦ ⟪err := err0; if err = ESUCCESS then if pw(user, inode.meta) then {inode.meta := md; afs_check_commit#(dirs, files; err; asynced); if err = ESUCCESS then afs_write_inode#(inode; err, dirs, files; asynced)} else err := EACCESS⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files))
afs-cons(dirs, files), ispath(p, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p, ROOT_INO, dirs, files), ino0 ∈ dirs ∨ ino0 ∈ files ⊦ ∃ err0. ⌊err0⌋