| ⟨vfs_walk#(parent(str0 ' + p0), user, dirs, files, asynced; ino, err)⟩ (ino = ino0 ∧ err = err0), ⟪vfs_walk#(parent(str0 ' + p0), user, dirs, files, asynced; ino, err)⟫ ( ⌊err⌋ ∨ err = ESUCCESS ∧ ispath(parent(str0 ' + p0), ROOT_INO, ino, dirs, files) ∧ px-parent(user, parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err = ENOENT ∧ ¬ ispath(parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err = EACCESS ∧ p0 ≠ ε ∧ (∃ p'. p' ⊑ parent(str0 ' + parent(p0)) ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files))), ino = ROOT_INO, afs-cons(dirs, files), ⌊err0⌋ ∨ err0 = ESUCCESS ∧ ispath(parent(str0 ' + p0), ROOT_INO, ino0, dirs, files) ∧ px-parent(user, parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err0 = ENOENT ∧ ¬ ispath(parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err0 = EACCESS ∧ p0 ≠ ε ∧ (∃ p'. p' ⊑ parent(str0 ' + parent(p0)) ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files)) ⊦ ∃ q, str. str0 ' + p0 = q + str ' ∧ ( ⌊err0⌋ ∨ err0 = ESUCCESS ∧ ispath(q, ROOT_INO, ino0, dirs, files) ∧ px-parent(user, q, ROOT_INO, dirs, files) ∨ err0 = ENOENT ∧ ¬ ispath(q, ROOT_INO, dirs, files) ∨ err0 = EACCESS ∧ (∃ p'. p' ⊑ q ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files))) |
⟨vfs_walk#(parent(str0 ' + p0), user, dirs, files, asynced; ino, err)⟩ (ino = ino0 ∧ err = err0), ⟪vfs_walk#(parent(str0 ' + p0), user, dirs, files, asynced; ino, err)⟫ ( ⌊err⌋ ∨ err = ESUCCESS ∧ ispath(parent(str0 ' + p0), ROOT_INO, ino, dirs, files) ∧ px-parent(user, parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err = ENOENT ∧ ¬ ispath(parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err = EACCESS ∧ p0 ≠ ε ∧ (∃ p'. p' ⊑ parent(str0 ' + parent(p0)) ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files))), ino = ROOT_INO, afs-cons(dirs, files), ⌊err0⌋ ∨ err0 = ESUCCESS ∧ ispath(parent(str0 ' + p0), ROOT_INO, ino0, dirs, files) ∧ px-parent(user, parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err0 = ENOENT ∧ ¬ ispath(parent(str0 ' + p0), ROOT_INO, dirs, files) ∨ err0 = EACCESS ∧ p0 ≠ ε ∧ p' ⊑ parent(str0 ' + parent(p0)) ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files) ⊦ ∃ q, str. str0 ' + p0 = q + str ' ∧ ( ⌊err0⌋ ∨ err0 = ESUCCESS ∧ ispath(q, ROOT_INO, ino0, dirs, files) ∧ px-parent(user, q, ROOT_INO, dirs, files) ∨ err0 = ENOENT ∧ ¬ ispath(q, ROOT_INO, dirs, files) ∨ err0 = EACCESS ∧ (∃ p'. p' ⊑ q ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files)))