| files[ino0] = mkfile(m, md, # links(ino0, dirs), content), dom of < ino1, 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 ∈ files, of[n].ino ∈ files, n ∈ of, n ∈ of[ino1, mkfile(ino0, mode, 0)] ⊦ ino0 ∈ dirs, of[ino1, mkfile(ino0, mode, 0)][n].ino ∈ files, (mode = MODE_R ∨ mode = MODE_RW) ∧ ¬ pr(user, md), (mode = MODE_W ∨ mode = MODE_RW) ∧ ¬ pw(user, md) |
files[ino0] = mkfile(m, md, # links(ino0, dirs), content), of[n] = mkfile(m0, mode0, m1), dom of < ino1, afs-cons(dirs, files), ispath(p, ROOT_INO, ino0, dirs, files), of-cons(of, dirs, files), px-parent(user, p, ROOT_INO, dirs, files), n ∈ of[ino1, mkfile(ino0, mode, 0)], n ∈ of, m0 ∈ files, ino0 ∈ files ⊦ of[ino1, mkfile(ino0, mode, 0)][n].ino ∈ files, ino0 ∈ dirs, (mode = MODE_W ∨ mode = MODE_RW) ∧ ¬ pw(user, md), (mode = MODE_R ∨ mode = MODE_RW) ∧ ¬ pr(user, md)
Used simplifier rules: ⊦ (m = file.ino ∧ mode = file.mode) ∧ m0 = file.pos ↔ file = mkfile(m, mode, m0); (elim) Used terms: of[n], m0, mode0, m1