| dom of < ino1, afs-cons(dirs, files), of-cons(of, dirs, files), ⌊err⌋ ∨ err = ESUCCESS ∧ ispath(p, ROOT_INO, ino0, dirs, files) ∧ px-parent(user, p, ROOT_INO, dirs, files) ∨ err = ENOENT ∧ ¬ ispath(p, ROOT_INO, dirs, files) ∨ err = EACCESS ∧ p ≠ ε ∧ p' ⊑ parent(p) ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files) ⊦ ⟪skip; if err = ESUCCESS then {of[ino1] := mkfile(ino0, mode, 0); fd := ino1; ino1 := ino1 + 1}⟫ (of-cons(of, dirs, files) ∧ dom of < ino1), err = ESUCCESS |
dom of < ino1, afs-cons(dirs, files), of-cons(of, dirs, files), ⌊err⌋ ∨ err = ESUCCESS ∧ ispath(p, ROOT_INO, ino0, dirs, files) ∧ px-parent(user, p, ROOT_INO, dirs, files) ∨ err = ENOENT ∧ ¬ ispath(p, ROOT_INO, dirs, files) ∨ err = EACCESS ∧ p ≠ ε ∧ p' ⊑ parent(p) ∧ ispath(p', ROOT_INO, dirs, files) ∧ ¬ px(user, p', ROOT_INO, dirs, files) ⊦ ⟪if err = ESUCCESS then {of[ino1] := mkfile(ino0, mode, 0); fd := ino1; ino1 := ino1 + 1}⟫ (of-cons(of, dirs, files) ∧ dom of < ino1), err = ESUCCESS