| 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 ⊦ ⟪if err0 = ESUCCESS then if pw(user, inode.meta) then {inode.meta := md; afs_check_commit#(dirs, files; err0; asynced); if err0 = ESUCCESS then afs_write_inode#(inode; err0, 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 ⊦ ⟪skip⟫ (of-cons(of, dirs, files) ∧ afs-cons(dirs, files))
Used simplifier rules: ⊦ ⌊err⌋ → err ≠ ESUCCESS; (s)